From a49e36591fae2df2d5c616470aced7e55959aba2 Mon Sep 17 00:00:00 2001 From: SebnemEr Date: Fri, 24 Nov 2023 17:44:50 +0200 Subject: [PATCH] sitelibs --- .../bootstrap/bootstrap-dark.min.css | 10 + .../site_libs/bootstrap/bootstrap-icons.css | 2018 +++ .../site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 164168 bytes english/site_libs/bootstrap/bootstrap.min.css | 10 + english/site_libs/bootstrap/bootstrap.min.js | 7 + english/site_libs/bootstrap/images/pull.png | Bin 0 -> 1547 bytes .../bootstrap/images/render-commit-push.png | Bin 0 -> 8231 bytes english/site_libs/clipboard/clipboard.min.js | 7 + .../site_libs/countdown-0.3.5/countdown.css | 67 + .../site_libs/countdown-0.3.5/countdown.js | 141 + .../countdown-0.3.5/smb_stage_clear.mp3 | Bin 0 -> 38758 bytes .../crosstalk-1.2.0/css/crosstalk.min.css | 1 + .../site_libs/crosstalk-1.2.0/js/crosstalk.js | 1474 +++ .../crosstalk-1.2.0/js/crosstalk.js.map | 37 + .../crosstalk-1.2.0/js/crosstalk.min.js | 2 + .../crosstalk-1.2.0/js/crosstalk.min.js.map | 1 + .../crosstalk-1.2.0/scss/crosstalk.scss | 75 + .../datatables-binding-0.20/datatables.js | 1421 ++ .../datatables-binding-0.30/datatables.js | 1517 +++ .../datatables-crosstalk.css | 32 + .../css/jquery.dataTables.extra.css | 28 + .../css/jquery.dataTables.min.css | 1 + .../js/jquery.dataTables.min.js | 187 + .../css/jquery.dataTables.extra.css | 28 + .../css/jquery.dataTables.min.css | 1 + .../js/jquery.dataTables.min.js | 4 + .../htmlwidgets-1.5.4/htmlwidgets.js | 903 ++ .../htmlwidgets-1.6.3/htmlwidgets.js | 901 ++ .../site_libs/jquery-3.6.0/jquery-3.6.0.js | 10881 ++++++++++++++++ .../jquery-3.6.0/jquery-3.6.0.min.js | 2 + .../jquery-3.6.0/jquery-3.6.0.min.map | 1 + english/site_libs/kePrint-0.0.1/kePrint.js | 8 + .../site_libs/lightable-0.0.1/lightable.css | 272 + english/site_libs/quarto-html/anchor.min.js | 9 + english/site_libs/quarto-html/popper.min.js | 6 + .../quarto-syntax-highlighting-dark.css | 189 + .../quarto-syntax-highlighting.css | 203 + english/site_libs/quarto-html/quarto.js | 902 ++ english/site_libs/quarto-html/tippy.css | 1 + .../site_libs/quarto-html/tippy.umd.min.js | 2 + english/site_libs/quarto-nav/quarto-nav.js | 277 + .../quarto-search/autocomplete.umd.js | 3 + english/site_libs/quarto-search/fuse.min.js | 9 + .../site_libs/quarto-search/quarto-search.js | 1140 ++ english/site_libs/revealjs/dist/reset.css | 30 + english/site_libs/revealjs/dist/reveal.css | 8 + english/site_libs/revealjs/dist/reveal.esm.js | 9 + .../site_libs/revealjs/dist/reveal.esm.js.map | 1 + english/site_libs/revealjs/dist/reveal.js | 9 + english/site_libs/revealjs/dist/reveal.js.map | 1 + .../dist/theme/fonts/league-gothic/LICENSE | 2 + .../fonts/league-gothic/league-gothic.css | 10 + .../fonts/league-gothic/league-gothic.eot | Bin 0 -> 25696 bytes .../fonts/league-gothic/league-gothic.ttf | Bin 0 -> 64256 bytes .../fonts/league-gothic/league-gothic.woff | Bin 0 -> 30764 bytes .../dist/theme/fonts/source-sans-pro/LICENSE | 45 + .../source-sans-pro-italic.eot | Bin 0 -> 75720 bytes .../source-sans-pro-italic.ttf | Bin 0 -> 238084 bytes .../source-sans-pro-italic.woff | Bin 0 -> 98556 bytes .../source-sans-pro-regular.eot | Bin 0 -> 88070 bytes .../source-sans-pro-regular.ttf | Bin 0 -> 288008 bytes .../source-sans-pro-regular.woff | Bin 0 -> 114324 bytes .../source-sans-pro-semibold.eot | Bin 0 -> 89897 bytes .../source-sans-pro-semibold.ttf | Bin 0 -> 284640 bytes .../source-sans-pro-semibold.woff | Bin 0 -> 115648 bytes .../source-sans-pro-semibolditalic.eot | Bin 0 -> 75706 bytes .../source-sans-pro-semibolditalic.ttf | Bin 0 -> 240944 bytes .../source-sans-pro-semibolditalic.woff | Bin 0 -> 98816 bytes .../fonts/source-sans-pro/source-sans-pro.css | 39 + .../site_libs/revealjs/dist/theme/quarto.css | 1 + .../plugin/highlight/highlight.esm.js | 5 + .../revealjs/plugin/highlight/highlight.js | 5 + .../revealjs/plugin/highlight/monokai.css | 71 + .../revealjs/plugin/highlight/plugin.js | 439 + .../revealjs/plugin/highlight/zenburn.css | 80 + .../revealjs/plugin/markdown/markdown.esm.js | 1 + .../revealjs/plugin/markdown/markdown.js | 1 + .../revealjs/plugin/markdown/plugin.js | 475 + .../site_libs/revealjs/plugin/math/katex.js | 96 + .../revealjs/plugin/math/math.esm.js | 1 + .../site_libs/revealjs/plugin/math/math.js | 1 + .../revealjs/plugin/math/mathjax2.js | 89 + .../revealjs/plugin/math/mathjax3.js | 77 + .../site_libs/revealjs/plugin/math/plugin.js | 15 + .../revealjs/plugin/multiplex/multiplex.js | 57 + .../revealjs/plugin/multiplex/plugin.yml | 8 + .../revealjs/plugin/multiplex/socket.io.js | 9 + .../revealjs/plugin/notes/notes.esm.js | 1 + .../site_libs/revealjs/plugin/notes/notes.js | 1 + .../site_libs/revealjs/plugin/notes/plugin.js | 184 + .../revealjs/plugin/notes/speaker-view.html | 852 ++ .../revealjs/plugin/pdf-export/pdfexport.js | 108 + .../revealjs/plugin/pdf-export/plugin.yml | 2 + .../quarto-line-highlight/line-highlight.css | 31 + .../quarto-line-highlight/line-highlight.js | 351 + .../plugin/quarto-line-highlight/plugin.yml | 4 + .../revealjs/plugin/quarto-support/footer.css | 109 + .../revealjs/plugin/quarto-support/plugin.yml | 5 + .../revealjs/plugin/quarto-support/support.js | 243 + .../plugin/reveal-chalkboard/README.md | 160 + .../font-awesome/LICENSE.txt | 34 + .../font-awesome/css/all.css | 5 + .../font-awesome/css/brands.css | 5 + .../font-awesome/css/fontawesome.css | 5 + .../font-awesome/css/regular.css | 5 + .../font-awesome/css/solid.css | 5 + .../font-awesome/css/svg-with-js.css | 5 + .../font-awesome/css/v4-shims.css | 2170 +++ .../font-awesome/css/v4-shims.min.css | 5 + .../font-awesome/webfonts/fa-brands-400.eot | Bin 0 -> 115052 bytes .../font-awesome/webfonts/fa-brands-400.svg | 1127 ++ .../font-awesome/webfonts/fa-brands-400.ttf | Bin 0 -> 114816 bytes .../font-awesome/webfonts/fa-brands-400.woff | Bin 0 -> 73920 bytes .../font-awesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 63376 bytes .../font-awesome/webfonts/fa-regular-400.eot | Bin 0 -> 40744 bytes .../font-awesome/webfonts/fa-regular-400.svg | 467 + .../font-awesome/webfonts/fa-regular-400.ttf | Bin 0 -> 40516 bytes .../font-awesome/webfonts/fa-regular-400.woff | Bin 0 -> 18212 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 14952 bytes .../font-awesome/webfonts/fa-solid-900.eot | Bin 0 -> 160768 bytes .../font-awesome/webfonts/fa-solid-900.svg | 2231 ++++ .../font-awesome/webfonts/fa-solid-900.ttf | Bin 0 -> 160548 bytes .../font-awesome/webfonts/fa-solid-900.woff | Bin 0 -> 76632 bytes .../font-awesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 59572 bytes .../reveal-chalkboard/img/blackboard.png | Bin 0 -> 32733 bytes .../img/boardmarker-black.png | Bin 0 -> 2142 bytes .../img/boardmarker-blue.png | Bin 0 -> 2127 bytes .../img/boardmarker-green.png | Bin 0 -> 2106 bytes .../img/boardmarker-orange.png | Bin 0 -> 2240 bytes .../img/boardmarker-purple.png | Bin 0 -> 2044 bytes .../reveal-chalkboard/img/boardmarker-red.png | Bin 0 -> 2119 bytes .../img/boardmarker-yellow.png | Bin 0 -> 2105 bytes .../reveal-chalkboard/img/chalk-blue.png | Bin 0 -> 5150 bytes .../reveal-chalkboard/img/chalk-green.png | Bin 0 -> 4801 bytes .../reveal-chalkboard/img/chalk-orange.png | Bin 0 -> 5010 bytes .../reveal-chalkboard/img/chalk-purple.png | Bin 0 -> 5250 bytes .../reveal-chalkboard/img/chalk-red.png | Bin 0 -> 4786 bytes .../reveal-chalkboard/img/chalk-white.png | Bin 0 -> 5199 bytes .../reveal-chalkboard/img/chalk-yellow.png | Bin 0 -> 5097 bytes .../plugin/reveal-chalkboard/img/sponge.png | Bin 0 -> 3612 bytes .../reveal-chalkboard/img/whiteboard.png | Bin 0 -> 34129 bytes .../plugin/reveal-chalkboard/plugin.js | 1976 +++ .../plugin/reveal-chalkboard/plugin.yml | 7 + .../plugin/reveal-chalkboard/style.css | 44 + .../revealjs/plugin/reveal-menu/menu.css | 346 + .../revealjs/plugin/reveal-menu/menu.js | 1 + .../revealjs/plugin/reveal-menu/plugin.yml | 9 + .../plugin/reveal-menu/quarto-menu.css | 68 + .../plugin/reveal-menu/quarto-menu.js | 40 + .../revealjs/plugin/search/plugin.js | 243 + .../revealjs/plugin/search/search.esm.js | 7 + .../revealjs/plugin/search/search.js | 7 + .../site_libs/revealjs/plugin/zoom/plugin.js | 279 + .../revealjs/plugin/zoom/zoom.esm.js | 4 + .../site_libs/revealjs/plugin/zoom/zoom.js | 4 + 155 files changed, 35513 insertions(+) create mode 100644 english/site_libs/bootstrap/bootstrap-dark.min.css create mode 100644 english/site_libs/bootstrap/bootstrap-icons.css create mode 100644 english/site_libs/bootstrap/bootstrap-icons.woff create mode 100644 english/site_libs/bootstrap/bootstrap.min.css create mode 100644 english/site_libs/bootstrap/bootstrap.min.js create mode 100644 english/site_libs/bootstrap/images/pull.png create mode 100644 english/site_libs/bootstrap/images/render-commit-push.png create mode 100644 english/site_libs/clipboard/clipboard.min.js create mode 100644 english/site_libs/countdown-0.3.5/countdown.css create mode 100644 english/site_libs/countdown-0.3.5/countdown.js create mode 100644 english/site_libs/countdown-0.3.5/smb_stage_clear.mp3 create mode 100644 english/site_libs/crosstalk-1.2.0/css/crosstalk.min.css create mode 100644 english/site_libs/crosstalk-1.2.0/js/crosstalk.js create mode 100644 english/site_libs/crosstalk-1.2.0/js/crosstalk.js.map create mode 100644 english/site_libs/crosstalk-1.2.0/js/crosstalk.min.js create mode 100644 english/site_libs/crosstalk-1.2.0/js/crosstalk.min.js.map create mode 100644 english/site_libs/crosstalk-1.2.0/scss/crosstalk.scss create mode 100644 english/site_libs/datatables-binding-0.20/datatables.js create mode 100644 english/site_libs/datatables-binding-0.30/datatables.js create mode 100644 english/site_libs/datatables-css-0.0.0/datatables-crosstalk.css create mode 100644 english/site_libs/dt-core-1.11.3/css/jquery.dataTables.extra.css create mode 100644 english/site_libs/dt-core-1.11.3/css/jquery.dataTables.min.css create mode 100644 english/site_libs/dt-core-1.11.3/js/jquery.dataTables.min.js create mode 100644 english/site_libs/dt-core-1.13.4/css/jquery.dataTables.extra.css create mode 100644 english/site_libs/dt-core-1.13.4/css/jquery.dataTables.min.css create mode 100644 english/site_libs/dt-core-1.13.4/js/jquery.dataTables.min.js create mode 100644 english/site_libs/htmlwidgets-1.5.4/htmlwidgets.js create mode 100644 english/site_libs/htmlwidgets-1.6.3/htmlwidgets.js create mode 100644 english/site_libs/jquery-3.6.0/jquery-3.6.0.js create mode 100644 english/site_libs/jquery-3.6.0/jquery-3.6.0.min.js create mode 100644 english/site_libs/jquery-3.6.0/jquery-3.6.0.min.map create mode 100644 english/site_libs/kePrint-0.0.1/kePrint.js create mode 100644 english/site_libs/lightable-0.0.1/lightable.css create mode 100644 english/site_libs/quarto-html/anchor.min.js create mode 100644 english/site_libs/quarto-html/popper.min.js create mode 100644 english/site_libs/quarto-html/quarto-syntax-highlighting-dark.css create mode 100644 english/site_libs/quarto-html/quarto-syntax-highlighting.css create mode 100644 english/site_libs/quarto-html/quarto.js create mode 100644 english/site_libs/quarto-html/tippy.css create mode 100644 english/site_libs/quarto-html/tippy.umd.min.js create mode 100644 english/site_libs/quarto-nav/quarto-nav.js create mode 100644 english/site_libs/quarto-search/autocomplete.umd.js create mode 100644 english/site_libs/quarto-search/fuse.min.js create mode 100644 english/site_libs/quarto-search/quarto-search.js create mode 100644 english/site_libs/revealjs/dist/reset.css create mode 100644 english/site_libs/revealjs/dist/reveal.css create mode 100644 english/site_libs/revealjs/dist/reveal.esm.js create mode 100644 english/site_libs/revealjs/dist/reveal.esm.js.map create mode 100644 english/site_libs/revealjs/dist/reveal.js create mode 100644 english/site_libs/revealjs/dist/reveal.js.map create mode 100644 english/site_libs/revealjs/dist/theme/fonts/league-gothic/LICENSE create mode 100644 english/site_libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.css create mode 100644 english/site_libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.eot create mode 100644 english/site_libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.ttf create mode 100644 english/site_libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.woff create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/LICENSE create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff create mode 100644 english/site_libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro.css create mode 100644 english/site_libs/revealjs/dist/theme/quarto.css create mode 100644 english/site_libs/revealjs/plugin/highlight/highlight.esm.js create mode 100644 english/site_libs/revealjs/plugin/highlight/highlight.js create mode 100644 english/site_libs/revealjs/plugin/highlight/monokai.css create mode 100644 english/site_libs/revealjs/plugin/highlight/plugin.js create mode 100644 english/site_libs/revealjs/plugin/highlight/zenburn.css create mode 100644 english/site_libs/revealjs/plugin/markdown/markdown.esm.js create mode 100644 english/site_libs/revealjs/plugin/markdown/markdown.js create mode 100644 english/site_libs/revealjs/plugin/markdown/plugin.js create mode 100644 english/site_libs/revealjs/plugin/math/katex.js create mode 100644 english/site_libs/revealjs/plugin/math/math.esm.js create mode 100644 english/site_libs/revealjs/plugin/math/math.js create mode 100644 english/site_libs/revealjs/plugin/math/mathjax2.js create mode 100644 english/site_libs/revealjs/plugin/math/mathjax3.js create mode 100644 english/site_libs/revealjs/plugin/math/plugin.js create mode 100644 english/site_libs/revealjs/plugin/multiplex/multiplex.js create mode 100644 english/site_libs/revealjs/plugin/multiplex/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/multiplex/socket.io.js create mode 100644 english/site_libs/revealjs/plugin/notes/notes.esm.js create mode 100644 english/site_libs/revealjs/plugin/notes/notes.js create mode 100644 english/site_libs/revealjs/plugin/notes/plugin.js create mode 100644 english/site_libs/revealjs/plugin/notes/speaker-view.html create mode 100644 english/site_libs/revealjs/plugin/pdf-export/pdfexport.js create mode 100644 english/site_libs/revealjs/plugin/pdf-export/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css create mode 100644 english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js create mode 100644 english/site_libs/revealjs/plugin/quarto-line-highlight/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/quarto-support/footer.css create mode 100644 english/site_libs/revealjs/plugin/quarto-support/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/quarto-support/support.js create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/README.md create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/LICENSE.txt create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/all.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/brands.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/fontawesome.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/regular.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/solid.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/svg-with-js.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.min.css create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.eot create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.svg create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.ttf create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff2 create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.eot create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.svg create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.ttf create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.woff create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.woff2 create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.eot create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.svg create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.ttf create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff2 create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/blackboard.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-black.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-blue.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-green.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-orange.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-purple.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-red.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-yellow.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-blue.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-green.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-orange.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-purple.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-red.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-white.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-yellow.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/sponge.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/img/whiteboard.png create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.js create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/reveal-chalkboard/style.css create mode 100644 english/site_libs/revealjs/plugin/reveal-menu/menu.css create mode 100644 english/site_libs/revealjs/plugin/reveal-menu/menu.js create mode 100644 english/site_libs/revealjs/plugin/reveal-menu/plugin.yml create mode 100644 english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.css create mode 100644 english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.js create mode 100644 english/site_libs/revealjs/plugin/search/plugin.js create mode 100644 english/site_libs/revealjs/plugin/search/search.esm.js create mode 100644 english/site_libs/revealjs/plugin/search/search.js create mode 100644 english/site_libs/revealjs/plugin/zoom/plugin.js create mode 100644 english/site_libs/revealjs/plugin/zoom/zoom.esm.js create mode 100644 english/site_libs/revealjs/plugin/zoom/zoom.js diff --git a/english/site_libs/bootstrap/bootstrap-dark.min.css b/english/site_libs/bootstrap/bootstrap-dark.min.css new file mode 100644 index 0000000..ff16e95 --- /dev/null +++ b/english/site_libs/bootstrap/bootstrap-dark.min.css @@ -0,0 +1,10 @@ +@import'https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible&display=swap';/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;700&display=swap";:root{--bs-blue: #2780e3;--bs-indigo: #6610f2;--bs-purple: #613d7c;--bs-pink: #e83e8c;--bs-red: #ff0039;--bs-orange: #f0ad4e;--bs-yellow: #ff7518;--bs-green: #3fb618;--bs-teal: #20c997;--bs-cyan: #9954bb;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #373a3c;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #373a3c;--bs-gray-900: #212529;--bs-default: #373a3c;--bs-primary: #2780e3;--bs-secondary: #373a3c;--bs-success: #3fb618;--bs-info: #9954bb;--bs-warning: #ff7518;--bs-danger: #ff0039;--bs-light: #525252;--bs-dark: #373a3c;--bs-default-rgb: 55, 58, 60;--bs-primary-rgb: 39, 128, 227;--bs-secondary-rgb: 55, 58, 60;--bs-success-rgb: 63, 182, 24;--bs-info-rgb: 153, 84, 187;--bs-warning-rgb: 255, 117, 24;--bs-danger-rgb: 255, 0, 57;--bs-light-rgb: 82, 82, 82;--bs-dark-rgb: 55, 58, 60;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 255, 255, 255;--bs-body-bg-rgb: 24, 24, 24;--bs-font-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Atkinson Hyperlegible;--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: white;--bs-body-bg: #181818}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#75aadb;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#5e88af}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#fff;background-color:#212121;padding:.5rem;border:1px solid #dee2e6}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:#9753b8;background-color:#212121;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#181818;border:1px solid #dee2e6;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: white;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: white;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: white;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#fff;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #fff}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #d4e6f9;--bs-table-striped-bg: #c9dbed;--bs-table-striped-color: #000;--bs-table-active-bg: #bfcfe0;--bs-table-active-color: #000;--bs-table-hover-bg: #c4d5e6;--bs-table-hover-color: #000;color:#000;border-color:#bfcfe0}.table-secondary{--bs-table-bg: #d7d8d8;--bs-table-striped-bg: #cccdcd;--bs-table-striped-color: #000;--bs-table-active-bg: #c2c2c2;--bs-table-active-color: #000;--bs-table-hover-bg: #c7c8c8;--bs-table-hover-color: #000;color:#000;border-color:#c2c2c2}.table-success{--bs-table-bg: #d9f0d1;--bs-table-striped-bg: #cee4c7;--bs-table-striped-color: #000;--bs-table-active-bg: #c3d8bc;--bs-table-active-color: #000;--bs-table-hover-bg: #c9dec1;--bs-table-hover-color: #000;color:#000;border-color:#c3d8bc}.table-info{--bs-table-bg: #ebddf1;--bs-table-striped-bg: #dfd2e5;--bs-table-striped-color: #000;--bs-table-active-bg: #d4c7d9;--bs-table-active-color: #000;--bs-table-hover-bg: #d9ccdf;--bs-table-hover-color: #000;color:#000;border-color:#d4c7d9}.table-warning{--bs-table-bg: #ffe3d1;--bs-table-striped-bg: #f2d8c7;--bs-table-striped-color: #000;--bs-table-active-bg: #e6ccbc;--bs-table-active-color: #000;--bs-table-hover-bg: #ecd2c1;--bs-table-hover-color: #000;color:#000;border-color:#e6ccbc}.table-danger{--bs-table-bg: #ffccd7;--bs-table-striped-bg: #f2c2cc;--bs-table-striped-color: #000;--bs-table-active-bg: #e6b8c2;--bs-table-active-color: #000;--bs-table-hover-bg: #ecbdc7;--bs-table-hover-color: #000;color:#000;border-color:#e6b8c2}.table-light{--bs-table-bg: #525252;--bs-table-striped-bg: #5b5b5b;--bs-table-striped-color: #fff;--bs-table-active-bg: #636363;--bs-table-active-color: #fff;--bs-table-hover-bg: #5f5f5f;--bs-table-hover-color: #fff;color:#fff;border-color:#636363}.table-dark{--bs-table-bg: #373a3c;--bs-table-striped-bg: #414446;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b4e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #46494b;--bs-table-hover-color: #fff;color:#fff;border-color:#4b4e50}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#fff;background-color:#242424;background-clip:padding-box;border:1px solid #ced4da;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#fff;background-color:#242424;border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#000;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#000;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#fff;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em}.form-control-color::-webkit-color-swatch{height:1.5em}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#fff;background-color:#242424;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #fff}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#242424;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#2780e3;border-color:#2780e3}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#2780e3;border-color:#2780e3;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2393c0f1'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #181818,0 0 0 .25rem rgba(39,128,227,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #181818,0 0 0 .25rem rgba(39,128,227,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bed9f7}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#bed9f7}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#000;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#3fb618}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(63,182,24,.9)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#3fb618;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#3fb618}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#3fb618}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#3fb618}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#3fb618}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff0039}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(255,0,57,.9)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff0039;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#ff0039}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#ff0039}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#ff0039}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff0039}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#fff;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#fff}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-default{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-default:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-default,.btn-default:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-default:disabled,.btn-default.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-primary{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-primary:hover{color:#fff;background-color:#216dc1;border-color:#1f66b6}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#216dc1;border-color:#1f66b6;box-shadow:0 0 0 .25rem rgba(71,147,231,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#1f66b6;border-color:#1d60aa}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(71,147,231,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-secondary{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-secondary:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-success{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-success:hover{color:#fff;background-color:#369b14;border-color:#329213}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#369b14;border-color:#329213;box-shadow:0 0 0 .25rem rgba(92,193,59,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#329213;border-color:#2f8912}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(92,193,59,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-info{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-info:hover{color:#fff;background-color:#82479f;border-color:#7a4396}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#82479f;border-color:#7a4396;box-shadow:0 0 0 .25rem rgba(168,110,197,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#7a4396;border-color:#733f8c}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(168,110,197,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-warning{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-warning:hover{color:#fff;background-color:#d96314;border-color:#cc5e13}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#d96314;border-color:#cc5e13;box-shadow:0 0 0 .25rem rgba(255,138,59,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc5e13;border-color:#bf5812}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(255,138,59,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-danger{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-danger:hover{color:#fff;background-color:#d90030;border-color:#cc002e}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#d90030;border-color:#cc002e;box-shadow:0 0 0 .25rem rgba(255,38,87,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#cc002e;border-color:#bf002b}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(255,38,87,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-light{color:#fff;background-color:#525252;border-color:#525252}.btn-light:hover{color:#fff;background-color:#464646;border-color:#424242}.btn-check:focus+.btn-light,.btn-light:focus{color:#fff;background-color:#464646;border-color:#424242;box-shadow:0 0 0 .25rem rgba(108,108,108,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#fff;background-color:#424242;border-color:#3e3e3e}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(108,108,108,.5)}.btn-light:disabled,.btn-light.disabled{color:#fff;background-color:#525252;border-color:#525252}.btn-dark{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-dark:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-outline-default{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#2780e3;border-color:#2780e3;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(39,128,227,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(39,128,227,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#2780e3;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#3fb618;border-color:#3fb618;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#3fb618;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#9954bb;border-color:#9954bb;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(153,84,187,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(153,84,187,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#9954bb;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#ff7518;border-color:#ff7518;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,117,24,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,117,24,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ff7518;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#ff0039;border-color:#ff0039;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#ff0039;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#525252;border-color:#525252;background-color:rgba(0,0,0,0)}.btn-outline-light:hover{color:#fff;background-color:#525252;border-color:#525252}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(82,82,82,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#fff;background-color:#525252;border-color:#525252}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(82,82,82,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#525252;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-dark:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#75aadb;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#5e88af}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:0}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#fff;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#2780e3}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#373a3c;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#2780e3}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#75aadb;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#5e88af}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#181818;border-color:#dee2e6 #dee2e6 #181818}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link{background:none;border:0}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#2780e3}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:.25 0;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#303030}.navbar-light .navbar-brand{color:#bdbdbd}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#9cc2e5}.navbar-light .navbar-nav .nav-link{color:#bdbdbd}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(156,194,229,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(189,189,189,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#9cc2e5}.navbar-light .navbar-toggler{color:#bdbdbd;border-color:rgba(189,189,189,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23bdbdbd' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#bdbdbd}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#9cc2e5}.navbar-dark{background-color:#303030}.navbar-dark .navbar-brand{color:#bdbdbd}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#9cc2e5}.navbar-dark .navbar-nav .nav-link{color:#bdbdbd}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(156,194,229,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(189,189,189,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#9cc2e5}.navbar-dark .navbar-toggler{color:#bdbdbd;border-color:rgba(189,189,189,0)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23bdbdbd' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#bdbdbd}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#9cc2e5}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:#adb5bd;border-bottom:1px solid rgba(0,0,0,.125)}.card-footer{padding:.5rem 1rem;background-color:#adb5bd;border-top:1px solid rgba(0,0,0,.125)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-tabs .nav-link.active{background-color:#fff;border-bottom-color:#fff}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#fff;text-align:left;background-color:#181818;border:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#2373cc;background-color:#e9f2fc;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232373cc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#181818;border:1px solid rgba(0,0,0,.125)}.accordion-item:not(:first-of-type){border-top:0}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#75aadb;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#5e88af;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#5e88af;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#2780e3;border-color:#2780e3}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:0 solid rgba(0,0,0,0)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-default .alert-link{color:#1a1c1d}.alert-primary{color:#174d88;background-color:#d4e6f9;border-color:#bed9f7}.alert-primary .alert-link{color:#123e6d}.alert-secondary{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-secondary .alert-link{color:#1a1c1d}.alert-success{color:#266d0e;background-color:#d9f0d1;border-color:#c5e9ba}.alert-success .alert-link{color:#1e570b}.alert-info{color:#5c3270;background-color:#ebddf1;border-color:#e0cceb}.alert-info .alert-link{color:#4a285a}.alert-warning{color:#99460e;background-color:#ffe3d1;border-color:#ffd6ba}.alert-warning .alert-link{color:#7a380b}.alert-danger{color:#902;background-color:#ffccd7;border-color:#ffb3c4}.alert-danger .alert-link{color:#7a001b}.alert-light{color:#313131;background-color:#dcdcdc;border-color:#cbcbcb}.alert-light .alert-link{color:#272727}.alert-dark{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-dark .alert-link{color:#1a1c1d}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{display:flex;display:-webkit-flex;height:.5rem;overflow:hidden;font-size:0.75rem;background-color:#e9ecef}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#2780e3;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:.5rem .5rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#fff;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#2780e3;border-color:#2780e3}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#212324;background-color:#d7d8d8}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.list-group-item-primary{color:#174d88;background-color:#d4e6f9}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#174d88;background-color:#bfcfe0}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#174d88;border-color:#174d88}.list-group-item-secondary{color:#212324;background-color:#d7d8d8}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.list-group-item-success{color:#266d0e;background-color:#d9f0d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#266d0e;background-color:#c3d8bc}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#266d0e;border-color:#266d0e}.list-group-item-info{color:#5c3270;background-color:#ebddf1}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#5c3270;background-color:#d4c7d9}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#5c3270;border-color:#5c3270}.list-group-item-warning{color:#99460e;background-color:#ffe3d1}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#99460e;background-color:#e6ccbc}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#99460e;border-color:#99460e}.list-group-item-danger{color:#902;background-color:#ffccd7}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#902;background-color:#e6b8c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#902;border-color:#902}.list-group-item-light{color:#313131;background-color:#dcdcdc}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#313131;background-color:#c6c6c6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#313131;border-color:#313131}.list-group-item-dark{color:#212324;background-color:#d7d8d8}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#242424;background-clip:padding-box;border:1px solid rgba(0,0,0,.2)}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#242424}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#242424}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#242424}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #222}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#242424}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#222;border-bottom:1px solid rgba(0,0,0,.2)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#fff}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#373a3c}.link-default:hover,.link-default:focus{color:#2c2e30}.link-primary{color:#2780e3}.link-primary:hover,.link-primary:focus{color:#1f66b6}.link-secondary{color:#373a3c}.link-secondary:hover,.link-secondary:focus{color:#2c2e30}.link-success{color:#3fb618}.link-success:hover,.link-success:focus{color:#329213}.link-info{color:#9954bb}.link-info:hover,.link-info:focus{color:#7a4396}.link-warning{color:#ff7518}.link-warning:hover,.link-warning:focus{color:#cc5e13}.link-danger{color:#ff0039}.link-danger:hover,.link-danger:focus{color:#cc002e}.link-light{color:#525252}.link-light:hover,.link-light:focus{color:#424242}.link-dark{color:#373a3c}.link-dark:hover,.link-dark:focus{color:#2c2e30}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#373a3c !important}.border-primary{border-color:#2780e3 !important}.border-secondary{border-color:#373a3c !important}.border-success{border-color:#3fb618 !important}.border-info{border-color:#9954bb !important}.border-warning{border-color:#ff7518 !important}.border-danger{border-color:#ff0039 !important}.border-light{border-color:#525252 !important}.border-dark{border-color:#373a3c !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#fff}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#bdbdbd}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#9cc2e5}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid #3e3e3e 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#bdbdbd}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#bdbdbd;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#bdbdbd}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#bdbdbd}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(156,194,229,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8a8a8a}div.sidebar-item-container{color:#bdbdbd}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(156,194,229,.8)}div.sidebar-item-container.disabled{color:rgba(189,189,189,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#9cc2e5}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#303030}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#303030;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#5e88af}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#5e88af}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#181818}body.nav-fixed{padding-top:64px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#828282}.nav-footer a{color:#828282}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#bdbdbd;border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#bdbdbd;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#181818;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#181818;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#bdbdbd;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#bdbdbd;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#242424;border:1px solid #ced4da;border-radius:.25rem;color:#fff;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#fff;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#fff;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#fff;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#fff;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#fff;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#fff;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#fff;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #ced4da 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#252525;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#1a6cc7}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#242424}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#06192e}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#242424;color:#fff}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#242424;border-color:#ced4da;color:#fff}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #ced4da}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#bdbdbd}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#bdbdbd}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(24,24,24,.65);width:90%;bottom:0;box-shadow:rgba(206,212,218,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#181818;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#181818;border-bottom:1px solid #ced4da;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#fff;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(255,255,255,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#fff;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:"Atkinson Hyperlegible";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#75aadb}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#75aadb}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#75aadb}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#75aadb}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#75aadb}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#181818;border:solid 1px #dee2e6;border-radius:.25rem;color:#fff;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#181818}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#181818}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#181818;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#181818}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#181818;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre-wrap}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #181818;--quarto-body-color: white;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:absolute;right:.5em;left:inherit;background-color:rgba(0,0,0,0)}:root{--mermaid-bg-color: #181818;--mermaid-edge-color: #373a3c;--mermaid-node-fg-color: white;--mermaid-fg-color: white;--mermaid-fg-color--lighter: white;--mermaid-fg-color--lightest: white;--mermaid-font-family: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #181818;--mermaid-label-fg-color: #2780e3;--mermaid-node-bg-color: rgba(39, 128, 227, 0.1);--mermaid-node-fg-color: white}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1250px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#181818}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#181818}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#181818}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#181818}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#181818}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#181818}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#181818}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#181818}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#181818}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#181818}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#181818}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#181818}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#181818}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#181818}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#181818}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#525252;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{opacity:.9;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#bfbfbf}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:.9rem}.panel-caption,.figure-caption,figcaption{color:#bfbfbf}.table-caption,caption{color:#fff}.quarto-layout-cell[data-ref-parent] caption{color:#bfbfbf}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#bfbfbf;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#dee2e6 1px solid;border-right:#dee2e6 1px solid;border-bottom:#dee2e6 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.2);border:1px solid rgba(233,236,239,.2);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#bfbfbf}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#212121;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#75aadb}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.sidebar .quarto-alternate-formats a,.sidebar .quarto-alternate-notebooks a{text-decoration:none}.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#75aadb}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2{margin-top:1rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul,.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #75aadb;color:#75aadb !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#75aadb !important}kbd,.kbd{color:#fff;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>thead{border-top-width:1px;border-top-color:#dee2e6;border-bottom:1px solid #fff}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-titled .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#2780e3}div.callout-note.callout-style-default>.callout-header{background-color:#0c2644}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#3fb618}div.callout-tip.callout-style-default>.callout-header{background-color:#133707}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ff7518}div.callout-warning.callout-style-default>.callout-header{background-color:#4d2307}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#f0ad4e}div.callout-caution.callout-style-default>.callout-header{background-color:#483417}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#ff0039}div.callout-important.callout-style-default>.callout-header{background-color:#4d0011}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#1d1d1d}#quarto-content .quarto-sidebar-toggle-title{color:#fff}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#181818;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#181818;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#cbcccc;background-color:#373a3c;border-color:#373a3c}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#cbcccc;background-color:#555859;border-color:#4b4e50}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#cbcccc;background-color:#555859;border-color:#4b4e50;box-shadow:0 0 0 .25rem rgba(77,80,82,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#fff;background-color:#5f6163;border-color:#4b4e50}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(77,80,82,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}nav.quarto-secondary-nav.color-navbar{background-color:#303030;color:#bdbdbd}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#bdbdbd}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! dark */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#181818}.code-annotation-gutter{background-color:rgba(233,236,239,.2)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:var(--bs-font-monospace);color:#e6e6e6;border:solid #e6e6e6 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#181818;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:var(--bs-font-monospace);color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#181818}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#181818}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#181818}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#181818}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#181818}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#181818}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#525252;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table>thead{border-top-width:0}.table>:not(caption)>*:not(:last-child)>*{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #fff;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#fff}a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file,.code-with-filename .code-with-filename-file pre{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file,.quarto-dark .code-with-filename .code-with-filename-file pre{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}body{-webkit-font-smoothing:antialiased}.badge.bg-light{color:#373a3c}.progress .progress-bar{font-size:8px;line-height:8px}.layout-example{background:#495057}.render-commit-push{padding:.5em .5em 0em 3em;margin-top:5px;margin-bottom:5px;background:#181818 5px center/3em no-repeat;border-top:1px solid #adadad;border-bottom:1px solid #adadad;background-image:url("images/render-commit-push.png");background-size:2em;background-position:.5em .5em}.pull{padding:.5em .5em 0em 3em;margin-top:5px;margin-bottom:5px;background:#181818 5px center/3em no-repeat;border-top:1px solid #adadad;border-bottom:1px solid #adadad;background-image:url("images/pull.png");background-size:2em;background-position:.5em .5em}.quarto-title-banner{margin-bottom:1em;color:#bdbdbd;background:#303030}.quarto-title-banner .code-tools-button{color:#8a8a8a}.quarto-title-banner .code-tools-button:hover{color:#bdbdbd}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#fff}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}/*# sourceMappingURL=7a9c62ad4188a494ffb2955c7e1d5c90.css.map */ diff --git a/english/site_libs/bootstrap/bootstrap-icons.css b/english/site_libs/bootstrap/bootstrap-icons.css new file mode 100644 index 0000000..94f1940 --- /dev/null +++ b/english/site_libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2018 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } diff --git a/english/site_libs/bootstrap/bootstrap-icons.woff b/english/site_libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..18d21d457558d4dc2e231a8f6ee585fada9c6bab GIT binary patch literal 164168 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%0D{F7My?sp4b~Pd<-wWT`E3Pn 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%0Aub6*Q4?Lh?RzF3+=+IGMyc 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

    V5sL;~RGzKe44( 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࿣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

    E0Q>dwTHGr5Eml?v4A4cqksyc*{&0*B}<_UWD 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 N7Xi?h+IjWj{{hmn!3F>T literal 0 HcmV?d00001 diff --git a/english/site_libs/bootstrap/bootstrap.min.css b/english/site_libs/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..4edc36b --- /dev/null +++ b/english/site_libs/bootstrap/bootstrap.min.css @@ -0,0 +1,10 @@ +@import'https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible&display=swap';/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;700&display=swap";:root{--bs-blue: #2780e3;--bs-indigo: #6610f2;--bs-purple: #613d7c;--bs-pink: #e83e8c;--bs-red: #ff0039;--bs-orange: #f0ad4e;--bs-yellow: #ff7518;--bs-green: #3fb618;--bs-teal: #20c997;--bs-cyan: #9954bb;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #373a3c;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #373a3c;--bs-gray-900: #212529;--bs-default: #373a3c;--bs-primary: #2780e3;--bs-secondary: #373a3c;--bs-success: #3fb618;--bs-info: #9954bb;--bs-warning: #ff7518;--bs-danger: #ff0039;--bs-light: #f8f9fa;--bs-dark: #373a3c;--bs-default-rgb: 55, 58, 60;--bs-primary-rgb: 39, 128, 227;--bs-secondary-rgb: 55, 58, 60;--bs-success-rgb: 63, 182, 24;--bs-info-rgb: 153, 84, 187;--bs-warning-rgb: 255, 117, 24;--bs-danger-rgb: 255, 0, 57;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 55, 58, 60;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 55, 58, 60;--bs-body-bg-rgb: 255, 255, 255;--bs-font-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Atkinson Hyperlegible;--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #373a3c;--bs-body-bg: #fff}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#2780e3;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#1f66b6}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f7f7f7;padding:.5rem;border:1px solid #dee2e6}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:#9753b8;background-color:#f7f7f7;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #373a3c;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #373a3c;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #373a3c;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#373a3c;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #b6babc}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #d4e6f9;--bs-table-striped-bg: #c9dbed;--bs-table-striped-color: #000;--bs-table-active-bg: #bfcfe0;--bs-table-active-color: #000;--bs-table-hover-bg: #c4d5e6;--bs-table-hover-color: #000;color:#000;border-color:#bfcfe0}.table-secondary{--bs-table-bg: #d7d8d8;--bs-table-striped-bg: #cccdcd;--bs-table-striped-color: #000;--bs-table-active-bg: #c2c2c2;--bs-table-active-color: #000;--bs-table-hover-bg: #c7c8c8;--bs-table-hover-color: #000;color:#000;border-color:#c2c2c2}.table-success{--bs-table-bg: #d9f0d1;--bs-table-striped-bg: #cee4c7;--bs-table-striped-color: #000;--bs-table-active-bg: #c3d8bc;--bs-table-active-color: #000;--bs-table-hover-bg: #c9dec1;--bs-table-hover-color: #000;color:#000;border-color:#c3d8bc}.table-info{--bs-table-bg: #ebddf1;--bs-table-striped-bg: #dfd2e5;--bs-table-striped-color: #000;--bs-table-active-bg: #d4c7d9;--bs-table-active-color: #000;--bs-table-hover-bg: #d9ccdf;--bs-table-hover-color: #000;color:#000;border-color:#d4c7d9}.table-warning{--bs-table-bg: #ffe3d1;--bs-table-striped-bg: #f2d8c7;--bs-table-striped-color: #000;--bs-table-active-bg: #e6ccbc;--bs-table-active-color: #000;--bs-table-hover-bg: #ecd2c1;--bs-table-hover-color: #000;color:#000;border-color:#e6ccbc}.table-danger{--bs-table-bg: #ffccd7;--bs-table-striped-bg: #f2c2cc;--bs-table-striped-color: #000;--bs-table-active-bg: #e6b8c2;--bs-table-active-color: #000;--bs-table-hover-bg: #ecbdc7;--bs-table-hover-color: #000;color:#000;border-color:#e6b8c2}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg: #373a3c;--bs-table-striped-bg: #414446;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b4e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #46494b;--bs-table-hover-color: #fff;color:#fff;border-color:#4b4e50}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#373a3c;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#373a3c;background-color:#fff;border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#373a3c;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#373a3c;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#373a3c;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em}.form-control-color::-webkit-color-swatch{height:1.5em}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#373a3c;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #373a3c}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#2780e3;border-color:#2780e3}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#2780e3;border-color:#2780e3;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2393c0f1'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(39,128,227,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(39,128,227,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bed9f7}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#bed9f7}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#373a3c;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#3fb618}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(63,182,24,.9)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#3fb618;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#3fb618}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#3fb618}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#3fb618}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#3fb618}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff0039}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(255,0,57,.9)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff0039;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#ff0039}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#ff0039}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#ff0039}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff0039}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#373a3c;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#373a3c}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-default{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-default:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-default,.btn-default:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-default:disabled,.btn-default.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-primary{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-primary:hover{color:#fff;background-color:#216dc1;border-color:#1f66b6}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#216dc1;border-color:#1f66b6;box-shadow:0 0 0 .25rem rgba(71,147,231,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#1f66b6;border-color:#1d60aa}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(71,147,231,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-secondary{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-secondary:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-success{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-success:hover{color:#fff;background-color:#369b14;border-color:#329213}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#369b14;border-color:#329213;box-shadow:0 0 0 .25rem rgba(92,193,59,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#329213;border-color:#2f8912}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(92,193,59,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-info{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-info:hover{color:#fff;background-color:#82479f;border-color:#7a4396}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#82479f;border-color:#7a4396;box-shadow:0 0 0 .25rem rgba(168,110,197,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#7a4396;border-color:#733f8c}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(168,110,197,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-warning{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-warning:hover{color:#fff;background-color:#d96314;border-color:#cc5e13}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#d96314;border-color:#cc5e13;box-shadow:0 0 0 .25rem rgba(255,138,59,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc5e13;border-color:#bf5812}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(255,138,59,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-danger{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-danger:hover{color:#fff;background-color:#d90030;border-color:#cc002e}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#d90030;border-color:#cc002e;box-shadow:0 0 0 .25rem rgba(255,38,87,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#cc002e;border-color:#bf002b}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(255,38,87,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-dark:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(85,88,89,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-outline-default{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#2780e3;border-color:#2780e3;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(39,128,227,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#2780e3;border-color:#2780e3}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(39,128,227,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#2780e3;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#3fb618;border-color:#3fb618;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#3fb618;border-color:#3fb618}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#3fb618;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#9954bb;border-color:#9954bb;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(153,84,187,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#9954bb;border-color:#9954bb}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(153,84,187,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#9954bb;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#ff7518;border-color:#ff7518;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,117,24,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#ff7518;border-color:#ff7518}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,117,24,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ff7518;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#ff0039;border-color:#ff0039;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#ff0039;border-color:#ff0039}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#ff0039;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-dark:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#2780e3;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#1f66b6}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:0}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#2780e3}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#373a3c;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#2780e3}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#2780e3;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#1f66b6}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link{background:none;border:0}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#2780e3}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:.25 0;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#f8f9fa}.navbar-light .navbar-brand{color:#545555}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#1a5698}.navbar-light .navbar-nav .nav-link{color:#545555}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(26,86,152,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(84,85,85,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#1a5698}.navbar-light .navbar-toggler{color:#545555;border-color:rgba(84,85,85,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23545555' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#545555}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#1a5698}.navbar-dark{background-color:#f8f9fa}.navbar-dark .navbar-brand{color:#545555}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#1a5698}.navbar-dark .navbar-nav .nav-link{color:#545555}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(26,86,152,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(84,85,85,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#1a5698}.navbar-dark .navbar-toggler{color:#545555;border-color:rgba(84,85,85,0)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23545555' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#545555}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#1a5698}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:#adb5bd;border-bottom:1px solid rgba(0,0,0,.125)}.card-footer{padding:.5rem 1rem;background-color:#adb5bd;border-top:1px solid rgba(0,0,0,.125)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#373a3c;text-align:left;background-color:#fff;border:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#2373cc;background-color:#e9f2fc;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232373cc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23373a3c'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:not(:first-of-type){border-top:0}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#2780e3;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#1f66b6;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#1f66b6;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#2780e3;border-color:#2780e3}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:0 solid rgba(0,0,0,0)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-default .alert-link{color:#1a1c1d}.alert-primary{color:#174d88;background-color:#d4e6f9;border-color:#bed9f7}.alert-primary .alert-link{color:#123e6d}.alert-secondary{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-secondary .alert-link{color:#1a1c1d}.alert-success{color:#266d0e;background-color:#d9f0d1;border-color:#c5e9ba}.alert-success .alert-link{color:#1e570b}.alert-info{color:#5c3270;background-color:#ebddf1;border-color:#e0cceb}.alert-info .alert-link{color:#4a285a}.alert-warning{color:#99460e;background-color:#ffe3d1;border-color:#ffd6ba}.alert-warning .alert-link{color:#7a380b}.alert-danger{color:#902;background-color:#ffccd7;border-color:#ffb3c4}.alert-danger .alert-link{color:#7a001b}.alert-light{color:#959596;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#777778}.alert-dark{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-dark .alert-link{color:#1a1c1d}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress{display:flex;display:-webkit-flex;height:.5rem;overflow:hidden;font-size:0.75rem;background-color:#e9ecef}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#2780e3;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:.5rem .5rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#373a3c;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#2780e3;border-color:#2780e3}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#212324;background-color:#d7d8d8}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.list-group-item-primary{color:#174d88;background-color:#d4e6f9}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#174d88;background-color:#bfcfe0}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#174d88;border-color:#174d88}.list-group-item-secondary{color:#212324;background-color:#d7d8d8}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.list-group-item-success{color:#266d0e;background-color:#d9f0d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#266d0e;background-color:#c3d8bc}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#266d0e;border-color:#266d0e}.list-group-item-info{color:#5c3270;background-color:#ebddf1}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#5c3270;background-color:#d4c7d9}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#5c3270;border-color:#5c3270}.list-group-item-warning{color:#99460e;background-color:#ffe3d1}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#99460e;background-color:#e6ccbc}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#99460e;border-color:#99460e}.list-group-item-danger{color:#902;background-color:#ffccd7}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#902;background-color:#e6b8c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#902;border-color:#902}.list-group-item-light{color:#959596;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#959596;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#959596;border-color:#959596}.list-group-item-dark{color:#212324;background-color:#d7d8d8}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2)}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#373a3c}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#373a3c}.link-default:hover,.link-default:focus{color:#2c2e30}.link-primary{color:#2780e3}.link-primary:hover,.link-primary:focus{color:#1f66b6}.link-secondary{color:#373a3c}.link-secondary:hover,.link-secondary:focus{color:#2c2e30}.link-success{color:#3fb618}.link-success:hover,.link-success:focus{color:#329213}.link-info{color:#9954bb}.link-info:hover,.link-info:focus{color:#7a4396}.link-warning{color:#ff7518}.link-warning:hover,.link-warning:focus{color:#cc5e13}.link-danger{color:#ff0039}.link-danger:hover,.link-danger:focus{color:#cc002e}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#373a3c}.link-dark:hover,.link-dark:focus{color:#2c2e30}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#373a3c !important}.border-primary{border-color:#2780e3 !important}.border-secondary{border-color:#373a3c !important}.border-success{border-color:#3fb618 !important}.border-info{border-color:#9954bb !important}.border-warning{border-color:#ff7518 !important}.border-danger{border-color:#ff0039 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#373a3c !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#545555}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#1a5698}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid #d4d4d4 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#434647}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#434647;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#434647}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#434647}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(22,72,127,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#757a7b}div.sidebar-item-container{color:#434647}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(22,72,127,.8)}div.sidebar-item-container.disabled{color:rgba(67,70,71,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#16487f}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#d9e3e4}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#d9e3e4;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#1f66b6}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#1f66b6}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:64px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#545555;border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#434647;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#545555;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#545555;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#373a3c;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#373a3c;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#373a3c;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#373a3c;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#373a3c;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#373a3c;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#373a3c;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#373a3c;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #ced4da 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#4b95e8}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#373a3c}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#e5effc}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#373a3c}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#ced4da;color:#373a3c}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #ced4da}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#545555}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#434647}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(206,212,218,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #ced4da;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#373a3c;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(55,58,60,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#373a3c;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#373a3c;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:"Atkinson Hyperlegible";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#686d71;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#2780e3}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#686d71;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#2780e3}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#686d71;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#2780e3}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#686d71;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#2780e3}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#686d71;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#2780e3}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#373a3c;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#373a3c}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre-wrap}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fff;--quarto-body-color: #373a3c;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:absolute;right:.5em;left:inherit;background-color:rgba(0,0,0,0)}:root{--mermaid-bg-color: #fff;--mermaid-edge-color: #373a3c;--mermaid-node-fg-color: #373a3c;--mermaid-fg-color: #373a3c;--mermaid-fg-color--lighter: #4f5457;--mermaid-fg-color--lightest: #686d71;--mermaid-font-family: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #2780e3;--mermaid-node-bg-color: rgba(39, 128, 227, 0.1);--mermaid-node-fg-color: #373a3c}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1250px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 800px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{opacity:.9;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#747a7f}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:.9rem}.panel-caption,.figure-caption,figcaption{color:#747a7f}.table-caption,caption{color:#373a3c}.quarto-layout-cell[data-ref-parent] caption{color:#747a7f}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#747a7f;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#dee2e6 1px solid;border-right:#dee2e6 1px solid;border-bottom:#dee2e6 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#747a7f}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f7f7f7;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#2780e3}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.sidebar .quarto-alternate-formats a,.sidebar .quarto-alternate-notebooks a{text-decoration:none}.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#2780e3}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2{margin-top:1rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul,.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #2780e3;color:#2780e3 !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#2780e3 !important}kbd,.kbd{color:#373a3c;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>thead{border-top-width:1px;border-top-color:#dee2e6;border-bottom:1px solid #b6babc}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-titled .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#2780e3}div.callout-note.callout-style-default>.callout-header{background-color:#e9f2fc}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#3fb618}div.callout-tip.callout-style-default>.callout-header{background-color:#ecf8e8}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ff7518}div.callout-warning.callout-style-default>.callout-header{background-color:#fff1e8}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#f0ad4e}div.callout-caution.callout-style-default>.callout-header{background-color:#fef7ed}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#ff0039}div.callout-important.callout-style-default>.callout-header{background-color:#ffe6eb}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#373a3c}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#cbcccc;background-color:#373a3c;border-color:#373a3c}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#cbcccc;background-color:#555859;border-color:#4b4e50}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#cbcccc;background-color:#555859;border-color:#4b4e50;box-shadow:0 0 0 .25rem rgba(77,80,82,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#fff;background-color:#5f6163;border-color:#4b4e50}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(77,80,82,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}nav.quarto-secondary-nav.color-navbar{background-color:#f8f9fa;color:#545555}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#545555}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(233,236,239,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:var(--bs-font-monospace);color:#4f5457;border:solid #4f5457 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:var(--bs-font-monospace);color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#f8f9fa;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table>thead{border-top-width:0}.table>:not(caption)>*:not(:last-child)>*{border-bottom-color:#ebeced;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #b6babc;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#b6babc}a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file,.code-with-filename .code-with-filename-file pre{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file,.quarto-dark .code-with-filename .code-with-filename-file pre{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#545555;background:#f8f9fa}.quarto-title-banner .code-tools-button{color:#878888}.quarto-title-banner .code-tools-button:hover{color:#545555}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#373a3c}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}body{-webkit-font-smoothing:antialiased}.badge.bg-light{color:#373a3c}.progress .progress-bar{font-size:8px;line-height:8px}.render-commit-push{padding:.5em .5em 0em 3em;margin-top:5px;margin-bottom:5px;background:#f8f8f8 5px center/3em no-repeat;border-top:1px solid #5b888c;border-bottom:1px solid #5b888c;background-image:url("images/render-commit-push.png");background-size:2em;background-position:.5em .5em}.pull{padding:.5em .5em 0em 3em;margin-top:5px;margin-bottom:5px;background:#f8f8f8 5px center/3em no-repeat;border-top:1px solid #e0a890;border-bottom:1px solid #e0a890;background-image:url("images/pull.png");background-size:1em;background-position:1em .5em}/*# sourceMappingURL=8cccb5219aa907c1c00a69f22093b7b4.css.map */ diff --git a/english/site_libs/bootstrap/bootstrap.min.js b/english/site_libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..cc0a255 --- /dev/null +++ b/english/site_libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'

    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/english/site_libs/bootstrap/images/pull.png b/english/site_libs/bootstrap/images/pull.png new file mode 100644 index 0000000000000000000000000000000000000000..19b208e30ea8a3ead88740af108f3791e2331d54 GIT binary patch literal 1547 zcmeAS@N?(olHy`uVBq!ia0vp^azHH4!3HEh0XELyW*$fP7K$?Mpc>yCrb^#MyR&D_^oGlMh`1Fs#YM>#J znIRD+5xzcF$@#f@i7EL>sd^Q;1t0|sHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz z04piUwpEJo4N!2-FG^J~(=*UBP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3 zjrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybe zT4JlD1hNPYAnq*5Ohed|R}A$Q(1ZFQ8GS=N1AVyJK&>_)Q7iwV%v7MwAoJ}EZNMr~ z#Gv-r=z}araty?$U{Rn~?YM08;lXCdB^mb+7@I6Co-U3d9=uPd-Omqk6*+$X%wFA_ z)8bv9Oy9Or@u6dOlcCzQgrBKAo%|{;Jg?*#Bo<{ZVo7dLa}f-=AW)aFNbpd%-H%7y z{1X;MFWp+YkbBvpAR*o@w{v%=dVhbux7ad0?fJXCx8L4VecF5S-JPA!&&)ahbKXwt zYDT%O$C_BS%l}oJ^59zKoa{dni!*63^7dkfeq zk25aNH@mr7aTXWzmU?>|uC@F5-yC}Q=0IPAd3%m@oz(mm%{@XF1Lty2N$?kP5)odg za(b)7QKt@d*=FZ34%SZ$r&Jxy8gH^~)jGge-q6^Zz@BQ9#&nSD>M~3``Yh*l{Gp{)ECTnTjMZOPH6S*B@g=h&D@ zTv_xedL<9*f&MplRG#P_+<3C(MV3Uu-dk*IyTwkJZa0=xu2KJ2R2=@qWY_kKFk*Qj<2Bj)*i32Z!;{bd^N|dR|F!+ZwJq{; zes=%QOe%RC#Hzo1Q!AuHHk*7o~%z_wTdkZ>W=BHPtTWT!(1Zs`q>Oww6C~ zRh?I~>lN4U*I~^O8JAbRjIy59&>GI}@FZA!Pk__(rib?*zfWO&lUjN=(4a8URUpyE z(^I!KcZH`)V&eVM4MjhfSND~xOg)!m&+D^pp1yrgr%zsKtOe7tBewE)LPG*{LU+9i zRdOrhdiLGr;Hh+TH@|n%8jrdbZ%QbN|Cv?4fAZ;EzQ1?4|HPf*pYNzTv(k$DvtB&o z#LaQ4S!b{ycv1Yv+W$DB7IE_pI&r zff+t;_k8=>xcOhkzujF4v!wcCy6o;!rTcxtU`F&Dx-QnkocH6$M&$s_IC&zKE zmI15ed;WImFuU{*yC=UEk(oLew+nV_Q8)78&qol`;+0Ix=g00000 literal 0 HcmV?d00001 diff --git a/english/site_libs/bootstrap/images/render-commit-push.png b/english/site_libs/bootstrap/images/render-commit-push.png new file mode 100644 index 0000000000000000000000000000000000000000..6325cea1d7ff8d92f11a2f9fed24e05887ba581f GIT binary patch literal 8231 zcmai&1z223)2Ih$aCg_>g9i=n?gIoL+@0VMd~kx3;O=fAxCD0%8Y~141cF_%yLWe= z?|%3H&pdsqPF1~C-F^DlM5(FBqN9+Y0001Vc{wSKXDRdCDv=SN_k-svCIA4Mt&OCl zn!KbWm71%QrHwrV0FaA%r;DVgIYRK>ASof?Ee^7@!htf@p|k=rTS$;rkBl5FkbdxO zu9>Vf!XkUV-n2Hh^djtVKFxLgi|Z~uH87YEH9G%-fiCx`>*8aw)5*Pn+up0)i8Ws& zKo!M%t;`r(xCF+Lv;o<-wS$Glb#jvc*g%U-^aJ58!_RRsF^Fo2zdnuLWla%$=Cz_< zd^Pk`ae(sHRTMD%GLjqKHGraD8L&xuqX8BLNENNyDs*W@?Tb}1hQdg6>PIzbd8gr6 zl{%Y$QZ^Gt+GYV*tN93n2>?It)FzoXt;8vQSw+64hpmGLROMkIT}TVV^nYH8*xOas z*mjLP&ijaGMud4baudgWBjI1q$suvAI| zw&>&v)azRnNX}15M{y~kqh-(m+eP~J!)kwl5o4l}wn+L+!MimoP#X{gtg8qjBtfVH z_HQMvrCT?N(rS`Tgb`H}xR<~DkcC`F-5>Mzq87esoM5@oyNRQbPjk?;;%eW!KH!sr zF($r%ygly|X<|af-q1lOY(5S61V9G z!G`d?Qy}e=CDc4RCh_rE+HuS%-SGjYnYEWqB92UBv1;GgsIL6%5Tn< zYyu4PnN>PLS^Qio_?TT}Qg9f^2&}n5Y;a1j%VKLY;6>n5nM^MX=CBw67OYj1rHPEf zQzX0*t{C+VE)8`8<^<{?C4LBO=@VC}_UjyR%O`8`Cn(t&+O{wjg6meG^b_kyZi~ek zo^Air*+gh8=FWJSvcTi%72Jvw3E!Ml1#dJ=JZlwdki}p| zE2s0ING>HG1-yu_1e+{*OFeTXW$ROFkC&IEgRCcgfd!l^X!&s{!(Fz0pDLz)VPjDi z-)_+4qd+L_t6%$my8bZV3j!MZ2~3gd8kT_Hg%={{VF*0QDu&oiW#4%_dx#txzlK}i zzS|iI7TylL*(vj9W?}NG@;r8as3aLBR2kQG6rP|vS8; zmoK=j39uxv9a+E|7)JLqX>fTXe!U z{8IPU3yC0AAY1D!G>Ets_8LUVzlm@!4nl^b6=#)$FEfFytVgbPBTk343~I|IN(tFD zLD$3N3w1CdTtdYN5}ZO-3F6+QX@zwR@^!vy3{A^L?L_*B9Fl-V(klkVa_dKQkyyi` zq{9MA<|lg7;mga`V*&HUEU7LNG%V=rDVC$Ps6SE3Cg2YH6ympq3QGtk@DDTMNtTsT z*ha79_o-2)#LDDF9eDGg=0FMZFQ<#F1@xm%#OE;RQcCe0U_OL?_&xrZ*#z5IoBi^TyuNiGyHH$M4p{ zE8fxP3_G)fIg&rZZ!otonTTCYhF{~(^-t5STeOexB`Y#~DYh)eF4ma!C}va^8c(~>FNar4d8z0!K7?00->Y1^s1GiPWE->k&g+)mhhV`0NNXJOm6y-pYAc?!8 zqewbW74tgdIa*@xHKr~-+89WBSYT^KWO(*D62P zH~mLtCmAQKq9z55L!2T{?KfmL;scBVZUd0+A1}PFC(k#IpUmEVLEefyrhN~uhj<3t zjM#`!4?7Fj0^f`PhCdHs4y8acKtK)gf`4TtRNJuZyHq1#C}}|*At~y7|B_okIZw}8 z%39u9G2Ky5W9e6I#8&DScx!&^HTHY#S=vk*V4`{=3yqVDa+{wcev4h<&*2PORcZAC zocsk@kvLCisx&`TLN=DH$#(96D2qs5={0NQ?qGGaKb93Czre}jbpNzV0gKG57)pv) zw2$_%w5DdgCvSg7QAds9oYF5dG9_guHzf_x>(U3x0hPfSGklgy=^5ti#Uv%snn$y8 zHX}AdGwnm+v9GzC{j>L5w_W&$R%1U1KHkIc0NZfmROT{=v%En$3Gb7-gdVs#Qgug; zCN?eYhYz;hZtQM35PCx9LoiH(oQuwUEXDRdj}d}lz!mj^QsVhs>Luy4MjQb-78|pD*S^A6dHgB(jk*dCTNt729`$@-amY$qx)Q8Ef=0NyiDa7v~qh z{6ucl1LaL?^m4tmu=Lc_r?}~TKKGOfYSL?RD7$4hd#_yfp7nkx*_pka&9c%POBdRi zR=OUmYDfSRH)L8FjK6=?;jhx4{o0Mm&28^d=c|5W{lS;c6d&|U<^9QwCkyfZkZ)#h z>MCy*B%Z>u2)APTWAq6+IE-3u?4okNN|f2zfDiZS@97BxNFFtBRs9vY)0$Z?^_y)3 zT-q#d$MMBkJgerw;MR+ga`g&Z-3Fbs%77Nj?aWIE1te=xV}W_0`JHUqVoifli{F?1 ztNbf|W(nqN2heh@cV9$oNUSbDf>ZgjeS4exWeM9hTT6?KeN|Os73-?ZnojNU^7Yqa ztHA5qHrt5vxEXR|PX*8Bce_5q$yoD&#J_ykeeTfBs&_J5 zcvRH)-mtrE@G@XO-teqV&1?F|?3jL1F(UBt{@6K2SMeBfI(nt+SHsg7XD#B%d+;sF zE^l$daNp>YH|?Ix(Rg82i&JdJyr+Tl-9XNoP|Yd9+VMyJebKFe5x8R{2&OWH&g041 zT^C zy{|Ptm+XJk6ipUQ3v{`eIph6y^w8DWCCa2ac=UwVZ6e9d4ddN_3(#i-jPI~-RP{WJz7ui)Y)wk;q5C{AwUm6T0trGyfL%sEGmzMqFGyMXUo%b|nc10z zf!J?;{aVk26|)6w##GkSc$ph-q#c8ngaACsIyvI+B;Hzuvjr=-_o;!9?y1Tz54{8) zm*61q6q`ej#tnDz+R6pJXwM%XsSrJROJ!vM^Rtc&K!Cvkz&&d)&p!YR2>{^_9RN^( zA^ls|fO+v(3@iW;VFQ5wD@OlW{@xOv+cW)_gi8tsAUz-9Jh!*GuzyF(UUmKGbays5gMA`h5p|D z>?g$A=ATNAZhsByd4L?hJsh0uAddfrx!YL&f3V-4Ke0c?^=CQZ-^m2kY`h`%dQvtH z&r|)}HBo+$@E=wFAICra{1eo6gSbjMIXrXjqW_$#zuF8MFd zzsTPs5Y&LUIoW&soQd8{JG5jus*LdQ50d0zt^lN%F-F4FaUtLAulDa15)M-mf%FNNCns%Whuh@c z^?26S$rw(MkV+8lCj3j7|3L&RAwwh09POUQv?Kaj7?NGT4p*cWV6}a|xw$yI9wl$C zN^386Ql7X8V2R$=T@bA@lo(N0IelwYz(^G|eu(q|>(}^$2LdK-wg~gP&$P0)icCAz zu(-(KBx3Mqw~|wWAk+Zr#+_i39zZWR-gz*MMz7fBlo`aVUKxcf7)-gRu;6T$yq3+{Q+y zL9g~Whoq#0^>j80Nv9AKugSdb-j=wcuM{L&)5p~Z`#cq2J&u4m5`L8&shPVb?Mc7v z)8Xi?6BomZ_l66Wb#-rVke{_8q9#oTMmTvirWP)<@0i^(d>3tG^a1%Q9M=iKITx9e2(M3BS+9PcdZ|2_Ml%UkK$kCKen;||d!A^F zgE$M1+5I-exgby`0=GwT%SQz<=Vh0~a`Boxx|Ltfh@@7+8{ert@2TORO05fP2RS~1 zK6!@&7Nz%>?^Fc*jIx_Z_9XWvFVILbr$R_;Txm**T~;b}!Q`TyH&GgNn3_9kPIGp5 zv2Q#aF0>Tm6RTLrZ7AfC!!jHFA=t{Nc|}9-Yr|wd&V|PL3o3Abd25q|kQuALw4irm zTYux;2Z7@bxlFUbV1(FHB(o}8P;f^>rli=lOBT!WrV3kps(b=fcvZ^}E#Q)E!@LwC z9t4BV+l7jv`iXzoTE7?#b+{TZ&`l}BQ7xm5ntk~h5pf*8fp$iggsq3Qlm(W80Kr@; zYhLR;k^u?I^6FFrdhJ)RrG=lS{D`gb`c*iJG+?dS)t2|w(?R}3 z<-1@rw5W3tm53PIjiUuDWVzN0bI(UiTz=wF=Y1#eKixHc`-TaEp_EBQGisfIb|;i1 zZx)WvPlFPc@KC}&hnh{{poCvYP^+^bho~SU&gYq6!NWWq65)w;`y(V72Z?<(%mu-) z5}?|z*COih&a==+>b%F%bGV*tv~|!tzJTD!`Z?0gtc0H>>Zr>rmVtQuChiZ!Ibvu( z{ouHDYVzpqo|0o;q_5(M4iz`mO4e*<;1w0;-lH=f?3i2d`gt8{C-@k3qA@C;YNQTA zmc~Ux{2-^}!?3l4;8MqXn9QZ315znbbZ=i9lSx>?#MsFc^sBdSTIo6c89I7w*_#{N z<9sh`&^xgor$IE3_z}2`bDN(pVO?nqW2tF`2E+VHiWD8swLT;x!vmBR6t92&Vj12; z4k6VKH?(N>kO(;>FOMbekS1XYD`JwimM+lOiXRVOA14SHcAUgzVS%vo6DhZ~6fkC) zY+rSJLJp|m56Hv6qM`4YdHqC`!V}#-E+K0g)%*ONyBHWB6h#;xEN-nJ0PeuCv(IF^ zLKRKV&HA;X{u1RDA6 z$hHz*pc*zXvVEZ!N~#@wvG&elo~S)UF$@5IM-FG)-&+!8o`hAQcbGut zSG>y#B+?U=b2(F_$~lhDRw)JGWe=C#S z`6{jw3l6r41&;JEoZN!C{4XQiRS-_V;^&XGzT-P4Q(H0|Wc~_lyS3$SUfcK5by;v5 z&k*j`4p(xHbe(DAFLq1XeK47QVp>H0ZtF+J98;d08;Pz`&RI8N@pEML-LM*i3+Z{x z)*ybMDo&Pg`U&wJ989N`5~=-&{2Pg%VK%fK8qXJ>{T@q0h*xt{&lRb$n7Rw+I#rru zelmf!c1oYQuNTXJw9!shB@1NcS9`e3($$qitqt6`*IrdLqEjJh?1e~){*sIjZ}=B2 zeLZQ*05(x@t=^b>vj3}8ci7W!^a0{hmh=6)srXPH;;c{QE=>@EGnM9RNeylYLUMe( zvS5dA-p7Ur5w(JdOL0FrRm2pLT1L_yib8qJS!+ur%=v@i$7yfb3EF~0m5MOGZ32-2VKShuWMZ~g@uS;iVjau zU(40Rqo>CkMXyg2Y%hEE-oKe4Jv$kn-tGJ}SN~Oo<7m5Ii!>rLFVj=?@yGEsf6bcv zj|1lNmhGeWc3XXQ@taFk{OfMNvOneXl%PhR7i%xz!Qzg#tlnt|+N}ZyDfA+Esez zdsN@M-B@B+;>P8h$R*fJ{-DgdV;6O^DJ15(ElP-A;W{ZXKJNP|wwWok5LQYW_Cy;b z7B;Gls@t7#5U!cSmd_ zKwEs}<%T6^(935j3e9)%H|j=ZUu&!9Dj~bB3c%shc50g}cF5 zPdrB8lo!Um55tQJJ@kcKxa>z_!<5KR!U{V|t#_=#I9U2eO0rFZfWd7+YtmC#kdPNG=O#~`Sy3N~oT`D*ul%>JZ%4gzNNdUd5f65n^6hIJdm9wtyQeUG|#J=4Jw zCmJnm82Pzm!8pWOA2?BEj`(rmhGC&jb%ee;I_NO-V8yrj(mhnNCTw?MJ~rt!QNRFoVn1&bUdcbGSj{5 zIceIK*blOh&2LYzaHe-iRKn2AsFlGc1EP>0YMFy19nVn?T;lqw5*N}^060vVp0VQ8 zT7g1O3J;N1c#Rm}`7r8FEeu^M1RSAL)^6$Dbk<5~KvY%u!k0jesZ;Zc&-8LMC!O;> z>ArY~RsO5A5-(g*$kDFuP{|4T&|5IN*5_yH@i)HpG$yUzza&>;WD zi(O^%p6CT0&>xSB_K=`kG#5UyinZx=5b`f%Q&#$ zfxHylf-Ccd*4pWSzphU$Km1!Hfpp{GiVJ!`-4WxN$?OT`HmL*#lZ|r$F^idbJ_|Cc zYdR3habd>Vn=D|ddjbf%n0gO)FCp)QERfCiVlH60LxU%!)a~%t;Kd7|qWfMW{X{&> zmV1g!Kjpxz8NUSK6CwwS_Amq$Efa60Ibsm^DcvVy7H{DT5mZ1==_6efIL&M!Y)b=K z(yuPsi@rRm9pFn%g`>WOO1|Vprva_qOE_~=8xHl%7@!vZB|*#-nqzTDYd{hjlJpT7 z6`IvzCYDf({qlQ?@D`|E5$^*ejTiJiOu+l9py})d9$~U4f4NSksE_;>OibHF1JbKnJVmHL3cOCVL29B!nIdD2 zPFaxy6xF~!4Uw3S4Cqd7&r>=+g~*fdQS|^rb0cq^@A+agHB6ZY78M7(M$_U4W OR`Sv+Qq>YBA^!)ByV(r@ literal 0 HcmV?d00001 diff --git a/english/site_libs/clipboard/clipboard.min.js b/english/site_libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..41c6a0f --- /dev/null +++ b/english/site_libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.10 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 noup * 2 && secs % noup > 0) { return; } + } + + // should we apply or remove warning class? + warnwhen = timer.div.dataset.warnwhen; + if (warnwhen && warnwhen > 0) { + if (secs <= warnwhen && !timer.div.classList.contains("warning")) { + timer.div.classList.add("warning"); + } else if (secs > warnwhen && timer.div.classList.contains("warning")) { + timer.div.classList.remove("warning"); + } + } + + var mins = Math.floor(secs / 60); // 1 min = 60 secs + secs -= mins * 60; + + // Update HTML + timer.min.innerHTML = String(mins).padStart(2, 0); + timer.sec.innerHTML = String(secs).padStart(2, 0); +} +var countdown = function (e) { + target = e.target; + if (target.classList.contains("countdown-digits")) { + target = target.parentElement; + } + if (target.tagName == "CODE") { + target = target.parentElement; + } + + // Init counter + if (!counters.timer.hasOwnProperty(target.id)) { + counters.timer[target.id] = {}; + // Set the containers + counters.timer[target.id].min = target.getElementsByClassName("minutes")[0]; + counters.timer[target.id].sec = target.getElementsByClassName("seconds")[0]; + counters.timer[target.id].div = target; + } + + if (!counters.timer[target.id].running) { + if (!counters.timer[target.id].end) { + counters.timer[target.id].end = parseInt(counters.timer[target.id].min.innerHTML) * 60; + counters.timer[target.id].end += parseInt(counters.timer[target.id].sec.innerHTML); + } + + counters.timer[target.id].value = counters.timer[target.id].end; + update_timer(counters.timer[target.id]); + if (counters.ticker) counters.timer[target.id].value += 1; + + // Start if not past end date + if (counters.timer[target.id].value > 0) { + base_class = target.className.replace(/\s?(running|finished)/, "") + target.className = base_class + " running"; + counters.timer[target.id].running = true; + + if (!counters.ticker) { + counters.ticker = setInterval(counter_update_all, 1000); + } + } + } else { + // Bump timer value if running & clicked + counters.timer[target.id].value += counter_bump_increment(counters.timer[target.id].end); + update_timer(counters.timer[target.id], force = true); + counters.timer[target.id].value += 1; + } +}; + +var counter_bump_increment = function(val) { + if (val <= 30) { + return 5; + } else if (val <= 300) { + return 15; + } else if (val <= 3000) { + return 30; + } else { + return 60; + } +} + +var counter_update_all = function() { + // Iterate over all running timers + for (var i in counters.timer) { + // Stop if passed end time + console.log(counters.timer[i].id) + counters.timer[i].value--; + if (counters.timer[i].value <= 0) { + counters.timer[i].min.innerHTML = "00"; + counters.timer[i].sec.innerHTML = "00"; + counters.timer[i].div.className = counters.timer[i].div.className.replace("running", "finished"); + counters.timer[i].running = false; + } else { + // Update + update_timer(counters.timer[i]); + + // Play countdown sound if data-audio=true on container div + let audio = counters.timer[i].div.dataset.audio + if (audio && counters.timer[i].value == 5) { + counter_play_sound(audio); + } + } + } + + // If no more running timers, then clear ticker + var timerIsRunning = false; + for (var t in counters.timer) { + timerIsRunning = timerIsRunning || counters.timer[t].running + } + if (!timerIsRunning) { + clearInterval(counters.ticker); + counters.ticker = null; + } +} + +var counter_play_sound = function(url) { + if (typeof url === 'boolean') { + url = 'libs/countdown/smb_stage_clear.mp3'; + } + sound = new Audio(url); + sound.play(); +} + +var counter_addEventListener = function() { + if (!document.getElementsByClassName("countdown").length) { + setTimeout(counter_addEventListener, 2); + return; + } + var counter_divs = document.getElementsByClassName("countdown"); + console.log(counter_divs); + for (var i = 0; i < counter_divs.length; i++) { + counter_divs[i].addEventListener("click", countdown, false); + } +}; + +counter_addEventListener(); diff --git a/english/site_libs/countdown-0.3.5/smb_stage_clear.mp3 b/english/site_libs/countdown-0.3.5/smb_stage_clear.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..da2ddc2cd41e5c37b828798d9a67b3e55cd6657c GIT binary patch literal 38758 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 literal 0 HcmV?d00001 diff --git a/english/site_libs/crosstalk-1.2.0/css/crosstalk.min.css b/english/site_libs/crosstalk-1.2.0/css/crosstalk.min.css new file mode 100644 index 0000000..6b45382 --- /dev/null +++ b/english/site_libs/crosstalk-1.2.0/css/crosstalk.min.css @@ -0,0 +1 @@ +.container-fluid.crosstalk-bscols{margin-left:-30px;margin-right:-30px;white-space:normal}body>.container-fluid.crosstalk-bscols{margin-left:auto;margin-right:auto}.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column{display:inline-block;padding-right:12px;vertical-align:top}@media only screen and (max-width: 480px){.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column{display:block;padding-right:inherit}}.crosstalk-input{margin-bottom:15px}.crosstalk-input .control-label{margin-bottom:0;vertical-align:middle}.crosstalk-input input[type="checkbox"]{margin:4px 0 0;margin-top:1px;line-height:normal}.crosstalk-input .checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.crosstalk-input .checkbox>label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.crosstalk-input .checkbox input[type="checkbox"],.crosstalk-input .checkbox-inline input[type="checkbox"]{position:absolute;margin-top:2px;margin-left:-20px}.crosstalk-input .checkbox+.checkbox{margin-top:-5px}.crosstalk-input .checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.crosstalk-input .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px} diff --git a/english/site_libs/crosstalk-1.2.0/js/crosstalk.js b/english/site_libs/crosstalk-1.2.0/js/crosstalk.js new file mode 100644 index 0000000..fd9eb53 --- /dev/null +++ b/english/site_libs/crosstalk-1.2.0/js/crosstalk.js @@ -0,0 +1,1474 @@ +(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o b) { + return 1; + } +} + +/** + * @private + */ + +var FilterSet = function () { + function FilterSet() { + _classCallCheck(this, FilterSet); + + this.reset(); + } + + _createClass(FilterSet, [{ + key: "reset", + value: function reset() { + // Key: handle ID, Value: array of selected keys, or null + this._handles = {}; + // Key: key string, Value: count of handles that include it + this._keys = {}; + this._value = null; + this._activeHandles = 0; + } + }, { + key: "update", + value: function update(handleId, keys) { + if (keys !== null) { + keys = keys.slice(0); // clone before sorting + keys.sort(naturalComparator); + } + + var _diffSortedLists = (0, _util.diffSortedLists)(this._handles[handleId], keys), + added = _diffSortedLists.added, + removed = _diffSortedLists.removed; + + this._handles[handleId] = keys; + + for (var i = 0; i < added.length; i++) { + this._keys[added[i]] = (this._keys[added[i]] || 0) + 1; + } + for (var _i = 0; _i < removed.length; _i++) { + this._keys[removed[_i]]--; + } + + this._updateValue(keys); + } + + /** + * @param {string[]} keys Sorted array of strings that indicate + * a superset of possible keys. + * @private + */ + + }, { + key: "_updateValue", + value: function _updateValue() { + var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._allKeys; + + var handleCount = Object.keys(this._handles).length; + if (handleCount === 0) { + this._value = null; + } else { + this._value = []; + for (var i = 0; i < keys.length; i++) { + var count = this._keys[keys[i]]; + if (count === handleCount) { + this._value.push(keys[i]); + } + } + } + } + }, { + key: "clear", + value: function clear(handleId) { + if (typeof this._handles[handleId] === "undefined") { + return; + } + + var keys = this._handles[handleId]; + if (!keys) { + keys = []; + } + + for (var i = 0; i < keys.length; i++) { + this._keys[keys[i]]--; + } + delete this._handles[handleId]; + + this._updateValue(); + } + }, { + key: "value", + get: function get() { + return this._value; + } + }, { + key: "_allKeys", + get: function get() { + var allKeys = Object.keys(this._keys); + allKeys.sort(naturalComparator); + return allKeys; + } + }]); + + return FilterSet; +}(); + +exports.default = FilterSet; + +},{"./util":11}],4:[function(require,module,exports){ +(function (global){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.default = group; + +var _var2 = require("./var"); + +var _var3 = _interopRequireDefault(_var2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// Use a global so that multiple copies of crosstalk.js can be loaded and still +// have groups behave as singletons across all copies. +global.__crosstalk_groups = global.__crosstalk_groups || {}; +var groups = global.__crosstalk_groups; + +function group(groupName) { + if (groupName && typeof groupName === "string") { + if (!groups.hasOwnProperty(groupName)) { + groups[groupName] = new Group(groupName); + } + return groups[groupName]; + } else if ((typeof groupName === "undefined" ? "undefined" : _typeof(groupName)) === "object" && groupName._vars && groupName.var) { + // Appears to already be a group object + return groupName; + } else if (Array.isArray(groupName) && groupName.length == 1 && typeof groupName[0] === "string") { + return group(groupName[0]); + } else { + throw new Error("Invalid groupName argument"); + } +} + +var Group = function () { + function Group(name) { + _classCallCheck(this, Group); + + this.name = name; + this._vars = {}; + } + + _createClass(Group, [{ + key: "var", + value: function _var(name) { + if (!name || typeof name !== "string") { + throw new Error("Invalid var name"); + } + + if (!this._vars.hasOwnProperty(name)) this._vars[name] = new _var3.default(this, name); + return this._vars[name]; + } + }, { + key: "has", + value: function has(name) { + if (!name || typeof name !== "string") { + throw new Error("Invalid var name"); + } + + return this._vars.hasOwnProperty(name); + } + }]); + + return Group; +}(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./var":12}],5:[function(require,module,exports){ +(function (global){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _group = require("./group"); + +var _group2 = _interopRequireDefault(_group); + +var _selection = require("./selection"); + +var _filter = require("./filter"); + +var _input = require("./input"); + +require("./input_selectize"); + +require("./input_checkboxgroup"); + +require("./input_slider"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var defaultGroup = (0, _group2.default)("default"); + +function var_(name) { + return defaultGroup.var(name); +} + +function has(name) { + return defaultGroup.has(name); +} + +if (global.Shiny) { + global.Shiny.addCustomMessageHandler("update-client-value", function (message) { + if (typeof message.group === "string") { + (0, _group2.default)(message.group).var(message.name).set(message.value); + } else { + var_(message.name).set(message.value); + } + }); +} + +var crosstalk = { + group: _group2.default, + var: var_, + has: has, + SelectionHandle: _selection.SelectionHandle, + FilterHandle: _filter.FilterHandle, + bind: _input.bind +}; + +/** + * @namespace crosstalk + */ +exports.default = crosstalk; + +global.crosstalk = crosstalk; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./filter":2,"./group":4,"./input":6,"./input_checkboxgroup":7,"./input_selectize":8,"./input_slider":9,"./selection":10}],6:[function(require,module,exports){ +(function (global){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.register = register; +exports.bind = bind; +var $ = global.jQuery; + +var bindings = {}; + +function register(reg) { + bindings[reg.className] = reg; + if (global.document && global.document.readyState !== "complete") { + $(function () { + bind(); + }); + } else if (global.document) { + setTimeout(bind, 100); + } +} + +function bind() { + Object.keys(bindings).forEach(function (className) { + var binding = bindings[className]; + $("." + binding.className).not(".crosstalk-input-bound").each(function (i, el) { + bindInstance(binding, el); + }); + }); +} + +// Escape jQuery identifier +function $escape(val) { + return val.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); +} + +function bindEl(el) { + var $el = $(el); + Object.keys(bindings).forEach(function (className) { + if ($el.hasClass(className) && !$el.hasClass("crosstalk-input-bound")) { + var binding = bindings[className]; + bindInstance(binding, el); + } + }); +} + +function bindInstance(binding, el) { + var jsonEl = $(el).find("script[type='application/json'][data-for='" + $escape(el.id) + "']"); + var data = JSON.parse(jsonEl[0].innerText); + + var instance = binding.factory(el, data); + $(el).data("crosstalk-instance", instance); + $(el).addClass("crosstalk-input-bound"); +} + +if (global.Shiny) { + var inputBinding = new global.Shiny.InputBinding(); + var _$ = global.jQuery; + _$.extend(inputBinding, { + find: function find(scope) { + return _$(scope).find(".crosstalk-input"); + }, + initialize: function initialize(el) { + if (!_$(el).hasClass("crosstalk-input-bound")) { + bindEl(el); + } + }, + getId: function getId(el) { + return el.id; + }, + getValue: function getValue(el) {}, + setValue: function setValue(el, value) {}, + receiveMessage: function receiveMessage(el, data) {}, + subscribe: function subscribe(el, callback) { + _$(el).data("crosstalk-instance").resume(); + }, + unsubscribe: function unsubscribe(el) { + _$(el).data("crosstalk-instance").suspend(); + } + }); + global.Shiny.inputBindings.register(inputBinding, "crosstalk.inputBinding"); +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{}],7:[function(require,module,exports){ +(function (global){ +"use strict"; + +var _input = require("./input"); + +var input = _interopRequireWildcard(_input); + +var _filter = require("./filter"); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +var $ = global.jQuery; + +input.register({ + className: "crosstalk-input-checkboxgroup", + + factory: function factory(el, data) { + /* + * map: {"groupA": ["keyA", "keyB", ...], ...} + * group: "ct-groupname" + */ + var ctHandle = new _filter.FilterHandle(data.group); + + var lastKnownKeys = void 0; + var $el = $(el); + $el.on("change", "input[type='checkbox']", function () { + var checked = $el.find("input[type='checkbox']:checked"); + if (checked.length === 0) { + lastKnownKeys = null; + ctHandle.clear(); + } else { + var keys = {}; + checked.each(function () { + data.map[this.value].forEach(function (key) { + keys[key] = true; + }); + }); + var keyArray = Object.keys(keys); + keyArray.sort(); + lastKnownKeys = keyArray; + ctHandle.set(keyArray); + } + }); + + return { + suspend: function suspend() { + ctHandle.clear(); + }, + resume: function resume() { + if (lastKnownKeys) ctHandle.set(lastKnownKeys); + } + }; + } +}); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./filter":2,"./input":6}],8:[function(require,module,exports){ +(function (global){ +"use strict"; + +var _input = require("./input"); + +var input = _interopRequireWildcard(_input); + +var _util = require("./util"); + +var util = _interopRequireWildcard(_util); + +var _filter = require("./filter"); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +var $ = global.jQuery; + +input.register({ + className: "crosstalk-input-select", + + factory: function factory(el, data) { + /* + * items: {value: [...], label: [...]} + * map: {"groupA": ["keyA", "keyB", ...], ...} + * group: "ct-groupname" + */ + + var first = [{ value: "", label: "(All)" }]; + var items = util.dataframeToD3(data.items); + var opts = { + options: first.concat(items), + valueField: "value", + labelField: "label", + searchField: "label" + }; + + var select = $(el).find("select")[0]; + + var selectize = $(select).selectize(opts)[0].selectize; + + var ctHandle = new _filter.FilterHandle(data.group); + + var lastKnownKeys = void 0; + selectize.on("change", function () { + if (selectize.items.length === 0) { + lastKnownKeys = null; + ctHandle.clear(); + } else { + var keys = {}; + selectize.items.forEach(function (group) { + data.map[group].forEach(function (key) { + keys[key] = true; + }); + }); + var keyArray = Object.keys(keys); + keyArray.sort(); + lastKnownKeys = keyArray; + ctHandle.set(keyArray); + } + }); + + return { + suspend: function suspend() { + ctHandle.clear(); + }, + resume: function resume() { + if (lastKnownKeys) ctHandle.set(lastKnownKeys); + } + }; + } +}); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./filter":2,"./input":6,"./util":11}],9:[function(require,module,exports){ +(function (global){ +"use strict"; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _input = require("./input"); + +var input = _interopRequireWildcard(_input); + +var _filter = require("./filter"); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +var $ = global.jQuery; +var strftime = global.strftime; + +input.register({ + className: "crosstalk-input-slider", + + factory: function factory(el, data) { + /* + * map: {"groupA": ["keyA", "keyB", ...], ...} + * group: "ct-groupname" + */ + var ctHandle = new _filter.FilterHandle(data.group); + + var opts = {}; + var $el = $(el).find("input"); + var dataType = $el.data("data-type"); + var timeFormat = $el.data("time-format"); + var round = $el.data("round"); + var timeFormatter = void 0; + + // Set up formatting functions + if (dataType === "date") { + timeFormatter = strftime.utc(); + opts.prettify = function (num) { + return timeFormatter(timeFormat, new Date(num)); + }; + } else if (dataType === "datetime") { + var timezone = $el.data("timezone"); + if (timezone) timeFormatter = strftime.timezone(timezone);else timeFormatter = strftime; + + opts.prettify = function (num) { + return timeFormatter(timeFormat, new Date(num)); + }; + } else if (dataType === "number") { + if (typeof round !== "undefined") opts.prettify = function (num) { + var factor = Math.pow(10, round); + return Math.round(num * factor) / factor; + }; + } + + $el.ionRangeSlider(opts); + + function getValue() { + var result = $el.data("ionRangeSlider").result; + + // Function for converting numeric value from slider to appropriate type. + var convert = void 0; + var dataType = $el.data("data-type"); + if (dataType === "date") { + convert = function convert(val) { + return formatDateUTC(new Date(+val)); + }; + } else if (dataType === "datetime") { + convert = function convert(val) { + // Convert ms to s + return +val / 1000; + }; + } else { + convert = function convert(val) { + return +val; + }; + } + + if ($el.data("ionRangeSlider").options.type === "double") { + return [convert(result.from), convert(result.to)]; + } else { + return convert(result.from); + } + } + + var lastKnownKeys = null; + + $el.on("change.crosstalkSliderInput", function (event) { + if (!$el.data("updating") && !$el.data("animating")) { + var _getValue = getValue(), + _getValue2 = _slicedToArray(_getValue, 2), + from = _getValue2[0], + to = _getValue2[1]; + + var keys = []; + for (var i = 0; i < data.values.length; i++) { + var val = data.values[i]; + if (val >= from && val <= to) { + keys.push(data.keys[i]); + } + } + keys.sort(); + ctHandle.set(keys); + lastKnownKeys = keys; + } + }); + + // let $el = $(el); + // $el.on("change", "input[type="checkbox"]", function() { + // let checked = $el.find("input[type="checkbox"]:checked"); + // if (checked.length === 0) { + // ctHandle.clear(); + // } else { + // let keys = {}; + // checked.each(function() { + // data.map[this.value].forEach(function(key) { + // keys[key] = true; + // }); + // }); + // let keyArray = Object.keys(keys); + // keyArray.sort(); + // ctHandle.set(keyArray); + // } + // }); + + return { + suspend: function suspend() { + ctHandle.clear(); + }, + resume: function resume() { + if (lastKnownKeys) ctHandle.set(lastKnownKeys); + } + }; + } +}); + +// Convert a number to a string with leading zeros +function padZeros(n, digits) { + var str = n.toString(); + while (str.length < digits) { + str = "0" + str; + }return str; +} + +// Given a Date object, return a string in yyyy-mm-dd format, using the +// UTC date. This may be a day off from the date in the local time zone. +function formatDateUTC(date) { + if (date instanceof Date) { + return date.getUTCFullYear() + "-" + padZeros(date.getUTCMonth() + 1, 2) + "-" + padZeros(date.getUTCDate(), 2); + } else { + return null; + } +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./filter":2,"./input":6}],10:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SelectionHandle = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _events = require("./events"); + +var _events2 = _interopRequireDefault(_events); + +var _group = require("./group"); + +var _group2 = _interopRequireDefault(_group); + +var _util = require("./util"); + +var util = _interopRequireWildcard(_util); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Use this class to read and write (and listen for changes to) the selection + * for a Crosstalk group. This is intended to be used for linked brushing. + * + * If two (or more) `SelectionHandle` instances in the same webpage share the + * same group name, they will share the same state. Setting the selection using + * one `SelectionHandle` instance will result in the `value` property instantly + * changing across the others, and `"change"` event listeners on all instances + * (including the one that initiated the sending) will fire. + * + * @param {string} [group] - The name of the Crosstalk group, or if none, + * null or undefined (or any other falsy value). This can be changed later + * via the [SelectionHandle#setGroup](#setGroup) method. + * @param {Object} [extraInfo] - An object whose properties will be copied to + * the event object whenever an event is emitted. + */ +var SelectionHandle = exports.SelectionHandle = function () { + function SelectionHandle() { + var group = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var extraInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, SelectionHandle); + + this._eventRelay = new _events2.default(); + this._emitter = new util.SubscriptionTracker(this._eventRelay); + + // Name of the group we're currently tracking, if any. Can change over time. + this._group = null; + // The Var we're currently tracking, if any. Can change over time. + this._var = null; + // The event handler subscription we currently have on var.on("change"). + this._varOnChangeSub = null; + + this._extraInfo = util.extend({ sender: this }, extraInfo); + + this.setGroup(group); + } + + /** + * Changes the Crosstalk group membership of this SelectionHandle. The group + * being switched away from (if any) will not have its selection value + * modified as a result of calling `setGroup`, even if this handle was the + * most recent handle to set the selection of the group. + * + * The group being switched to (if any) will also not have its selection value + * modified as a result of calling `setGroup`. If you want to set the + * selection value of the new group, call `set` explicitly. + * + * @param {string} group - The name of the Crosstalk group, or null (or + * undefined) to clear the group. + */ + + + _createClass(SelectionHandle, [{ + key: "setGroup", + value: function setGroup(group) { + var _this = this; + + // If group is unchanged, do nothing + if (this._group === group) return; + // Treat null, undefined, and other falsy values the same + if (!this._group && !group) return; + + if (this._var) { + this._var.off("change", this._varOnChangeSub); + this._var = null; + this._varOnChangeSub = null; + } + + this._group = group; + + if (group) { + this._var = (0, _group2.default)(group).var("selection"); + var sub = this._var.on("change", function (e) { + _this._eventRelay.trigger("change", e, _this); + }); + this._varOnChangeSub = sub; + } + } + + /** + * Retrieves the current selection for the group represented by this + * `SelectionHandle`. + * + * - If no selection is active, then this value will be falsy. + * - If a selection is active, but no data points are selected, then this + * value will be an empty array. + * - If a selection is active, and data points are selected, then the keys + * of the selected data points will be present in the array. + */ + + }, { + key: "_mergeExtraInfo", + + + /** + * Combines the given `extraInfo` (if any) with the handle's default + * `_extraInfo` (if any). + * @private + */ + value: function _mergeExtraInfo(extraInfo) { + // Important incidental effect: shallow clone is returned + return util.extend({}, this._extraInfo ? this._extraInfo : null, extraInfo ? extraInfo : null); + } + + /** + * Overwrites the current selection for the group, and raises the `"change"` + * event among all of the group's '`SelectionHandle` instances (including + * this one). + * + * @fires SelectionHandle#change + * @param {string[]} selectedKeys - Falsy, empty array, or array of keys (see + * {@link SelectionHandle#value}). + * @param {Object} [extraInfo] - Extra properties to be included on the event + * object that's passed to listeners (in addition to any options that were + * passed into the `SelectionHandle` constructor). + */ + + }, { + key: "set", + value: function set(selectedKeys, extraInfo) { + if (this._var) this._var.set(selectedKeys, this._mergeExtraInfo(extraInfo)); + } + + /** + * Overwrites the current selection for the group, and raises the `"change"` + * event among all of the group's '`SelectionHandle` instances (including + * this one). + * + * @fires SelectionHandle#change + * @param {Object} [extraInfo] - Extra properties to be included on the event + * object that's passed to listeners (in addition to any that were passed + * into the `SelectionHandle` constructor). + */ + + }, { + key: "clear", + value: function clear(extraInfo) { + if (this._var) this.set(void 0, this._mergeExtraInfo(extraInfo)); + } + + /** + * Subscribes to events on this `SelectionHandle`. + * + * @param {string} eventType - Indicates the type of events to listen to. + * Currently, only `"change"` is supported. + * @param {SelectionHandle~listener} listener - The callback function that + * will be invoked when the event occurs. + * @return {string} - A token to pass to {@link SelectionHandle#off} to cancel + * this subscription. + */ + + }, { + key: "on", + value: function on(eventType, listener) { + return this._emitter.on(eventType, listener); + } + + /** + * Cancels event subscriptions created by {@link SelectionHandle#on}. + * + * @param {string} eventType - The type of event to unsubscribe. + * @param {string|SelectionHandle~listener} listener - Either the callback + * function previously passed into {@link SelectionHandle#on}, or the + * string that was returned from {@link SelectionHandle#on}. + */ + + }, { + key: "off", + value: function off(eventType, listener) { + return this._emitter.off(eventType, listener); + } + + /** + * Shuts down the `SelectionHandle` object. + * + * Removes all event listeners that were added through this handle. + */ + + }, { + key: "close", + value: function close() { + this._emitter.removeAllListeners(); + this.setGroup(null); + } + }, { + key: "value", + get: function get() { + return this._var ? this._var.get() : null; + } + }]); + + return SelectionHandle; +}(); + +/** + * @callback SelectionHandle~listener + * @param {Object} event - An object containing details of the event. For + * `"change"` events, this includes the properties `value` (the new + * value of the selection, or `undefined` if no selection is active), + * `oldValue` (the previous value of the selection), and `sender` (the + * `SelectionHandle` instance that made the change). + */ + +/** + * @event SelectionHandle#change + * @type {object} + * @property {object} value - The new value of the selection, or `undefined` + * if no selection is active. + * @property {object} oldValue - The previous value of the selection. + * @property {SelectionHandle} sender - The `SelectionHandle` instance that + * changed the value. + */ + +},{"./events":1,"./group":4,"./util":11}],11:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.extend = extend; +exports.checkSorted = checkSorted; +exports.diffSortedLists = diffSortedLists; +exports.dataframeToD3 = dataframeToD3; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function extend(target) { + for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + sources[_key - 1] = arguments[_key]; + } + + for (var i = 0; i < sources.length; i++) { + var src = sources[i]; + if (typeof src === "undefined" || src === null) continue; + + for (var key in src) { + if (src.hasOwnProperty(key)) { + target[key] = src[key]; + } + } + } + return target; +} + +function checkSorted(list) { + for (var i = 1; i < list.length; i++) { + if (list[i] <= list[i - 1]) { + throw new Error("List is not sorted or contains duplicate"); + } + } +} + +function diffSortedLists(a, b) { + var i_a = 0; + var i_b = 0; + + if (!a) a = []; + if (!b) b = []; + + var a_only = []; + var b_only = []; + + checkSorted(a); + checkSorted(b); + + while (i_a < a.length && i_b < b.length) { + if (a[i_a] === b[i_b]) { + i_a++; + i_b++; + } else if (a[i_a] < b[i_b]) { + a_only.push(a[i_a++]); + } else { + b_only.push(b[i_b++]); + } + } + + if (i_a < a.length) a_only = a_only.concat(a.slice(i_a)); + if (i_b < b.length) b_only = b_only.concat(b.slice(i_b)); + return { + removed: a_only, + added: b_only + }; +} + +// Convert from wide: { colA: [1,2,3], colB: [4,5,6], ... } +// to long: [ {colA: 1, colB: 4}, {colA: 2, colB: 5}, ... ] +function dataframeToD3(df) { + var names = []; + var length = void 0; + for (var name in df) { + if (df.hasOwnProperty(name)) names.push(name); + if (_typeof(df[name]) !== "object" || typeof df[name].length === "undefined") { + throw new Error("All fields must be arrays"); + } else if (typeof length !== "undefined" && length !== df[name].length) { + throw new Error("All fields must be arrays of the same length"); + } + length = df[name].length; + } + var results = []; + var item = void 0; + for (var row = 0; row < length; row++) { + item = {}; + for (var col = 0; col < names.length; col++) { + item[names[col]] = df[names[col]][row]; + } + results.push(item); + } + return results; +} + +/** + * Keeps track of all event listener additions/removals and lets all active + * listeners be removed with a single operation. + * + * @private + */ + +var SubscriptionTracker = exports.SubscriptionTracker = function () { + function SubscriptionTracker(emitter) { + _classCallCheck(this, SubscriptionTracker); + + this._emitter = emitter; + this._subs = {}; + } + + _createClass(SubscriptionTracker, [{ + key: "on", + value: function on(eventType, listener) { + var sub = this._emitter.on(eventType, listener); + this._subs[sub] = eventType; + return sub; + } + }, { + key: "off", + value: function off(eventType, listener) { + var sub = this._emitter.off(eventType, listener); + if (sub) { + delete this._subs[sub]; + } + return sub; + } + }, { + key: "removeAllListeners", + value: function removeAllListeners() { + var _this = this; + + var current_subs = this._subs; + this._subs = {}; + Object.keys(current_subs).forEach(function (sub) { + _this._emitter.off(current_subs[sub], sub); + }); + } + }]); + + return SubscriptionTracker; +}(); + +},{}],12:[function(require,module,exports){ +(function (global){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _events = require("./events"); + +var _events2 = _interopRequireDefault(_events); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Var = function () { + function Var(group, name, /*optional*/value) { + _classCallCheck(this, Var); + + this._group = group; + this._name = name; + this._value = value; + this._events = new _events2.default(); + } + + _createClass(Var, [{ + key: "get", + value: function get() { + return this._value; + } + }, { + key: "set", + value: function set(value, /*optional*/event) { + if (this._value === value) { + // Do nothing; the value hasn't changed + return; + } + var oldValue = this._value; + this._value = value; + // Alert JavaScript listeners that the value has changed + var evt = {}; + if (event && (typeof event === "undefined" ? "undefined" : _typeof(event)) === "object") { + for (var k in event) { + if (event.hasOwnProperty(k)) evt[k] = event[k]; + } + } + evt.oldValue = oldValue; + evt.value = value; + this._events.trigger("change", evt, this); + + // TODO: Make this extensible, to let arbitrary back-ends know that + // something has changed + if (global.Shiny && global.Shiny.onInputChange) { + global.Shiny.onInputChange(".clientValue-" + (this._group.name !== null ? this._group.name + "-" : "") + this._name, typeof value === "undefined" ? null : value); + } + } + }, { + key: "on", + value: function on(eventType, listener) { + return this._events.on(eventType, listener); + } + }, { + key: "off", + value: function off(eventType, listener) { + return this._events.off(eventType, listener); + } + }]); + + return Var; +}(); + +exports.default = Var; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./events":1}]},{},[5]) +//# sourceMappingURL=crosstalk.js.map diff --git a/english/site_libs/crosstalk-1.2.0/js/crosstalk.js.map b/english/site_libs/crosstalk-1.2.0/js/crosstalk.js.map new file mode 100644 index 0000000..cff94f0 --- /dev/null +++ b/english/site_libs/crosstalk-1.2.0/js/crosstalk.js.map @@ -0,0 +1,37 @@ +{ + "version": 3, + "sources": [ + "node_modules/browser-pack/_prelude.js", + "javascript/src/events.js", + "javascript/src/filter.js", + "javascript/src/filterset.js", + "javascript/src/group.js", + "javascript/src/index.js", + "javascript/src/input.js", + "javascript/src/input_checkboxgroup.js", + "javascript/src/input_selectize.js", + "javascript/src/input_slider.js", + "javascript/src/selection.js", + "javascript/src/util.js", + "javascript/src/var.js" + ], + "names": [], + "mappings": "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", + "file": "generated.js", + "sourceRoot": "", + "sourcesContent": [ + "(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o {\n this._eventRelay.trigger(\"change\", e, this);\n });\n this._varOnChangeSub = sub;\n }\n }\n\n /**\n * Combine the given `extraInfo` (if any) with the handle's default\n * `_extraInfo` (if any).\n * @private\n */\n _mergeExtraInfo(extraInfo) {\n return util.extend({},\n this._extraInfo ? this._extraInfo : null,\n extraInfo ? extraInfo : null);\n }\n\n /**\n * Close the handle. This clears this handle's contribution to the filter set,\n * and unsubscribes all event listeners.\n */\n close() {\n this._emitter.removeAllListeners();\n this.clear();\n this.setGroup(null);\n }\n\n /**\n * Clear this handle's contribution to the filter set.\n *\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `FilterHandle` constructor).\n * \n * @fires FilterHandle#change\n */\n clear(extraInfo) {\n if (!this._filterSet)\n return;\n this._filterSet.clear(this._id);\n this._onChange(extraInfo);\n }\n\n /**\n * Set this handle's contribution to the filter set. This array should consist\n * of the keys of the rows that _should_ be displayed; any keys that are not\n * present in the array will be considered _filtered out_. Note that multiple\n * `FilterHandle` instances in the group may each contribute an array of keys,\n * and only those keys that appear in _all_ of the arrays make it through the\n * filter.\n *\n * @param {string[]} keys - Empty array, or array of keys. To clear the\n * filter, don't pass an empty array; instead, use the\n * {@link FilterHandle#clear} method.\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `FilterHandle` constructor).\n * \n * @fires FilterHandle#change\n */\n set(keys, extraInfo) {\n if (!this._filterSet)\n return;\n this._filterSet.update(this._id, keys);\n this._onChange(extraInfo);\n }\n\n /**\n * @return {string[]|null} - Either: 1) an array of keys that made it through\n * all of the `FilterHandle` instances, or, 2) `null`, which means no filter\n * is being applied (all data should be displayed).\n */\n get filteredKeys() {\n return this._filterSet ? this._filterSet.value : null;\n }\n\n /**\n * Subscribe to events on this `FilterHandle`.\n *\n * @param {string} eventType - Indicates the type of events to listen to.\n * Currently, only `\"change\"` is supported.\n * @param {FilterHandle~listener} listener - The callback function that\n * will be invoked when the event occurs.\n * @return {string} - A token to pass to {@link FilterHandle#off} to cancel\n * this subscription.\n */\n on(eventType, listener) {\n return this._emitter.on(eventType, listener);\n }\n\n /**\n * Cancel event subscriptions created by {@link FilterHandle#on}.\n *\n * @param {string} eventType - The type of event to unsubscribe.\n * @param {string|FilterHandle~listener} listener - Either the callback\n * function previously passed into {@link FilterHandle#on}, or the\n * string that was returned from {@link FilterHandle#on}.\n */\n off(eventType, listener) {\n return this._emitter.off(eventType, listener);\n }\n\n _onChange(extraInfo) {\n if (!this._filterSet)\n return;\n this._filterVar.set(this._filterSet.value, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * @callback FilterHandle~listener\n * @param {Object} event - An object containing details of the event. For\n * `\"change\"` events, this includes the properties `value` (the new\n * value of the filter set, or `null` if no filter set is active),\n * `oldValue` (the previous value of the filter set), and `sender` (the\n * `FilterHandle` instance that made the change).\n */\n\n}\n\n/**\n * @event FilterHandle#change\n * @type {object}\n * @property {object} value - The new value of the filter set, or `null`\n * if no filter set is active.\n * @property {object} oldValue - The previous value of the filter set.\n * @property {FilterHandle} sender - The `FilterHandle` instance that\n * changed the value.\n */\n", + "import { diffSortedLists } from \"./util\";\n\nfunction naturalComparator(a, b) {\n if (a === b) {\n return 0;\n } else if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n}\n\n/**\n * @private\n */\nexport default class FilterSet {\n constructor() {\n this.reset();\n }\n\n reset() {\n // Key: handle ID, Value: array of selected keys, or null\n this._handles = {};\n // Key: key string, Value: count of handles that include it\n this._keys = {};\n this._value = null;\n this._activeHandles = 0;\n }\n\n get value() {\n return this._value;\n }\n\n update(handleId, keys) {\n if (keys !== null) {\n keys = keys.slice(0); // clone before sorting\n keys.sort(naturalComparator);\n }\n\n let {added, removed} = diffSortedLists(this._handles[handleId], keys);\n this._handles[handleId] = keys;\n\n for (let i = 0; i < added.length; i++) {\n this._keys[added[i]] = (this._keys[added[i]] || 0) + 1;\n }\n for (let i = 0; i < removed.length; i++) {\n this._keys[removed[i]]--;\n }\n\n this._updateValue(keys);\n }\n\n /**\n * @param {string[]} keys Sorted array of strings that indicate\n * a superset of possible keys.\n * @private\n */\n _updateValue(keys = this._allKeys) {\n let handleCount = Object.keys(this._handles).length;\n if (handleCount === 0) {\n this._value = null;\n } else {\n this._value = [];\n for (let i = 0; i < keys.length; i++) {\n let count = this._keys[keys[i]];\n if (count === handleCount) {\n this._value.push(keys[i]);\n }\n }\n }\n }\n\n clear(handleId) {\n if (typeof(this._handles[handleId]) === \"undefined\") {\n return;\n }\n\n let keys = this._handles[handleId];\n if (!keys) {\n keys = [];\n }\n\n for (let i = 0; i < keys.length; i++) {\n this._keys[keys[i]]--;\n }\n delete this._handles[handleId];\n\n this._updateValue();\n }\n\n get _allKeys() {\n let allKeys = Object.keys(this._keys);\n allKeys.sort(naturalComparator);\n return allKeys;\n }\n}\n", + "import Var from \"./var\";\n\n// Use a global so that multiple copies of crosstalk.js can be loaded and still\n// have groups behave as singletons across all copies.\nglobal.__crosstalk_groups = global.__crosstalk_groups || {};\nlet groups = global.__crosstalk_groups;\n\nexport default function group(groupName) {\n if (groupName && typeof(groupName) === \"string\") {\n if (!groups.hasOwnProperty(groupName)) {\n groups[groupName] = new Group(groupName);\n }\n return groups[groupName];\n } else if (typeof(groupName) === \"object\" && groupName._vars && groupName.var) {\n // Appears to already be a group object\n return groupName;\n } else if (Array.isArray(groupName) &&\n groupName.length == 1 &&\n typeof(groupName[0]) === \"string\") {\n return group(groupName[0]);\n } else {\n throw new Error(\"Invalid groupName argument\");\n }\n}\n\nclass Group {\n constructor(name) {\n this.name = name;\n this._vars = {};\n }\n\n var(name) {\n if (!name || typeof(name) !== \"string\") {\n throw new Error(\"Invalid var name\");\n }\n\n if (!this._vars.hasOwnProperty(name))\n this._vars[name] = new Var(this, name);\n return this._vars[name];\n }\n\n has(name) {\n if (!name || typeof(name) !== \"string\") {\n throw new Error(\"Invalid var name\");\n }\n\n return this._vars.hasOwnProperty(name);\n }\n}\n", + "import group from \"./group\";\nimport { SelectionHandle } from \"./selection\";\nimport { FilterHandle } from \"./filter\";\nimport { bind } from \"./input\";\nimport \"./input_selectize\";\nimport \"./input_checkboxgroup\";\nimport \"./input_slider\";\n\nconst defaultGroup = group(\"default\");\n\nfunction var_(name) {\n return defaultGroup.var(name);\n}\n\nfunction has(name) {\n return defaultGroup.has(name);\n}\n\nif (global.Shiny) {\n global.Shiny.addCustomMessageHandler(\"update-client-value\", function(message) {\n if (typeof(message.group) === \"string\") {\n group(message.group).var(message.name).set(message.value);\n } else {\n var_(message.name).set(message.value);\n }\n });\n}\n\nconst crosstalk = {\n group: group,\n var: var_,\n has: has,\n SelectionHandle: SelectionHandle,\n FilterHandle: FilterHandle,\n bind: bind\n};\n\n/**\n * @namespace crosstalk\n */\nexport default crosstalk;\nglobal.crosstalk = crosstalk;\n", + "let $ = global.jQuery;\n\nlet bindings = {};\n\nexport function register(reg) {\n bindings[reg.className] = reg;\n if (global.document && global.document.readyState !== \"complete\") {\n $(() => {\n bind();\n });\n } else if (global.document) {\n setTimeout(bind, 100);\n }\n}\n\nexport function bind() {\n Object.keys(bindings).forEach(function(className) {\n let binding = bindings[className];\n $(\".\" + binding.className).not(\".crosstalk-input-bound\").each(function(i, el) {\n bindInstance(binding, el);\n });\n });\n}\n\n// Escape jQuery identifier\nfunction $escape(val) {\n return val.replace(/([!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~])/g, \"\\\\$1\");\n}\n\nfunction bindEl(el) {\n let $el = $(el);\n Object.keys(bindings).forEach(function(className) {\n if ($el.hasClass(className) && !$el.hasClass(\"crosstalk-input-bound\")) {\n let binding = bindings[className];\n bindInstance(binding, el);\n }\n });\n}\n\nfunction bindInstance(binding, el) {\n let jsonEl = $(el).find(\"script[type='application/json'][data-for='\" + $escape(el.id) + \"']\");\n let data = JSON.parse(jsonEl[0].innerText);\n\n let instance = binding.factory(el, data);\n $(el).data(\"crosstalk-instance\", instance);\n $(el).addClass(\"crosstalk-input-bound\");\n}\n\nif (global.Shiny) {\n let inputBinding = new global.Shiny.InputBinding();\n let $ = global.jQuery;\n $.extend(inputBinding, {\n find: function(scope) {\n return $(scope).find(\".crosstalk-input\");\n },\n initialize: function(el) {\n if (!$(el).hasClass(\"crosstalk-input-bound\")) {\n bindEl(el);\n }\n },\n getId: function(el) {\n return el.id;\n },\n getValue: function(el) {\n\n },\n setValue: function(el, value) {\n\n },\n receiveMessage: function(el, data) {\n\n },\n subscribe: function(el, callback) {\n $(el).data(\"crosstalk-instance\").resume();\n },\n unsubscribe: function(el) {\n $(el).data(\"crosstalk-instance\").suspend();\n }\n });\n global.Shiny.inputBindings.register(inputBinding, \"crosstalk.inputBinding\");\n}\n", + "import * as input from \"./input\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\n\ninput.register({\n className: \"crosstalk-input-checkboxgroup\",\n\n factory: function(el, data) {\n /*\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n let ctHandle = new FilterHandle(data.group);\n\n let lastKnownKeys;\n let $el = $(el);\n $el.on(\"change\", \"input[type='checkbox']\", function() {\n let checked = $el.find(\"input[type='checkbox']:checked\");\n if (checked.length === 0) {\n lastKnownKeys = null;\n ctHandle.clear();\n } else {\n let keys = {};\n checked.each(function() {\n data.map[this.value].forEach(function(key) {\n keys[key] = true;\n });\n });\n let keyArray = Object.keys(keys);\n keyArray.sort();\n lastKnownKeys = keyArray;\n ctHandle.set(keyArray);\n }\n });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n", + "import * as input from \"./input\";\nimport * as util from \"./util\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\n\ninput.register({\n className: \"crosstalk-input-select\",\n\n factory: function(el, data) {\n /*\n * items: {value: [...], label: [...]}\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n\n let first = [{value: \"\", label: \"(All)\"}];\n let items = util.dataframeToD3(data.items);\n let opts = {\n options: first.concat(items),\n valueField: \"value\",\n labelField: \"label\",\n searchField: \"label\"\n };\n\n let select = $(el).find(\"select\")[0];\n\n let selectize = $(select).selectize(opts)[0].selectize;\n\n let ctHandle = new FilterHandle(data.group);\n\n let lastKnownKeys;\n selectize.on(\"change\", function() {\n if (selectize.items.length === 0) {\n lastKnownKeys = null;\n ctHandle.clear();\n } else {\n let keys = {};\n selectize.items.forEach(function(group) {\n data.map[group].forEach(function(key) {\n keys[key] = true;\n });\n });\n let keyArray = Object.keys(keys);\n keyArray.sort();\n lastKnownKeys = keyArray;\n ctHandle.set(keyArray);\n }\n });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n", + "import * as input from \"./input\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\nlet strftime = global.strftime;\n\ninput.register({\n className: \"crosstalk-input-slider\",\n\n factory: function(el, data) {\n /*\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n let ctHandle = new FilterHandle(data.group);\n\n let opts = {};\n let $el = $(el).find(\"input\");\n let dataType = $el.data(\"data-type\");\n let timeFormat = $el.data(\"time-format\");\n let round = $el.data(\"round\");\n let timeFormatter;\n\n // Set up formatting functions\n if (dataType === \"date\") {\n timeFormatter = strftime.utc();\n opts.prettify = function(num) {\n return timeFormatter(timeFormat, new Date(num));\n };\n\n } else if (dataType === \"datetime\") {\n let timezone = $el.data(\"timezone\");\n if (timezone)\n timeFormatter = strftime.timezone(timezone);\n else\n timeFormatter = strftime;\n\n opts.prettify = function(num) {\n return timeFormatter(timeFormat, new Date(num));\n };\n } else if (dataType === \"number\") {\n if (typeof round !== \"undefined\")\n opts.prettify = function(num) {\n let factor = Math.pow(10, round);\n return Math.round(num * factor) / factor;\n };\n }\n\n $el.ionRangeSlider(opts);\n\n function getValue() {\n let result = $el.data(\"ionRangeSlider\").result;\n\n // Function for converting numeric value from slider to appropriate type.\n let convert;\n let dataType = $el.data(\"data-type\");\n if (dataType === \"date\") {\n convert = function(val) {\n return formatDateUTC(new Date(+val));\n };\n } else if (dataType === \"datetime\") {\n convert = function(val) {\n // Convert ms to s\n return +val / 1000;\n };\n } else {\n convert = function(val) { return +val; };\n }\n\n if ($el.data(\"ionRangeSlider\").options.type === \"double\") {\n return [convert(result.from), convert(result.to)];\n } else {\n return convert(result.from);\n }\n }\n\n let lastKnownKeys = null;\n\n $el.on(\"change.crosstalkSliderInput\", function(event) {\n if (!$el.data(\"updating\") && !$el.data(\"animating\")) {\n let [from, to] = getValue();\n let keys = [];\n for (let i = 0; i < data.values.length; i++) {\n let val = data.values[i];\n if (val >= from && val <= to) {\n keys.push(data.keys[i]);\n }\n }\n keys.sort();\n ctHandle.set(keys);\n lastKnownKeys = keys;\n }\n });\n\n\n // let $el = $(el);\n // $el.on(\"change\", \"input[type=\"checkbox\"]\", function() {\n // let checked = $el.find(\"input[type=\"checkbox\"]:checked\");\n // if (checked.length === 0) {\n // ctHandle.clear();\n // } else {\n // let keys = {};\n // checked.each(function() {\n // data.map[this.value].forEach(function(key) {\n // keys[key] = true;\n // });\n // });\n // let keyArray = Object.keys(keys);\n // keyArray.sort();\n // ctHandle.set(keyArray);\n // }\n // });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n\n\n// Convert a number to a string with leading zeros\nfunction padZeros(n, digits) {\n let str = n.toString();\n while (str.length < digits)\n str = \"0\" + str;\n return str;\n}\n\n// Given a Date object, return a string in yyyy-mm-dd format, using the\n// UTC date. This may be a day off from the date in the local time zone.\nfunction formatDateUTC(date) {\n if (date instanceof Date) {\n return date.getUTCFullYear() + \"-\" +\n padZeros(date.getUTCMonth()+1, 2) + \"-\" +\n padZeros(date.getUTCDate(), 2);\n\n } else {\n return null;\n }\n}\n", + "import Events from \"./events\";\nimport grp from \"./group\";\nimport * as util from \"./util\";\n\n/**\n * Use this class to read and write (and listen for changes to) the selection\n * for a Crosstalk group. This is intended to be used for linked brushing.\n *\n * If two (or more) `SelectionHandle` instances in the same webpage share the\n * same group name, they will share the same state. Setting the selection using\n * one `SelectionHandle` instance will result in the `value` property instantly\n * changing across the others, and `\"change\"` event listeners on all instances\n * (including the one that initiated the sending) will fire.\n *\n * @param {string} [group] - The name of the Crosstalk group, or if none,\n * null or undefined (or any other falsy value). This can be changed later\n * via the [SelectionHandle#setGroup](#setGroup) method.\n * @param {Object} [extraInfo] - An object whose properties will be copied to\n * the event object whenever an event is emitted.\n */\nexport class SelectionHandle {\n\n constructor(group = null, extraInfo = null) {\n this._eventRelay = new Events();\n this._emitter = new util.SubscriptionTracker(this._eventRelay);\n\n // Name of the group we're currently tracking, if any. Can change over time.\n this._group = null;\n // The Var we're currently tracking, if any. Can change over time.\n this._var = null;\n // The event handler subscription we currently have on var.on(\"change\").\n this._varOnChangeSub = null;\n\n this._extraInfo = util.extend({ sender: this }, extraInfo);\n\n this.setGroup(group);\n }\n\n /**\n * Changes the Crosstalk group membership of this SelectionHandle. The group\n * being switched away from (if any) will not have its selection value\n * modified as a result of calling `setGroup`, even if this handle was the\n * most recent handle to set the selection of the group.\n *\n * The group being switched to (if any) will also not have its selection value\n * modified as a result of calling `setGroup`. If you want to set the\n * selection value of the new group, call `set` explicitly.\n *\n * @param {string} group - The name of the Crosstalk group, or null (or\n * undefined) to clear the group.\n */\n setGroup(group) {\n // If group is unchanged, do nothing\n if (this._group === group)\n return;\n // Treat null, undefined, and other falsy values the same\n if (!this._group && !group)\n return;\n\n if (this._var) {\n this._var.off(\"change\", this._varOnChangeSub);\n this._var = null;\n this._varOnChangeSub = null;\n }\n\n this._group = group;\n\n if (group) {\n this._var = grp(group).var(\"selection\");\n let sub = this._var.on(\"change\", (e) => {\n this._eventRelay.trigger(\"change\", e, this);\n });\n this._varOnChangeSub = sub;\n }\n }\n\n /**\n * Retrieves the current selection for the group represented by this\n * `SelectionHandle`.\n *\n * - If no selection is active, then this value will be falsy.\n * - If a selection is active, but no data points are selected, then this\n * value will be an empty array.\n * - If a selection is active, and data points are selected, then the keys\n * of the selected data points will be present in the array.\n */\n get value() {\n return this._var ? this._var.get() : null;\n }\n\n /**\n * Combines the given `extraInfo` (if any) with the handle's default\n * `_extraInfo` (if any).\n * @private\n */\n _mergeExtraInfo(extraInfo) {\n // Important incidental effect: shallow clone is returned\n return util.extend({},\n this._extraInfo ? this._extraInfo : null,\n extraInfo ? extraInfo : null);\n }\n\n /**\n * Overwrites the current selection for the group, and raises the `\"change\"`\n * event among all of the group's '`SelectionHandle` instances (including\n * this one).\n *\n * @fires SelectionHandle#change\n * @param {string[]} selectedKeys - Falsy, empty array, or array of keys (see\n * {@link SelectionHandle#value}).\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `SelectionHandle` constructor).\n */\n set(selectedKeys, extraInfo) {\n if (this._var)\n this._var.set(selectedKeys, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * Overwrites the current selection for the group, and raises the `\"change\"`\n * event among all of the group's '`SelectionHandle` instances (including\n * this one).\n *\n * @fires SelectionHandle#change\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any that were passed\n * into the `SelectionHandle` constructor).\n */\n clear(extraInfo) {\n if (this._var)\n this.set(void 0, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * Subscribes to events on this `SelectionHandle`.\n *\n * @param {string} eventType - Indicates the type of events to listen to.\n * Currently, only `\"change\"` is supported.\n * @param {SelectionHandle~listener} listener - The callback function that\n * will be invoked when the event occurs.\n * @return {string} - A token to pass to {@link SelectionHandle#off} to cancel\n * this subscription.\n */\n on(eventType, listener) {\n return this._emitter.on(eventType, listener);\n }\n\n /**\n * Cancels event subscriptions created by {@link SelectionHandle#on}.\n *\n * @param {string} eventType - The type of event to unsubscribe.\n * @param {string|SelectionHandle~listener} listener - Either the callback\n * function previously passed into {@link SelectionHandle#on}, or the\n * string that was returned from {@link SelectionHandle#on}.\n */\n off(eventType, listener) {\n return this._emitter.off(eventType, listener);\n }\n\n /**\n * Shuts down the `SelectionHandle` object.\n *\n * Removes all event listeners that were added through this handle.\n */\n close() {\n this._emitter.removeAllListeners();\n this.setGroup(null);\n }\n}\n\n/**\n * @callback SelectionHandle~listener\n * @param {Object} event - An object containing details of the event. For\n * `\"change\"` events, this includes the properties `value` (the new\n * value of the selection, or `undefined` if no selection is active),\n * `oldValue` (the previous value of the selection), and `sender` (the\n * `SelectionHandle` instance that made the change).\n */\n\n/**\n * @event SelectionHandle#change\n * @type {object}\n * @property {object} value - The new value of the selection, or `undefined`\n * if no selection is active.\n * @property {object} oldValue - The previous value of the selection.\n * @property {SelectionHandle} sender - The `SelectionHandle` instance that\n * changed the value.\n */\n", + "export function extend(target, ...sources) {\n for (let i = 0; i < sources.length; i++) {\n let src = sources[i];\n if (typeof(src) === \"undefined\" || src === null)\n continue;\n\n for (let key in src) {\n if (src.hasOwnProperty(key)) {\n target[key] = src[key];\n }\n }\n }\n return target;\n}\n\nexport function checkSorted(list) {\n for (let i = 1; i < list.length; i++) {\n if (list[i] <= list[i-1]) {\n throw new Error(\"List is not sorted or contains duplicate\");\n }\n }\n}\n\nexport function diffSortedLists(a, b) {\n let i_a = 0;\n let i_b = 0;\n\n if (!a) a = [];\n if (!b) b = [];\n\n let a_only = [];\n let b_only = [];\n\n checkSorted(a);\n checkSorted(b);\n\n while (i_a < a.length && i_b < b.length) {\n if (a[i_a] === b[i_b]) {\n i_a++;\n i_b++;\n } else if (a[i_a] < b[i_b]) {\n a_only.push(a[i_a++]);\n } else {\n b_only.push(b[i_b++]);\n }\n }\n\n if (i_a < a.length)\n a_only = a_only.concat(a.slice(i_a));\n if (i_b < b.length)\n b_only = b_only.concat(b.slice(i_b));\n return {\n removed: a_only,\n added: b_only\n };\n}\n\n// Convert from wide: { colA: [1,2,3], colB: [4,5,6], ... }\n// to long: [ {colA: 1, colB: 4}, {colA: 2, colB: 5}, ... ]\nexport function dataframeToD3(df) {\n let names = [];\n let length;\n for (let name in df) {\n if (df.hasOwnProperty(name))\n names.push(name);\n if (typeof(df[name]) !== \"object\" || typeof(df[name].length) === \"undefined\") {\n throw new Error(\"All fields must be arrays\");\n } else if (typeof(length) !== \"undefined\" && length !== df[name].length) {\n throw new Error(\"All fields must be arrays of the same length\");\n }\n length = df[name].length;\n }\n let results = [];\n let item;\n for (let row = 0; row < length; row++) {\n item = {};\n for (let col = 0; col < names.length; col++) {\n item[names[col]] = df[names[col]][row];\n }\n results.push(item);\n }\n return results;\n}\n\n/**\n * Keeps track of all event listener additions/removals and lets all active\n * listeners be removed with a single operation.\n *\n * @private\n */\nexport class SubscriptionTracker {\n constructor(emitter) {\n this._emitter = emitter;\n this._subs = {};\n }\n\n on(eventType, listener) {\n let sub = this._emitter.on(eventType, listener);\n this._subs[sub] = eventType;\n return sub;\n }\n\n off(eventType, listener) {\n let sub = this._emitter.off(eventType, listener);\n if (sub) {\n delete this._subs[sub];\n }\n return sub;\n }\n\n removeAllListeners() {\n let current_subs = this._subs;\n this._subs = {};\n Object.keys(current_subs).forEach((sub) => {\n this._emitter.off(current_subs[sub], sub);\n });\n }\n}\n", + "import Events from \"./events\";\n\nexport default class Var {\n constructor(group, name, /*optional*/ value) {\n this._group = group;\n this._name = name;\n this._value = value;\n this._events = new Events();\n }\n\n get() {\n return this._value;\n }\n\n set(value, /*optional*/ event) {\n if (this._value === value) {\n // Do nothing; the value hasn't changed\n return;\n }\n let oldValue = this._value;\n this._value = value;\n // Alert JavaScript listeners that the value has changed\n let evt = {};\n if (event && typeof(event) === \"object\") {\n for (let k in event) {\n if (event.hasOwnProperty(k))\n evt[k] = event[k];\n }\n }\n evt.oldValue = oldValue;\n evt.value = value;\n this._events.trigger(\"change\", evt, this);\n\n // TODO: Make this extensible, to let arbitrary back-ends know that\n // something has changed\n if (global.Shiny && global.Shiny.onInputChange) {\n global.Shiny.onInputChange(\n \".clientValue-\" +\n (this._group.name !== null ? this._group.name + \"-\" : \"\") +\n this._name,\n typeof(value) === \"undefined\" ? null : value\n );\n }\n }\n\n on(eventType, listener) {\n return this._events.on(eventType, listener);\n }\n\n off(eventType, listener) {\n return this._events.off(eventType, listener);\n }\n}\n" + ] +} \ No newline at end of file diff --git a/english/site_libs/crosstalk-1.2.0/js/crosstalk.min.js b/english/site_libs/crosstalk-1.2.0/js/crosstalk.min.js new file mode 100644 index 0000000..b7ec0ac --- /dev/null +++ b/english/site_libs/crosstalk-1.2.0/js/crosstalk.min.js @@ -0,0 +1,2 @@ +!function o(u,a,l){function s(n,e){if(!a[n]){if(!u[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(f)return f(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var i=a[n]={exports:{}};u[n][0].call(i.exports,function(e){var t=u[n][1][e];return s(t||e)},i,i.exports,o,u,a,l)}return a[n].exports}for(var f="function"==typeof require&&require,e=0;e?@[\\\]^`{|}~])/g,"\\$1")+"']"),r=JSON.parse(n[0].innerText),i=e.factory(t,r);o(t).data("crosstalk-instance",i),o(t).addClass("crosstalk-input-bound")}if(t.Shiny){var e=new t.Shiny.InputBinding,u=t.jQuery;u.extend(e,{find:function(e){return u(e).find(".crosstalk-input")},initialize:function(e){var t,n;u(e).hasClass("crosstalk-input-bound")||(n=o(t=e),Object.keys(r).forEach(function(e){n.hasClass(e)&&!n.hasClass("crosstalk-input-bound")&&i(r[e],t)}))},getId:function(e){return e.id},getValue:function(e){},setValue:function(e,t){},receiveMessage:function(e,t){},subscribe:function(e,t){u(e).data("crosstalk-instance").resume()},unsubscribe:function(e){u(e).data("crosstalk-instance").suspend()}}),t.Shiny.inputBindings.register(e,"crosstalk.inputBinding")}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(r,e,t){(function(e){"use strict";var t=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(r("./input")),n=r("./filter");var a=e.jQuery;t.register({className:"crosstalk-input-checkboxgroup",factory:function(e,r){var i=new n.FilterHandle(r.group),o=void 0,u=a(e);return u.on("change","input[type='checkbox']",function(){var e=u.find("input[type='checkbox']:checked");if(0===e.length)o=null,i.clear();else{var t={};e.each(function(){r.map[this.value].forEach(function(e){t[e]=!0})});var n=Object.keys(t);n.sort(),o=n,i.set(n)}}),{suspend:function(){i.clear()},resume:function(){o&&i.set(o)}}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./filter":2,"./input":6}],8:[function(r,e,t){(function(e){"use strict";var t=n(r("./input")),l=n(r("./util")),s=r("./filter");function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var f=e.jQuery;t.register({className:"crosstalk-input-select",factory:function(e,n){var t=l.dataframeToD3(n.items),r={options:[{value:"",label:"(All)"}].concat(t),valueField:"value",labelField:"label",searchField:"label"},i=f(e).find("select")[0],o=f(i).selectize(r)[0].selectize,u=new s.FilterHandle(n.group),a=void 0;return o.on("change",function(){if(0===o.items.length)a=null,u.clear();else{var t={};o.items.forEach(function(e){n.map[e].forEach(function(e){t[e]=!0})});var e=Object.keys(t);e.sort(),a=e,u.set(e)}}),{suspend:function(){u.clear()},resume:function(){a&&u.set(a)}}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./filter":2,"./input":6,"./util":11}],9:[function(n,e,t){(function(e){"use strict";var d=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&a.return&&a.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},t=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(n("./input")),a=n("./filter");var v=e.jQuery,p=e.strftime;function y(e,t){for(var n=e.toString();n.length {\n this._eventRelay.trigger(\"change\", e, this);\n });\n this._varOnChangeSub = sub;\n }\n }\n\n /**\n * Combine the given `extraInfo` (if any) with the handle's default\n * `_extraInfo` (if any).\n * @private\n */\n _mergeExtraInfo(extraInfo) {\n return util.extend({},\n this._extraInfo ? this._extraInfo : null,\n extraInfo ? extraInfo : null);\n }\n\n /**\n * Close the handle. This clears this handle's contribution to the filter set,\n * and unsubscribes all event listeners.\n */\n close() {\n this._emitter.removeAllListeners();\n this.clear();\n this.setGroup(null);\n }\n\n /**\n * Clear this handle's contribution to the filter set.\n *\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `FilterHandle` constructor).\n * \n * @fires FilterHandle#change\n */\n clear(extraInfo) {\n if (!this._filterSet)\n return;\n this._filterSet.clear(this._id);\n this._onChange(extraInfo);\n }\n\n /**\n * Set this handle's contribution to the filter set. This array should consist\n * of the keys of the rows that _should_ be displayed; any keys that are not\n * present in the array will be considered _filtered out_. Note that multiple\n * `FilterHandle` instances in the group may each contribute an array of keys,\n * and only those keys that appear in _all_ of the arrays make it through the\n * filter.\n *\n * @param {string[]} keys - Empty array, or array of keys. To clear the\n * filter, don't pass an empty array; instead, use the\n * {@link FilterHandle#clear} method.\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `FilterHandle` constructor).\n * \n * @fires FilterHandle#change\n */\n set(keys, extraInfo) {\n if (!this._filterSet)\n return;\n this._filterSet.update(this._id, keys);\n this._onChange(extraInfo);\n }\n\n /**\n * @return {string[]|null} - Either: 1) an array of keys that made it through\n * all of the `FilterHandle` instances, or, 2) `null`, which means no filter\n * is being applied (all data should be displayed).\n */\n get filteredKeys() {\n return this._filterSet ? this._filterSet.value : null;\n }\n\n /**\n * Subscribe to events on this `FilterHandle`.\n *\n * @param {string} eventType - Indicates the type of events to listen to.\n * Currently, only `\"change\"` is supported.\n * @param {FilterHandle~listener} listener - The callback function that\n * will be invoked when the event occurs.\n * @return {string} - A token to pass to {@link FilterHandle#off} to cancel\n * this subscription.\n */\n on(eventType, listener) {\n return this._emitter.on(eventType, listener);\n }\n\n /**\n * Cancel event subscriptions created by {@link FilterHandle#on}.\n *\n * @param {string} eventType - The type of event to unsubscribe.\n * @param {string|FilterHandle~listener} listener - Either the callback\n * function previously passed into {@link FilterHandle#on}, or the\n * string that was returned from {@link FilterHandle#on}.\n */\n off(eventType, listener) {\n return this._emitter.off(eventType, listener);\n }\n\n _onChange(extraInfo) {\n if (!this._filterSet)\n return;\n this._filterVar.set(this._filterSet.value, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * @callback FilterHandle~listener\n * @param {Object} event - An object containing details of the event. For\n * `\"change\"` events, this includes the properties `value` (the new\n * value of the filter set, or `null` if no filter set is active),\n * `oldValue` (the previous value of the filter set), and `sender` (the\n * `FilterHandle` instance that made the change).\n */\n\n}\n\n/**\n * @event FilterHandle#change\n * @type {object}\n * @property {object} value - The new value of the filter set, or `null`\n * if no filter set is active.\n * @property {object} oldValue - The previous value of the filter set.\n * @property {FilterHandle} sender - The `FilterHandle` instance that\n * changed the value.\n */\n","import { diffSortedLists } from \"./util\";\n\nfunction naturalComparator(a, b) {\n if (a === b) {\n return 0;\n } else if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n}\n\n/**\n * @private\n */\nexport default class FilterSet {\n constructor() {\n this.reset();\n }\n\n reset() {\n // Key: handle ID, Value: array of selected keys, or null\n this._handles = {};\n // Key: key string, Value: count of handles that include it\n this._keys = {};\n this._value = null;\n this._activeHandles = 0;\n }\n\n get value() {\n return this._value;\n }\n\n update(handleId, keys) {\n if (keys !== null) {\n keys = keys.slice(0); // clone before sorting\n keys.sort(naturalComparator);\n }\n\n let {added, removed} = diffSortedLists(this._handles[handleId], keys);\n this._handles[handleId] = keys;\n\n for (let i = 0; i < added.length; i++) {\n this._keys[added[i]] = (this._keys[added[i]] || 0) + 1;\n }\n for (let i = 0; i < removed.length; i++) {\n this._keys[removed[i]]--;\n }\n\n this._updateValue(keys);\n }\n\n /**\n * @param {string[]} keys Sorted array of strings that indicate\n * a superset of possible keys.\n * @private\n */\n _updateValue(keys = this._allKeys) {\n let handleCount = Object.keys(this._handles).length;\n if (handleCount === 0) {\n this._value = null;\n } else {\n this._value = [];\n for (let i = 0; i < keys.length; i++) {\n let count = this._keys[keys[i]];\n if (count === handleCount) {\n this._value.push(keys[i]);\n }\n }\n }\n }\n\n clear(handleId) {\n if (typeof(this._handles[handleId]) === \"undefined\") {\n return;\n }\n\n let keys = this._handles[handleId];\n if (!keys) {\n keys = [];\n }\n\n for (let i = 0; i < keys.length; i++) {\n this._keys[keys[i]]--;\n }\n delete this._handles[handleId];\n\n this._updateValue();\n }\n\n get _allKeys() {\n let allKeys = Object.keys(this._keys);\n allKeys.sort(naturalComparator);\n return allKeys;\n }\n}\n","import Var from \"./var\";\n\n// Use a global so that multiple copies of crosstalk.js can be loaded and still\n// have groups behave as singletons across all copies.\nglobal.__crosstalk_groups = global.__crosstalk_groups || {};\nlet groups = global.__crosstalk_groups;\n\nexport default function group(groupName) {\n if (groupName && typeof(groupName) === \"string\") {\n if (!groups.hasOwnProperty(groupName)) {\n groups[groupName] = new Group(groupName);\n }\n return groups[groupName];\n } else if (typeof(groupName) === \"object\" && groupName._vars && groupName.var) {\n // Appears to already be a group object\n return groupName;\n } else if (Array.isArray(groupName) &&\n groupName.length == 1 &&\n typeof(groupName[0]) === \"string\") {\n return group(groupName[0]);\n } else {\n throw new Error(\"Invalid groupName argument\");\n }\n}\n\nclass Group {\n constructor(name) {\n this.name = name;\n this._vars = {};\n }\n\n var(name) {\n if (!name || typeof(name) !== \"string\") {\n throw new Error(\"Invalid var name\");\n }\n\n if (!this._vars.hasOwnProperty(name))\n this._vars[name] = new Var(this, name);\n return this._vars[name];\n }\n\n has(name) {\n if (!name || typeof(name) !== \"string\") {\n throw new Error(\"Invalid var name\");\n }\n\n return this._vars.hasOwnProperty(name);\n }\n}\n","import group from \"./group\";\nimport { SelectionHandle } from \"./selection\";\nimport { FilterHandle } from \"./filter\";\nimport { bind } from \"./input\";\nimport \"./input_selectize\";\nimport \"./input_checkboxgroup\";\nimport \"./input_slider\";\n\nconst defaultGroup = group(\"default\");\n\nfunction var_(name) {\n return defaultGroup.var(name);\n}\n\nfunction has(name) {\n return defaultGroup.has(name);\n}\n\nif (global.Shiny) {\n global.Shiny.addCustomMessageHandler(\"update-client-value\", function(message) {\n if (typeof(message.group) === \"string\") {\n group(message.group).var(message.name).set(message.value);\n } else {\n var_(message.name).set(message.value);\n }\n });\n}\n\nconst crosstalk = {\n group: group,\n var: var_,\n has: has,\n SelectionHandle: SelectionHandle,\n FilterHandle: FilterHandle,\n bind: bind\n};\n\n/**\n * @namespace crosstalk\n */\nexport default crosstalk;\nglobal.crosstalk = crosstalk;\n","let $ = global.jQuery;\n\nlet bindings = {};\n\nexport function register(reg) {\n bindings[reg.className] = reg;\n if (global.document && global.document.readyState !== \"complete\") {\n $(() => {\n bind();\n });\n } else if (global.document) {\n setTimeout(bind, 100);\n }\n}\n\nexport function bind() {\n Object.keys(bindings).forEach(function(className) {\n let binding = bindings[className];\n $(\".\" + binding.className).not(\".crosstalk-input-bound\").each(function(i, el) {\n bindInstance(binding, el);\n });\n });\n}\n\n// Escape jQuery identifier\nfunction $escape(val) {\n return val.replace(/([!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~])/g, \"\\\\$1\");\n}\n\nfunction bindEl(el) {\n let $el = $(el);\n Object.keys(bindings).forEach(function(className) {\n if ($el.hasClass(className) && !$el.hasClass(\"crosstalk-input-bound\")) {\n let binding = bindings[className];\n bindInstance(binding, el);\n }\n });\n}\n\nfunction bindInstance(binding, el) {\n let jsonEl = $(el).find(\"script[type='application/json'][data-for='\" + $escape(el.id) + \"']\");\n let data = JSON.parse(jsonEl[0].innerText);\n\n let instance = binding.factory(el, data);\n $(el).data(\"crosstalk-instance\", instance);\n $(el).addClass(\"crosstalk-input-bound\");\n}\n\nif (global.Shiny) {\n let inputBinding = new global.Shiny.InputBinding();\n let $ = global.jQuery;\n $.extend(inputBinding, {\n find: function(scope) {\n return $(scope).find(\".crosstalk-input\");\n },\n initialize: function(el) {\n if (!$(el).hasClass(\"crosstalk-input-bound\")) {\n bindEl(el);\n }\n },\n getId: function(el) {\n return el.id;\n },\n getValue: function(el) {\n\n },\n setValue: function(el, value) {\n\n },\n receiveMessage: function(el, data) {\n\n },\n subscribe: function(el, callback) {\n $(el).data(\"crosstalk-instance\").resume();\n },\n unsubscribe: function(el) {\n $(el).data(\"crosstalk-instance\").suspend();\n }\n });\n global.Shiny.inputBindings.register(inputBinding, \"crosstalk.inputBinding\");\n}\n","import * as input from \"./input\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\n\ninput.register({\n className: \"crosstalk-input-checkboxgroup\",\n\n factory: function(el, data) {\n /*\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n let ctHandle = new FilterHandle(data.group);\n\n let lastKnownKeys;\n let $el = $(el);\n $el.on(\"change\", \"input[type='checkbox']\", function() {\n let checked = $el.find(\"input[type='checkbox']:checked\");\n if (checked.length === 0) {\n lastKnownKeys = null;\n ctHandle.clear();\n } else {\n let keys = {};\n checked.each(function() {\n data.map[this.value].forEach(function(key) {\n keys[key] = true;\n });\n });\n let keyArray = Object.keys(keys);\n keyArray.sort();\n lastKnownKeys = keyArray;\n ctHandle.set(keyArray);\n }\n });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n","import * as input from \"./input\";\nimport * as util from \"./util\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\n\ninput.register({\n className: \"crosstalk-input-select\",\n\n factory: function(el, data) {\n /*\n * items: {value: [...], label: [...]}\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n\n let first = [{value: \"\", label: \"(All)\"}];\n let items = util.dataframeToD3(data.items);\n let opts = {\n options: first.concat(items),\n valueField: \"value\",\n labelField: \"label\",\n searchField: \"label\"\n };\n\n let select = $(el).find(\"select\")[0];\n\n let selectize = $(select).selectize(opts)[0].selectize;\n\n let ctHandle = new FilterHandle(data.group);\n\n let lastKnownKeys;\n selectize.on(\"change\", function() {\n if (selectize.items.length === 0) {\n lastKnownKeys = null;\n ctHandle.clear();\n } else {\n let keys = {};\n selectize.items.forEach(function(group) {\n data.map[group].forEach(function(key) {\n keys[key] = true;\n });\n });\n let keyArray = Object.keys(keys);\n keyArray.sort();\n lastKnownKeys = keyArray;\n ctHandle.set(keyArray);\n }\n });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n","import * as input from \"./input\";\nimport { FilterHandle } from \"./filter\";\n\nlet $ = global.jQuery;\nlet strftime = global.strftime;\n\ninput.register({\n className: \"crosstalk-input-slider\",\n\n factory: function(el, data) {\n /*\n * map: {\"groupA\": [\"keyA\", \"keyB\", ...], ...}\n * group: \"ct-groupname\"\n */\n let ctHandle = new FilterHandle(data.group);\n\n let opts = {};\n let $el = $(el).find(\"input\");\n let dataType = $el.data(\"data-type\");\n let timeFormat = $el.data(\"time-format\");\n let round = $el.data(\"round\");\n let timeFormatter;\n\n // Set up formatting functions\n if (dataType === \"date\") {\n timeFormatter = strftime.utc();\n opts.prettify = function(num) {\n return timeFormatter(timeFormat, new Date(num));\n };\n\n } else if (dataType === \"datetime\") {\n let timezone = $el.data(\"timezone\");\n if (timezone)\n timeFormatter = strftime.timezone(timezone);\n else\n timeFormatter = strftime;\n\n opts.prettify = function(num) {\n return timeFormatter(timeFormat, new Date(num));\n };\n } else if (dataType === \"number\") {\n if (typeof round !== \"undefined\")\n opts.prettify = function(num) {\n let factor = Math.pow(10, round);\n return Math.round(num * factor) / factor;\n };\n }\n\n $el.ionRangeSlider(opts);\n\n function getValue() {\n let result = $el.data(\"ionRangeSlider\").result;\n\n // Function for converting numeric value from slider to appropriate type.\n let convert;\n let dataType = $el.data(\"data-type\");\n if (dataType === \"date\") {\n convert = function(val) {\n return formatDateUTC(new Date(+val));\n };\n } else if (dataType === \"datetime\") {\n convert = function(val) {\n // Convert ms to s\n return +val / 1000;\n };\n } else {\n convert = function(val) { return +val; };\n }\n\n if ($el.data(\"ionRangeSlider\").options.type === \"double\") {\n return [convert(result.from), convert(result.to)];\n } else {\n return convert(result.from);\n }\n }\n\n let lastKnownKeys = null;\n\n $el.on(\"change.crosstalkSliderInput\", function(event) {\n if (!$el.data(\"updating\") && !$el.data(\"animating\")) {\n let [from, to] = getValue();\n let keys = [];\n for (let i = 0; i < data.values.length; i++) {\n let val = data.values[i];\n if (val >= from && val <= to) {\n keys.push(data.keys[i]);\n }\n }\n keys.sort();\n ctHandle.set(keys);\n lastKnownKeys = keys;\n }\n });\n\n\n // let $el = $(el);\n // $el.on(\"change\", \"input[type=\"checkbox\"]\", function() {\n // let checked = $el.find(\"input[type=\"checkbox\"]:checked\");\n // if (checked.length === 0) {\n // ctHandle.clear();\n // } else {\n // let keys = {};\n // checked.each(function() {\n // data.map[this.value].forEach(function(key) {\n // keys[key] = true;\n // });\n // });\n // let keyArray = Object.keys(keys);\n // keyArray.sort();\n // ctHandle.set(keyArray);\n // }\n // });\n\n return {\n suspend: function() {\n ctHandle.clear();\n },\n resume: function() {\n if (lastKnownKeys)\n ctHandle.set(lastKnownKeys);\n }\n };\n }\n});\n\n\n// Convert a number to a string with leading zeros\nfunction padZeros(n, digits) {\n let str = n.toString();\n while (str.length < digits)\n str = \"0\" + str;\n return str;\n}\n\n// Given a Date object, return a string in yyyy-mm-dd format, using the\n// UTC date. This may be a day off from the date in the local time zone.\nfunction formatDateUTC(date) {\n if (date instanceof Date) {\n return date.getUTCFullYear() + \"-\" +\n padZeros(date.getUTCMonth()+1, 2) + \"-\" +\n padZeros(date.getUTCDate(), 2);\n\n } else {\n return null;\n }\n}\n","import Events from \"./events\";\nimport grp from \"./group\";\nimport * as util from \"./util\";\n\n/**\n * Use this class to read and write (and listen for changes to) the selection\n * for a Crosstalk group. This is intended to be used for linked brushing.\n *\n * If two (or more) `SelectionHandle` instances in the same webpage share the\n * same group name, they will share the same state. Setting the selection using\n * one `SelectionHandle` instance will result in the `value` property instantly\n * changing across the others, and `\"change\"` event listeners on all instances\n * (including the one that initiated the sending) will fire.\n *\n * @param {string} [group] - The name of the Crosstalk group, or if none,\n * null or undefined (or any other falsy value). This can be changed later\n * via the [SelectionHandle#setGroup](#setGroup) method.\n * @param {Object} [extraInfo] - An object whose properties will be copied to\n * the event object whenever an event is emitted.\n */\nexport class SelectionHandle {\n\n constructor(group = null, extraInfo = null) {\n this._eventRelay = new Events();\n this._emitter = new util.SubscriptionTracker(this._eventRelay);\n\n // Name of the group we're currently tracking, if any. Can change over time.\n this._group = null;\n // The Var we're currently tracking, if any. Can change over time.\n this._var = null;\n // The event handler subscription we currently have on var.on(\"change\").\n this._varOnChangeSub = null;\n\n this._extraInfo = util.extend({ sender: this }, extraInfo);\n\n this.setGroup(group);\n }\n\n /**\n * Changes the Crosstalk group membership of this SelectionHandle. The group\n * being switched away from (if any) will not have its selection value\n * modified as a result of calling `setGroup`, even if this handle was the\n * most recent handle to set the selection of the group.\n *\n * The group being switched to (if any) will also not have its selection value\n * modified as a result of calling `setGroup`. If you want to set the\n * selection value of the new group, call `set` explicitly.\n *\n * @param {string} group - The name of the Crosstalk group, or null (or\n * undefined) to clear the group.\n */\n setGroup(group) {\n // If group is unchanged, do nothing\n if (this._group === group)\n return;\n // Treat null, undefined, and other falsy values the same\n if (!this._group && !group)\n return;\n\n if (this._var) {\n this._var.off(\"change\", this._varOnChangeSub);\n this._var = null;\n this._varOnChangeSub = null;\n }\n\n this._group = group;\n\n if (group) {\n this._var = grp(group).var(\"selection\");\n let sub = this._var.on(\"change\", (e) => {\n this._eventRelay.trigger(\"change\", e, this);\n });\n this._varOnChangeSub = sub;\n }\n }\n\n /**\n * Retrieves the current selection for the group represented by this\n * `SelectionHandle`.\n *\n * - If no selection is active, then this value will be falsy.\n * - If a selection is active, but no data points are selected, then this\n * value will be an empty array.\n * - If a selection is active, and data points are selected, then the keys\n * of the selected data points will be present in the array.\n */\n get value() {\n return this._var ? this._var.get() : null;\n }\n\n /**\n * Combines the given `extraInfo` (if any) with the handle's default\n * `_extraInfo` (if any).\n * @private\n */\n _mergeExtraInfo(extraInfo) {\n // Important incidental effect: shallow clone is returned\n return util.extend({},\n this._extraInfo ? this._extraInfo : null,\n extraInfo ? extraInfo : null);\n }\n\n /**\n * Overwrites the current selection for the group, and raises the `\"change\"`\n * event among all of the group's '`SelectionHandle` instances (including\n * this one).\n *\n * @fires SelectionHandle#change\n * @param {string[]} selectedKeys - Falsy, empty array, or array of keys (see\n * {@link SelectionHandle#value}).\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any options that were\n * passed into the `SelectionHandle` constructor).\n */\n set(selectedKeys, extraInfo) {\n if (this._var)\n this._var.set(selectedKeys, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * Overwrites the current selection for the group, and raises the `\"change\"`\n * event among all of the group's '`SelectionHandle` instances (including\n * this one).\n *\n * @fires SelectionHandle#change\n * @param {Object} [extraInfo] - Extra properties to be included on the event\n * object that's passed to listeners (in addition to any that were passed\n * into the `SelectionHandle` constructor).\n */\n clear(extraInfo) {\n if (this._var)\n this.set(void 0, this._mergeExtraInfo(extraInfo));\n }\n\n /**\n * Subscribes to events on this `SelectionHandle`.\n *\n * @param {string} eventType - Indicates the type of events to listen to.\n * Currently, only `\"change\"` is supported.\n * @param {SelectionHandle~listener} listener - The callback function that\n * will be invoked when the event occurs.\n * @return {string} - A token to pass to {@link SelectionHandle#off} to cancel\n * this subscription.\n */\n on(eventType, listener) {\n return this._emitter.on(eventType, listener);\n }\n\n /**\n * Cancels event subscriptions created by {@link SelectionHandle#on}.\n *\n * @param {string} eventType - The type of event to unsubscribe.\n * @param {string|SelectionHandle~listener} listener - Either the callback\n * function previously passed into {@link SelectionHandle#on}, or the\n * string that was returned from {@link SelectionHandle#on}.\n */\n off(eventType, listener) {\n return this._emitter.off(eventType, listener);\n }\n\n /**\n * Shuts down the `SelectionHandle` object.\n *\n * Removes all event listeners that were added through this handle.\n */\n close() {\n this._emitter.removeAllListeners();\n this.setGroup(null);\n }\n}\n\n/**\n * @callback SelectionHandle~listener\n * @param {Object} event - An object containing details of the event. For\n * `\"change\"` events, this includes the properties `value` (the new\n * value of the selection, or `undefined` if no selection is active),\n * `oldValue` (the previous value of the selection), and `sender` (the\n * `SelectionHandle` instance that made the change).\n */\n\n/**\n * @event SelectionHandle#change\n * @type {object}\n * @property {object} value - The new value of the selection, or `undefined`\n * if no selection is active.\n * @property {object} oldValue - The previous value of the selection.\n * @property {SelectionHandle} sender - The `SelectionHandle` instance that\n * changed the value.\n */\n","export function extend(target, ...sources) {\n for (let i = 0; i < sources.length; i++) {\n let src = sources[i];\n if (typeof(src) === \"undefined\" || src === null)\n continue;\n\n for (let key in src) {\n if (src.hasOwnProperty(key)) {\n target[key] = src[key];\n }\n }\n }\n return target;\n}\n\nexport function checkSorted(list) {\n for (let i = 1; i < list.length; i++) {\n if (list[i] <= list[i-1]) {\n throw new Error(\"List is not sorted or contains duplicate\");\n }\n }\n}\n\nexport function diffSortedLists(a, b) {\n let i_a = 0;\n let i_b = 0;\n\n if (!a) a = [];\n if (!b) b = [];\n\n let a_only = [];\n let b_only = [];\n\n checkSorted(a);\n checkSorted(b);\n\n while (i_a < a.length && i_b < b.length) {\n if (a[i_a] === b[i_b]) {\n i_a++;\n i_b++;\n } else if (a[i_a] < b[i_b]) {\n a_only.push(a[i_a++]);\n } else {\n b_only.push(b[i_b++]);\n }\n }\n\n if (i_a < a.length)\n a_only = a_only.concat(a.slice(i_a));\n if (i_b < b.length)\n b_only = b_only.concat(b.slice(i_b));\n return {\n removed: a_only,\n added: b_only\n };\n}\n\n// Convert from wide: { colA: [1,2,3], colB: [4,5,6], ... }\n// to long: [ {colA: 1, colB: 4}, {colA: 2, colB: 5}, ... ]\nexport function dataframeToD3(df) {\n let names = [];\n let length;\n for (let name in df) {\n if (df.hasOwnProperty(name))\n names.push(name);\n if (typeof(df[name]) !== \"object\" || typeof(df[name].length) === \"undefined\") {\n throw new Error(\"All fields must be arrays\");\n } else if (typeof(length) !== \"undefined\" && length !== df[name].length) {\n throw new Error(\"All fields must be arrays of the same length\");\n }\n length = df[name].length;\n }\n let results = [];\n let item;\n for (let row = 0; row < length; row++) {\n item = {};\n for (let col = 0; col < names.length; col++) {\n item[names[col]] = df[names[col]][row];\n }\n results.push(item);\n }\n return results;\n}\n\n/**\n * Keeps track of all event listener additions/removals and lets all active\n * listeners be removed with a single operation.\n *\n * @private\n */\nexport class SubscriptionTracker {\n constructor(emitter) {\n this._emitter = emitter;\n this._subs = {};\n }\n\n on(eventType, listener) {\n let sub = this._emitter.on(eventType, listener);\n this._subs[sub] = eventType;\n return sub;\n }\n\n off(eventType, listener) {\n let sub = this._emitter.off(eventType, listener);\n if (sub) {\n delete this._subs[sub];\n }\n return sub;\n }\n\n removeAllListeners() {\n let current_subs = this._subs;\n this._subs = {};\n Object.keys(current_subs).forEach((sub) => {\n this._emitter.off(current_subs[sub], sub);\n });\n }\n}\n","import Events from \"./events\";\n\nexport default class Var {\n constructor(group, name, /*optional*/ value) {\n this._group = group;\n this._name = name;\n this._value = value;\n this._events = new Events();\n }\n\n get() {\n return this._value;\n }\n\n set(value, /*optional*/ event) {\n if (this._value === value) {\n // Do nothing; the value hasn't changed\n return;\n }\n let oldValue = this._value;\n this._value = value;\n // Alert JavaScript listeners that the value has changed\n let evt = {};\n if (event && typeof(event) === \"object\") {\n for (let k in event) {\n if (event.hasOwnProperty(k))\n evt[k] = event[k];\n }\n }\n evt.oldValue = oldValue;\n evt.value = value;\n this._events.trigger(\"change\", evt, this);\n\n // TODO: Make this extensible, to let arbitrary back-ends know that\n // something has changed\n if (global.Shiny && global.Shiny.onInputChange) {\n global.Shiny.onInputChange(\n \".clientValue-\" +\n (this._group.name !== null ? this._group.name + \"-\" : \"\") +\n this._name,\n typeof(value) === \"undefined\" ? null : value\n );\n }\n }\n\n on(eventType, listener) {\n return this._events.on(eventType, listener);\n }\n\n off(eventType, listener) {\n return this._events.off(eventType, listener);\n }\n}\n"]} \ No newline at end of file diff --git a/english/site_libs/crosstalk-1.2.0/scss/crosstalk.scss b/english/site_libs/crosstalk-1.2.0/scss/crosstalk.scss new file mode 100644 index 0000000..3566561 --- /dev/null +++ b/english/site_libs/crosstalk-1.2.0/scss/crosstalk.scss @@ -0,0 +1,75 @@ +/* Adjust margins outwards, so column contents line up with the edges of the + parent of container-fluid. */ +.container-fluid.crosstalk-bscols { + margin-left: -30px; + margin-right: -30px; + white-space: normal; +} + +/* But don't adjust the margins outwards if we're directly under the body, + i.e. we were the top-level of something at the console. */ +body > .container-fluid.crosstalk-bscols { + margin-left: auto; + margin-right: auto; +} + +.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column { + display: inline-block; + padding-right: 12px; + vertical-align: top; +} + +@media only screen and (max-width:480px) { + .crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column { + display: block; + padding-right: inherit; + } +} + +/* Relevant BS3 styles to make filter_checkbox() look reasonable without Bootstrap */ +.crosstalk-input { + margin-bottom: 15px; /* a la .form-group */ + .control-label { + margin-bottom: 0; + vertical-align: middle; + } + input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px; + line-height: normal; + } + .checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; + } + .checkbox > label{ + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer; + } + .checkbox input[type="checkbox"], + .checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 2px; + margin-left: -20px; + } + .checkbox + .checkbox { + margin-top: -5px; + } + .checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer; + } + .checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; + } +} diff --git a/english/site_libs/datatables-binding-0.20/datatables.js b/english/site_libs/datatables-binding-0.20/datatables.js new file mode 100644 index 0000000..fc04fd2 --- /dev/null +++ b/english/site_libs/datatables-binding-0.20/datatables.js @@ -0,0 +1,1421 @@ +(function() { + +// some helper functions: using a global object DTWidget so that it can be used +// in JS() code, e.g. datatable(options = list(foo = JS('code'))); unlike R's +// dynamic scoping, when 'code' is eval()'ed, JavaScript does not know objects +// from the "parent frame", e.g. JS('DTWidget') will not work unless it was made +// a global object +var DTWidget = {}; + +// 123456666.7890 -> 123,456,666.7890 +var markInterval = function(d, digits, interval, mark, decMark, precision) { + x = precision ? d.toPrecision(digits) : d.toFixed(digits); + if (!/^-?[\d.]+$/.test(x)) return x; + var xv = x.split('.'); + if (xv.length > 2) return x; // should have at most one decimal point + xv[0] = xv[0].replace(new RegExp('\\B(?=(\\d{' + interval + '})+(?!\\d))', 'g'), mark); + return xv.join(decMark); +}; + +DTWidget.formatCurrency = function(data, currency, digits, interval, mark, decMark, before) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + var res = markInterval(d, digits, interval, mark, decMark); + res = before ? (/^-/.test(res) ? '-' + currency + res.replace(/^-/, '') : currency + res) : + res + currency; + return res; +}; + +DTWidget.formatString = function(data, prefix, suffix) { + var d = data; + if (d === null) return ''; + return prefix + d + suffix; +}; + +DTWidget.formatPercentage = function(data, digits, interval, mark, decMark) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + return markInterval(d * 100, digits, interval, mark, decMark) + '%'; +}; + +DTWidget.formatRound = function(data, digits, interval, mark, decMark) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + return markInterval(d, digits, interval, mark, decMark); +}; + +DTWidget.formatSignif = function(data, digits, interval, mark, decMark) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + return markInterval(d, digits, interval, mark, decMark, true); +}; + +DTWidget.formatDate = function(data, method, params) { + var d = data; + if (d === null) return ''; + // (new Date('2015-10-28')).toDateString() may return 2015-10-27 because the + // actual time created could be like 'Tue Oct 27 2015 19:00:00 GMT-0500 (CDT)', + // i.e. the date-only string is treated as UTC time instead of local time + if ((method === 'toDateString' || method === 'toLocaleDateString') && /^\d{4,}\D\d{2}\D\d{2}$/.test(d)) { + d = d.split(/\D/); + d = new Date(d[0], d[1] - 1, d[2]); + } else { + d = new Date(d); + } + return d[method].apply(d, params); +}; + +window.DTWidget = DTWidget; + +var transposeArray2D = function(a) { + return a.length === 0 ? a : HTMLWidgets.transposeArray2D(a); +}; + +var crosstalkPluginsInstalled = false; + +function maybeInstallCrosstalkPlugins() { + if (crosstalkPluginsInstalled) + return; + crosstalkPluginsInstalled = true; + + $.fn.dataTable.ext.afnFiltering.push( + function(oSettings, aData, iDataIndex) { + var ctfilter = oSettings.nTable.ctfilter; + if (ctfilter && !ctfilter[iDataIndex]) + return false; + + var ctselect = oSettings.nTable.ctselect; + if (ctselect && !ctselect[iDataIndex]) + return false; + + return true; + } + ); +} + +HTMLWidgets.widget({ + name: "datatables", + type: "output", + renderOnNullValue: true, + initialize: function(el, width, height) { + $(el).html(' '); + return { + data: null, + ctfilterHandle: new crosstalk.FilterHandle(), + ctfilterSubscription: null, + ctselectHandle: new crosstalk.SelectionHandle(), + ctselectSubscription: null + }; + }, + renderValue: function(el, data, instance) { + if (el.offsetWidth === 0 || el.offsetHeight === 0) { + instance.data = data; + return; + } + instance.data = null; + var $el = $(el); + $el.empty(); + + if (data === null) { + $el.append(' '); + // clear previous Shiny inputs (if any) + for (var i in instance.clearInputs) instance.clearInputs[i](); + instance.clearInputs = {}; + return; + } + + var crosstalkOptions = data.crosstalkOptions; + if (!crosstalkOptions) crosstalkOptions = { + 'key': null, 'group': null + }; + if (crosstalkOptions.group) { + maybeInstallCrosstalkPlugins(); + instance.ctfilterHandle.setGroup(crosstalkOptions.group); + instance.ctselectHandle.setGroup(crosstalkOptions.group); + } + + // if we are in the viewer then we always want to fillContainer and + // and autoHideNavigation (unless the user has explicitly set these) + if (window.HTMLWidgets.viewerMode) { + if (!data.hasOwnProperty("fillContainer")) + data.fillContainer = true; + if (!data.hasOwnProperty("autoHideNavigation")) + data.autoHideNavigation = true; + } + + // propagate fillContainer to instance (so we have it in resize) + instance.fillContainer = data.fillContainer; + + var cells = data.data; + + if (cells instanceof Array) cells = transposeArray2D(cells); + + $el.append(data.container); + var $table = $el.find('table'); + if (data.class) $table.addClass(data.class); + if (data.caption) $table.prepend(data.caption); + + if (!data.selection) data.selection = { + mode: 'none', selected: null, target: 'row', selectable: null + }; + if (HTMLWidgets.shinyMode && data.selection.mode !== 'none' && + data.selection.target === 'row+column') { + if ($table.children('tfoot').length === 0) { + $table.append($('')); + $table.find('thead tr').clone().appendTo($table.find('tfoot')); + } + } + + // column filters + var filterRow; + switch (data.filter) { + case 'top': + $table.children('thead').append(data.filterHTML); + filterRow = $table.find('thead tr:last td'); + break; + case 'bottom': + if ($table.children('tfoot').length === 0) { + $table.append($('')); + } + $table.children('tfoot').prepend(data.filterHTML); + filterRow = $table.find('tfoot tr:first td'); + break; + } + + var options = { searchDelay: 1000 }; + if (cells !== null) $.extend(options, { + data: cells + }); + + // options for fillContainer + var bootstrapActive = typeof($.fn.popover) != 'undefined'; + if (instance.fillContainer) { + + // force scrollX/scrollY and turn off autoWidth + options.scrollX = true; + options.scrollY = "100px"; // can be any value, we'll adjust below + + // if we aren't paginating then move around the info/filter controls + // to save space at the bottom and rephrase the info callback + if (data.options.paging === false) { + + // we know how to do this cleanly for bootstrap, not so much + // for other themes/layouts + if (bootstrapActive) { + options.dom = "<'row'<'col-sm-4'i><'col-sm-8'f>>" + + "<'row'<'col-sm-12'tr>>"; + } + + options.fnInfoCallback = function(oSettings, iStart, iEnd, + iMax, iTotal, sPre) { + return Number(iTotal).toLocaleString() + " records"; + }; + } + } + + // auto hide navigation if requested + // Note, this only works on client-side processing mode as on server-side, + // cells (data.data) is null; In addition, we require the pageLength option + // being provided explicitly to enable this. Despite we may be able to deduce + // the default value of pageLength, it may complicate things so we'd rather + // put this responsiblity to users and warn them on the R side. + if (data.autoHideNavigation === true && data.options.paging !== false) { + // strip all nav if length >= cells + if ((cells instanceof Array) && data.options.pageLength >= cells.length) + options.dom = bootstrapActive ? "<'row'<'col-sm-12'tr>>" : "t"; + // alternatively lean things out for flexdashboard mobile portrait + else if (bootstrapActive && window.FlexDashboard && window.FlexDashboard.isMobilePhone()) + options.dom = "<'row'<'col-sm-12'f>>" + + "<'row'<'col-sm-12'tr>>" + + "<'row'<'col-sm-12'p>>"; + } + + $.extend(true, options, data.options || {}); + + var searchCols = options.searchCols; + if (searchCols) { + searchCols = searchCols.map(function(x) { + return x === null ? '' : x.search; + }); + // FIXME: this means I don't respect the escapeRegex setting + delete options.searchCols; + } + + // server-side processing? + var server = options.serverSide === true; + + // use the dataSrc function to pre-process JSON data returned from R + var DT_rows_all = [], DT_rows_current = []; + if (server && HTMLWidgets.shinyMode && typeof options.ajax === 'object' && + /^session\/[\da-z]+\/dataobj/.test(options.ajax.url) && !options.ajax.dataSrc) { + options.ajax.dataSrc = function(json) { + DT_rows_all = $.makeArray(json.DT_rows_all); + DT_rows_current = $.makeArray(json.DT_rows_current); + var data = json.data; + if (!colReorderEnabled()) return data; + var table = $table.DataTable(), order = table.colReorder.order(), flag = true, i, j, row; + for (i = 0; i < order.length; ++i) if (order[i] !== i) flag = false; + if (flag) return data; + for (i = 0; i < data.length; ++i) { + row = data[i].slice(); + for (j = 0; j < order.length; ++j) data[i][j] = row[order[j]]; + } + return data; + }; + } + + var thiz = this; + if (instance.fillContainer) $table.on('init.dt', function(e) { + thiz.fillAvailableHeight(el, $(el).innerHeight()); + }); + // If the page contains serveral datatables and one of which enables colReorder, + // the table.colReorder.order() function will exist but throws error when called. + // So it seems like the only way to know if colReorder is enabled or not is to + // check the options. + var colReorderEnabled = function() { return "colReorder" in options; }; + var table = $table.DataTable(options); + $el.data('datatable', table); + + // Unregister previous Crosstalk event subscriptions, if they exist + if (instance.ctfilterSubscription) { + instance.ctfilterHandle.off("change", instance.ctfilterSubscription); + instance.ctfilterSubscription = null; + } + if (instance.ctselectSubscription) { + instance.ctselectHandle.off("change", instance.ctselectSubscription); + instance.ctselectSubscription = null; + } + + if (!crosstalkOptions.group) { + $table[0].ctfilter = null; + $table[0].ctselect = null; + } else { + var key = crosstalkOptions.key; + function keysToMatches(keys) { + if (!keys) { + return null; + } else { + var selectedKeys = {}; + for (var i = 0; i < keys.length; i++) { + selectedKeys[keys[i]] = true; + } + var matches = {}; + for (var j = 0; j < key.length; j++) { + if (selectedKeys[key[j]]) + matches[j] = true; + } + return matches; + } + } + + function applyCrosstalkFilter(e) { + $table[0].ctfilter = keysToMatches(e.value); + table.draw(); + } + instance.ctfilterSubscription = instance.ctfilterHandle.on("change", applyCrosstalkFilter); + applyCrosstalkFilter({value: instance.ctfilterHandle.filteredKeys}); + + function applyCrosstalkSelection(e) { + if (e.sender !== instance.ctselectHandle) { + table + .rows('.' + selClass, {search: 'applied'}) + .nodes() + .to$() + .removeClass(selClass); + if (selectedRows) + changeInput('rows_selected', selectedRows(), void 0, true); + } + + if (e.sender !== instance.ctselectHandle && e.value && e.value.length) { + var matches = keysToMatches(e.value); + + // persistent selection with plotly (& leaflet) + var ctOpts = crosstalk.var("plotlyCrosstalkOpts").get() || {}; + if (ctOpts.persistent === true) { + var matches = $.extend(matches, $table[0].ctselect); + } + + $table[0].ctselect = matches; + table.draw(); + } else { + if ($table[0].ctselect) { + $table[0].ctselect = null; + table.draw(); + } + } + } + instance.ctselectSubscription = instance.ctselectHandle.on("change", applyCrosstalkSelection); + // TODO: This next line doesn't seem to work when renderDataTable is used + applyCrosstalkSelection({value: instance.ctselectHandle.value}); + } + + var inArray = function(val, array) { + return $.inArray(val, $.makeArray(array)) > -1; + }; + + // encode + to %2B when searching in the table on server side, because + // shiny::parseQueryString() treats + as spaces, and DataTables does not + // encode + to %2B (or % to %25) when sending the request + var encode_plus = function(x) { + return server ? x.replace(/%/g, '%25').replace(/\+/g, '%2B') : x; + }; + + // search the i-th column + var searchColumn = function(i, value) { + var regex = false, ci = true; + if (options.search) { + regex = options.search.regex, + ci = options.search.caseInsensitive !== false; + } + return table.column(i).search(encode_plus(value), regex, !regex, ci); + }; + + if (data.filter !== 'none') { + + filterRow.each(function(i, td) { + + var $td = $(td), type = $td.data('type'), filter; + var $input = $td.children('div').first().children('input'); + $input.prop('disabled', !table.settings()[0].aoColumns[i].bSearchable || type === 'disabled'); + $input.on('input blur', function() { + $input.next('span').toggle(Boolean($input.val())); + }); + // Bootstrap sets pointer-events to none and we won't be able to click + // the clear button + $input.next('span').css('pointer-events', 'auto').hide().click(function() { + $(this).hide().prev('input').val('').trigger('input').focus(); + }); + var searchCol; // search string for this column + if (searchCols && searchCols[i]) { + searchCol = searchCols[i]; + $input.val(searchCol).trigger('input'); + } + var $x = $td.children('div').last(); + + // remove the overflow: hidden attribute of the scrollHead + // (otherwise the scrolling table body obscures the filters) + // The workaround and the discussion from + // https://github.com/rstudio/DT/issues/554#issuecomment-518007347 + // Otherwise the filter selection will not be anchored to the values + // when the columns number is many and scrollX is enabled. + var scrollHead = $(el).find('.dataTables_scrollHead,.dataTables_scrollFoot'); + var cssOverflowHead = scrollHead.css('overflow'); + var scrollBody = $(el).find('.dataTables_scrollBody'); + var cssOverflowBody = scrollBody.css('overflow'); + var scrollTable = $(el).find('.dataTables_scroll'); + var cssOverflowTable = scrollTable.css('overflow'); + if (cssOverflowHead === 'hidden') { + $x.on('show hide', function(e) { + if (e.type === 'show') { + scrollHead.css('overflow', 'visible'); + scrollBody.css('overflow', 'visible'); + scrollTable.css('overflow-x', 'scroll'); + } else { + scrollHead.css('overflow', cssOverflowHead); + scrollBody.css('overflow', cssOverflowBody); + scrollTable.css('overflow-x', cssOverflowTable); + } + }); + $x.css('z-index', 25); + } + + if (inArray(type, ['factor', 'logical'])) { + $input.on({ + click: function() { + $input.parent().hide(); $x.show().trigger('show'); filter[0].selectize.focus(); + }, + input: function() { + if ($input.val() === '') filter[0].selectize.setValue([]); + } + }); + var $input2 = $x.children('select'); + filter = $input2.selectize({ + options: $input2.data('options').map(function(v, i) { + return ({text: v, value: v}); + }), + plugins: ['remove_button'], + hideSelected: true, + onChange: function(value) { + if (value === null) value = []; // compatibility with jQuery 3.0 + $input.val(value.length ? JSON.stringify(value) : ''); + if (value.length) $input.trigger('input'); + $input.attr('title', $input.val()); + if (server) { + table.column(i).search(value.length ? encode_plus(JSON.stringify(value)) : '').draw(); + return; + } + // turn off filter if nothing selected + $td.data('filter', value.length > 0); + table.draw(); // redraw table, and filters will be applied + } + }); + if (searchCol) filter[0].selectize.setValue(JSON.parse(searchCol)); + filter[0].selectize.on('blur', function() { + $x.hide().trigger('hide'); $input.parent().show(); $input.trigger('blur'); + }); + filter.next('div').css('margin-bottom', 'auto'); + } else if (type === 'character') { + var fun = function() { + searchColumn(i, $input.val()).draw(); + }; + if (server) { + fun = $.fn.dataTable.util.throttle(fun, options.searchDelay); + } + $input.on('input', fun); + } else if (inArray(type, ['number', 'integer', 'date', 'time'])) { + var $x0 = $x; + $x = $x0.children('div').first(); + $x0.css({ + 'background-color': '#fff', + 'border': '1px #ddd solid', + 'border-radius': '4px', + 'padding': data.vertical ? '35px 20px': '20px 20px 10px 20px' + }); + var $spans = $x0.children('span').css({ + 'margin-top': data.vertical ? '0' : '10px', + 'white-space': 'nowrap' + }); + var $span1 = $spans.first(), $span2 = $spans.last(); + var r1 = +$x.data('min'), r2 = +$x.data('max'); + // when the numbers are too small or have many decimal places, the + // slider may have numeric precision problems (#150) + var scale = Math.pow(10, Math.max(0, +$x.data('scale') || 0)); + r1 = Math.round(r1 * scale); r2 = Math.round(r2 * scale); + var scaleBack = function(x, scale) { + if (scale === 1) return x; + var d = Math.round(Math.log(scale) / Math.log(10)); + // to avoid problems like 3.423/100 -> 0.034230000000000003 + return (x / scale).toFixed(d); + }; + var slider_min = function() { + return filter.noUiSlider('options').range.min; + }; + var slider_max = function() { + return filter.noUiSlider('options').range.max; + }; + $input.on({ + focus: function() { + $x0.show().trigger('show'); + // first, make sure the slider div leaves at least 20px between + // the two (slider value) span's + $x0.width(Math.max(160, $span1.outerWidth() + $span2.outerWidth() + 20)); + // then, if the input is really wide or slider is vertical, + // make the slider the same width as the input + if ($x0.outerWidth() < $input.outerWidth() || data.vertical) { + $x0.outerWidth($input.outerWidth()); + } + // make sure the slider div does not reach beyond the right margin + if ($(window).width() < $x0.offset().left + $x0.width()) { + $x0.offset({ + 'left': $input.offset().left + $input.outerWidth() - $x0.outerWidth() + }); + } + }, + blur: function() { + $x0.hide().trigger('hide'); + }, + input: function() { + if ($input.val() === '') filter.val([slider_min(), slider_max()]); + }, + change: function() { + var v = $input.val().replace(/\s/g, ''); + if (v === '') return; + v = v.split('...'); + if (v.length !== 2) { + $input.parent().addClass('has-error'); + return; + } + if (v[0] === '') v[0] = slider_min(); + if (v[1] === '') v[1] = slider_max(); + $input.parent().removeClass('has-error'); + // treat date as UTC time at midnight + var strTime = function(x) { + var s = type === 'date' ? 'T00:00:00Z' : ''; + var t = new Date(x + s).getTime(); + // add 10 minutes to date since it does not hurt the date, and + // it helps avoid the tricky floating point arithmetic problems, + // e.g. sometimes the date may be a few milliseconds earlier + // than the midnight due to precision problems in noUiSlider + return type === 'date' ? t + 3600000 : t; + }; + if (inArray(type, ['date', 'time'])) { + v[0] = strTime(v[0]); + v[1] = strTime(v[1]); + } + if (v[0] != slider_min()) v[0] *= scale; + if (v[1] != slider_max()) v[1] *= scale; + filter.val(v); + } + }); + var formatDate = function(d, isoFmt) { + d = scaleBack(d, scale); + if (type === 'number') return d; + if (type === 'integer') return parseInt(d); + var x = new Date(+d); + var fmt = ('filterDateFmt' in data) ? data.filterDateFmt[i] : undefined; + if (fmt !== undefined && isoFmt === false) return x[fmt.method].apply(x, fmt.params); + if (type === 'date') { + var pad0 = function(x) { + return ('0' + x).substr(-2, 2); + }; + return x.getUTCFullYear() + '-' + pad0(1 + x.getUTCMonth()) + + '-' + pad0(x.getUTCDate()); + } else { + return x.toISOString(); + } + }; + var opts = type === 'date' ? { step: 60 * 60 * 1000 } : + type === 'integer' ? { step: 1 } : {}; + + opts.orientation = data.vertical ? 'vertical': 'horizontal'; + opts.direction = data.vertical ? 'rtl': 'ltr'; + + filter = $x.noUiSlider($.extend({ + start: [r1, r2], + range: {min: r1, max: r2}, + connect: true + }, opts)); + if (scale > 1) (function() { + var t1 = r1, t2 = r2; + var val = filter.val(); + while (val[0] > r1 || val[1] < r2) { + if (val[0] > r1) { + t1 -= val[0] - r1; + } + if (val[1] < r2) { + t2 += r2 - val[1]; + } + filter = $x.noUiSlider($.extend({ + start: [t1, t2], + range: {min: t1, max: t2}, + connect: true + }, opts), true); + val = filter.val(); + } + r1 = t1; r2 = t2; + })(); + var updateSliderText = function(v1, v2) { + $span1.text(formatDate(v1, false)); $span2.text(formatDate(v2, false)); + }; + updateSliderText(r1, r2); + var updateSlider = function(e) { + var val = filter.val(); + // turn off filter if in full range + $td.data('filter', val[0] > slider_min() || val[1] < slider_max()); + var v1 = formatDate(val[0]), v2 = formatDate(val[1]), ival; + if ($td.data('filter')) { + ival = v1 + ' ... ' + v2; + $input.attr('title', ival).val(ival).trigger('input'); + } else { + $input.attr('title', '').val(''); + } + updateSliderText(val[0], val[1]); + if (e.type === 'slide') return; // no searching when sliding only + if (server) { + table.column(i).search($td.data('filter') ? ival : '').draw(); + return; + } + table.draw(); + }; + filter.on({ + set: updateSlider, + slide: updateSlider + }); + } + + // server-side processing will be handled by R (or whatever server + // language you use); the following code is only needed for client-side + // processing + if (server) { + // if a search string has been pre-set, search now + if (searchCol) searchColumn(i, searchCol).draw(); + return; + } + + var customFilter = function(settings, data, dataIndex) { + // there is no way to attach a search function to a specific table, + // and we need to make sure a global search function is not applied to + // all tables (i.e. a range filter in a previous table should not be + // applied to the current table); we use the settings object to + // determine if we want to perform searching on the current table, + // since settings.sTableId will be different to different tables + if (table.settings()[0] !== settings) return true; + // no filter on this column or no need to filter this column + if (typeof filter === 'undefined' || !$td.data('filter')) return true; + + var r = filter.val(), v, r0, r1; + var i_data = function(i) { + if (!colReorderEnabled()) return i; + var order = table.colReorder.order(), k; + for (k = 0; k < order.length; ++k) if (order[k] === i) return k; + return i; // in theory it will never be here... + } + v = data[i_data(i)]; + if (type === 'number' || type === 'integer') { + v = parseFloat(v); + // how to handle NaN? currently exclude these rows + if (isNaN(v)) return(false); + r0 = parseFloat(scaleBack(r[0], scale)) + r1 = parseFloat(scaleBack(r[1], scale)); + if (v >= r0 && v <= r1) return true; + } else if (type === 'date' || type === 'time') { + v = new Date(v); + r0 = new Date(r[0] / scale); r1 = new Date(r[1] / scale); + if (v >= r0 && v <= r1) return true; + } else if (type === 'factor') { + if (r.length === 0 || inArray(v, r)) return true; + } else if (type === 'logical') { + if (r.length === 0) return true; + if (inArray(v === '' ? 'na' : v, r)) return true; + } + return false; + }; + + $.fn.dataTable.ext.search.push(customFilter); + + // search for the preset search strings if it is non-empty + if (searchCol) { + if (inArray(type, ['factor', 'logical'])) { + filter[0].selectize.setValue(JSON.parse(searchCol)); + } else if (type === 'character') { + $input.trigger('input'); + } else if (inArray(type, ['number', 'integer', 'date', 'time'])) { + $input.trigger('change'); + } + } + + }); + + } + + // highlight search keywords + var highlight = function() { + var body = $(table.table().body()); + // removing the old highlighting first + body.unhighlight(); + + // don't highlight the "not found" row, so we get the rows using the api + if (table.rows({ filter: 'applied' }).data().length === 0) return; + // highlight global search keywords + body.highlight($.trim(table.search()).split(/\s+/)); + // then highlight keywords from individual column filters + if (filterRow) filterRow.each(function(i, td) { + var $td = $(td), type = $td.data('type'); + if (type !== 'character') return; + var $input = $td.children('div').first().children('input'); + var column = table.column(i).nodes().to$(), + val = $.trim($input.val()); + if (type !== 'character' || val === '') return; + column.highlight(val.split(/\s+/)); + }); + }; + + if (options.searchHighlight) { + table + .on('draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth', highlight) + .on('destroy', function() { + // remove event handler + table.off('draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth'); + }); + + // Set the option for escaping regex characters in our search string. This will be used + // for all future matching. + jQuery.fn.highlight.options.escapeRegex = (!options.search || !options.search.regex); + + // initial highlight for state saved conditions and initial states + highlight(); + } + + // run the callback function on the table instance + if (typeof data.callback === 'function') data.callback(table); + + // double click to edit the cell, row, column, or all cells + if (data.editable) table.on('dblclick.dt', 'tbody td', function(e) { + // only bring up the editor when the cell itself is dbclicked, and ignore + // other dbclick events bubbled up (e.g. from the ) + if (e.target !== this) return; + var target = [], immediate = false; + switch (data.editable.target) { + case 'cell': + target = [this]; + immediate = true; // edit will take effect immediately + break; + case 'row': + target = table.cells(table.cell(this).index().row, '*').nodes(); + break; + case 'column': + target = table.cells('*', table.cell(this).index().column).nodes(); + break; + case 'all': + target = table.cells().nodes(); + break; + default: + throw 'The editable parameter must be "cell", "row", "column", or "all"'; + } + var disableCols = data.editable.disable ? data.editable.disable.columns : null; + var numericCols = data.editable.numeric; + var areaCols = data.editable.area; + for (var i = 0; i < target.length; i++) { + (function(cell, current) { + var $cell = $(cell), html = $cell.html(); + var _cell = table.cell(cell), value = _cell.data(), index = _cell.index().column; + var $input; + if (inArray(index, numericCols)) { + $input = $(''); + } else if (inArray(index, areaCols)) { + $input = $(''); + } else { + $input = $(''); + } + if (!immediate) { + $cell.data('input', $input).data('html', html); + $input.attr('title', 'Hit Ctrl+Enter to finish editing, or Esc to cancel'); + } + $input.val(value); + if (inArray(index, disableCols)) { + $input.attr('readonly', '').css('filter', 'invert(25%)'); + } + $cell.empty().append($input); + if (cell === current) $input.focus(); + $input.css('width', '100%'); + + if (immediate) $input.on('blur', function(e) { + var valueNew = $input.val(); + if (valueNew != value) { + _cell.data(valueNew); + if (HTMLWidgets.shinyMode) { + changeInput('cell_edit', [cellInfo(cell)], 'DT.cellInfo', null, {priority: 'event'}); + } + // for server-side processing, users have to call replaceData() to update the table + if (!server) table.draw(false); + } else { + $cell.html(html); + } + }).on('keyup', function(e) { + // hit Escape to cancel editing + if (e.keyCode === 27) $input.trigger('blur'); + }); + + // bulk edit (row, column, or all) + if (!immediate) $input.on('keyup', function(e) { + var removeInput = function($cell, restore) { + $cell.data('input').remove(); + if (restore) $cell.html($cell.data('html')); + } + if (e.keyCode === 27) { + for (var i = 0; i < target.length; i++) { + removeInput($(target[i]), true); + } + } else if (e.keyCode === 13 && e.ctrlKey) { + // Ctrl + Enter + var cell, $cell, _cell, cellData = []; + for (var i = 0; i < target.length; i++) { + cell = target[i]; $cell = $(cell); _cell = table.cell(cell); + _cell.data($cell.data('input').val()); + HTMLWidgets.shinyMode && cellData.push(cellInfo(cell)); + removeInput($cell, false); + } + if (HTMLWidgets.shinyMode) { + changeInput('cell_edit', cellData, 'DT.cellInfo', null, {priority: "event"}); + } + if (!server) table.draw(false); + } + }); + })(target[i], this); + } + }); + + // interaction with shiny + if (!HTMLWidgets.shinyMode && !crosstalkOptions.group) return; + + var methods = {}; + var shinyData = {}; + + methods.updateCaption = function(caption) { + if (!caption) return; + $table.children('caption').replaceWith(caption); + } + + // register clear functions to remove input values when the table is removed + instance.clearInputs = {}; + + var changeInput = function(id, value, type, noCrosstalk, opts) { + var event = id; + id = el.id + '_' + id; + if (type) id = id + ':' + type; + // do not update if the new value is the same as old value + if (event !== 'cell_edit' && !/_clicked$/.test(event) && shinyData.hasOwnProperty(id) && shinyData[id] === JSON.stringify(value)) + return; + shinyData[id] = JSON.stringify(value); + if (HTMLWidgets.shinyMode && Shiny.setInputValue) { + Shiny.setInputValue(id, value, opts); + if (!instance.clearInputs[id]) instance.clearInputs[id] = function() { + Shiny.setInputValue(id, null); + } + } + + // HACK + if (event === "rows_selected" && !noCrosstalk) { + if (crosstalkOptions.group) { + var keys = crosstalkOptions.key; + var selectedKeys = null; + if (value) { + selectedKeys = []; + for (var i = 0; i < value.length; i++) { + // The value array's contents use 1-based row numbers, so we must + // convert to 0-based before indexing into the keys array. + selectedKeys.push(keys[value[i] - 1]); + } + } + instance.ctselectHandle.set(selectedKeys); + } + } + }; + + var addOne = function(x) { + return x.map(function(i) { return 1 + i; }); + }; + + var unique = function(x) { + var ux = []; + $.each(x, function(i, el){ + if ($.inArray(el, ux) === -1) ux.push(el); + }); + return ux; + } + + // change the row index of a cell + var tweakCellIndex = function(cell) { + var info = cell.index(); + // some cell may not be valid. e.g, #759 + // when using the RowGroup extension, datatables will + // generate the row label and the cells are not part of + // the data thus contain no row/col info + if (info === undefined) + return {row: null, col: null}; + if (server) { + info.row = DT_rows_current[info.row]; + } else { + info.row += 1; + } + return {row: info.row, col: info.column}; + } + + var cleanSelectedValues = function() { + changeInput('rows_selected', []); + changeInput('columns_selected', []); + changeInput('cells_selected', transposeArray2D([]), 'shiny.matrix'); + } + // #828 we should clean the selection on the server-side when the table reloads + cleanSelectedValues(); + + // a flag to indicates if select extension is initialized or not + var flagSelectExt = table.settings()[0]._select !== undefined; + // the Select extension should only be used in the client mode and + // when the selection.mode is set to none + if (data.selection.mode === 'none' && !server && flagSelectExt) { + var updateRowsSelected = function() { + var rows = table.rows({selected: true}); + var selected = []; + $.each(rows.indexes().toArray(), function(i, v) { + selected.push(v + 1); + }); + changeInput('rows_selected', selected); + } + var updateColsSelected = function() { + var columns = table.columns({selected: true}); + changeInput('columns_selected', columns.indexes().toArray()); + } + var updateCellsSelected = function() { + var cells = table.cells({selected: true}); + var selected = []; + cells.every(function() { + var row = this.index().row; + var col = this.index().column; + selected = selected.concat([[row + 1, col]]); + }); + changeInput('cells_selected', transposeArray2D(selected), 'shiny.matrix'); + } + table.on('select deselect', function(e, dt, type, indexes) { + updateRowsSelected(); + updateColsSelected(); + updateCellsSelected(); + }) + } + + var selMode = data.selection.mode, selTarget = data.selection.target; + var selDisable = data.selection.selectable === false; + if (inArray(selMode, ['single', 'multiple'])) { + var selClass = inArray(data.style, ['bootstrap', 'bootstrap4']) ? 'active' : 'selected'; + // selected1: row indices; selected2: column indices + var initSel = function(x) { + if (x === null || typeof x === 'boolean' || selTarget === 'cell') { + return {rows: [], cols: []}; + } else if (selTarget === 'row') { + return {rows: $.makeArray(x), cols: []}; + } else if (selTarget === 'column') { + return {rows: [], cols: $.makeArray(x)}; + } else if (selTarget === 'row+column') { + return {rows: $.makeArray(x.rows), cols: $.makeArray(x.cols)}; + } + } + var selected = data.selection.selected; + var selected1 = initSel(selected).rows, selected2 = initSel(selected).cols; + // selectable should contain either all positive or all non-positive values, not both + // positive values indicate "selectable" while non-positive values means "nonselectable" + // the assertion is performed on R side. (only column indicides could be zero which indicates + // the row name) + var selectable = data.selection.selectable; + var selectable1 = initSel(selectable).rows, selectable2 = initSel(selectable).cols; + + // After users reorder the rows or filter the table, we cannot use the table index + // directly. Instead, we need this function to find out the rows between the two clicks. + // If user filter the table again between the start click and the end click, the behavior + // would be undefined, but it should not be a problem. + var shiftSelRowsIndex = function(start, end) { + var indexes = server ? DT_rows_all : table.rows({ search: 'applied' }).indexes().toArray(); + start = indexes.indexOf(start); end = indexes.indexOf(end); + // if start is larger than end, we need to swap + if (start > end) { + var tmp = end; end = start; start = tmp; + } + return indexes.slice(start, end + 1); + } + + var serverRowIndex = function(clientRowIndex) { + return server ? DT_rows_current[clientRowIndex] : clientRowIndex + 1; + } + + // row, column, or cell selection + var lastClickedRow; + if (inArray(selTarget, ['row', 'row+column'])) { + // Get the current selected rows. It will also + // update the selected1's value based on the current row selection state + // Note we can't put this function inside selectRows() directly, + // the reason is method.selectRows() will override selected1's value but this + // function will add rows to selected1 (keep the existing selection), which is + // inconsistent with column and cell selection. + var selectedRows = function() { + var rows = table.rows('.' + selClass); + var idx = rows.indexes().toArray(); + if (!server) { + selected1 = addOne(idx); + return selected1; + } + idx = idx.map(function(i) { + return DT_rows_current[i]; + }); + selected1 = selMode === 'multiple' ? unique(selected1.concat(idx)) : idx; + return selected1; + } + // Change selected1's value based on selectable1, then refresh the row state + var onlyKeepSelectableRows = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected1 = []; + return; + } + if (selectable1.length === 0) return; + var nonselectable = selectable1[0] <= 0; + if (nonselectable) { + // should make selectable1 positive + selected1 = $(selected1).not(selectable1.map(function(i) { return -i; })).get(); + } else { + selected1 = $(selected1).filter(selectable1).get(); + } + } + // Change selected1's value based on selectable1, then + // refresh the row selection state according to values in selected1 + var selectRows = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableRows(); + table.$('tr.' + selClass).removeClass(selClass); + if (selected1.length === 0) return; + if (server) { + table.rows({page: 'current'}).every(function() { + if (inArray(DT_rows_current[this.index()], selected1)) { + $(this.node()).addClass(selClass); + } + }); + } else { + var selected0 = selected1.map(function(i) { return i - 1; }); + $(table.rows(selected0).nodes()).addClass(selClass); + } + } + table.on('mousedown.dt', 'tbody tr', function(e) { + var $this = $(this), thisRow = table.row(this); + if (selMode === 'multiple') { + if (e.shiftKey && lastClickedRow !== undefined) { + // select or de-select depends on the last clicked row's status + var flagSel = !$this.hasClass(selClass); + var crtClickedRow = serverRowIndex(thisRow.index()); + if (server) { + var rowsIndex = shiftSelRowsIndex(lastClickedRow, crtClickedRow); + // update current page's selClass + rowsIndex.map(function(i) { + var rowIndex = DT_rows_current.indexOf(i); + if (rowIndex >= 0) { + var row = table.row(rowIndex).nodes().to$(); + var flagRowSel = !row.hasClass(selClass); + if (flagSel === flagRowSel) row.toggleClass(selClass); + } + }); + // update selected1 + if (flagSel) { + selected1 = unique(selected1.concat(rowsIndex)); + } else { + selected1 = selected1.filter(function(index) { + return !inArray(index, rowsIndex); + }); + } + } else { + // js starts from 0 + shiftSelRowsIndex(lastClickedRow - 1, crtClickedRow - 1).map(function(value) { + var row = table.row(value).nodes().to$(); + var flagRowSel = !row.hasClass(selClass); + if (flagSel === flagRowSel) row.toggleClass(selClass); + }); + } + e.preventDefault(); + } else { + $this.toggleClass(selClass); + } + } else { + if ($this.hasClass(selClass)) { + $this.removeClass(selClass); + } else { + table.$('tr.' + selClass).removeClass(selClass); + $this.addClass(selClass); + } + } + if (server && !$this.hasClass(selClass)) { + var id = DT_rows_current[thisRow.index()]; + // remove id from selected1 since its class .selected has been removed + if (inArray(id, selected1)) selected1.splice($.inArray(id, selected1), 1); + } + selectedRows(); // update selected1's value based on selClass + selectRows(false); // only keep the selectable rows + changeInput('rows_selected', selected1); + changeInput('row_last_clicked', serverRowIndex(thisRow.index()), null, null, {priority: 'event'}); + lastClickedRow = serverRowIndex(thisRow.index()); + }); + selectRows(false); // in case users have specified pre-selected rows + // restore selected rows after the table is redrawn (e.g. sort/search/page); + // client-side tables will preserve the selections automatically; for + // server-side tables, we have to *real* row indices are in `selected1` + changeInput('rows_selected', selected1); + if (server) table.on('draw.dt', function(e) { selectRows(false); }); + methods.selectRows = function(selected, ignoreSelectable) { + selected1 = $.makeArray(selected); + selectRows(ignoreSelectable); + changeInput('rows_selected', selected1); + } + } + + if (inArray(selTarget, ['column', 'row+column'])) { + if (selTarget === 'row+column') { + $(table.columns().footer()).css('cursor', 'pointer'); + } + // update selected2's value based on selectable2 + var onlyKeepSelectableCols = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected2 = []; + return; + } + if (selectable2.length === 0) return; + var nonselectable = selectable2[0] <= 0; + if (nonselectable) { + // need to make selectable2 positive + selected2 = $(selected2).not(selectable2.map(function(i) { return -i; })).get(); + } else { + selected2 = $(selected2).filter(selectable2).get(); + } + } + // update selected2 and then + // refresh the col selection state according to values in selected2 + var selectCols = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableCols(); + // if selected2 is not a valide index (e.g., larger than the column number) + // table.columns(selected2) will fail and result in a blank table + // this is different from the table.rows(), where the out-of-range indexes + // doesn't affect at all + selected2 = $(selected2).filter(table.columns().indexes()).get(); + table.columns().nodes().flatten().to$().removeClass(selClass); + if (selected2.length > 0) + table.columns(selected2).nodes().flatten().to$().addClass(selClass); + } + var callback = function() { + var colIdx = selTarget === 'column' ? table.cell(this).index().column : + $.inArray(this, table.columns().footer()), + thisCol = $(table.column(colIdx).nodes()); + if (colIdx === -1) return; + if (thisCol.hasClass(selClass)) { + thisCol.removeClass(selClass); + selected2.splice($.inArray(colIdx, selected2), 1); + } else { + if (selMode === 'single') $(table.cells().nodes()).removeClass(selClass); + thisCol.addClass(selClass); + selected2 = selMode === 'single' ? [colIdx] : unique(selected2.concat([colIdx])); + } + selectCols(false); // update selected2 based on selectable + changeInput('columns_selected', selected2); + } + if (selTarget === 'column') { + $(table.table().body()).on('click.dt', 'td', callback); + } else { + $(table.table().footer()).on('click.dt', 'tr th', callback); + } + selectCols(false); // in case users have specified pre-selected columns + changeInput('columns_selected', selected2); + if (server) table.on('draw.dt', function(e) { selectCols(false); }); + methods.selectColumns = function(selected, ignoreSelectable) { + selected2 = $.makeArray(selected); + selectCols(ignoreSelectable); + changeInput('columns_selected', selected2); + } + } + + if (selTarget === 'cell') { + var selected3 = [], selectable3 = []; + if (selected !== null) selected3 = selected; + if (selectable !== null && typeof selectable !== 'boolean') selectable3 = selectable; + var findIndex = function(ij, sel) { + for (var i = 0; i < sel.length; i++) { + if (ij[0] === sel[i][0] && ij[1] === sel[i][1]) return i; + } + return -1; + } + // Change selected3's value based on selectable3, then refresh the cell state + var onlyKeepSelectableCells = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected3 = []; + return; + } + if (selectable3.length === 0) return; + var nonselectable = selectable3[0][0] <= 0; + var out = []; + if (nonselectable) { + selected3.map(function(ij) { + // should make selectable3 positive + if (findIndex([-ij[0], -ij[1]], selectable3) === -1) { out.push(ij); } + }); + } else { + selected3.map(function(ij) { + if (findIndex(ij, selectable3) > -1) { out.push(ij); } + }); + } + selected3 = out; + } + // Change selected3's value based on selectable3, then + // refresh the cell selection state according to values in selected3 + var selectCells = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableCells(); + table.$('td.' + selClass).removeClass(selClass); + if (selected3.length === 0) return; + if (server) { + table.cells({page: 'current'}).every(function() { + var info = tweakCellIndex(this); + if (findIndex([info.row, info.col], selected3) > -1) + $(this.node()).addClass(selClass); + }); + } else { + selected3.map(function(ij) { + $(table.cell(ij[0] - 1, ij[1]).node()).addClass(selClass); + }); + } + }; + table.on('click.dt', 'tbody td', function() { + var $this = $(this), info = tweakCellIndex(table.cell(this)); + if ($this.hasClass(selClass)) { + $this.removeClass(selClass); + selected3.splice(findIndex([info.row, info.col], selected3), 1); + } else { + if (selMode === 'single') $(table.cells().nodes()).removeClass(selClass); + $this.addClass(selClass); + selected3 = selMode === 'single' ? [[info.row, info.col]] : + unique(selected3.concat([[info.row, info.col]])); + } + selectCells(false); // must call this to update selected3 based on selectable3 + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + }); + selectCells(false); // in case users have specified pre-selected columns + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + + if (server) table.on('draw.dt', function(e) { selectCells(false); }); + methods.selectCells = function(selected, ignoreSelectable) { + selected3 = selected ? selected : []; + selectCells(ignoreSelectable); + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + } + } + } + + // expose some table info to Shiny + var updateTableInfo = function(e, settings) { + // TODO: is anyone interested in the page info? + // changeInput('page_info', table.page.info()); + var updateRowInfo = function(id, modifier) { + var idx; + if (server) { + idx = modifier.page === 'current' ? DT_rows_current : DT_rows_all; + } else { + var rows = table.rows($.extend({ + search: 'applied', + page: 'all' + }, modifier)); + idx = addOne(rows.indexes().toArray()); + } + changeInput('rows' + '_' + id, idx); + }; + updateRowInfo('current', {page: 'current'}); + updateRowInfo('all', {}); + } + table.on('draw.dt', updateTableInfo); + updateTableInfo(); + + // state info + table.on('draw.dt column-visibility.dt', function() { + changeInput('state', table.state()); + }); + changeInput('state', table.state()); + + // search info + var updateSearchInfo = function() { + changeInput('search', table.search()); + if (filterRow) changeInput('search_columns', filterRow.toArray().map(function(td) { + return $(td).find('input').first().val(); + })); + } + table.on('draw.dt', updateSearchInfo); + updateSearchInfo(); + + var cellInfo = function(thiz) { + var info = tweakCellIndex(table.cell(thiz)); + info.value = table.cell(thiz).data(); + return info; + } + // the current cell clicked on + table.on('click.dt', 'tbody td', function() { + changeInput('cell_clicked', cellInfo(this), null, null, {priority: 'event'}); + }) + changeInput('cell_clicked', {}); + + // do not trigger table selection when clicking on links unless they have classes + table.on('click.dt', 'tbody td a', function(e) { + if (this.className === '') e.stopPropagation(); + }); + + methods.addRow = function(data, rowname, resetPaging) { + var n = table.columns().indexes().length, d = n - data.length; + if (d === 1) { + data = rowname.concat(data) + } else if (d !== 0) { + console.log(data); + console.log(table.columns().indexes()); + throw 'New data must be of the same length as current data (' + n + ')'; + }; + table.row.add(data).draw(resetPaging); + } + + methods.updateSearch = function(keywords) { + if (keywords.global !== null) + $(table.table().container()).find('input[type=search]').first() + .val(keywords.global).trigger('input'); + var columns = keywords.columns; + if (!filterRow || columns === null) return; + filterRow.toArray().map(function(td, i) { + var v = typeof columns === 'string' ? columns : columns[i]; + if (typeof v === 'undefined') { + console.log('The search keyword for column ' + i + ' is undefined') + return; + } + $(td).find('input').first().val(v); + searchColumn(i, v); + }); + table.draw(); + } + + methods.hideCols = function(hide, reset) { + if (reset) table.columns().visible(true, false); + table.columns(hide).visible(false); + } + + methods.showCols = function(show, reset) { + if (reset) table.columns().visible(false, false); + table.columns(show).visible(true); + } + + methods.colReorder = function(order, origOrder) { + table.colReorder.order(order, origOrder); + } + + methods.selectPage = function(page) { + if (table.page.info().pages < page || page < 1) { + throw 'Selected page is out of range'; + }; + table.page(page - 1).draw(false); + } + + methods.reloadData = function(resetPaging, clearSelection) { + // empty selections first if necessary + if (methods.selectRows && inArray('row', clearSelection)) methods.selectRows([]); + if (methods.selectColumns && inArray('column', clearSelection)) methods.selectColumns([]); + if (methods.selectCells && inArray('cell', clearSelection)) methods.selectCells([]); + table.ajax.reload(null, resetPaging); + } + + table.shinyMethods = methods; + }, + resize: function(el, width, height, instance) { + if (instance.data) this.renderValue(el, instance.data, instance); + + // dynamically adjust height if fillContainer = TRUE + if (instance.fillContainer) + this.fillAvailableHeight(el, height); + + this.adjustWidth(el); + }, + + // dynamically set the scroll body to fill available height + // (used with fillContainer = TRUE) + fillAvailableHeight: function(el, availableHeight) { + + // see how much of the table is occupied by header/footer elements + // and use that to compute a target scroll body height + var dtWrapper = $(el).find('div.dataTables_wrapper'); + var dtScrollBody = $(el).find($('div.dataTables_scrollBody')); + var framingHeight = dtWrapper.innerHeight() - dtScrollBody.innerHeight(); + var scrollBodyHeight = availableHeight - framingHeight; + + // set the height + dtScrollBody.height(scrollBodyHeight + 'px'); + }, + + // adjust the width of columns; remove the hard-coded widths on table and the + // scroll header when scrollX/Y are enabled + adjustWidth: function(el) { + var $el = $(el), table = $el.data('datatable'); + if (table) table.columns.adjust(); + $el.find('.dataTables_scrollHeadInner').css('width', '') + .children('table').css('margin-left', ''); + } +}); + + if (!HTMLWidgets.shinyMode) return; + + Shiny.addCustomMessageHandler('datatable-calls', function(data) { + var id = data.id; + var el = document.getElementById(id); + var table = el ? $(el).data('datatable') : null; + if (!table) { + console.log("Couldn't find table with id " + id); + return; + } + + var methods = table.shinyMethods, call = data.call; + if (methods[call.method]) { + methods[call.method].apply(table, call.args); + } else { + console.log("Unknown method " + call.method); + } + }); + +})(); diff --git a/english/site_libs/datatables-binding-0.30/datatables.js b/english/site_libs/datatables-binding-0.30/datatables.js new file mode 100644 index 0000000..d968d8b --- /dev/null +++ b/english/site_libs/datatables-binding-0.30/datatables.js @@ -0,0 +1,1517 @@ +(function() { + +// some helper functions: using a global object DTWidget so that it can be used +// in JS() code, e.g. datatable(options = list(foo = JS('code'))); unlike R's +// dynamic scoping, when 'code' is eval'ed, JavaScript does not know objects +// from the "parent frame", e.g. JS('DTWidget') will not work unless it was made +// a global object +var DTWidget = {}; + +// 123456666.7890 -> 123,456,666.7890 +var markInterval = function(d, digits, interval, mark, decMark, precision) { + x = precision ? d.toPrecision(digits) : d.toFixed(digits); + if (!/^-?[\d.]+$/.test(x)) return x; + var xv = x.split('.'); + if (xv.length > 2) return x; // should have at most one decimal point + xv[0] = xv[0].replace(new RegExp('\\B(?=(\\d{' + interval + '})+(?!\\d))', 'g'), mark); + return xv.join(decMark); +}; + +DTWidget.formatCurrency = function(data, currency, digits, interval, mark, decMark, before, zeroPrint) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + if (zeroPrint !== null && d === 0.0) return zeroPrint; + var res = markInterval(d, digits, interval, mark, decMark); + res = before ? (/^-/.test(res) ? '-' + currency + res.replace(/^-/, '') : currency + res) : + res + currency; + return res; +}; + +DTWidget.formatString = function(data, prefix, suffix) { + var d = data; + if (d === null) return ''; + return prefix + d + suffix; +}; + +DTWidget.formatPercentage = function(data, digits, interval, mark, decMark, zeroPrint) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + if (zeroPrint !== null && d === 0.0) return zeroPrint; + return markInterval(d * 100, digits, interval, mark, decMark) + '%'; +}; + +DTWidget.formatRound = function(data, digits, interval, mark, decMark, zeroPrint) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + if (zeroPrint !== null && d === 0.0) return zeroPrint; + return markInterval(d, digits, interval, mark, decMark); +}; + +DTWidget.formatSignif = function(data, digits, interval, mark, decMark, zeroPrint) { + var d = parseFloat(data); + if (isNaN(d)) return ''; + if (zeroPrint !== null && d === 0.0) return zeroPrint; + return markInterval(d, digits, interval, mark, decMark, true); +}; + +DTWidget.formatDate = function(data, method, params) { + var d = data; + if (d === null) return ''; + // (new Date('2015-10-28')).toDateString() may return 2015-10-27 because the + // actual time created could be like 'Tue Oct 27 2015 19:00:00 GMT-0500 (CDT)', + // i.e. the date-only string is treated as UTC time instead of local time + if ((method === 'toDateString' || method === 'toLocaleDateString') && /^\d{4,}\D\d{2}\D\d{2}$/.test(d)) { + d = d.split(/\D/); + d = new Date(d[0], d[1] - 1, d[2]); + } else { + d = new Date(d); + } + return d[method].apply(d, params); +}; + +window.DTWidget = DTWidget; + +// A helper function to update the properties of existing filters +var setFilterProps = function(td, props) { + // Update enabled/disabled state + var $input = $(td).find('input').first(); + var searchable = $input.data('searchable'); + $input.prop('disabled', !searchable || props.disabled); + + // Based on the filter type, set its new values + var type = td.getAttribute('data-type'); + if (['factor', 'logical'].includes(type)) { + // Reformat the new dropdown options for use with selectize + var new_vals = props.params.options.map(function(item) { + return { text: item, value: item }; + }); + + // Find the selectize object + var dropdown = $(td).find('.selectized').eq(0)[0].selectize; + + // Note the current values + var old_vals = dropdown.getValue(); + + // Remove the existing values + dropdown.clearOptions(); + + // Add the new options + dropdown.addOption(new_vals); + + // Preserve the existing values + dropdown.setValue(old_vals); + + } else if (['number', 'integer', 'date', 'time'].includes(type)) { + // Apply internal scaling to new limits. Updating scale not yet implemented. + var slider = $(td).find('.noUi-target').eq(0); + var scale = Math.pow(10, Math.max(0, +slider.data('scale') || 0)); + var new_vals = [props.params.min * scale, props.params.max * scale]; + + // Note what the new limits will be just for this filter + var new_lims = new_vals.slice(); + + // Determine the current values and limits + var old_vals = slider.val().map(Number); + var old_lims = slider.noUiSlider('options').range; + old_lims = [old_lims.min, old_lims.max]; + + // Preserve the current values if filters have been applied; otherwise, apply no filtering + if (old_vals[0] != old_lims[0]) { + new_vals[0] = Math.max(old_vals[0], new_vals[0]); + } + + if (old_vals[1] != old_lims[1]) { + new_vals[1] = Math.min(old_vals[1], new_vals[1]); + } + + // Update the endpoints of the slider + slider.noUiSlider({ + start: new_vals, + range: {'min': new_lims[0], 'max': new_lims[1]} + }, true); + } +}; + +var transposeArray2D = function(a) { + return a.length === 0 ? a : HTMLWidgets.transposeArray2D(a); +}; + +var crosstalkPluginsInstalled = false; + +function maybeInstallCrosstalkPlugins() { + if (crosstalkPluginsInstalled) + return; + crosstalkPluginsInstalled = true; + + $.fn.dataTable.ext.afnFiltering.push( + function(oSettings, aData, iDataIndex) { + var ctfilter = oSettings.nTable.ctfilter; + if (ctfilter && !ctfilter[iDataIndex]) + return false; + + var ctselect = oSettings.nTable.ctselect; + if (ctselect && !ctselect[iDataIndex]) + return false; + + return true; + } + ); +} + +HTMLWidgets.widget({ + name: "datatables", + type: "output", + renderOnNullValue: true, + initialize: function(el, width, height) { + // in order that the type=number inputs return a number + $.valHooks.number = { + get: function(el) { + var value = parseFloat(el.value); + return isNaN(value) ? "" : value; + } + }; + $(el).html(' '); + return { + data: null, + ctfilterHandle: new crosstalk.FilterHandle(), + ctfilterSubscription: null, + ctselectHandle: new crosstalk.SelectionHandle(), + ctselectSubscription: null + }; + }, + renderValue: function(el, data, instance) { + if (el.offsetWidth === 0 || el.offsetHeight === 0) { + instance.data = data; + return; + } + instance.data = null; + var $el = $(el); + $el.empty(); + + if (data === null) { + $el.append(' '); + // clear previous Shiny inputs (if any) + for (var i in instance.clearInputs) instance.clearInputs[i](); + instance.clearInputs = {}; + return; + } + + var crosstalkOptions = data.crosstalkOptions; + if (!crosstalkOptions) crosstalkOptions = { + 'key': null, 'group': null + }; + if (crosstalkOptions.group) { + maybeInstallCrosstalkPlugins(); + instance.ctfilterHandle.setGroup(crosstalkOptions.group); + instance.ctselectHandle.setGroup(crosstalkOptions.group); + } + + // if we are in the viewer then we always want to fillContainer and + // and autoHideNavigation (unless the user has explicitly set these) + if (window.HTMLWidgets.viewerMode) { + if (!data.hasOwnProperty("fillContainer")) + data.fillContainer = true; + if (!data.hasOwnProperty("autoHideNavigation")) + data.autoHideNavigation = true; + } + + // propagate fillContainer to instance (so we have it in resize) + instance.fillContainer = data.fillContainer; + + var cells = data.data; + + if (cells instanceof Array) cells = transposeArray2D(cells); + + $el.append(data.container); + var $table = $el.find('table'); + if (data.class) $table.addClass(data.class); + if (data.caption) $table.prepend(data.caption); + + if (!data.selection) data.selection = { + mode: 'none', selected: null, target: 'row', selectable: null + }; + if (HTMLWidgets.shinyMode && data.selection.mode !== 'none' && + data.selection.target === 'row+column') { + if ($table.children('tfoot').length === 0) { + $table.append($('')); + $table.find('thead tr').clone().appendTo($table.find('tfoot')); + } + } + + // column filters + var filterRow; + switch (data.filter) { + case 'top': + $table.children('thead').append(data.filterHTML); + filterRow = $table.find('thead tr:last td'); + break; + case 'bottom': + if ($table.children('tfoot').length === 0) { + $table.append($('')); + } + $table.children('tfoot').prepend(data.filterHTML); + filterRow = $table.find('tfoot tr:first td'); + break; + } + + var options = { searchDelay: 1000 }; + if (cells !== null) $.extend(options, { + data: cells + }); + + // options for fillContainer + var bootstrapActive = typeof($.fn.popover) != 'undefined'; + if (instance.fillContainer) { + + // force scrollX/scrollY and turn off autoWidth + options.scrollX = true; + options.scrollY = "100px"; // can be any value, we'll adjust below + + // if we aren't paginating then move around the info/filter controls + // to save space at the bottom and rephrase the info callback + if (data.options.paging === false) { + + // we know how to do this cleanly for bootstrap, not so much + // for other themes/layouts + if (bootstrapActive) { + options.dom = "<'row'<'col-sm-4'i><'col-sm-8'f>>" + + "<'row'<'col-sm-12'tr>>"; + } + + options.fnInfoCallback = function(oSettings, iStart, iEnd, + iMax, iTotal, sPre) { + return Number(iTotal).toLocaleString() + " records"; + }; + } + } + + // auto hide navigation if requested + // Note, this only works on client-side processing mode as on server-side, + // cells (data.data) is null; In addition, we require the pageLength option + // being provided explicitly to enable this. Despite we may be able to deduce + // the default value of pageLength, it may complicate things so we'd rather + // put this responsiblity to users and warn them on the R side. + if (data.autoHideNavigation === true && data.options.paging !== false) { + // strip all nav if length >= cells + if ((cells instanceof Array) && data.options.pageLength >= cells.length) + options.dom = bootstrapActive ? "<'row'<'col-sm-12'tr>>" : "t"; + // alternatively lean things out for flexdashboard mobile portrait + else if (bootstrapActive && window.FlexDashboard && window.FlexDashboard.isMobilePhone()) + options.dom = "<'row'<'col-sm-12'f>>" + + "<'row'<'col-sm-12'tr>>" + + "<'row'<'col-sm-12'p>>"; + } + + $.extend(true, options, data.options || {}); + + var searchCols = options.searchCols; + if (searchCols) { + searchCols = searchCols.map(function(x) { + return x === null ? '' : x.search; + }); + // FIXME: this means I don't respect the escapeRegex setting + delete options.searchCols; + } + + // server-side processing? + var server = options.serverSide === true; + + // use the dataSrc function to pre-process JSON data returned from R + var DT_rows_all = [], DT_rows_current = []; + if (server && HTMLWidgets.shinyMode && typeof options.ajax === 'object' && + /^session\/[\da-z]+\/dataobj/.test(options.ajax.url) && !options.ajax.dataSrc) { + options.ajax.dataSrc = function(json) { + DT_rows_all = $.makeArray(json.DT_rows_all); + DT_rows_current = $.makeArray(json.DT_rows_current); + var data = json.data; + if (!colReorderEnabled()) return data; + var table = $table.DataTable(), order = table.colReorder.order(), flag = true, i, j, row; + for (i = 0; i < order.length; ++i) if (order[i] !== i) flag = false; + if (flag) return data; + for (i = 0; i < data.length; ++i) { + row = data[i].slice(); + for (j = 0; j < order.length; ++j) data[i][j] = row[order[j]]; + } + return data; + }; + } + + var thiz = this; + if (instance.fillContainer) $table.on('init.dt', function(e) { + thiz.fillAvailableHeight(el, $(el).innerHeight()); + }); + // If the page contains serveral datatables and one of which enables colReorder, + // the table.colReorder.order() function will exist but throws error when called. + // So it seems like the only way to know if colReorder is enabled or not is to + // check the options. + var colReorderEnabled = function() { return "colReorder" in options; }; + var table = $table.DataTable(options); + $el.data('datatable', table); + + // Unregister previous Crosstalk event subscriptions, if they exist + if (instance.ctfilterSubscription) { + instance.ctfilterHandle.off("change", instance.ctfilterSubscription); + instance.ctfilterSubscription = null; + } + if (instance.ctselectSubscription) { + instance.ctselectHandle.off("change", instance.ctselectSubscription); + instance.ctselectSubscription = null; + } + + if (!crosstalkOptions.group) { + $table[0].ctfilter = null; + $table[0].ctselect = null; + } else { + var key = crosstalkOptions.key; + function keysToMatches(keys) { + if (!keys) { + return null; + } else { + var selectedKeys = {}; + for (var i = 0; i < keys.length; i++) { + selectedKeys[keys[i]] = true; + } + var matches = {}; + for (var j = 0; j < key.length; j++) { + if (selectedKeys[key[j]]) + matches[j] = true; + } + return matches; + } + } + + function applyCrosstalkFilter(e) { + $table[0].ctfilter = keysToMatches(e.value); + table.draw(); + } + instance.ctfilterSubscription = instance.ctfilterHandle.on("change", applyCrosstalkFilter); + applyCrosstalkFilter({value: instance.ctfilterHandle.filteredKeys}); + + function applyCrosstalkSelection(e) { + if (e.sender !== instance.ctselectHandle) { + table + .rows('.' + selClass, {search: 'applied'}) + .nodes() + .to$() + .removeClass(selClass); + if (selectedRows) + changeInput('rows_selected', selectedRows(), void 0, true); + } + + if (e.sender !== instance.ctselectHandle && e.value && e.value.length) { + var matches = keysToMatches(e.value); + + // persistent selection with plotly (& leaflet) + var ctOpts = crosstalk.var("plotlyCrosstalkOpts").get() || {}; + if (ctOpts.persistent === true) { + var matches = $.extend(matches, $table[0].ctselect); + } + + $table[0].ctselect = matches; + table.draw(); + } else { + if ($table[0].ctselect) { + $table[0].ctselect = null; + table.draw(); + } + } + } + instance.ctselectSubscription = instance.ctselectHandle.on("change", applyCrosstalkSelection); + // TODO: This next line doesn't seem to work when renderDataTable is used + applyCrosstalkSelection({value: instance.ctselectHandle.value}); + } + + var inArray = function(val, array) { + return $.inArray(val, $.makeArray(array)) > -1; + }; + + // search the i-th column + var searchColumn = function(i, value) { + var regex = false, ci = true; + if (options.search) { + regex = options.search.regex, + ci = options.search.caseInsensitive !== false; + } + return table.column(i).search(value, regex, !regex, ci); + }; + + if (data.filter !== 'none') { + + filterRow.each(function(i, td) { + + var $td = $(td), type = $td.data('type'), filter; + var $input = $td.children('div').first().children('input'); + var disabled = $input.prop('disabled'); + var searchable = table.settings()[0].aoColumns[i].bSearchable; + $input.prop('disabled', !searchable || disabled); + $input.data('searchable', searchable); // for updating later + $input.on('input blur', function() { + $input.next('span').toggle(Boolean($input.val())); + }); + // Bootstrap sets pointer-events to none and we won't be able to click + // the clear button + $input.next('span').css('pointer-events', 'auto').hide().click(function() { + $(this).hide().prev('input').val('').trigger('input').focus(); + }); + var searchCol; // search string for this column + if (searchCols && searchCols[i]) { + searchCol = searchCols[i]; + $input.val(searchCol).trigger('input'); + } + var $x = $td.children('div').last(); + + // remove the overflow: hidden attribute of the scrollHead + // (otherwise the scrolling table body obscures the filters) + // The workaround and the discussion from + // https://github.com/rstudio/DT/issues/554#issuecomment-518007347 + // Otherwise the filter selection will not be anchored to the values + // when the columns number is many and scrollX is enabled. + var scrollHead = $(el).find('.dataTables_scrollHead,.dataTables_scrollFoot'); + var cssOverflowHead = scrollHead.css('overflow'); + var scrollBody = $(el).find('.dataTables_scrollBody'); + var cssOverflowBody = scrollBody.css('overflow'); + var scrollTable = $(el).find('.dataTables_scroll'); + var cssOverflowTable = scrollTable.css('overflow'); + if (cssOverflowHead === 'hidden') { + $x.on('show hide', function(e) { + if (e.type === 'show') { + scrollHead.css('overflow', 'visible'); + scrollBody.css('overflow', 'visible'); + scrollTable.css('overflow-x', 'scroll'); + } else { + scrollHead.css('overflow', cssOverflowHead); + scrollBody.css('overflow', cssOverflowBody); + scrollTable.css('overflow-x', cssOverflowTable); + } + }); + $x.css('z-index', 25); + } + + if (inArray(type, ['factor', 'logical'])) { + $input.on({ + click: function() { + $input.parent().hide(); $x.show().trigger('show'); filter[0].selectize.focus(); + }, + input: function() { + var v1 = JSON.stringify(filter[0].selectize.getValue()), v2 = $input.val(); + if (v1 === '[]') v1 = ''; + if (v1 !== v2) filter[0].selectize.setValue(v2 === '' ? [] : JSON.parse(v2)); + } + }); + var $input2 = $x.children('select'); + filter = $input2.selectize({ + options: $input2.data('options').map(function(v, i) { + return ({text: v, value: v}); + }), + plugins: ['remove_button'], + hideSelected: true, + onChange: function(value) { + if (value === null) value = []; // compatibility with jQuery 3.0 + $input.val(value.length ? JSON.stringify(value) : ''); + if (value.length) $input.trigger('input'); + $input.attr('title', $input.val()); + if (server) { + table.column(i).search(value.length ? JSON.stringify(value) : '').draw(); + return; + } + // turn off filter if nothing selected + $td.data('filter', value.length > 0); + table.draw(); // redraw table, and filters will be applied + } + }); + if (searchCol) filter[0].selectize.setValue(JSON.parse(searchCol)); + filter[0].selectize.on('blur', function() { + $x.hide().trigger('hide'); $input.parent().show(); $input.trigger('blur'); + }); + filter.next('div').css('margin-bottom', 'auto'); + } else if (type === 'character') { + var fun = function() { + searchColumn(i, $input.val()).draw(); + }; + if (server) { + fun = $.fn.dataTable.util.throttle(fun, options.searchDelay); + } + $input.on('input', fun); + } else if (inArray(type, ['number', 'integer', 'date', 'time'])) { + var $x0 = $x; + $x = $x0.children('div').first(); + $x0.css({ + 'background-color': '#fff', + 'border': '1px #ddd solid', + 'border-radius': '4px', + 'padding': data.vertical ? '35px 20px': '20px 20px 10px 20px' + }); + var $spans = $x0.children('span').css({ + 'margin-top': data.vertical ? '0' : '10px', + 'white-space': 'nowrap' + }); + var $span1 = $spans.first(), $span2 = $spans.last(); + var r1 = +$x.data('min'), r2 = +$x.data('max'); + // when the numbers are too small or have many decimal places, the + // slider may have numeric precision problems (#150) + var scale = Math.pow(10, Math.max(0, +$x.data('scale') || 0)); + r1 = Math.round(r1 * scale); r2 = Math.round(r2 * scale); + var scaleBack = function(x, scale) { + if (scale === 1) return x; + var d = Math.round(Math.log(scale) / Math.log(10)); + // to avoid problems like 3.423/100 -> 0.034230000000000003 + return (x / scale).toFixed(d); + }; + var slider_min = function() { + return filter.noUiSlider('options').range.min; + }; + var slider_max = function() { + return filter.noUiSlider('options').range.max; + }; + $input.on({ + focus: function() { + $x0.show().trigger('show'); + // first, make sure the slider div leaves at least 20px between + // the two (slider value) span's + $x0.width(Math.max(160, $span1.outerWidth() + $span2.outerWidth() + 20)); + // then, if the input is really wide or slider is vertical, + // make the slider the same width as the input + if ($x0.outerWidth() < $input.outerWidth() || data.vertical) { + $x0.outerWidth($input.outerWidth()); + } + // make sure the slider div does not reach beyond the right margin + if ($(window).width() < $x0.offset().left + $x0.width()) { + $x0.offset({ + 'left': $input.offset().left + $input.outerWidth() - $x0.outerWidth() + }); + } + }, + blur: function() { + $x0.hide().trigger('hide'); + }, + input: function() { + if ($input.val() === '') filter.val([slider_min(), slider_max()]); + }, + change: function() { + var v = $input.val().replace(/\s/g, ''); + if (v === '') return; + v = v.split('...'); + if (v.length !== 2) { + $input.parent().addClass('has-error'); + return; + } + if (v[0] === '') v[0] = slider_min(); + if (v[1] === '') v[1] = slider_max(); + $input.parent().removeClass('has-error'); + // treat date as UTC time at midnight + var strTime = function(x) { + var s = type === 'date' ? 'T00:00:00Z' : ''; + var t = new Date(x + s).getTime(); + // add 10 minutes to date since it does not hurt the date, and + // it helps avoid the tricky floating point arithmetic problems, + // e.g. sometimes the date may be a few milliseconds earlier + // than the midnight due to precision problems in noUiSlider + return type === 'date' ? t + 3600000 : t; + }; + if (inArray(type, ['date', 'time'])) { + v[0] = strTime(v[0]); + v[1] = strTime(v[1]); + } + if (v[0] != slider_min()) v[0] *= scale; + if (v[1] != slider_max()) v[1] *= scale; + filter.val(v); + } + }); + var formatDate = function(d, isoFmt) { + d = scaleBack(d, scale); + if (type === 'number') return d; + if (type === 'integer') return parseInt(d); + var x = new Date(+d); + var fmt = ('filterDateFmt' in data) ? data.filterDateFmt[i] : undefined; + if (fmt !== undefined && isoFmt === false) return x[fmt.method].apply(x, fmt.params); + if (type === 'date') { + var pad0 = function(x) { + return ('0' + x).substr(-2, 2); + }; + return x.getUTCFullYear() + '-' + pad0(1 + x.getUTCMonth()) + + '-' + pad0(x.getUTCDate()); + } else { + return x.toISOString(); + } + }; + var opts = type === 'date' ? { step: 60 * 60 * 1000 } : + type === 'integer' ? { step: 1 } : {}; + + opts.orientation = data.vertical ? 'vertical': 'horizontal'; + opts.direction = data.vertical ? 'rtl': 'ltr'; + + filter = $x.noUiSlider($.extend({ + start: [r1, r2], + range: {min: r1, max: r2}, + connect: true + }, opts)); + if (scale > 1) (function() { + var t1 = r1, t2 = r2; + var val = filter.val(); + while (val[0] > r1 || val[1] < r2) { + if (val[0] > r1) { + t1 -= val[0] - r1; + } + if (val[1] < r2) { + t2 += r2 - val[1]; + } + filter = $x.noUiSlider($.extend({ + start: [t1, t2], + range: {min: t1, max: t2}, + connect: true + }, opts), true); + val = filter.val(); + } + r1 = t1; r2 = t2; + })(); + var updateSliderText = function(v1, v2) { + $span1.text(formatDate(v1, false)); $span2.text(formatDate(v2, false)); + }; + updateSliderText(r1, r2); + var updateSlider = function(e) { + var val = filter.val(); + // turn off filter if in full range + $td.data('filter', val[0] > slider_min() || val[1] < slider_max()); + var v1 = formatDate(val[0]), v2 = formatDate(val[1]), ival; + if ($td.data('filter')) { + ival = v1 + ' ... ' + v2; + $input.attr('title', ival).val(ival).trigger('input'); + } else { + $input.attr('title', '').val(''); + } + updateSliderText(val[0], val[1]); + if (e.type === 'slide') return; // no searching when sliding only + if (server) { + table.column(i).search($td.data('filter') ? ival : '').draw(); + return; + } + table.draw(); + }; + filter.on({ + set: updateSlider, + slide: updateSlider + }); + } + + // server-side processing will be handled by R (or whatever server + // language you use); the following code is only needed for client-side + // processing + if (server) { + // if a search string has been pre-set, search now + if (searchCol) searchColumn(i, searchCol).draw(); + return; + } + + var customFilter = function(settings, data, dataIndex) { + // there is no way to attach a search function to a specific table, + // and we need to make sure a global search function is not applied to + // all tables (i.e. a range filter in a previous table should not be + // applied to the current table); we use the settings object to + // determine if we want to perform searching on the current table, + // since settings.sTableId will be different to different tables + if (table.settings()[0] !== settings) return true; + // no filter on this column or no need to filter this column + if (typeof filter === 'undefined' || !$td.data('filter')) return true; + + var r = filter.val(), v, r0, r1; + var i_data = function(i) { + if (!colReorderEnabled()) return i; + var order = table.colReorder.order(), k; + for (k = 0; k < order.length; ++k) if (order[k] === i) return k; + return i; // in theory it will never be here... + } + v = data[i_data(i)]; + if (type === 'number' || type === 'integer') { + v = parseFloat(v); + // how to handle NaN? currently exclude these rows + if (isNaN(v)) return(false); + r0 = parseFloat(scaleBack(r[0], scale)) + r1 = parseFloat(scaleBack(r[1], scale)); + if (v >= r0 && v <= r1) return true; + } else if (type === 'date' || type === 'time') { + v = new Date(v); + r0 = new Date(r[0] / scale); r1 = new Date(r[1] / scale); + if (v >= r0 && v <= r1) return true; + } else if (type === 'factor') { + if (r.length === 0 || inArray(v, r)) return true; + } else if (type === 'logical') { + if (r.length === 0) return true; + if (inArray(v === '' ? 'na' : v, r)) return true; + } + return false; + }; + + $.fn.dataTable.ext.search.push(customFilter); + + // search for the preset search strings if it is non-empty + if (searchCol) { + if (inArray(type, ['factor', 'logical'])) { + filter[0].selectize.setValue(JSON.parse(searchCol)); + } else if (type === 'character') { + $input.trigger('input'); + } else if (inArray(type, ['number', 'integer', 'date', 'time'])) { + $input.trigger('change'); + } + } + + }); + + } + + // highlight search keywords + var highlight = function() { + var body = $(table.table().body()); + // removing the old highlighting first + body.unhighlight(); + + // don't highlight the "not found" row, so we get the rows using the api + if (table.rows({ filter: 'applied' }).data().length === 0) return; + // highlight global search keywords + body.highlight($.trim(table.search()).split(/\s+/)); + // then highlight keywords from individual column filters + if (filterRow) filterRow.each(function(i, td) { + var $td = $(td), type = $td.data('type'); + if (type !== 'character') return; + var $input = $td.children('div').first().children('input'); + var column = table.column(i).nodes().to$(), + val = $.trim($input.val()); + if (type !== 'character' || val === '') return; + column.highlight(val.split(/\s+/)); + }); + }; + + if (options.searchHighlight) { + table + .on('draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth', highlight) + .on('destroy', function() { + // remove event handler + table.off('draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth'); + }); + + // Set the option for escaping regex characters in our search string. This will be used + // for all future matching. + jQuery.fn.highlight.options.escapeRegex = (!options.search || !options.search.regex); + + // initial highlight for state saved conditions and initial states + highlight(); + } + + // run the callback function on the table instance + if (typeof data.callback === 'function') data.callback(table); + + // double click to edit the cell, row, column, or all cells + if (data.editable) table.on('dblclick.dt', 'tbody td', function(e) { + // only bring up the editor when the cell itself is dbclicked, and ignore + // other dbclick events bubbled up (e.g. from the ) + if (e.target !== this) return; + var target = [], immediate = false; + switch (data.editable.target) { + case 'cell': + target = [this]; + immediate = true; // edit will take effect immediately + break; + case 'row': + target = table.cells(table.cell(this).index().row, '*').nodes(); + break; + case 'column': + target = table.cells('*', table.cell(this).index().column).nodes(); + break; + case 'all': + target = table.cells().nodes(); + break; + default: + throw 'The editable parameter must be "cell", "row", "column", or "all"'; + } + var disableCols = data.editable.disable ? data.editable.disable.columns : null; + var numericCols = data.editable.numeric; + var areaCols = data.editable.area; + var dateCols = data.editable.date; + for (var i = 0; i < target.length; i++) { + (function(cell, current) { + var $cell = $(cell), html = $cell.html(); + var _cell = table.cell(cell), value = _cell.data(), index = _cell.index().column; + var $input; + if (inArray(index, numericCols)) { + $input = $(''); + } else if (inArray(index, areaCols)) { + $input = $(''); + } else if (inArray(index, dateCols)) { + $input = $(''); + } else { + $input = $(''); + } + if (!immediate) { + $cell.data('input', $input).data('html', html); + $input.attr('title', 'Hit Ctrl+Enter to finish editing, or Esc to cancel'); + } + $input.val(value); + if (inArray(index, disableCols)) { + $input.attr('readonly', '').css('filter', 'invert(25%)'); + } + $cell.empty().append($input); + if (cell === current) $input.focus(); + $input.css('width', '100%'); + + if (immediate) $input.on('blur', function(e) { + var valueNew = $input.val(); + if (valueNew !== value) { + _cell.data(valueNew); + if (HTMLWidgets.shinyMode) { + changeInput('cell_edit', [cellInfo(cell)], 'DT.cellInfo', null, {priority: 'event'}); + } + // for server-side processing, users have to call replaceData() to update the table + if (!server) table.draw(false); + } else { + $cell.html(html); + } + }).on('keyup', function(e) { + // hit Escape to cancel editing + if (e.keyCode === 27) $input.trigger('blur'); + }); + + // bulk edit (row, column, or all) + if (!immediate) $input.on('keyup', function(e) { + var removeInput = function($cell, restore) { + $cell.data('input').remove(); + if (restore) $cell.html($cell.data('html')); + } + if (e.keyCode === 27) { + for (var i = 0; i < target.length; i++) { + removeInput($(target[i]), true); + } + } else if (e.keyCode === 13 && e.ctrlKey) { + // Ctrl + Enter + var cell, $cell, _cell, cellData = []; + for (var i = 0; i < target.length; i++) { + cell = target[i]; $cell = $(cell); _cell = table.cell(cell); + _cell.data($cell.data('input').val()); + HTMLWidgets.shinyMode && cellData.push(cellInfo(cell)); + removeInput($cell, false); + } + if (HTMLWidgets.shinyMode) { + changeInput('cell_edit', cellData, 'DT.cellInfo', null, {priority: "event"}); + } + if (!server) table.draw(false); + } + }); + })(target[i], this); + } + }); + + // interaction with shiny + if (!HTMLWidgets.shinyMode && !crosstalkOptions.group) return; + + var methods = {}; + var shinyData = {}; + + methods.updateCaption = function(caption) { + if (!caption) return; + $table.children('caption').replaceWith(caption); + } + + // register clear functions to remove input values when the table is removed + instance.clearInputs = {}; + + var changeInput = function(id, value, type, noCrosstalk, opts) { + var event = id; + id = el.id + '_' + id; + if (type) id = id + ':' + type; + // do not update if the new value is the same as old value + if (event !== 'cell_edit' && !/_clicked$/.test(event) && shinyData.hasOwnProperty(id) && shinyData[id] === JSON.stringify(value)) + return; + shinyData[id] = JSON.stringify(value); + if (HTMLWidgets.shinyMode && Shiny.setInputValue) { + Shiny.setInputValue(id, value, opts); + if (!instance.clearInputs[id]) instance.clearInputs[id] = function() { + Shiny.setInputValue(id, null); + } + } + + // HACK + if (event === "rows_selected" && !noCrosstalk) { + if (crosstalkOptions.group) { + var keys = crosstalkOptions.key; + var selectedKeys = null; + if (value) { + selectedKeys = []; + for (var i = 0; i < value.length; i++) { + // The value array's contents use 1-based row numbers, so we must + // convert to 0-based before indexing into the keys array. + selectedKeys.push(keys[value[i] - 1]); + } + } + instance.ctselectHandle.set(selectedKeys); + } + } + }; + + var addOne = function(x) { + return x.map(function(i) { return 1 + i; }); + }; + + var unique = function(x) { + var ux = []; + $.each(x, function(i, el){ + if ($.inArray(el, ux) === -1) ux.push(el); + }); + return ux; + } + + // change the row index of a cell + var tweakCellIndex = function(cell) { + var info = cell.index(); + // some cell may not be valid. e.g, #759 + // when using the RowGroup extension, datatables will + // generate the row label and the cells are not part of + // the data thus contain no row/col info + if (info === undefined) + return {row: null, col: null}; + if (server) { + info.row = DT_rows_current[info.row]; + } else { + info.row += 1; + } + return {row: info.row, col: info.column}; + } + + var cleanSelectedValues = function() { + changeInput('rows_selected', []); + changeInput('columns_selected', []); + changeInput('cells_selected', transposeArray2D([]), 'shiny.matrix'); + } + // #828 we should clean the selection on the server-side when the table reloads + cleanSelectedValues(); + + // a flag to indicates if select extension is initialized or not + var flagSelectExt = table.settings()[0]._select !== undefined; + // the Select extension should only be used in the client mode and + // when the selection.mode is set to none + if (data.selection.mode === 'none' && !server && flagSelectExt) { + var updateRowsSelected = function() { + var rows = table.rows({selected: true}); + var selected = []; + $.each(rows.indexes().toArray(), function(i, v) { + selected.push(v + 1); + }); + changeInput('rows_selected', selected); + } + var updateColsSelected = function() { + var columns = table.columns({selected: true}); + changeInput('columns_selected', columns.indexes().toArray()); + } + var updateCellsSelected = function() { + var cells = table.cells({selected: true}); + var selected = []; + cells.every(function() { + var row = this.index().row; + var col = this.index().column; + selected = selected.concat([[row + 1, col]]); + }); + changeInput('cells_selected', transposeArray2D(selected), 'shiny.matrix'); + } + table.on('select deselect', function(e, dt, type, indexes) { + updateRowsSelected(); + updateColsSelected(); + updateCellsSelected(); + }) + } + + var selMode = data.selection.mode, selTarget = data.selection.target; + var selDisable = data.selection.selectable === false; + if (inArray(selMode, ['single', 'multiple'])) { + var selClass = inArray(data.style, ['bootstrap', 'bootstrap4']) ? 'active' : 'selected'; + // selected1: row indices; selected2: column indices + var initSel = function(x) { + if (x === null || typeof x === 'boolean' || selTarget === 'cell') { + return {rows: [], cols: []}; + } else if (selTarget === 'row') { + return {rows: $.makeArray(x), cols: []}; + } else if (selTarget === 'column') { + return {rows: [], cols: $.makeArray(x)}; + } else if (selTarget === 'row+column') { + return {rows: $.makeArray(x.rows), cols: $.makeArray(x.cols)}; + } + } + var selected = data.selection.selected; + var selected1 = initSel(selected).rows, selected2 = initSel(selected).cols; + // selectable should contain either all positive or all non-positive values, not both + // positive values indicate "selectable" while non-positive values means "nonselectable" + // the assertion is performed on R side. (only column indicides could be zero which indicates + // the row name) + var selectable = data.selection.selectable; + var selectable1 = initSel(selectable).rows, selectable2 = initSel(selectable).cols; + + // After users reorder the rows or filter the table, we cannot use the table index + // directly. Instead, we need this function to find out the rows between the two clicks. + // If user filter the table again between the start click and the end click, the behavior + // would be undefined, but it should not be a problem. + var shiftSelRowsIndex = function(start, end) { + var indexes = server ? DT_rows_all : table.rows({ search: 'applied' }).indexes().toArray(); + start = indexes.indexOf(start); end = indexes.indexOf(end); + // if start is larger than end, we need to swap + if (start > end) { + var tmp = end; end = start; start = tmp; + } + return indexes.slice(start, end + 1); + } + + var serverRowIndex = function(clientRowIndex) { + return server ? DT_rows_current[clientRowIndex] : clientRowIndex + 1; + } + + // row, column, or cell selection + var lastClickedRow; + if (inArray(selTarget, ['row', 'row+column'])) { + // Get the current selected rows. It will also + // update the selected1's value based on the current row selection state + // Note we can't put this function inside selectRows() directly, + // the reason is method.selectRows() will override selected1's value but this + // function will add rows to selected1 (keep the existing selection), which is + // inconsistent with column and cell selection. + var selectedRows = function() { + var rows = table.rows('.' + selClass); + var idx = rows.indexes().toArray(); + if (!server) { + selected1 = addOne(idx); + return selected1; + } + idx = idx.map(function(i) { + return DT_rows_current[i]; + }); + selected1 = selMode === 'multiple' ? unique(selected1.concat(idx)) : idx; + return selected1; + } + // Change selected1's value based on selectable1, then refresh the row state + var onlyKeepSelectableRows = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected1 = []; + return; + } + if (selectable1.length === 0) return; + var nonselectable = selectable1[0] <= 0; + if (nonselectable) { + // should make selectable1 positive + selected1 = $(selected1).not(selectable1.map(function(i) { return -i; })).get(); + } else { + selected1 = $(selected1).filter(selectable1).get(); + } + } + // Change selected1's value based on selectable1, then + // refresh the row selection state according to values in selected1 + var selectRows = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableRows(); + table.$('tr.' + selClass).removeClass(selClass); + if (selected1.length === 0) return; + if (server) { + table.rows({page: 'current'}).every(function() { + if (inArray(DT_rows_current[this.index()], selected1)) { + $(this.node()).addClass(selClass); + } + }); + } else { + var selected0 = selected1.map(function(i) { return i - 1; }); + $(table.rows(selected0).nodes()).addClass(selClass); + } + } + table.on('mousedown.dt', 'tbody tr', function(e) { + var $this = $(this), thisRow = table.row(this); + if (selMode === 'multiple') { + if (e.shiftKey && lastClickedRow !== undefined) { + // select or de-select depends on the last clicked row's status + var flagSel = !$this.hasClass(selClass); + var crtClickedRow = serverRowIndex(thisRow.index()); + if (server) { + var rowsIndex = shiftSelRowsIndex(lastClickedRow, crtClickedRow); + // update current page's selClass + rowsIndex.map(function(i) { + var rowIndex = DT_rows_current.indexOf(i); + if (rowIndex >= 0) { + var row = table.row(rowIndex).nodes().to$(); + var flagRowSel = !row.hasClass(selClass); + if (flagSel === flagRowSel) row.toggleClass(selClass); + } + }); + // update selected1 + if (flagSel) { + selected1 = unique(selected1.concat(rowsIndex)); + } else { + selected1 = selected1.filter(function(index) { + return !inArray(index, rowsIndex); + }); + } + } else { + // js starts from 0 + shiftSelRowsIndex(lastClickedRow - 1, crtClickedRow - 1).map(function(value) { + var row = table.row(value).nodes().to$(); + var flagRowSel = !row.hasClass(selClass); + if (flagSel === flagRowSel) row.toggleClass(selClass); + }); + } + e.preventDefault(); + } else { + $this.toggleClass(selClass); + } + } else { + if ($this.hasClass(selClass)) { + $this.removeClass(selClass); + } else { + table.$('tr.' + selClass).removeClass(selClass); + $this.addClass(selClass); + } + } + if (server && !$this.hasClass(selClass)) { + var id = DT_rows_current[thisRow.index()]; + // remove id from selected1 since its class .selected has been removed + if (inArray(id, selected1)) selected1.splice($.inArray(id, selected1), 1); + } + selectedRows(); // update selected1's value based on selClass + selectRows(false); // only keep the selectable rows + changeInput('rows_selected', selected1); + changeInput('row_last_clicked', serverRowIndex(thisRow.index()), null, null, {priority: 'event'}); + lastClickedRow = serverRowIndex(thisRow.index()); + }); + selectRows(false); // in case users have specified pre-selected rows + // restore selected rows after the table is redrawn (e.g. sort/search/page); + // client-side tables will preserve the selections automatically; for + // server-side tables, we have to *real* row indices are in `selected1` + changeInput('rows_selected', selected1); + if (server) table.on('draw.dt', function(e) { selectRows(false); }); + methods.selectRows = function(selected, ignoreSelectable) { + selected1 = $.makeArray(selected); + selectRows(ignoreSelectable); + changeInput('rows_selected', selected1); + } + } + + if (inArray(selTarget, ['column', 'row+column'])) { + if (selTarget === 'row+column') { + $(table.columns().footer()).css('cursor', 'pointer'); + } + // update selected2's value based on selectable2 + var onlyKeepSelectableCols = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected2 = []; + return; + } + if (selectable2.length === 0) return; + var nonselectable = selectable2[0] <= 0; + if (nonselectable) { + // need to make selectable2 positive + selected2 = $(selected2).not(selectable2.map(function(i) { return -i; })).get(); + } else { + selected2 = $(selected2).filter(selectable2).get(); + } + } + // update selected2 and then + // refresh the col selection state according to values in selected2 + var selectCols = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableCols(); + // if selected2 is not a valide index (e.g., larger than the column number) + // table.columns(selected2) will fail and result in a blank table + // this is different from the table.rows(), where the out-of-range indexes + // doesn't affect at all + selected2 = $(selected2).filter(table.columns().indexes()).get(); + table.columns().nodes().flatten().to$().removeClass(selClass); + if (selected2.length > 0) + table.columns(selected2).nodes().flatten().to$().addClass(selClass); + } + var callback = function() { + var colIdx = selTarget === 'column' ? table.cell(this).index().column : + $.inArray(this, table.columns().footer()), + thisCol = $(table.column(colIdx).nodes()); + if (colIdx === -1) return; + if (thisCol.hasClass(selClass)) { + thisCol.removeClass(selClass); + selected2.splice($.inArray(colIdx, selected2), 1); + } else { + if (selMode === 'single') $(table.cells().nodes()).removeClass(selClass); + thisCol.addClass(selClass); + selected2 = selMode === 'single' ? [colIdx] : unique(selected2.concat([colIdx])); + } + selectCols(false); // update selected2 based on selectable + changeInput('columns_selected', selected2); + } + if (selTarget === 'column') { + $(table.table().body()).on('click.dt', 'td', callback); + } else { + $(table.table().footer()).on('click.dt', 'tr th', callback); + } + selectCols(false); // in case users have specified pre-selected columns + changeInput('columns_selected', selected2); + if (server) table.on('draw.dt', function(e) { selectCols(false); }); + methods.selectColumns = function(selected, ignoreSelectable) { + selected2 = $.makeArray(selected); + selectCols(ignoreSelectable); + changeInput('columns_selected', selected2); + } + } + + if (selTarget === 'cell') { + var selected3 = [], selectable3 = []; + if (selected !== null) selected3 = selected; + if (selectable !== null && typeof selectable !== 'boolean') selectable3 = selectable; + var findIndex = function(ij, sel) { + for (var i = 0; i < sel.length; i++) { + if (ij[0] === sel[i][0] && ij[1] === sel[i][1]) return i; + } + return -1; + } + // Change selected3's value based on selectable3, then refresh the cell state + var onlyKeepSelectableCells = function() { + if (selDisable) { // users can't select; useful when only want backend select + selected3 = []; + return; + } + if (selectable3.length === 0) return; + var nonselectable = selectable3[0][0] <= 0; + var out = []; + if (nonselectable) { + selected3.map(function(ij) { + // should make selectable3 positive + if (findIndex([-ij[0], -ij[1]], selectable3) === -1) { out.push(ij); } + }); + } else { + selected3.map(function(ij) { + if (findIndex(ij, selectable3) > -1) { out.push(ij); } + }); + } + selected3 = out; + } + // Change selected3's value based on selectable3, then + // refresh the cell selection state according to values in selected3 + var selectCells = function(ignoreSelectable) { + if (!ignoreSelectable) onlyKeepSelectableCells(); + table.$('td.' + selClass).removeClass(selClass); + if (selected3.length === 0) return; + if (server) { + table.cells({page: 'current'}).every(function() { + var info = tweakCellIndex(this); + if (findIndex([info.row, info.col], selected3) > -1) + $(this.node()).addClass(selClass); + }); + } else { + selected3.map(function(ij) { + $(table.cell(ij[0] - 1, ij[1]).node()).addClass(selClass); + }); + } + }; + table.on('click.dt', 'tbody td', function() { + var $this = $(this), info = tweakCellIndex(table.cell(this)); + if ($this.hasClass(selClass)) { + $this.removeClass(selClass); + selected3.splice(findIndex([info.row, info.col], selected3), 1); + } else { + if (selMode === 'single') $(table.cells().nodes()).removeClass(selClass); + $this.addClass(selClass); + selected3 = selMode === 'single' ? [[info.row, info.col]] : + unique(selected3.concat([[info.row, info.col]])); + } + selectCells(false); // must call this to update selected3 based on selectable3 + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + }); + selectCells(false); // in case users have specified pre-selected columns + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + + if (server) table.on('draw.dt', function(e) { selectCells(false); }); + methods.selectCells = function(selected, ignoreSelectable) { + selected3 = selected ? selected : []; + selectCells(ignoreSelectable); + changeInput('cells_selected', transposeArray2D(selected3), 'shiny.matrix'); + } + } + } + + // expose some table info to Shiny + var updateTableInfo = function(e, settings) { + // TODO: is anyone interested in the page info? + // changeInput('page_info', table.page.info()); + var updateRowInfo = function(id, modifier) { + var idx; + if (server) { + idx = modifier.page === 'current' ? DT_rows_current : DT_rows_all; + } else { + var rows = table.rows($.extend({ + search: 'applied', + page: 'all' + }, modifier)); + idx = addOne(rows.indexes().toArray()); + } + changeInput('rows' + '_' + id, idx); + }; + updateRowInfo('current', {page: 'current'}); + updateRowInfo('all', {}); + } + table.on('draw.dt', updateTableInfo); + updateTableInfo(); + + // state info + table.on('draw.dt column-visibility.dt', function() { + changeInput('state', table.state()); + }); + changeInput('state', table.state()); + + // search info + var updateSearchInfo = function() { + changeInput('search', table.search()); + if (filterRow) changeInput('search_columns', filterRow.toArray().map(function(td) { + return $(td).find('input').first().val(); + })); + } + table.on('draw.dt', updateSearchInfo); + updateSearchInfo(); + + var cellInfo = function(thiz) { + var info = tweakCellIndex(table.cell(thiz)); + info.value = table.cell(thiz).data(); + return info; + } + // the current cell clicked on + table.on('click.dt', 'tbody td', function() { + changeInput('cell_clicked', cellInfo(this), null, null, {priority: 'event'}); + }) + changeInput('cell_clicked', {}); + + // do not trigger table selection when clicking on links unless they have classes + table.on('click.dt', 'tbody td a', function(e) { + if (this.className === '') e.stopPropagation(); + }); + + methods.addRow = function(data, rowname, resetPaging) { + var n = table.columns().indexes().length, d = n - data.length; + if (d === 1) { + data = rowname.concat(data) + } else if (d !== 0) { + console.log(data); + console.log(table.columns().indexes()); + throw 'New data must be of the same length as current data (' + n + ')'; + }; + table.row.add(data).draw(resetPaging); + } + + methods.updateSearch = function(keywords) { + if (keywords.global !== null) + $(table.table().container()).find('input[type=search]').first() + .val(keywords.global).trigger('input'); + var columns = keywords.columns; + if (!filterRow || columns === null) return; + filterRow.toArray().map(function(td, i) { + var v = typeof columns === 'string' ? columns : columns[i]; + if (typeof v === 'undefined') { + console.log('The search keyword for column ' + i + ' is undefined') + return; + } + $(td).find('input').first().val(v).trigger('input'); + searchColumn(i, v); + }); + table.draw(); + } + + methods.hideCols = function(hide, reset) { + if (reset) table.columns().visible(true, false); + table.columns(hide).visible(false); + } + + methods.showCols = function(show, reset) { + if (reset) table.columns().visible(false, false); + table.columns(show).visible(true); + } + + methods.colReorder = function(order, origOrder) { + table.colReorder.order(order, origOrder); + } + + methods.selectPage = function(page) { + if (table.page.info().pages < page || page < 1) { + throw 'Selected page is out of range'; + }; + table.page(page - 1).draw(false); + } + + methods.reloadData = function(resetPaging, clearSelection) { + // empty selections first if necessary + if (methods.selectRows && inArray('row', clearSelection)) methods.selectRows([]); + if (methods.selectColumns && inArray('column', clearSelection)) methods.selectColumns([]); + if (methods.selectCells && inArray('cell', clearSelection)) methods.selectCells([]); + table.ajax.reload(null, resetPaging); + } + + // update table filters (set new limits of sliders) + methods.updateFilters = function(newProps) { + // loop through each filter in the filter row + filterRow.each(function(i, td) { + var k = i; + if (filterRow.length > newProps.length) { + if (i === 0) return; // first column is row names + k = i - 1; + } + // Update the filters to reflect the updated data. + // Allow "falsy" (e.g. NULL) to signify a no-op. + if (newProps[k]) { + setFilterProps(td, newProps[k]); + } + }); + }; + + table.shinyMethods = methods; + }, + resize: function(el, width, height, instance) { + if (instance.data) this.renderValue(el, instance.data, instance); + + // dynamically adjust height if fillContainer = TRUE + if (instance.fillContainer) + this.fillAvailableHeight(el, height); + + this.adjustWidth(el); + }, + + // dynamically set the scroll body to fill available height + // (used with fillContainer = TRUE) + fillAvailableHeight: function(el, availableHeight) { + + // see how much of the table is occupied by header/footer elements + // and use that to compute a target scroll body height + var dtWrapper = $(el).find('div.dataTables_wrapper'); + var dtScrollBody = $(el).find($('div.dataTables_scrollBody')); + var framingHeight = dtWrapper.innerHeight() - dtScrollBody.innerHeight(); + var scrollBodyHeight = availableHeight - framingHeight; + + // we need to set `max-height` to none as datatables library now sets this + // to a fixed height, disabling the ability to resize to fill the window, + // as it will be set to a fixed 100px under such circumstances, e.g., RStudio IDE, + // or FlexDashboard + // see https://github.com/rstudio/DT/issues/951#issuecomment-1026464509 + dtScrollBody.css('max-height', 'none'); + // set the height + dtScrollBody.height(scrollBodyHeight + 'px'); + }, + + // adjust the width of columns; remove the hard-coded widths on table and the + // scroll header when scrollX/Y are enabled + adjustWidth: function(el) { + var $el = $(el), table = $el.data('datatable'); + if (table) table.columns.adjust(); + $el.find('.dataTables_scrollHeadInner').css('width', '') + .children('table').css('margin-left', ''); + } +}); + + if (!HTMLWidgets.shinyMode) return; + + Shiny.addCustomMessageHandler('datatable-calls', function(data) { + var id = data.id; + var el = document.getElementById(id); + var table = el ? $(el).data('datatable') : null; + if (!table) { + console.log("Couldn't find table with id " + id); + return; + } + + var methods = table.shinyMethods, call = data.call; + if (methods[call.method]) { + methods[call.method].apply(table, call.args); + } else { + console.log("Unknown method " + call.method); + } + }); + +})(); diff --git a/english/site_libs/datatables-css-0.0.0/datatables-crosstalk.css b/english/site_libs/datatables-css-0.0.0/datatables-crosstalk.css new file mode 100644 index 0000000..bd1159c --- /dev/null +++ b/english/site_libs/datatables-css-0.0.0/datatables-crosstalk.css @@ -0,0 +1,32 @@ +.dt-crosstalk-fade { + opacity: 0.2; +} + +html body div.DTS div.dataTables_scrollBody { + background: none; +} + + +/* +Fix https://github.com/rstudio/DT/issues/563 +If the `table.display` is set to "block" (e.g., pkgdown), the browser will display +datatable objects strangely. The search panel and the page buttons will still be +in full-width but the table body will be "compact" and shorter. +In therory, having this attributes will affect `dom="t"` +with `display: block` users. But in reality, there should be no one. +We may remove the below lines in the future if the upstream agree to have this there. +See https://github.com/DataTables/DataTablesSrc/issues/160 +*/ + +table.dataTable { + display: table; +} + + +/* +When DTOutput(fill = TRUE), it receives a .html-fill-item class (via htmltools::bindFillRole()), which effectively amounts to `flex: 1 1 auto`. That's mostly fine, but the case where `fillContainer=TRUE`+`height:auto`+`flex-basis:auto` and the container (e.g., a bslib::card()) doesn't have a defined height is a bit problematic since the table wants to fit the parent but the parent wants to fit the table, which results pretty small table height (maybe because there is a minimum height somewhere?). It seems better in this case to impose a 400px height default for the table, which we can do by setting `flex-basis` to 400px (the table is still allowed to grow/shrink when the container has an opinionated height). +*/ + +.html-fill-container > .html-fill-item.datatables { + flex-basis: 400px; +} diff --git a/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.extra.css b/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.extra.css new file mode 100644 index 0000000..b2dd141 --- /dev/null +++ b/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.extra.css @@ -0,0 +1,28 @@ +/* Selected rows/cells */ +table.dataTable tr.selected td, table.dataTable td.selected { + background-color: #b0bed9 !important; +} +/* In case of scrollX/Y or FixedHeader */ +.dataTables_scrollBody .dataTables_sizing { + visibility: hidden; +} + +/* The datatables' theme CSS file doesn't define +the color but with white background. It leads to an issue that +when the HTML's body color is set to 'white', the user can't +see the text since the background is white. One case happens in the +RStudio's IDE when inline viewing the DT table inside an Rmd file, +if the IDE theme is set to "Cobalt". + +See https://github.com/rstudio/DT/issues/447 for more info + +This fixes should have little side-effects because all the other elements +of the default theme use the #333 font color. + +TODO: The upstream may use relative colors for both the table background +and the color. It means the table can display well without this patch +then. At that time, we need to remove the below CSS attributes. +*/ +div.datatables { + color: #333; +} diff --git a/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.min.css b/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.min.css new file mode 100644 index 0000000..f1db0e8 --- /dev/null +++ b/english/site_libs/dt-core-1.11.3/css/jquery.dataTables.min.css @@ -0,0 +1 @@ +td.dt-control{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACjElEQVR4Aa2V30uTURjHnVBUgglCaXVTJJVLMdhQm7+1JEvJiKAggmgSQiKJl0V0E13UVf0HQZmBLcvlpqa55tqV0YoMzIhY6js0yDH11X17vuO8Sq5Zgl/48DznPD/G63nOMSmBkoUNwhYhTUgn9NUeY8z5p0wqOVXYKRwQLMJhhYV7Kpaqck2rNdskbBPMdrv9osfjcQaDwW/RaHSR0OceY8xhrqox/a3ZZmGHkO9wOB7ouj6PBGKMOcxlzcqmdDYKGZmZmSWjo6PvIYosRuDWXGj50IwTb4+hxleN5sAVvJh4jvBCGBRzWSO121UPk3EAaUKuz+d7ycTp+Wnc/nwL1d4qHBVidmjZv/npBkJzGiiv19vFWmGrcVDsvKupqeky/056VMf1j9dQOViBKo9Aa/ixdbnYcrQGWsBc1jQ2NtrZQ/VKShHM8kvdEPVN9qJsoBRl/aUoHyiJ+UpcCxJTtmfCDYoHJT2yYyOlPtcaCoUmGGwdbkVRbxGK+2y0gg2GisUvNmJCy/BVUJqm/eBIxXqpgbUtiBise12HQlc+ClwFSKRCiZH6wXpQs7OzETWn6XENa/trYemywuK0IpGsTotgRU3fcVBzouWG6pOnpqY0BhuGGpDXeUjIW7JKcfuX3tjjP9k4FBkZN4PtY+042JGzzNMcGDJ35C7tmcU++tJmjE63OpSUuLEJ62GcfXUO+59kr8rJnlOY0WfAGtYaY/PHYPv9fhdEY7++4nz/BWS17UPWY0Es2avWp3vOYOTnCCheBtaqHskJr95kZBL3AvdR2XkEex5mYbdQ+qwCd97dRTAcXHn1Moyrt16PA2tN//V8jY+Pf4cS/VWerzU9sDay1gd2Xf4F/AZqlpeB9836LwAAAABJRU5ErkJggg==) no-repeat center center;cursor:pointer}tr.dt-hasChild td.dt-control{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACdUlEQVR4Aa2V30tTYRjHVSgsoQKhXPUPlKZMlImiIIg/pggiiDeCBAdqyC4Kf9zVhVdeelX33QnCbtYvxZsxxkoqKxiz1SzdFudMb5xO5/bt+fa+sPCw3IVf+PA+532e5ytn53lfK0qoSrggXBauCbUKxtxjjjVnq1IXXxFuCXeEFqGdMOYec6zRtZX/M6sWrgv1hmHcDwQCLxOJxM9CoZAnjLnHHGt0bbXdVG1cEm4KLp/P9yKXyx2jhJhjDWvZc9qUwUWhzuFwdMVisc8QFQ4PcbCygvT0NJLDw0gNDSH96DEyfj8KmQwo1rJHem8oD2VapX/sxlAo9Aqi/N4e9hYWsDMwgARxD2DH7ZZYren5eZxYFqhgMOhnr3BVeSnn216v98Hf3yqXg/X0CX719YFs9/WquJfPGtkzZ2fBWvZ4PB6DHtqrokaol7/0GqLM2hq2enpsxMmpvf3VVVD8UOJxV42Uet1Wy7J+M5mam8P37u6ySM7MgDJNM8mRUl5qYDtOREz+GB3FZlcXNjs7UUrMk/jYGKhsNnuo57TWZhgTw0hHO0EpRdpV/tvICKgjUdFQv/Lu7q7JZHxqCl9dLqGtSJtL4VJ80Wvc8xD2V9YfRUbmLZPp5WVstLTYaSWt+lmt1tISKH5Q/VFqbGOTl6GNTk7iQ3Oz4FSrU8UfuTqdBJHxceQz+2APe/8Zm+Jgh8PhNxBlt7YQNQysNzVivbEJ7wXGiiZEJiZwEI2C4mFgr/aoKnn0jk0TiWfPsTE4iHcN9xBuaMCn/n5sLy7iKJk8ffTqikfvfC4H9laWdX2lUqltaDEu9/o664LtIOVfsOf4L+APb5yaiwyN8+8AAAAASUVORK5CYII=) no-repeat center center}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC)}table.dataTable thead .sorting_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==) !important}table.dataTable thead .sorting_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII=) !important}table.dataTable thead .sorting_asc_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4/HknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO+cxuo6PEdLUIeyb7z604pYf+y3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII=)}table.dataTable thead .sorting_desc_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7/y6k01Ikdadx3f+37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq+3THBpci3jv7oIpAcMcdduzKEu/8vPMdDn/eiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg==)}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, white 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, white 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, white 0%, #dcdcdc 100%);background:-o-linear-gradient(top, white 0%, #dcdcdc 100%);background:linear-gradient(to bottom, white 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));background:-webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}} diff --git a/english/site_libs/dt-core-1.11.3/js/jquery.dataTables.min.js b/english/site_libs/dt-core-1.11.3/js/jquery.dataTables.min.js new file mode 100644 index 0000000..ff23e91 --- /dev/null +++ b/english/site_libs/dt-core-1.11.3/js/jquery.dataTables.min.js @@ -0,0 +1,187 @@ +/*! + Copyright 2008-2021 SpryMedia Ltd. + + This source file is free software, available under the following license: + MIT license - http://datatables.net/license + + This source file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + + For details please refer to: http://www.datatables.net + DataTables 1.11.3 + ©2008-2021 SpryMedia Ltd - datatables.net/license +*/ +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(l,z,A){l instanceof String&&(l=String(l));for(var q=l.length,E=0;E").css({position:"fixed",top:0,left:-1*l(z).scrollLeft(),height:1, +width:1,overflow:"hidden"}).append(l("
    ").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(l("
    ").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}l.extend(a.oBrowser,u.__browser);a.oScroll.iBarWidth=u.__browser.barWidth} +function Cb(a,b,c,d,e,h){var f=!1;if(c!==q){var g=c;f=!0}for(;d!==e;)a.hasOwnProperty(d)&&(g=f?b(g,a[d],d,a):a[d],f=!0,d+=h);return g}function Xa(a,b){var c=u.defaults.column,d=a.aoColumns.length;c=l.extend({},u.models.oColumn,c,{nTh:b?b:A.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=l.extend({},u.models.oSearch,c[d]);Ga(a,d,l(b).data())}function Ga(a,b,c){b=a.aoColumns[b]; +var d=a.oClasses,e=l(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var h=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);h&&(b.sWidthOrig=h[1])}c!==q&&null!==c&&(Ab(c),P(u.defaults.column,c,!0),c.mDataProp===q||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),l.extend(b,c),X(b,c,"sWidth","sWidthOrig"),c.iDataSort!==q&&(b.aDataSort=[c.iDataSort]),X(b,c,"aDataSort"));var f=b.mData,g=na(f), +k=b.mRender?na(b.mRender):null;c=function(m){return"string"===typeof m&&-1!==m.indexOf("@")};b._bAttrSrc=l.isPlainObject(f)&&(c(f.sort)||c(f.type)||c(f.filter));b._setter=null;b.fnGetData=function(m,n,p){var t=g(m,n,q,p);return k&&n?k(t,n,m,p):t};b.fnSetData=function(m,n,p){return ha(f)(m,n,p)};"number"!==typeof f&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==l.inArray("asc",b.asSorting);c=-1!==l.inArray("desc",b.asSorting);b.bSortable&&(a||c)?a&&!c? +(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI="")}function ta(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ya(a);for(var c=0,d=b.length;cm[n])d(g.length+m[n],k);else if("string"===typeof m[n]){var p=0;for(f=g.length;pb&&a[e]--; -1!=d&&c===q&&a.splice(d,1)}function wa(a,b,c,d){var e=a.aoData[b],h,f=function(k,m){for(;k.childNodes.length;)k.removeChild(k.firstChild);k.innerHTML=T(a,b,m,"display")};if("dom"!==c&&(c&&"auto"!==c||"dom"!==e.src)){var g=e.anCells;if(g)if(d!==q)f(g[d],d);else for(c=0,h=g.length;c").appendTo(d));var k=0;for(b=g.length;k=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);g=a._iDisplayStart;var n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,V(a,!1);else if(!k)a.iDraw++;else if(!a.bDestroying&&!b){Gb(a);return}if(0!==m.length)for(b=k?a.aoData.length:n,f=k?0:g;f",{"class":h?e[0]:""}).append(l("",{valign:"top",colSpan:oa(a),"class":a.oClasses.sRowEmpty}).html(d))[0];F(a,"aoHeaderCallback","header",[l(a.nTHead).children("tr")[0],cb(a),g,n,m]);F(a,"aoFooterCallback", +"footer",[l(a.nTFoot).children("tr")[0],cb(a),g,n,m]);e=l(a.nTBody);e.children().detach();e.append(l(c));F(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function ka(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&Hb(a);d?za(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;ja(a);a._drawHold=!1}function Ib(a){var b=a.oClasses,c=l(a.nTable);c=l("
    ").insertBefore(c);var d=a.oFeatures,e=l("
    ",{id:a.sTableId+"_wrapper", +"class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var h=a.sDom.split(""),f,g,k,m,n,p,t=0;t")[0];m=h[t+1];if("'"==m||'"'==m){n="";for(p=2;h[t+p]!=m;)n+=h[t+p],p++;"H"==n?n=b.sJUIHeader:"F"==n&&(n=b.sJUIFooter);-1!=n.indexOf(".")?(m=n.split("."),k.id=m[0].substr(1,m[0].length-1),k.className=m[1]):"#"==n.charAt(0)?k.id=n.substr(1,n.length-1):k.className=n;t+=p}e.append(k); +e=l(k)}else if(">"==g)e=e.parent();else if("l"==g&&d.bPaginate&&d.bLengthChange)f=Jb(a);else if("f"==g&&d.bFilter)f=Kb(a);else if("r"==g&&d.bProcessing)f=Lb(a);else if("t"==g)f=Mb(a);else if("i"==g&&d.bInfo)f=Nb(a);else if("p"==g&&d.bPaginate)f=Ob(a);else if(0!==u.ext.feature.length)for(k=u.ext.feature,p=0,m=k.length;p',g=d.sSearch;g=g.match(/_INPUT_/)?g.replace("_INPUT_",f):g+f;b=l("
    ",{id:h.f?null:c+"_filter","class":b.sFilter}).append(l("
    ").addClass(b.sLength);a.aanFeatures.l||(k[0].id=c+"_length");k.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));l("select",k).val(a._iDisplayLength).on("change.DT",function(m){jb(a,l(this).val());ja(a)});l(a.nTable).on("length.dt.DT",function(m,n,p){a===n&&l("select",k).val(p)});return k[0]}function Ob(a){var b=a.sPaginationType,c=u.ext.pager[b],d="function"===typeof c,e=function(f){ja(f)};b=l("
    ").addClass(a.oClasses.sPaging+b)[0]; +var h=a.aanFeatures;d||c.fnInit(a,b,e);h.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(f){if(d){var g=f._iDisplayStart,k=f._iDisplayLength,m=f.fnRecordsDisplay(),n=-1===k;g=n?0:Math.ceil(g/k);k=n?1:Math.ceil(m/k);m=c(g,k);var p;n=0;for(p=h.p.length;nh&& +(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e",{id:a.aanFeatures.r?null:a.sTableId+"_processing","class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function V(a,b){a.oFeatures.bProcessing&&l(a.aanFeatures.r).css("display",b?"block":"none"); +F(a,null,"processing",[a,b])}function Mb(a){var b=l(a.nTable),c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,h=a.oClasses,f=b.children("caption"),g=f.length?f[0]._captionSide:null,k=l(b[0].cloneNode(!1)),m=l(b[0].cloneNode(!1)),n=b.children("tfoot");n.length||(n=null);k=l("
    ",{"class":h.sScrollWrapper}).append(l("
    ",{"class":h.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?d?K(d):null:"100%"}).append(l("
    ",{"class":h.sScrollHeadInner}).css({"box-sizing":"content-box", +width:c.sXInner||"100%"}).append(k.removeAttr("id").css("margin-left",0).append("top"===g?f:null).append(b.children("thead"))))).append(l("
    ",{"class":h.sScrollBody}).css({position:"relative",overflow:"auto",width:d?K(d):null}).append(b));n&&k.append(l("
    ",{"class":h.sScrollFoot}).css({overflow:"hidden",border:0,width:d?d?K(d):null:"100%"}).append(l("
    ",{"class":h.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===g?f:null).append(b.children("tfoot"))))); +b=k.children();var p=b[0];h=b[1];var t=n?b[2]:null;if(d)l(h).on("scroll.DT",function(v){v=this.scrollLeft;p.scrollLeft=v;n&&(t.scrollLeft=v)});l(h).css("max-height",e);c.bCollapse||l(h).css("height",e);a.nScrollHead=p;a.nScrollBody=h;a.nScrollFoot=t;a.aoDrawCallback.push({fn:Ha,sName:"scrolling"});return k[0]}function Ha(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var h=l(a.nScrollHead),f=h[0].style,g=h.children("div"),k=g[0].style,m=g.children("table");g=a.nScrollBody;var n=l(g),p= +g.style,t=l(a.nScrollFoot).children("div"),v=t.children("table"),x=l(a.nTHead),w=l(a.nTable),r=w[0],C=r.style,G=a.nTFoot?l(a.nTFoot):null,aa=a.oBrowser,L=aa.bScrollOversize;U(a.aoColumns,"nTh");var O=[],I=[],H=[],ea=[],Y,Ca=function(D){D=D.style;D.paddingTop="0";D.paddingBottom="0";D.borderTopWidth="0";D.borderBottomWidth="0";D.height=0};var fa=g.scrollHeight>g.clientHeight;if(a.scrollBarVis!==fa&&a.scrollBarVis!==q)a.scrollBarVis=fa,ta(a);else{a.scrollBarVis=fa;w.children("thead, tfoot").remove(); +if(G){var ba=G.clone().prependTo(w);var la=G.find("tr");ba=ba.find("tr")}var mb=x.clone().prependTo(w);x=x.find("tr");fa=mb.find("tr");mb.find("th, td").removeAttr("tabindex");c||(p.width="100%",h[0].style.width="100%");l.each(Na(a,mb),function(D,W){Y=ua(a,D);W.style.width=a.aoColumns[Y].sWidth});G&&ca(function(D){D.style.width=""},ba);h=w.outerWidth();""===c?(C.width="100%",L&&(w.find("tbody").height()>g.offsetHeight||"scroll"==n.css("overflow-y"))&&(C.width=K(w.outerWidth()-b)),h=w.outerWidth()): +""!==d&&(C.width=K(d),h=w.outerWidth());ca(Ca,fa);ca(function(D){var W=z.getComputedStyle?z.getComputedStyle(D).width:K(l(D).width());H.push(D.innerHTML);O.push(W)},fa);ca(function(D,W){D.style.width=O[W]},x);l(fa).height(0);G&&(ca(Ca,ba),ca(function(D){ea.push(D.innerHTML);I.push(K(l(D).css("width")))},ba),ca(function(D,W){D.style.width=I[W]},la),l(ba).height(0));ca(function(D,W){D.innerHTML='
    '+H[W]+"
    ";D.childNodes[0].style.height="0";D.childNodes[0].style.overflow= +"hidden";D.style.width=O[W]},fa);G&&ca(function(D,W){D.innerHTML='
    '+ea[W]+"
    ";D.childNodes[0].style.height="0";D.childNodes[0].style.overflow="hidden";D.style.width=I[W]},ba);w.outerWidth()g.offsetHeight||"scroll"==n.css("overflow-y")?h+b:h,L&&(g.scrollHeight>g.offsetHeight||"scroll"==n.css("overflow-y"))&&(C.width=K(la-b)),""!==c&&""===d||da(a,1,"Possible column misalignment",6)):la="100%";p.width=K(la);f.width=K(la);G&&(a.nScrollFoot.style.width= +K(la));!e&&L&&(p.height=K(r.offsetHeight+b));c=w.outerWidth();m[0].style.width=K(c);k.width=K(c);d=w.height()>g.clientHeight||"scroll"==n.css("overflow-y");e="padding"+(aa.bScrollbarLeft?"Left":"Right");k[e]=d?b+"px":"0px";G&&(v[0].style.width=K(c),t[0].style.width=K(c),t[0].style[e]=d?b+"px":"0px");w.children("colgroup").insertBefore(w.children("thead"));n.trigger("scroll");!a.bSorted&&!a.bFiltered||a._drawHold||(g.scrollTop=0)}}function ca(a,b,c){for(var d=0,e=0,h=b.length,f,g;e").appendTo(g.find("tbody"));g.find("thead, tfoot").remove();g.append(l(a.nTHead).clone()).append(l(a.nTFoot).clone());g.find("tfoot th, tfoot td").css("width","");m=Na(a,g.find("thead")[0]);for(v=0;v").css({width:w.sWidthOrig, +margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(v=0;v").css(h||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(g).appendTo(p);h&&f?g.width(f):h?(g.css("width","auto"),g.removeAttr("width"),g.width()").css("width",K(a)).appendTo(b||A.body);b=a[0].offsetWidth;a.remove();return b}function $b(a,b){var c=ac(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]: +l("").html(T(a,c,b,"display"))[0]}function ac(a,b){for(var c,d=-1,e=-1,h=0,f=a.aoData.length;hd&&(d=c.length,e=h);return e}function K(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function pa(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=l.isPlainObject(d);var h=[];var f=function(n){n.length&&!Array.isArray(n[0])?h.push(n):l.merge(h,n)};Array.isArray(d)&&f(d); +e&&d.pre&&f(d.pre);f(a.aaSorting);e&&d.post&&f(d.post);for(a=0;aG?1:0;if(0!==C)return"asc"===r.dir?C:-C}C=c[n];G=c[p];return CG?1:0}):f.sort(function(n,p){var t,v=g.length,x=e[n]._aSortData,w=e[p]._aSortData;for(t=0;tG?1:0})}a.bSorted=!0}function cc(a){var b=a.aoColumns,c=pa(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d/g,"");var k=h.nTh;k.removeAttribute("aria-sort");h.bSortable&&(0e?e+1:3))}e=0;for(h=d.length;ee?e+1:3))}a.aLastSort=d}function bc(a,b){var c=a.aoColumns[b],d=u.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,va(a,b)));for(var h,f=u.ext.type.order[c.sType+"-pre"],g=0,k=a.aoData.length;g=e.length?[0, +m[1]]:m)}));b.search!==q&&l.extend(a.oPreviousSearch,Wb(b.search));if(b.columns){f=0;for(d=b.columns.length;f=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function fb(a,b){a=a.renderer;var c=u.ext.renderer[b];return l.isPlainObject(a)&&a[b]?c[a[b]]||c._:"string"===typeof a?c[a]||c._:c._}function Q(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Da(a,b){var c=ec.numbers_length,d=Math.floor(c/2); +b<=c?a=ra(0,b):a<=d?(a=ra(0,c-2),a.push("ellipsis"),a.push(b-1)):(a>=b-1-d?a=ra(b-(c-2),b):(a=ra(a-d+2,a+d-1),a.push("ellipsis"),a.push(b-1)),a.splice(0,0,"ellipsis"),a.splice(0,0,0));a.DT_el="span";return a}function Wa(a){l.each({num:function(b){return Ta(b,a)},"num-fmt":function(b){return Ta(b,a,rb)},"html-num":function(b){return Ta(b,a,Ua)},"html-num-fmt":function(b){return Ta(b,a,Ua,rb)}},function(b,c){M.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(M.type.search[b+a]=M.type.search.html)})}function fc(a){return function(){var b= +[Sa(this[u.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return u.ext.internal[a].apply(this,b)}}var u=function(a,b){if(this instanceof u)return l(a).DataTable(b);b=a;this.$=function(f,g){return this.api(!0).$(f,g)};this._=function(f,g){return this.api(!0).rows(f,g).data()};this.api=function(f){return f?new B(Sa(this[M.iApiIndex])):new B(this)};this.fnAddData=function(f,g){var k=this.api(!0);f=Array.isArray(f)&&(Array.isArray(f[0])||l.isPlainObject(f[0]))?k.rows.add(f):k.row.add(f); +(g===q||g)&&k.draw();return f.flatten().toArray()};this.fnAdjustColumnSizing=function(f){var g=this.api(!0).columns.adjust(),k=g.settings()[0],m=k.oScroll;f===q||f?g.draw(!1):(""!==m.sX||""!==m.sY)&&Ha(k)};this.fnClearTable=function(f){var g=this.api(!0).clear();(f===q||f)&&g.draw()};this.fnClose=function(f){this.api(!0).row(f).child.hide()};this.fnDeleteRow=function(f,g,k){var m=this.api(!0);f=m.rows(f);var n=f.settings()[0],p=n.aoData[f[0][0]];f.remove();g&&g.call(this,n,p);(k===q||k)&&m.draw(); +return p};this.fnDestroy=function(f){this.api(!0).destroy(f)};this.fnDraw=function(f){this.api(!0).draw(f)};this.fnFilter=function(f,g,k,m,n,p){n=this.api(!0);null===g||g===q?n.search(f,k,m,p):n.column(g).search(f,k,m,p);n.draw()};this.fnGetData=function(f,g){var k=this.api(!0);if(f!==q){var m=f.nodeName?f.nodeName.toLowerCase():"";return g!==q||"td"==m||"th"==m?k.cell(f,g).data():k.row(f).data()||null}return k.data().toArray()};this.fnGetNodes=function(f){var g=this.api(!0);return f!==q?g.row(f).node(): +g.rows().nodes().flatten().toArray()};this.fnGetPosition=function(f){var g=this.api(!0),k=f.nodeName.toUpperCase();return"TR"==k?g.row(f).index():"TD"==k||"TH"==k?(f=g.cell(f).index(),[f.row,f.columnVisible,f.column]):null};this.fnIsOpen=function(f){return this.api(!0).row(f).child.isShown()};this.fnOpen=function(f,g,k){return this.api(!0).row(f).child(g,k).show().child()[0]};this.fnPageChange=function(f,g){f=this.api(!0).page(f);(g===q||g)&&f.draw(!1)};this.fnSetColumnVis=function(f,g,k){f=this.api(!0).column(f).visible(g); +(k===q||k)&&f.columns.adjust().draw()};this.fnSettings=function(){return Sa(this[M.iApiIndex])};this.fnSort=function(f){this.api(!0).order(f).draw()};this.fnSortListener=function(f,g,k){this.api(!0).order.listener(f,g,k)};this.fnUpdate=function(f,g,k,m,n){var p=this.api(!0);k===q||null===k?p.row(g).data(f):p.cell(g,k).data(f);(n===q||n)&&p.columns.adjust();(m===q||m)&&p.draw();return 0};this.fnVersionCheck=M.fnVersionCheck;var c=this,d=b===q,e=this.length;d&&(b={});this.oApi=this.internal=M.internal; +for(var h in u.ext.internal)h&&(this[h]=fc(h));this.each(function(){var f={},g=1").appendTo(t));r.nTHead=H[0];var ea=t.children("tbody");0===ea.length&&(ea=l("").insertAfter(H)); +r.nTBody=ea[0];H=t.children("tfoot");0===H.length&&0").appendTo(t));0===H.length||0===H.children().length?t.addClass(C.sNoFooter):0/g,uc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,vc=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\|\$|\^|\-)/g,rb=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,Z=function(a){return a&&!0!==a&&"-"!==a?!1:!0},hc=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},ic=function(a,b){sb[b]||(sb[b]=new RegExp(ib(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g, +"").replace(sb[b],"."):a},tb=function(a,b,c){var d="string"===typeof a;if(Z(a))return!0;b&&d&&(a=ic(a,b));c&&d&&(a=a.replace(rb,""));return!isNaN(parseFloat(a))&&isFinite(a)},jc=function(a,b,c){return Z(a)?!0:Z(a)||"string"===typeof a?tb(a.replace(Ua,""),b,c)?!0:null:null},U=function(a,b,c){var d=[],e=0,h=a.length;if(c!==q)for(;ea.length)){var b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d")[0],sc=Qa.textContent!==q,tc=/<.*?>/g,gb=u.util.throttle,nc=[],N=Array.prototype,wc=function(a){var b,c=u.settings,d=l.map(c,function(h,f){return h.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase()){var e=l.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?b=l(a):a instanceof l&&(b=a)}else return[];if(b)return b.map(function(h){e= +l.inArray(this,d);return-1!==e?c[e]:null}).toArray()};var B=function(a,b){if(!(this instanceof B))return new B(a,b);var c=[],d=function(f){(f=wc(f))&&c.push.apply(c,f)};if(Array.isArray(a))for(var e=0,h=a.length;ea?new B(b[a],this[a]):null},filter:function(a){var b=[];if(N.filter)b=N.filter.call(this,a,this);else for(var c=0,d=this.length;c").addClass(g),l("td",k).addClass(g).html(f)[0].colSpan= +oa(a),e.push(k[0]))};h(c,d);b._details&&b._details.detach();b._details=l(e);b._detailsShow&&b._details.insertAfter(b.nTr)},xb=function(a,b){var c=a.context;c.length&&(a=c[0].aoData[b!==q?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=q,a._details=q,l(a.nTr).removeClass("dt-hasChild"),qa(c[0]))},qc=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];d._details&&((d._detailsShow=b)?(d._details.insertAfter(d.nTr),l(d.nTr).addClass("dt-hasChild")):(d._details.detach(), +l(d.nTr).removeClass("dt-hasChild")),F(c[0],null,"childRow",[b,a.row(a[0])]),zc(c[0]),qa(c[0]))}},zc=function(a){var b=new B(a),c=a.aoData;b.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0g){var n=l.map(d,function(p,t){return p.bVisible?t:null});return[n[n.length+g]]}return[ua(a,g)];case "name":return l.map(e,function(p,t){return p===m[1]?t:null});default:return[]}if(f.nodeName&&f._DT_CellIndex)return[f._DT_CellIndex.column]; +g=l(h).filter(f).map(function(){return l.inArray(this,h)}).toArray();if(g.length||!f.nodeName)return g;g=l(f).closest("*[data-dt-column]");return g.length?[g.data("dt-column")]:[]},a,c)};y("columns()",function(a,b){a===q?a="":l.isPlainObject(a)&&(b=a,a="");b=vb(b);var c=this.iterator("table",function(d){return Bc(d,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});J("columns().header()","column().header()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTh}, +1)});J("columns().footer()","column().footer()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTf},1)});J("columns().data()","column().data()",function(){return this.iterator("column-rows",rc,1)});J("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});J("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,h){return Ea(b.aoData,h,"search"=== +a?"_aFilterData":"_aSortData",c)},1)});J("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return Ea(a.aoData,e,"anCells",b)},1)});J("columns().visible()","column().visible()",function(a,b){var c=this,d=this.iterator("column",function(e,h){if(a===q)return e.aoColumns[h].bVisible;var f=e.aoColumns,g=f[h],k=e.aoData,m;if(a!==q&&g.bVisible!==a){if(a){var n=l.inArray(!0,U(f,"bVisible"),h+1);f=0;for(m=k.length;fd;return!0};u.isDataTable=u.fnIsDataTable=function(a){var b= +l(a).get(0),c=!1;if(a instanceof u.Api)return!0;l.each(u.settings,function(d,e){d=e.nScrollHead?l("table",e.nScrollHead)[0]:null;var h=e.nScrollFoot?l("table",e.nScrollFoot)[0]:null;if(e.nTable===b||d===b||h===b)c=!0});return c};u.tables=u.fnTables=function(a){var b=!1;l.isPlainObject(a)&&(b=a.api,a=a.visible);var c=l.map(u.settings,function(d){if(!a||a&&l(d.nTable).is(":visible"))return d.nTable});return b?new B(c):c};u.camelToHungarian=P;y("$()",function(a,b){b=this.rows(b).nodes();b=l(b);return l([].concat(b.filter(a).toArray(), +b.find(a).toArray()))});l.each(["on","one","off"],function(a,b){y(b+"()",function(){var c=Array.prototype.slice.call(arguments);c[0]=l.map(c[0].split(/\s/),function(e){return e.match(/\.dt\b/)?e:e+".dt"}).join(" ");var d=l(this.tables().nodes());d[b].apply(d,c);return this})});y("clear()",function(){return this.iterator("table",function(a){Ka(a)})});y("settings()",function(){return new B(this.context,this.context)});y("init()",function(){var a=this.context;return a.length?a[0].oInit:null});y("data()", +function(){return this.iterator("table",function(a){return U(a.aoData,"_aData")}).flatten()});y("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,h=b.nTBody,f=b.nTHead,g=b.nTFoot,k=l(e);h=l(h);var m=l(b.nTableWrapper),n=l.map(b.aoData,function(t){return t.nTr}),p;b.bDestroying=!0;F(b,"aoDestroyCallback","destroy",[b]);a||(new B(b)).columns().visible(!0);m.off(".DT").find(":not(tbody *)").off(".DT");l(z).off(".DT-"+b.sInstance); +e!=f.parentNode&&(k.children("thead").detach(),k.append(f));g&&e!=g.parentNode&&(k.children("tfoot").detach(),k.append(g));b.aaSorting=[];b.aaSortingFixed=[];Ra(b);l(n).removeClass(b.asStripeClasses.join(" "));l("th, td",f).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);h.children().detach();h.append(n);f=a?"remove":"detach";k[f]();m[f]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),k.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&& +h.children().each(function(t){l(this).addClass(b.asDestroyStripes[t%p])}));c=l.inArray(b,u.settings);-1!==c&&u.settings.splice(c,1)})});l.each(["column","row","cell"],function(a,b){y(b+"s().every()",function(c){var d=this.selector.opts,e=this;return this.iterator(b,function(h,f,g,k,m){c.call(e[b](f,"cell"===b?g:d,"cell"===b?d:q),f,g,k,m)})})});y("i18n()",function(a,b,c){var d=this.context[0];a=na(a)(d.oLanguage);a===q&&(a=b);c!==q&&l.isPlainObject(a)&&(a=a[c]!==q?a[c]:a._);return a.replace("%d",c)}); +u.version="1.11.3";u.settings=[];u.models={};u.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0,"return":!1};u.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};u.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null, +sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};u.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1, +bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){return{}}}, +fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last", +sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:l.extend({},u.models.oSearch),sAjaxDataProp:"data", +sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};E(u.defaults);u.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};E(u.defaults.column);u.models.oSettings= +{oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{}, +aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0, +aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,jqXHR:null,json:q,oAjaxData:q,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==Q(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length}, +fnRecordsDisplay:function(){return"ssp"==Q(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,h=e.bPaginate;return e.bServerSide?!1===h||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!h||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};u.ext=M={buttons:{},classes:{},builder:"-source-", +errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:u.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:u.version};l.extend(M,{afnFiltering:M.search,aTypes:M.type.detect,ofnSearch:M.type.search,oSort:M.type.order,afnSortData:M.order,aoFeatures:M.feature,oApi:M.internal,oStdClasses:M.classes,oPagination:M.pager});l.extend(u.ext.classes, +{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_desc_disabled",sSortableDesc:"sorting_asc_disabled", +sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var ec= +u.ext.pager;l.extend(ec,{simple:function(a,b){return["previous","next"]},full:function(a,b){return["first","previous","next","last"]},numbers:function(a,b){return[Da(a,b)]},simple_numbers:function(a,b){return["previous",Da(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Da(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",Da(a,b),"last"]},_numbers:Da,numbers_length:7});l.extend(!0,u.ext.renderer,{pageButton:{_:function(a,b,c,d,e,h){var f=a.oClasses,g=a.oLanguage.oPaginate, +k=a.oLanguage.oAria.paginate||{},m,n,p=0,t=function(x,w){var r,C=f.sPageButtonDisabled,G=function(I){lb(a,I.data.action,!0)};var aa=0;for(r=w.length;aa").appendTo(x);t(O,L)}else{m=null;n=L;O=a.iTabIndex;switch(L){case "ellipsis":x.append('');break;case "first":m=g.sFirst;0===e&&(O=-1,n+=" "+C);break;case "previous":m=g.sPrevious;0===e&&(O=-1,n+=" "+C);break;case "next":m=g.sNext;if(0=== +h||e===h-1)O=-1,n+=" "+C;break;case "last":m=g.sLast;if(0===h||e===h-1)O=-1,n+=" "+C;break;default:m=a.fnFormatNumber(L+1),n=e===L?f.sPageButtonActive:""}null!==m&&(O=l("",{"class":f.sPageButton+" "+n,"aria-controls":a.sTableId,"aria-label":k[L],"data-dt-idx":p,tabindex:O,id:0===c&&"string"===typeof L?a.sTableId+"_"+L:null}).html(m).appendTo(x),ob(O,{action:L},G),p++)}}};try{var v=l(b).find(A.activeElement).data("dt-idx")}catch(x){}t(l(b).empty(),d);v!==q&&l(b).find("[data-dt-idx="+v+"]").trigger("focus")}}}); +l.extend(u.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return tb(a,b)?"num"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!uc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||Z(a)?"date":null},function(a,b){b=b.oLanguage.sDecimal;return tb(a,b,!0)?"num-fmt"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b)?"html-num"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b,!0)?"html-num-fmt"+b:null},function(a,b){return Z(a)||"string"===typeof a&&-1!==a.indexOf("<")? +"html":null}]);l.extend(u.ext.type.search,{html:function(a){return Z(a)?a:"string"===typeof a?a.replace(gc," ").replace(Ua,""):""},string:function(a){return Z(a)?a:"string"===typeof a?a.replace(gc," "):a}});var Ta=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=ic(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};l.extend(M.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return Z(a)?"":a.replace?a.replace(/<.*?>/g, +"").toLowerCase():a+""},"string-pre":function(a){return Z(a)?"":"string"===typeof a?a.toLowerCase():a.toString?a.toString():""},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});Wa("");l.extend(!0,u.ext.renderer,{header:{_:function(a,b,c,d){l(a.nTable).on("order.dt.DT",function(e,h,f,g){a===h&&(e=c.idx,b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass("asc"==g[e]?d.sSortAsc:"desc"==g[e]?d.sSortDesc:c.sSortingClass))})},jqueryui:function(a,b,c, +d){l("
    ").addClass(d.sSortJUIWrapper).append(b.contents()).append(l("").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);l(a.nTable).on("order.dt.DT",function(e,h,f,g){a===h&&(e=c.idx,b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass("asc"==g[e]?d.sSortAsc:"desc"==g[e]?d.sSortDesc:c.sSortingClass),b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass("asc"==g[e]?d.sSortJUIAsc:"desc"== +g[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var yb=function(a){Array.isArray(a)&&(a=a.join(","));return"string"===typeof a?a.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""):a};u.render={number:function(a,b,c,d,e){return{display:function(h){if("number"!==typeof h&&"string"!==typeof h)return h;var f=0>h?"-":"",g=parseFloat(h);if(isNaN(g))return yb(h);g=g.toFixed(c);h=Math.abs(g);g=parseInt(h,10);h=c?b+(h-g).toFixed(c).substring(2):"";0===g&&0===parseFloat(h)&& +(f="");return f+(d||"")+g.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+h+(e||"")}}},text:function(){return{display:yb,filter:yb}}};l.extend(u.ext.internal,{_fnExternApiFunc:fc,_fnBuildAjax:Oa,_fnAjaxUpdate:Gb,_fnAjaxParameters:Pb,_fnAjaxUpdateDraw:Qb,_fnAjaxDataSrc:Aa,_fnAddColumn:Xa,_fnColumnOptions:Ga,_fnAdjustColumnSizing:ta,_fnVisibleToColumnIndex:ua,_fnColumnIndexToVisible:va,_fnVisbleColumns:oa,_fnGetColumns:Ia,_fnColumnTypes:Za,_fnApplyColumnDefs:Db,_fnHungarianMap:E,_fnCamelToHungarian:P, +_fnLanguageCompat:ma,_fnBrowserDetect:Bb,_fnAddData:ia,_fnAddTr:Ja,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==q?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return l.inArray(c,a.aoData[b].anCells)},_fnGetCellData:T,_fnSetCellData:Eb,_fnSplitObjNotation:bb,_fnGetObjectDataFn:na,_fnSetObjectDataFn:ha,_fnGetDataMaster:cb,_fnClearTable:Ka,_fnDeleteIndex:La,_fnInvalidate:wa,_fnGetRowElements:ab,_fnCreateTr:$a,_fnBuildHead:Fb,_fnDrawHead:ya,_fnDraw:ja,_fnReDraw:ka,_fnAddOptionsHtml:Ib, +_fnDetectHeader:xa,_fnGetUniqueThs:Na,_fnFeatureHtmlFilter:Kb,_fnFilterComplete:za,_fnFilterCustom:Tb,_fnFilterColumn:Sb,_fnFilter:Rb,_fnFilterCreateSearch:hb,_fnEscapeRegex:ib,_fnFilterData:Ub,_fnFeatureHtmlInfo:Nb,_fnUpdateInfo:Xb,_fnInfoMacros:Yb,_fnInitialise:Ba,_fnInitComplete:Pa,_fnLengthChange:jb,_fnFeatureHtmlLength:Jb,_fnFeatureHtmlPaginate:Ob,_fnPageChange:lb,_fnFeatureHtmlProcessing:Lb,_fnProcessingDisplay:V,_fnFeatureHtmlTable:Mb,_fnScrollDraw:Ha,_fnApplyToChildren:ca,_fnCalculateColumnWidths:Ya, +_fnThrottle:gb,_fnConvertToWidth:Zb,_fnGetWidestNode:$b,_fnGetMaxLenString:ac,_fnStringToCss:K,_fnSortFlatten:pa,_fnSort:Hb,_fnSortAria:cc,_fnSortListener:nb,_fnSortAttachListener:eb,_fnSortingClasses:Ra,_fnSortData:bc,_fnSaveState:qa,_fnLoadState:dc,_fnImplementState:pb,_fnSettingsFromNode:Sa,_fnLog:da,_fnMap:X,_fnBindAction:ob,_fnCallbackReg:R,_fnCallbackFire:F,_fnLengthOverflow:kb,_fnRenderer:fb,_fnDataSource:Q,_fnRowAttributes:db,_fnExtend:qb,_fnCalculateEnd:function(){}});l.fn.dataTable=u;u.$= +l;l.fn.dataTableSettings=u.settings;l.fn.dataTableExt=u.ext;l.fn.DataTable=function(a){return l(this).dataTable(a).api()};l.each(u,function(a,b){l.fn.DataTable[a]=b});return u}); diff --git a/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.extra.css b/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.extra.css new file mode 100644 index 0000000..b2dd141 --- /dev/null +++ b/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.extra.css @@ -0,0 +1,28 @@ +/* Selected rows/cells */ +table.dataTable tr.selected td, table.dataTable td.selected { + background-color: #b0bed9 !important; +} +/* In case of scrollX/Y or FixedHeader */ +.dataTables_scrollBody .dataTables_sizing { + visibility: hidden; +} + +/* The datatables' theme CSS file doesn't define +the color but with white background. It leads to an issue that +when the HTML's body color is set to 'white', the user can't +see the text since the background is white. One case happens in the +RStudio's IDE when inline viewing the DT table inside an Rmd file, +if the IDE theme is set to "Cobalt". + +See https://github.com/rstudio/DT/issues/447 for more info + +This fixes should have little side-effects because all the other elements +of the default theme use the #333 font color. + +TODO: The upstream may use relative colors for both the table background +and the color. It means the table can display well without this patch +then. At that time, we need to remove the below CSS attributes. +*/ +div.datatables { + color: #333; +} diff --git a/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.min.css b/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.min.css new file mode 100644 index 0000000..aff1ca6 --- /dev/null +++ b/english/site_libs/dt-core-1.13.4/css/jquery.dataTables.min.css @@ -0,0 +1 @@ +:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{height:1em;width:1em;margin-top:-9px;display:inline-block;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:#d33333}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▼";content:"▼"/""}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dataTables_scrollBody>table.dataTable>thead>tr>th:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgb(13, 110, 253);background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px;border-bottom:1px solid rgba(0, 0, 0, 0.3)}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 10px 6px 10px;border-top:1px solid rgba(0, 0, 0, 0.3)}table.dataTable tbody tr{background-color:transparent}table.dataTable tbody tr.selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.9);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.9);color:rgb(255, 255, 255);color:rgb(var(--dt-row-selected-text))}table.dataTable tbody tr.selected a{color:rgb(9, 10, 11);color:rgb(var(--dt-row-selected-link))}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid rgba(0, 0, 0, 0.15);border-right:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid rgba(0, 0, 0, 0.15)}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe>tbody>tr.odd>*,table.dataTable.display>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.023)}table.dataTable.stripe>tbody>tr.odd.selected>*,table.dataTable.display>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.923))}table.dataTable.hover>tbody>tr:hover>*,table.dataTable.display>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.035)}table.dataTable.hover>tbody>tr.selected:hover>*,table.dataTable.display>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd !important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 1)) !important}table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3,table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.019)}table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3,table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.919))}table.dataTable.display>tbody>tr.odd>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.054)}table.dataTable.display>tbody>tr.odd>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.047)}table.dataTable.display>tbody>tr.odd>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.039)}table.dataTable.display>tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.954);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.954))}table.dataTable.display>tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.947);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.947))}table.dataTable.display>tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.939);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.939))}table.dataTable.display>tbody>tr.even>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.019)}table.dataTable.display>tbody>tr.even>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.011)}table.dataTable.display>tbody>tr.even>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.003)}table.dataTable.display>tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.919);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.919))}table.dataTable.display>tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.911);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.911))}table.dataTable.display>tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.903);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.903))}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.082)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.074)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.062)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.982);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.982))}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.974);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.974))}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px rgba(13, 110, 253, 0.962);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected, 0.962))}table.dataTable.no-footer{border-bottom:1px solid rgba(0, 0, 0, 0.3)}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;color:inherit !important;border:1px solid transparent;border-radius:2px;background:transparent}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:inherit !important;border:1px solid rgba(0, 0, 0, 0.3);background-color:rgba(230, 230, 230, 0.1);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(230, 230, 230, 0.1)), color-stop(100%, rgba(0, 0, 0, 0.1)));background:-webkit-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);background:-moz-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);background:-ms-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);background:-o-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);background:linear-gradient(to bottom, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:inherit}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid rgba(0, 0, 0, 0.3)}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}} diff --git a/english/site_libs/dt-core-1.13.4/js/jquery.dataTables.min.js b/english/site_libs/dt-core-1.13.4/js/jquery.dataTables.min.js new file mode 100644 index 0000000..c89263c --- /dev/null +++ b/english/site_libs/dt-core-1.13.4/js/jquery.dataTables.min.js @@ -0,0 +1,4 @@ +/*! DataTables 1.13.4 + * ©2008-2023 SpryMedia Ltd - datatables.net/license + */ +!function(n){"use strict";var a;"function"==typeof define&&define.amd?define(["jquery"],function(t){return n(t,window,document)}):"object"==typeof exports?(a=require("jquery"),"undefined"!=typeof window?module.exports=function(t,e){return t=t||window,e=e||a(t),n(e,t,t.document)}:n(a,window,window.document)):window.DataTable=n(jQuery,window,document)}(function(P,j,y,N){"use strict";function d(t){var e=parseInt(t,10);return!isNaN(e)&&isFinite(t)?e:null}function l(t,e,n){var a=typeof t,r="string"==a;return"number"==a||"bigint"==a||!!h(t)||(e&&r&&(t=G(t,e)),n&&r&&(t=t.replace(q,"")),!isNaN(parseFloat(t))&&isFinite(t))}function a(t,e,n){var a;return!!h(t)||(h(a=t)||"string"==typeof a)&&!!l(t.replace(V,""),e,n)||null}function m(t,e,n,a){var r=[],o=0,i=e.length;if(a!==N)for(;o").appendTo(l)),h.nTHead=n[0],l.children("tbody")),n=(0===a.length&&(a=P("").insertAfter(n)),h.nTBody=a[0],l.children("tfoot"));if(0===(n=0===n.length&&0").appendTo(l):n).length||0===n.children().length?l.addClass(p.sNoFooter):0/g,X=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,J=new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^","-"].join("|\\")+")","g"),q=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,h=function(t){return!t||!0===t||"-"===t},G=function(t,e){return c[e]||(c[e]=new RegExp(Ot(e),"g")),"string"==typeof t&&"."!==e?t.replace(/\./g,"").replace(c[e],"."):t},H=function(t,e,n){var a=[],r=0,o=t.length;if(n!==N)for(;r").css({position:"fixed",top:0,left:-1*P(j).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(P("
    ").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(P("
    ").css({width:"100%",height:10}))).appendTo("body")).children()).children(),e.barWidth=a[0].offsetWidth-a[0].clientWidth,e.bScrollOversize=100===r[0].offsetWidth&&100!==a[0].clientWidth,e.bScrollbarLeft=1!==Math.round(r.offset().left),e.bBounding=!!n[0].getBoundingClientRect().width,n.remove()),P.extend(t.oBrowser,w.__browser),t.oScroll.iBarWidth=w.__browser.barWidth}function et(t,e,n,a,r,o){var i,l=a,s=!1;for(n!==N&&(i=n,s=!0);l!==r;)t.hasOwnProperty(l)&&(i=s?e(i,t[l],l,t):t[l],s=!0,l+=o);return i}function nt(t,e){var n=w.defaults.column,a=t.aoColumns.length,n=P.extend({},w.models.oColumn,n,{nTh:e||y.createElement("th"),sTitle:n.sTitle||(e?e.innerHTML:""),aDataSort:n.aDataSort||[a],mData:n.mData||a,idx:a}),n=(t.aoColumns.push(n),t.aoPreSearchCols);n[a]=P.extend({},w.models.oSearch,n[a]),at(t,a,P(e).data())}function at(t,e,n){function a(t){return"string"==typeof t&&-1!==t.indexOf("@")}var e=t.aoColumns[e],r=t.oClasses,o=P(e.nTh),i=(!e.sWidthOrig&&(e.sWidthOrig=o.attr("width")||null,u=(o.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/))&&(e.sWidthOrig=u[1]),n!==N&&null!==n&&(Q(n),C(w.defaults.column,n,!0),n.mDataProp===N||n.mData||(n.mData=n.mDataProp),n.sType&&(e._sManualType=n.sType),n.className&&!n.sClass&&(n.sClass=n.className),n.sClass&&o.addClass(n.sClass),u=e.sClass,P.extend(e,n),F(e,n,"sWidth","sWidthOrig"),u!==e.sClass&&(e.sClass=u+" "+e.sClass),n.iDataSort!==N&&(e.aDataSort=[n.iDataSort]),F(e,n,"aDataSort")),e.mData),l=A(i),s=e.mRender?A(e.mRender):null,u=(e._bAttrSrc=P.isPlainObject(i)&&(a(i.sort)||a(i.type)||a(i.filter)),e._setter=null,e.fnGetData=function(t,e,n){var a=l(t,e,N,n);return s&&e?s(a,e,t,n):a},e.fnSetData=function(t,e,n){return b(i)(t,e,n)},"number"==typeof i||e._isArrayHost||(t._rowReadObject=!0),t.oFeatures.bSort||(e.bSortable=!1,o.addClass(r.sSortableNone)),-1!==P.inArray("asc",e.asSorting)),n=-1!==P.inArray("desc",e.asSorting);e.bSortable&&(u||n)?u&&!n?(e.sSortingClass=r.sSortableAsc,e.sSortingClassJUI=r.sSortJUIAscAllowed):!u&&n?(e.sSortingClass=r.sSortableDesc,e.sSortingClassJUI=r.sSortJUIDescAllowed):(e.sSortingClass=r.sSortable,e.sSortingClassJUI=r.sSortJUI):(e.sSortingClass=r.sSortableNone,e.sSortingClassJUI="")}function O(t){if(!1!==t.oFeatures.bAutoWidth){var e=t.aoColumns;ee(t);for(var n=0,a=e.length;ne&&t[r]--;-1!=a&&n===N&&t.splice(a,1)}function bt(n,a,t,e){function r(t,e){for(;t.childNodes.length;)t.removeChild(t.firstChild);t.innerHTML=S(n,a,e,"display")}var o,i,l=n.aoData[a];if("dom"!==t&&(t&&"auto"!==t||"dom"!==l.src)){var s=l.anCells;if(s)if(e!==N)r(s[e],e);else for(o=0,i=s.length;o").appendTo(r)),c=0,f=s.length;c=s.fnRecordsDisplay()?0:l,s.iInitDisplayStart=-1);var n=R(t,"aoPreDrawCallback","preDraw",[t]);if(-1!==P.inArray(!1,n))D(t,!1);else{var a=[],r=0,o=t.asStripeClasses,i=o.length,l=t.oLanguage,s="ssp"==E(t),u=t.aiDisplay,n=t._iDisplayStart,c=t.fnDisplayEnd();if(t.bDrawing=!0,t.bDeferLoading)t.bDeferLoading=!1,t.iDraw++,D(t,!1);else if(s){if(!t.bDestroying&&!e)return void xt(t)}else t.iDraw++;if(0!==u.length)for(var f=s?t.aoData.length:c,d=s?0:n;d",{class:i?o[0]:""}).append(P("",{valign:"top",colSpan:T(t),class:t.oClasses.sRowEmpty}).html(e))[0]}R(t,"aoHeaderCallback","header",[P(t.nTHead).children("tr")[0],ht(t),n,c,u]),R(t,"aoFooterCallback","footer",[P(t.nTFoot).children("tr")[0],ht(t),n,c,u]);s=P(t.nTBody);s.children().detach(),s.append(P(a)),R(t,"aoDrawCallback","draw",[t]),t.bSorted=!1,t.bFiltered=!1,t.bDrawing=!1}}function u(t,e){var n=t.oFeatures,a=n.bSort,n=n.bFilter;a&&ie(t),n?Rt(t,t.oPreviousSearch):t.aiDisplay=t.aiDisplayMaster.slice(),!0!==e&&(t._iDisplayStart=0),t._drawHold=e,v(t),t._drawHold=!1}function _t(t){for(var e,n,a,r,o,i,l,s=t.oClasses,u=P(t.nTable),u=P("
    ").insertBefore(u),c=t.oFeatures,f=P("
    ",{id:t.sTableId+"_wrapper",class:s.sWrapper+(t.nTFoot?"":" "+s.sNoFooter)}),d=(t.nHolding=u[0],t.nTableWrapper=f[0],t.nTableReinsertBefore=t.nTable.nextSibling,t.sDom.split("")),h=0;h")[0],"'"==(r=d[h+1])||'"'==r){for(o="",i=2;d[h+i]!=r;)o+=d[h+i],i++;"H"==o?o=s.sJUIHeader:"F"==o&&(o=s.sJUIFooter),-1!=o.indexOf(".")?(l=o.split("."),a.id=l[0].substr(1,l[0].length-1),a.className=l[1]):"#"==o.charAt(0)?a.id=o.substr(1,o.length-1):a.className=o,h+=i}f.append(a),f=P(a)}else if(">"==n)f=f.parent();else if("l"==n&&c.bPaginate&&c.bLengthChange)e=$t(t);else if("f"==n&&c.bFilter)e=Lt(t);else if("r"==n&&c.bProcessing)e=Zt(t);else if("t"==n)e=Kt(t);else if("i"==n&&c.bInfo)e=Ut(t);else if("p"==n&&c.bPaginate)e=zt(t);else if(0!==w.ext.feature.length)for(var p=w.ext.feature,g=0,b=p.length;g',s=(s=r.sSearch).match(/_INPUT_/)?s.replace("_INPUT_",l):s+l,l=P("
    ",{id:i.f?null:a+"_filter",class:t.sFilter}).append(P("
    ").addClass(t.sLength);return a.aanFeatures.l||(c[0].id=e+"_length"),c.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",l[0].outerHTML)),P("select",c).val(a._iDisplayLength).on("change.DT",function(t){Gt(a,P(this).val()),v(a)}),P(a.nTable).on("length.dt.DT",function(t,e,n){a===e&&P("select",c).val(n)}),c[0]}function zt(t){function c(t){v(t)}var e=t.sPaginationType,f=w.ext.pager[e],d="function"==typeof f,e=P("
    ").addClass(t.oClasses.sPaging+e)[0],h=t.aanFeatures;return d||f.fnInit(t,e,c),h.p||(e.id=t.sTableId+"_paginate",t.aoDrawCallback.push({fn:function(t){if(d)for(var e=t._iDisplayStart,n=t._iDisplayLength,a=t.fnRecordsDisplay(),r=-1===n,o=r?0:Math.ceil(e/n),i=r?1:Math.ceil(a/n),l=f(o,i),s=0,u=h.p.length;s",{id:t.aanFeatures.r?null:t.sTableId+"_processing",class:t.oClasses.sProcessing,role:"status"}).html(t.oLanguage.sProcessing).append("
    ").insertBefore(t.nTable)[0]}function D(t,e){t.oFeatures.bProcessing&&P(t.aanFeatures.r).css("display",e?"block":"none"),R(t,null,"processing",[t,e])}function Kt(t){var e,n,a,r,o,i,l,s,u,c,f,d,h=P(t.nTable),p=t.oScroll;return""===p.sX&&""===p.sY?t.nTable:(e=p.sX,n=p.sY,a=t.oClasses,o=(r=h.children("caption")).length?r[0]._captionSide:null,s=P(h[0].cloneNode(!1)),i=P(h[0].cloneNode(!1)),u=function(t){return t?M(t):null},(l=h.children("tfoot")).length||(l=null),s=P(f="
    ",{class:a.sScrollWrapper}).append(P(f,{class:a.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollHeadInner}).css({"box-sizing":"content-box",width:p.sXInner||"100%"}).append(s.removeAttr("id").css("margin-left",0).append("top"===o?r:null).append(h.children("thead"))))).append(P(f,{class:a.sScrollBody}).css({position:"relative",overflow:"auto",width:u(e)}).append(h)),l&&s.append(P(f,{class:a.sScrollFoot}).css({overflow:"hidden",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollFootInner}).append(i.removeAttr("id").css("margin-left",0).append("bottom"===o?r:null).append(h.children("tfoot"))))),u=s.children(),c=u[0],f=u[1],d=l?u[2]:null,e&&P(f).on("scroll.DT",function(t){var e=this.scrollLeft;c.scrollLeft=e,l&&(d.scrollLeft=e)}),P(f).css("max-height",n),p.bCollapse||P(f).css("height",n),t.nScrollHead=c,t.nScrollBody=f,t.nScrollFoot=d,t.aoDrawCallback.push({fn:Qt,sName:"scrolling"}),s[0])}function Qt(n){function t(t){(t=t.style).paddingTop="0",t.paddingBottom="0",t.borderTopWidth="0",t.borderBottomWidth="0",t.height=0}var e,a,r,o,i,l=n.oScroll,s=l.sX,u=l.sXInner,c=l.sY,l=l.iBarWidth,f=P(n.nScrollHead),d=f[0].style,h=f.children("div"),p=h[0].style,h=h.children("table"),g=n.nScrollBody,b=P(g),m=g.style,S=P(n.nScrollFoot).children("div"),v=S.children("table"),y=P(n.nTHead),D=P(n.nTable),_=D[0],w=_.style,C=n.nTFoot?P(n.nTFoot):null,T=n.oBrowser,x=T.bScrollOversize,A=(H(n.aoColumns,"nTh"),[]),I=[],F=[],L=[],R=g.scrollHeight>g.clientHeight;n.scrollBarVis!==R&&n.scrollBarVis!==N?(n.scrollBarVis=R,O(n)):(n.scrollBarVis=R,D.children("thead, tfoot").remove(),C&&(R=C.clone().prependTo(D),i=C.find("tr"),a=R.find("tr"),R.find("[id]").removeAttr("id")),R=y.clone().prependTo(D),y=y.find("tr"),e=R.find("tr"),R.find("th, td").removeAttr("tabindex"),R.find("[id]").removeAttr("id"),s||(m.width="100%",f[0].style.width="100%"),P.each(Ct(n,R),function(t,e){r=rt(n,t),e.style.width=n.aoColumns[r].sWidth}),C&&k(function(t){t.style.width=""},a),f=D.outerWidth(),""===s?(w.width="100%",x&&(D.find("tbody").height()>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(w.width=M(D.outerWidth()-l)),f=D.outerWidth()):""!==u&&(w.width=M(u),f=D.outerWidth()),k(t,e),k(function(t){var e=j.getComputedStyle?j.getComputedStyle(t).width:M(P(t).width());F.push(t.innerHTML),A.push(e)},e),k(function(t,e){t.style.width=A[e]},y),P(e).css("height",0),C&&(k(t,a),k(function(t){L.push(t.innerHTML),I.push(M(P(t).css("width")))},a),k(function(t,e){t.style.width=I[e]},i),P(a).height(0)),k(function(t,e){t.innerHTML='
    '+F[e]+"
    ",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=A[e]},e),C&&k(function(t,e){t.innerHTML='
    '+L[e]+"
    ",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=I[e]},a),Math.round(D.outerWidth())g.offsetHeight||"scroll"==b.css("overflow-y")?f+l:f,x&&(g.scrollHeight>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(w.width=M(o-l)),""!==s&&""===u||W(n,1,"Possible column misalignment",6)):o="100%",m.width=M(o),d.width=M(o),C&&(n.nScrollFoot.style.width=M(o)),c||x&&(m.height=M(_.offsetHeight+l)),R=D.outerWidth(),h[0].style.width=M(R),p.width=M(R),y=D.height()>g.clientHeight||"scroll"==b.css("overflow-y"),p[i="padding"+(T.bScrollbarLeft?"Left":"Right")]=y?l+"px":"0px",C&&(v[0].style.width=M(R),S[0].style.width=M(R),S[0].style[i]=y?l+"px":"0px"),D.children("colgroup").insertBefore(D.children("thead")),b.trigger("scroll"),!n.bSorted&&!n.bFiltered||n._drawHold||(g.scrollTop=0))}function k(t,e,n){for(var a,r,o=0,i=0,l=e.length;i/g;function ee(t){var e,n,a=t.nTable,r=t.aoColumns,o=t.oScroll,i=o.sY,l=o.sX,o=o.sXInner,s=r.length,u=it(t,"bVisible"),c=P("th",t.nTHead),f=a.getAttribute("width"),d=a.parentNode,h=!1,p=t.oBrowser,g=p.bScrollOversize,b=a.style.width;for(b&&-1!==b.indexOf("%")&&(f=b),D=0;D").appendTo(b.find("tbody")));for(b.find("thead, tfoot").remove(),b.append(P(t.nTHead).clone()).append(P(t.nTFoot).clone()),b.find("tfoot th, tfoot td").css("width",""),c=Ct(t,b.find("thead")[0]),D=0;D").css({width:e.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(t.aoData.length)for(D=0;D").css(l||i?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(b).appendTo(d),y=(l&&o?b.width(o):l?(b.css("width","auto"),b.removeAttr("width"),b.width()").css("width",M(t)).appendTo(e||y.body))[0].offsetWidth,t.remove(),e):0}function re(t,e){var n,a=oe(t,e);return a<0?null:(n=t.aoData[a]).nTr?n.anCells[e]:P("").html(S(t,a,e,"display"))[0]}function oe(t,e){for(var n,a=-1,r=-1,o=0,i=t.aoData.length;oa&&(a=n.length,r=o);return r}function M(t){return null===t?"0px":"number"==typeof t?t<0?"0px":t+"px":t.match(/\d$/)?t+"px":t}function I(t){function e(t){t.length&&!Array.isArray(t[0])?h.push(t):P.merge(h,t)}var n,a,r,o,i,l,s,u=[],c=t.aoColumns,f=t.aaSortingFixed,d=P.isPlainObject(f),h=[];for(Array.isArray(f)&&e(f),d&&f.pre&&e(f.pre),e(t.aaSorting),d&&f.post&&e(f.post),n=0;n/g,""),u=i.nTh;u.removeAttribute("aria-sort"),i=i.bSortable?s+("asc"===(0=o.length?[0,e[1]]:e)})),t.search!==N&&P.extend(n.oPreviousSearch,Bt(t.search)),t.columns){for(a=0,r=t.columns.length;a").addClass(e),P("td",n).addClass(e).html(t)[0].colSpan=T(o),l.push(n[0]))}var l=[];i(e,n),t._details&&t._details.detach(),t._details=P(l),t._detailsShow&&t._details.insertAfter(t.nTr)}function xe(t,e){var n=t.context;if(n.length&&t.length){var a=n[0].aoData[t[0]];if(a._details){(a._detailsShow=e)?(a._details.insertAfter(a.nTr),P(a.nTr).addClass("dt-hasChild")):(a._details.detach(),P(a.nTr).removeClass("dt-hasChild")),R(n[0],null,"childRow",[e,t.row(t[0])]);var s=n[0],r=new B(s),a=".dt.DT_details",e="draw"+a,t="column-sizing"+a,a="destroy"+a,u=s.aoData;if(r.off(e+" "+t+" "+a),H(u,"_details").length>0){r.on(e,function(t,e){if(s!==e)return;r.rows({page:"current"}).eq(0).each(function(t){var e=u[t];if(e._detailsShow)e._details.insertAfter(e.nTr)})});r.on(t,function(t,e,n,a){if(s!==e)return;var r,o=T(e);for(var i=0,l=u.length;it?new B(e[t],this[t]):null},filter:function(t){var e=[];if(o.filter)e=o.filter.call(this,t,this);else for(var n=0,a=this.length;n").appendTo(t);p(u,n)}else{switch(g=null,b=n,a=c.iTabIndex,n){case"ellipsis":t.append('');break;case"first":g=S.sFirst,0===d&&(a=-1,b+=" "+o);break;case"previous":g=S.sPrevious,0===d&&(a=-1,b+=" "+o);break;case"next":g=S.sNext,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;case"last":g=S.sLast,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;default:g=c.fnFormatNumber(n+1),b=d===n?m.sPageButtonActive:""}null!==g&&(u=c.oInit.pagingTag||"a",r=-1!==b.indexOf(o),me(P("<"+u+">",{class:m.sPageButton+" "+b,"aria-controls":c.sTableId,"aria-disabled":r?"true":null,"aria-label":v[n],"aria-role":"link","aria-current":b===m.sPageButtonActive?"page":null,"data-dt-idx":n,tabindex:a,id:0===f&&"string"==typeof n?c.sTableId+"_"+n:null}).html(g).appendTo(t),{action:n},i))}}var g,b,n,m=c.oClasses,S=c.oLanguage.oPaginate,v=c.oLanguage.oAria.paginate||{};try{n=P(t).find(y.activeElement).data("dt-idx")}catch(t){}p(P(t).empty(),e),n!==N&&P(t).find("[data-dt-idx="+n+"]").trigger("focus")}}}),P.extend(w.ext.type.detect,[function(t,e){e=e.oLanguage.sDecimal;return l(t,e)?"num"+e:null},function(t,e){var n;return(!t||t instanceof Date||X.test(t))&&(null!==(n=Date.parse(t))&&!isNaN(n)||h(t))?"date":null},function(t,e){e=e.oLanguage.sDecimal;return l(t,e,!0)?"num-fmt"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e)?"html-num"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e,!0)?"html-num-fmt"+e:null},function(t,e){return h(t)||"string"==typeof t&&-1!==t.indexOf("<")?"html":null}]),P.extend(w.ext.type.search,{html:function(t){return h(t)?t:"string"==typeof t?t.replace(U," ").replace(V,""):""},string:function(t){return!h(t)&&"string"==typeof t?t.replace(U," "):t}});function ke(t,e,n,a){var r;return 0===t||t&&"-"!==t?"number"==(r=typeof t)||"bigint"==r?t:+(t=(t=e?G(t,e):t).replace&&(n&&(t=t.replace(n,"")),a)?t.replace(a,""):t):-1/0}function Me(n){P.each({num:function(t){return ke(t,n)},"num-fmt":function(t){return ke(t,n,q)},"html-num":function(t){return ke(t,n,V)},"html-num-fmt":function(t){return ke(t,n,V,q)}},function(t,e){p.type.order[t+n+"-pre"]=e,t.match(/^html\-/)&&(p.type.search[t+n]=p.type.search.html)})}P.extend(p.type.order,{"date-pre":function(t){t=Date.parse(t);return isNaN(t)?-1/0:t},"html-pre":function(t){return h(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return h(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return t").addClass(l.sSortJUIWrapper).append(o.contents()).append(P("").addClass(l.sSortIcon+" "+i.sSortingClassJUI)).appendTo(o),P(r.nTable).on("order.dt.DT",function(t,e,n,a){r===e&&(e=i.idx,o.removeClass(l.sSortAsc+" "+l.sSortDesc).addClass("asc"==a[e]?l.sSortAsc:"desc"==a[e]?l.sSortDesc:i.sSortingClass),o.find("span."+l.sSortIcon).removeClass(l.sSortJUIAsc+" "+l.sSortJUIDesc+" "+l.sSortJUI+" "+l.sSortJUIAscAllowed+" "+l.sSortJUIDescAllowed).addClass("asc"==a[e]?l.sSortJUIAsc:"desc"==a[e]?l.sSortJUIDesc:i.sSortingClassJUI))})}}});function We(t){return"string"==typeof(t=Array.isArray(t)?t.join(","):t)?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""):t}function Ee(t,e,n,a,r){return j.moment?t[e](r):j.luxon?t[n](r):a?t[a](r):t}var Be=!1;function Ue(t,e,n){var a;if(j.moment){if(!(a=j.moment.utc(t,e,n,!0)).isValid())return null}else if(j.luxon){if(!(a=e&&"string"==typeof t?j.luxon.DateTime.fromFormat(t,e):j.luxon.DateTime.fromISO(t)).isValid)return null;a.setLocale(n)}else e?(Be||alert("DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17"),Be=!0):a=new Date(t);return a}function Ve(s){return function(a,r,o,i){0===arguments.length?(o="en",a=r=null):1===arguments.length?(o="en",r=a,a=null):2===arguments.length&&(o=r,r=a,a=null);var l="datetime-"+r;return w.ext.type.order[l]||(w.ext.type.detect.unshift(function(t){return t===l&&l}),w.ext.type.order[l+"-asc"]=function(t,e){t=t.valueOf(),e=e.valueOf();return t===e?0:t").addClass(errClass); + errorSpan.text(err.message); + $el.after(errorSpan); + } + } else if (display === "block") { + // If block, add an error just after the el, set visibility:none on the + // el, and position the error to be on top of the el. + // Mark it with a unique ID and CSS class so we can remove it later. + $el.css("visibility", "hidden"); + if (err.message !== "") { + var errorDiv = $("
    ").addClass(errClass).css("position", "absolute") + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + // setting width can push out the page size, forcing otherwise + // unnecessary scrollbars to appear and making it impossible for + // the element to shrink; so use max-width instead + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + errorDiv.text(err.message); + $el.after(errorDiv); + + // Really dumb way to keep the size/position of the error in sync with + // the parent element as the window is resized or whatever. + var intId = setInterval(function() { + if (!errorDiv[0].parentElement) { + clearInterval(intId); + return; + } + errorDiv + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + }, 500); + } + } + }, + clearError: function(el) { + var $el = $(el); + var display = $el.data("restore-display-mode"); + $el.data("restore-display-mode", null); + + if (display === "inline" || display === "inline-block") { + if (display) + $el.css("display", display); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } else if (display === "block"){ + $el.css("visibility", "inherit"); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } + }, + sizing: {} + }; + + // Called by widget bindings to register a new type of widget. The definition + // object can contain the following properties: + // - name (required) - A string indicating the binding name, which will be + // used by default as the CSS classname to look for. + // - initialize (optional) - A function(el) that will be called once per + // widget element; if a value is returned, it will be passed as the third + // value to renderValue. + // - renderValue (required) - A function(el, data, initValue) that will be + // called with data. Static contexts will cause this to be called once per + // element; Shiny apps will cause this to be called multiple times per + // element, as the data changes. + window.HTMLWidgets.widget = function(definition) { + if (!definition.name) { + throw new Error("Widget must have a name"); + } + if (!definition.type) { + throw new Error("Widget must have a type"); + } + // Currently we only support output widgets + if (definition.type !== "output") { + throw new Error("Unrecognized widget type '" + definition.type + "'"); + } + // TODO: Verify that .name is a valid CSS classname + + // Support new-style instance-bound definitions. Old-style class-bound + // definitions have one widget "object" per widget per type/class of + // widget; the renderValue and resize methods on such widget objects + // take el and instance arguments, because the widget object can't + // store them. New-style instance-bound definitions have one widget + // object per widget instance; the definition that's passed in doesn't + // provide renderValue or resize methods at all, just the single method + // factory(el, width, height) + // which returns an object that has renderValue(x) and resize(w, h). + // This enables a far more natural programming style for the widget + // author, who can store per-instance state using either OO-style + // instance fields or functional-style closure variables (I guess this + // is in contrast to what can only be called C-style pseudo-OO which is + // what we required before). + if (definition.factory) { + definition = createLegacyDefinitionAdapter(definition); + } + + if (!definition.renderValue) { + throw new Error("Widget must have a renderValue function"); + } + + // For static rendering (non-Shiny), use a simple widget registration + // scheme. We also use this scheme for Shiny apps/documents that also + // contain static widgets. + window.HTMLWidgets.widgets = window.HTMLWidgets.widgets || []; + // Merge defaults into the definition; don't mutate the original definition. + var staticBinding = extend({}, defaults, definition); + overrideMethod(staticBinding, "find", function(superfunc) { + return function(scope) { + var results = superfunc(scope); + // Filter out Shiny outputs, we only want the static kind + return filterByClass(results, "html-widget-output", false); + }; + }); + window.HTMLWidgets.widgets.push(staticBinding); + + if (shinyMode) { + // Shiny is running. Register the definition with an output binding. + // The definition itself will not be the output binding, instead + // we will make an output binding object that delegates to the + // definition. This is because we foolishly used the same method + // name (renderValue) for htmlwidgets definition and Shiny bindings + // but they actually have quite different semantics (the Shiny + // bindings receive data that includes lots of metadata that it + // strips off before calling htmlwidgets renderValue). We can't + // just ignore the difference because in some widgets it's helpful + // to call this.renderValue() from inside of resize(), and if + // we're not delegating, then that call will go to the Shiny + // version instead of the htmlwidgets version. + + // Merge defaults with definition, without mutating either. + var bindingDef = extend({}, defaults, definition); + + // This object will be our actual Shiny binding. + var shinyBinding = new Shiny.OutputBinding(); + + // With a few exceptions, we'll want to simply use the bindingDef's + // version of methods if they are available, otherwise fall back to + // Shiny's defaults. NOTE: If Shiny's output bindings gain additional + // methods in the future, and we want them to be overrideable by + // HTMLWidget binding definitions, then we'll need to add them to this + // list. + delegateMethod(shinyBinding, bindingDef, "getId"); + delegateMethod(shinyBinding, bindingDef, "onValueChange"); + delegateMethod(shinyBinding, bindingDef, "onValueError"); + delegateMethod(shinyBinding, bindingDef, "renderError"); + delegateMethod(shinyBinding, bindingDef, "clearError"); + delegateMethod(shinyBinding, bindingDef, "showProgress"); + + // The find, renderValue, and resize are handled differently, because we + // want to actually decorate the behavior of the bindingDef methods. + + shinyBinding.find = function(scope) { + var results = bindingDef.find(scope); + + // Only return elements that are Shiny outputs, not static ones + var dynamicResults = results.filter(".html-widget-output"); + + // It's possible that whatever caused Shiny to think there might be + // new dynamic outputs, also caused there to be new static outputs. + // Since there might be lots of different htmlwidgets bindings, we + // schedule execution for later--no need to staticRender multiple + // times. + if (results.length !== dynamicResults.length) + scheduleStaticRender(); + + return dynamicResults; + }; + + // Wrap renderValue to handle initialization, which unfortunately isn't + // supported natively by Shiny at the time of this writing. + + shinyBinding.renderValue = function(el, data) { + Shiny.renderDependencies(data.deps); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var i = 0; data.evals && i < data.evals.length; i++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[i]); + } + if (!bindingDef.renderOnNullValue) { + if (data.x === null) { + el.style.visibility = "hidden"; + return; + } else { + el.style.visibility = "inherit"; + } + } + if (!elementData(el, "initialized")) { + initSizing(el); + + elementData(el, "initialized", true); + if (bindingDef.initialize) { + var result = bindingDef.initialize(el, el.offsetWidth, + el.offsetHeight); + elementData(el, "init_result", result); + } + } + bindingDef.renderValue(el, data.x, elementData(el, "init_result")); + evalAndRun(data.jsHooks.render, elementData(el, "init_result"), [el, data.x]); + }; + + // Only override resize if bindingDef implements it + if (bindingDef.resize) { + shinyBinding.resize = function(el, width, height) { + // Shiny can call resize before initialize/renderValue have been + // called, which doesn't make sense for widgets. + if (elementData(el, "initialized")) { + bindingDef.resize(el, width, height, elementData(el, "init_result")); + } + }; + } + + Shiny.outputBindings.register(shinyBinding, bindingDef.name); + } + }; + + var scheduleStaticRenderTimerId = null; + function scheduleStaticRender() { + if (!scheduleStaticRenderTimerId) { + scheduleStaticRenderTimerId = setTimeout(function() { + scheduleStaticRenderTimerId = null; + window.HTMLWidgets.staticRender(); + }, 1); + } + } + + // Render static widgets after the document finishes loading + // Statically render all elements that are of this widget's class + window.HTMLWidgets.staticRender = function() { + var bindings = window.HTMLWidgets.widgets || []; + forEach(bindings, function(binding) { + var matches = binding.find(document.documentElement); + forEach(matches, function(el) { + var sizeObj = initSizing(el, binding); + + if (hasClass(el, "html-widget-static-bound")) + return; + el.className = el.className + " html-widget-static-bound"; + + var initResult; + if (binding.initialize) { + initResult = binding.initialize(el, + sizeObj ? sizeObj.getWidth() : el.offsetWidth, + sizeObj ? sizeObj.getHeight() : el.offsetHeight + ); + elementData(el, "init_result", initResult); + } + + if (binding.resize) { + var lastSize = { + w: sizeObj ? sizeObj.getWidth() : el.offsetWidth, + h: sizeObj ? sizeObj.getHeight() : el.offsetHeight + }; + var resizeHandler = function(e) { + var size = { + w: sizeObj ? sizeObj.getWidth() : el.offsetWidth, + h: sizeObj ? sizeObj.getHeight() : el.offsetHeight + }; + if (size.w === 0 && size.h === 0) + return; + if (size.w === lastSize.w && size.h === lastSize.h) + return; + lastSize = size; + binding.resize(el, size.w, size.h, initResult); + }; + + on(window, "resize", resizeHandler); + + // This is needed for cases where we're running in a Shiny + // app, but the widget itself is not a Shiny output, but + // rather a simple static widget. One example of this is + // an rmarkdown document that has runtime:shiny and widget + // that isn't in a render function. Shiny only knows to + // call resize handlers for Shiny outputs, not for static + // widgets, so we do it ourselves. + if (window.jQuery) { + window.jQuery(document).on( + "shown.htmlwidgets shown.bs.tab.htmlwidgets shown.bs.collapse.htmlwidgets", + resizeHandler + ); + window.jQuery(document).on( + "hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets", + resizeHandler + ); + } + + // This is needed for the specific case of ioslides, which + // flips slides between display:none and display:block. + // Ideally we would not have to have ioslide-specific code + // here, but rather have ioslides raise a generic event, + // but the rmarkdown package just went to CRAN so the + // window to getting that fixed may be long. + if (window.addEventListener) { + // It's OK to limit this to window.addEventListener + // browsers because ioslides itself only supports + // such browsers. + on(document, "slideenter", resizeHandler); + on(document, "slideleave", resizeHandler); + } + } + + var scriptData = document.querySelector("script[data-for='" + el.id + "'][type='application/json']"); + if (scriptData) { + var data = JSON.parse(scriptData.textContent || scriptData.text); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var k = 0; data.evals && k < data.evals.length; k++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[k]); + } + binding.renderValue(el, data.x, initResult); + evalAndRun(data.jsHooks.render, initResult, [el, data.x]); + } + }); + }); + + invokePostRenderHandlers(); + } + + + function has_jQuery3() { + if (!window.jQuery) { + return false; + } + var $version = window.jQuery.fn.jquery; + var $major_version = parseInt($version.split(".")[0]); + return $major_version >= 3; + } + + /* + / Shiny 1.4 bumped jQuery from 1.x to 3.x which means jQuery's + / on-ready handler (i.e., $(fn)) is now asyncronous (i.e., it now + / really means $(setTimeout(fn)). + / https://jquery.com/upgrade-guide/3.0/#breaking-change-document-ready-handlers-are-now-asynchronous + / + / Since Shiny uses $() to schedule initShiny, shiny>=1.4 calls initShiny + / one tick later than it did before, which means staticRender() is + / called renderValue() earlier than (advanced) widget authors might be expecting. + / https://github.com/rstudio/shiny/issues/2630 + / + / For a concrete example, leaflet has some methods (e.g., updateBounds) + / which reference Shiny methods registered in initShiny (e.g., setInputValue). + / Since leaflet is privy to this life-cycle, it knows to use setTimeout() to + / delay execution of those methods (until Shiny methods are ready) + / https://github.com/rstudio/leaflet/blob/18ec981/javascript/src/index.js#L266-L268 + / + / Ideally widget authors wouldn't need to use this setTimeout() hack that + / leaflet uses to call Shiny methods on a staticRender(). In the long run, + / the logic initShiny should be broken up so that method registration happens + / right away, but binding happens later. + */ + function maybeStaticRenderLater() { + if (shinyMode && has_jQuery3()) { + window.jQuery(window.HTMLWidgets.staticRender); + } else { + window.HTMLWidgets.staticRender(); + } + } + + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", function() { + document.removeEventListener("DOMContentLoaded", arguments.callee, false); + maybeStaticRenderLater(); + }, false); + } else if (document.attachEvent) { + document.attachEvent("onreadystatechange", function() { + if (document.readyState === "complete") { + document.detachEvent("onreadystatechange", arguments.callee); + maybeStaticRenderLater(); + } + }); + } + + + window.HTMLWidgets.getAttachmentUrl = function(depname, key) { + // If no key, default to the first item + if (typeof(key) === "undefined") + key = 1; + + var link = document.getElementById(depname + "-" + key + "-attachment"); + if (!link) { + throw new Error("Attachment " + depname + "/" + key + " not found in document"); + } + return link.getAttribute("href"); + }; + + window.HTMLWidgets.dataframeToD3 = function(df) { + var names = []; + var length; + for (var name in df) { + if (df.hasOwnProperty(name)) + names.push(name); + if (typeof(df[name]) !== "object" || typeof(df[name].length) === "undefined") { + throw new Error("All fields must be arrays"); + } else if (typeof(length) !== "undefined" && length !== df[name].length) { + throw new Error("All fields must be arrays of the same length"); + } + length = df[name].length; + } + var results = []; + var item; + for (var row = 0; row < length; row++) { + item = {}; + for (var col = 0; col < names.length; col++) { + item[names[col]] = df[names[col]][row]; + } + results.push(item); + } + return results; + }; + + window.HTMLWidgets.transposeArray2D = function(array) { + if (array.length === 0) return array; + var newArray = array[0].map(function(col, i) { + return array.map(function(row) { + return row[i] + }) + }); + return newArray; + }; + // Split value at splitChar, but allow splitChar to be escaped + // using escapeChar. Any other characters escaped by escapeChar + // will be included as usual (including escapeChar itself). + function splitWithEscape(value, splitChar, escapeChar) { + var results = []; + var escapeMode = false; + var currentResult = ""; + for (var pos = 0; pos < value.length; pos++) { + if (!escapeMode) { + if (value[pos] === splitChar) { + results.push(currentResult); + currentResult = ""; + } else if (value[pos] === escapeChar) { + escapeMode = true; + } else { + currentResult += value[pos]; + } + } else { + currentResult += value[pos]; + escapeMode = false; + } + } + if (currentResult !== "") { + results.push(currentResult); + } + return results; + } + // Function authored by Yihui/JJ Allaire + window.HTMLWidgets.evaluateStringMember = function(o, member) { + var parts = splitWithEscape(member, '.', '\\'); + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i]; + // part may be a character or 'numeric' member name + if (o !== null && typeof o === "object" && part in o) { + if (i == (l - 1)) { // if we are at the end of the line then evalulate + if (typeof o[part] === "string") + o[part] = tryEval(o[part]); + } else { // otherwise continue to next embedded object + o = o[part]; + } + } + } + }; + + // Retrieve the HTMLWidget instance (i.e. the return value of an + // HTMLWidget binding's initialize() or factory() function) + // associated with an element, or null if none. + window.HTMLWidgets.getInstance = function(el) { + return elementData(el, "init_result"); + }; + + // Finds the first element in the scope that matches the selector, + // and returns the HTMLWidget instance (i.e. the return value of + // an HTMLWidget binding's initialize() or factory() function) + // associated with that element, if any. If no element matches the + // selector, or the first matching element has no HTMLWidget + // instance associated with it, then null is returned. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.find = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var el = scope.querySelector(selector); + if (el === null) { + return null; + } else { + return window.HTMLWidgets.getInstance(el); + } + }; + + // Finds all elements in the scope that match the selector, and + // returns the HTMLWidget instances (i.e. the return values of + // an HTMLWidget binding's initialize() or factory() function) + // associated with the elements, in an array. If elements that + // match the selector don't have an associated HTMLWidget + // instance, the returned array will contain nulls. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.findAll = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var nodes = scope.querySelectorAll(selector); + var results = []; + for (var i = 0; i < nodes.length; i++) { + results.push(window.HTMLWidgets.getInstance(nodes[i])); + } + return results; + }; + + var postRenderHandlers = []; + function invokePostRenderHandlers() { + while (postRenderHandlers.length) { + var handler = postRenderHandlers.shift(); + if (handler) { + handler(); + } + } + } + + // Register the given callback function to be invoked after the + // next time static widgets are rendered. + window.HTMLWidgets.addPostRenderHandler = function(callback) { + postRenderHandlers.push(callback); + }; + + // Takes a new-style instance-bound definition, and returns an + // old-style class-bound definition. This saves us from having + // to rewrite all the logic in this file to accomodate both + // types of definitions. + function createLegacyDefinitionAdapter(defn) { + var result = { + name: defn.name, + type: defn.type, + initialize: function(el, width, height) { + return defn.factory(el, width, height); + }, + renderValue: function(el, x, instance) { + return instance.renderValue(x); + }, + resize: function(el, width, height, instance) { + return instance.resize(width, height); + } + }; + + if (defn.find) + result.find = defn.find; + if (defn.renderError) + result.renderError = defn.renderError; + if (defn.clearError) + result.clearError = defn.clearError; + + return result; + } +})(); + diff --git a/english/site_libs/htmlwidgets-1.6.3/htmlwidgets.js b/english/site_libs/htmlwidgets-1.6.3/htmlwidgets.js new file mode 100644 index 0000000..1067d02 --- /dev/null +++ b/english/site_libs/htmlwidgets-1.6.3/htmlwidgets.js @@ -0,0 +1,901 @@ +(function() { + // If window.HTMLWidgets is already defined, then use it; otherwise create a + // new object. This allows preceding code to set options that affect the + // initialization process (though none currently exist). + window.HTMLWidgets = window.HTMLWidgets || {}; + + // See if we're running in a viewer pane. If not, we're in a web browser. + var viewerMode = window.HTMLWidgets.viewerMode = + /\bviewer_pane=1\b/.test(window.location); + + // See if we're running in Shiny mode. If not, it's a static document. + // Note that static widgets can appear in both Shiny and static modes, but + // obviously, Shiny widgets can only appear in Shiny apps/documents. + var shinyMode = window.HTMLWidgets.shinyMode = + typeof(window.Shiny) !== "undefined" && !!window.Shiny.outputBindings; + + // We can't count on jQuery being available, so we implement our own + // version if necessary. + function querySelectorAll(scope, selector) { + if (typeof(jQuery) !== "undefined" && scope instanceof jQuery) { + return scope.find(selector); + } + if (scope.querySelectorAll) { + return scope.querySelectorAll(selector); + } + } + + function asArray(value) { + if (value === null) + return []; + if ($.isArray(value)) + return value; + return [value]; + } + + // Implement jQuery's extend + function extend(target /*, ... */) { + if (arguments.length == 1) { + return target; + } + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var prop in source) { + if (source.hasOwnProperty(prop)) { + target[prop] = source[prop]; + } + } + } + return target; + } + + // IE8 doesn't support Array.forEach. + function forEach(values, callback, thisArg) { + if (values.forEach) { + values.forEach(callback, thisArg); + } else { + for (var i = 0; i < values.length; i++) { + callback.call(thisArg, values[i], i, values); + } + } + } + + // Replaces the specified method with the return value of funcSource. + // + // Note that funcSource should not BE the new method, it should be a function + // that RETURNS the new method. funcSource receives a single argument that is + // the overridden method, it can be called from the new method. The overridden + // method can be called like a regular function, it has the target permanently + // bound to it so "this" will work correctly. + function overrideMethod(target, methodName, funcSource) { + var superFunc = target[methodName] || function() {}; + var superFuncBound = function() { + return superFunc.apply(target, arguments); + }; + target[methodName] = funcSource(superFuncBound); + } + + // Add a method to delegator that, when invoked, calls + // delegatee.methodName. If there is no such method on + // the delegatee, but there was one on delegator before + // delegateMethod was called, then the original version + // is invoked instead. + // For example: + // + // var a = { + // method1: function() { console.log('a1'); } + // method2: function() { console.log('a2'); } + // }; + // var b = { + // method1: function() { console.log('b1'); } + // }; + // delegateMethod(a, b, "method1"); + // delegateMethod(a, b, "method2"); + // a.method1(); + // a.method2(); + // + // The output would be "b1", "a2". + function delegateMethod(delegator, delegatee, methodName) { + var inherited = delegator[methodName]; + delegator[methodName] = function() { + var target = delegatee; + var method = delegatee[methodName]; + + // The method doesn't exist on the delegatee. Instead, + // call the method on the delegator, if it exists. + if (!method) { + target = delegator; + method = inherited; + } + + if (method) { + return method.apply(target, arguments); + } + }; + } + + // Implement a vague facsimilie of jQuery's data method + function elementData(el, name, value) { + if (arguments.length == 2) { + return el["htmlwidget_data_" + name]; + } else if (arguments.length == 3) { + el["htmlwidget_data_" + name] = value; + return el; + } else { + throw new Error("Wrong number of arguments for elementData: " + + arguments.length); + } + } + + // http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex + function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + } + + function hasClass(el, className) { + var re = new RegExp("\\b" + escapeRegExp(className) + "\\b"); + return re.test(el.className); + } + + // elements - array (or array-like object) of HTML elements + // className - class name to test for + // include - if true, only return elements with given className; + // if false, only return elements *without* given className + function filterByClass(elements, className, include) { + var results = []; + for (var i = 0; i < elements.length; i++) { + if (hasClass(elements[i], className) == include) + results.push(elements[i]); + } + return results; + } + + function on(obj, eventName, func) { + if (obj.addEventListener) { + obj.addEventListener(eventName, func, false); + } else if (obj.attachEvent) { + obj.attachEvent(eventName, func); + } + } + + function off(obj, eventName, func) { + if (obj.removeEventListener) + obj.removeEventListener(eventName, func, false); + else if (obj.detachEvent) { + obj.detachEvent(eventName, func); + } + } + + // Translate array of values to top/right/bottom/left, as usual with + // the "padding" CSS property + // https://developer.mozilla.org/en-US/docs/Web/CSS/padding + function unpackPadding(value) { + if (typeof(value) === "number") + value = [value]; + if (value.length === 1) { + return {top: value[0], right: value[0], bottom: value[0], left: value[0]}; + } + if (value.length === 2) { + return {top: value[0], right: value[1], bottom: value[0], left: value[1]}; + } + if (value.length === 3) { + return {top: value[0], right: value[1], bottom: value[2], left: value[1]}; + } + if (value.length === 4) { + return {top: value[0], right: value[1], bottom: value[2], left: value[3]}; + } + } + + // Convert an unpacked padding object to a CSS value + function paddingToCss(paddingObj) { + return paddingObj.top + "px " + paddingObj.right + "px " + paddingObj.bottom + "px " + paddingObj.left + "px"; + } + + // Makes a number suitable for CSS + function px(x) { + if (typeof(x) === "number") + return x + "px"; + else + return x; + } + + // Retrieves runtime widget sizing information for an element. + // The return value is either null, or an object with fill, padding, + // defaultWidth, defaultHeight fields. + function sizingPolicy(el) { + var sizingEl = document.querySelector("script[data-for='" + el.id + "'][type='application/htmlwidget-sizing']"); + if (!sizingEl) + return null; + var sp = JSON.parse(sizingEl.textContent || sizingEl.text || "{}"); + if (viewerMode) { + return sp.viewer; + } else { + return sp.browser; + } + } + + // @param tasks Array of strings (or falsy value, in which case no-op). + // Each element must be a valid JavaScript expression that yields a + // function. Or, can be an array of objects with "code" and "data" + // properties; in this case, the "code" property should be a string + // of JS that's an expr that yields a function, and "data" should be + // an object that will be added as an additional argument when that + // function is called. + // @param target The object that will be "this" for each function + // execution. + // @param args Array of arguments to be passed to the functions. (The + // same arguments will be passed to all functions.) + function evalAndRun(tasks, target, args) { + if (tasks) { + forEach(tasks, function(task) { + var theseArgs = args; + if (typeof(task) === "object") { + theseArgs = theseArgs.concat([task.data]); + task = task.code; + } + var taskFunc = tryEval(task); + if (typeof(taskFunc) !== "function") { + throw new Error("Task must be a function! Source:\n" + task); + } + taskFunc.apply(target, theseArgs); + }); + } + } + + // Attempt eval() both with and without enclosing in parentheses. + // Note that enclosing coerces a function declaration into + // an expression that eval() can parse + // (otherwise, a SyntaxError is thrown) + function tryEval(code) { + var result = null; + try { + result = eval("(" + code + ")"); + } catch(error) { + if (!(error instanceof SyntaxError)) { + throw error; + } + try { + result = eval(code); + } catch(e) { + if (e instanceof SyntaxError) { + throw error; + } else { + throw e; + } + } + } + return result; + } + + function initSizing(el) { + var sizing = sizingPolicy(el); + if (!sizing) + return; + + var cel = document.getElementById("htmlwidget_container"); + if (!cel) + return; + + if (typeof(sizing.padding) !== "undefined") { + document.body.style.margin = "0"; + document.body.style.padding = paddingToCss(unpackPadding(sizing.padding)); + } + + if (sizing.fill) { + document.body.style.overflow = "hidden"; + document.body.style.width = "100%"; + document.body.style.height = "100%"; + document.documentElement.style.width = "100%"; + document.documentElement.style.height = "100%"; + cel.style.position = "absolute"; + var pad = unpackPadding(sizing.padding); + cel.style.top = pad.top + "px"; + cel.style.right = pad.right + "px"; + cel.style.bottom = pad.bottom + "px"; + cel.style.left = pad.left + "px"; + el.style.width = "100%"; + el.style.height = "100%"; + + return { + getWidth: function() { return cel.getBoundingClientRect().width; }, + getHeight: function() { return cel.getBoundingClientRect().height; } + }; + + } else { + el.style.width = px(sizing.width); + el.style.height = px(sizing.height); + + return { + getWidth: function() { return cel.getBoundingClientRect().width; }, + getHeight: function() { return cel.getBoundingClientRect().height; } + }; + } + } + + // Default implementations for methods + var defaults = { + find: function(scope) { + return querySelectorAll(scope, "." + this.name); + }, + renderError: function(el, err) { + var $el = $(el); + + this.clearError(el); + + // Add all these error classes, as Shiny does + var errClass = "shiny-output-error"; + if (err.type !== null) { + // use the classes of the error condition as CSS class names + errClass = errClass + " " + $.map(asArray(err.type), function(type) { + return errClass + "-" + type; + }).join(" "); + } + errClass = errClass + " htmlwidgets-error"; + + // Is el inline or block? If inline or inline-block, just display:none it + // and add an inline error. + var display = $el.css("display"); + $el.data("restore-display-mode", display); + + if (display === "inline" || display === "inline-block") { + $el.hide(); + if (err.message !== "") { + var errorSpan = $("").addClass(errClass); + errorSpan.text(err.message); + $el.after(errorSpan); + } + } else if (display === "block") { + // If block, add an error just after the el, set visibility:none on the + // el, and position the error to be on top of the el. + // Mark it with a unique ID and CSS class so we can remove it later. + $el.css("visibility", "hidden"); + if (err.message !== "") { + var errorDiv = $("
    ").addClass(errClass).css("position", "absolute") + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + // setting width can push out the page size, forcing otherwise + // unnecessary scrollbars to appear and making it impossible for + // the element to shrink; so use max-width instead + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + errorDiv.text(err.message); + $el.after(errorDiv); + + // Really dumb way to keep the size/position of the error in sync with + // the parent element as the window is resized or whatever. + var intId = setInterval(function() { + if (!errorDiv[0].parentElement) { + clearInterval(intId); + return; + } + errorDiv + .css("top", el.offsetTop) + .css("left", el.offsetLeft) + .css("maxWidth", el.offsetWidth) + .css("height", el.offsetHeight); + }, 500); + } + } + }, + clearError: function(el) { + var $el = $(el); + var display = $el.data("restore-display-mode"); + $el.data("restore-display-mode", null); + + if (display === "inline" || display === "inline-block") { + if (display) + $el.css("display", display); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } else if (display === "block"){ + $el.css("visibility", "inherit"); + $(el.nextSibling).filter(".htmlwidgets-error").remove(); + } + }, + sizing: {} + }; + + // Called by widget bindings to register a new type of widget. The definition + // object can contain the following properties: + // - name (required) - A string indicating the binding name, which will be + // used by default as the CSS classname to look for. + // - initialize (optional) - A function(el) that will be called once per + // widget element; if a value is returned, it will be passed as the third + // value to renderValue. + // - renderValue (required) - A function(el, data, initValue) that will be + // called with data. Static contexts will cause this to be called once per + // element; Shiny apps will cause this to be called multiple times per + // element, as the data changes. + window.HTMLWidgets.widget = function(definition) { + if (!definition.name) { + throw new Error("Widget must have a name"); + } + if (!definition.type) { + throw new Error("Widget must have a type"); + } + // Currently we only support output widgets + if (definition.type !== "output") { + throw new Error("Unrecognized widget type '" + definition.type + "'"); + } + // TODO: Verify that .name is a valid CSS classname + + // Support new-style instance-bound definitions. Old-style class-bound + // definitions have one widget "object" per widget per type/class of + // widget; the renderValue and resize methods on such widget objects + // take el and instance arguments, because the widget object can't + // store them. New-style instance-bound definitions have one widget + // object per widget instance; the definition that's passed in doesn't + // provide renderValue or resize methods at all, just the single method + // factory(el, width, height) + // which returns an object that has renderValue(x) and resize(w, h). + // This enables a far more natural programming style for the widget + // author, who can store per-instance state using either OO-style + // instance fields or functional-style closure variables (I guess this + // is in contrast to what can only be called C-style pseudo-OO which is + // what we required before). + if (definition.factory) { + definition = createLegacyDefinitionAdapter(definition); + } + + if (!definition.renderValue) { + throw new Error("Widget must have a renderValue function"); + } + + // For static rendering (non-Shiny), use a simple widget registration + // scheme. We also use this scheme for Shiny apps/documents that also + // contain static widgets. + window.HTMLWidgets.widgets = window.HTMLWidgets.widgets || []; + // Merge defaults into the definition; don't mutate the original definition. + var staticBinding = extend({}, defaults, definition); + overrideMethod(staticBinding, "find", function(superfunc) { + return function(scope) { + var results = superfunc(scope); + // Filter out Shiny outputs, we only want the static kind + return filterByClass(results, "html-widget-output", false); + }; + }); + window.HTMLWidgets.widgets.push(staticBinding); + + if (shinyMode) { + // Shiny is running. Register the definition with an output binding. + // The definition itself will not be the output binding, instead + // we will make an output binding object that delegates to the + // definition. This is because we foolishly used the same method + // name (renderValue) for htmlwidgets definition and Shiny bindings + // but they actually have quite different semantics (the Shiny + // bindings receive data that includes lots of metadata that it + // strips off before calling htmlwidgets renderValue). We can't + // just ignore the difference because in some widgets it's helpful + // to call this.renderValue() from inside of resize(), and if + // we're not delegating, then that call will go to the Shiny + // version instead of the htmlwidgets version. + + // Merge defaults with definition, without mutating either. + var bindingDef = extend({}, defaults, definition); + + // This object will be our actual Shiny binding. + var shinyBinding = new Shiny.OutputBinding(); + + // With a few exceptions, we'll want to simply use the bindingDef's + // version of methods if they are available, otherwise fall back to + // Shiny's defaults. NOTE: If Shiny's output bindings gain additional + // methods in the future, and we want them to be overrideable by + // HTMLWidget binding definitions, then we'll need to add them to this + // list. + delegateMethod(shinyBinding, bindingDef, "getId"); + delegateMethod(shinyBinding, bindingDef, "onValueChange"); + delegateMethod(shinyBinding, bindingDef, "onValueError"); + delegateMethod(shinyBinding, bindingDef, "renderError"); + delegateMethod(shinyBinding, bindingDef, "clearError"); + delegateMethod(shinyBinding, bindingDef, "showProgress"); + + // The find, renderValue, and resize are handled differently, because we + // want to actually decorate the behavior of the bindingDef methods. + + shinyBinding.find = function(scope) { + var results = bindingDef.find(scope); + + // Only return elements that are Shiny outputs, not static ones + var dynamicResults = results.filter(".html-widget-output"); + + // It's possible that whatever caused Shiny to think there might be + // new dynamic outputs, also caused there to be new static outputs. + // Since there might be lots of different htmlwidgets bindings, we + // schedule execution for later--no need to staticRender multiple + // times. + if (results.length !== dynamicResults.length) + scheduleStaticRender(); + + return dynamicResults; + }; + + // Wrap renderValue to handle initialization, which unfortunately isn't + // supported natively by Shiny at the time of this writing. + + shinyBinding.renderValue = function(el, data) { + Shiny.renderDependencies(data.deps); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var i = 0; data.evals && i < data.evals.length; i++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[i]); + } + if (!bindingDef.renderOnNullValue) { + if (data.x === null) { + el.style.visibility = "hidden"; + return; + } else { + el.style.visibility = "inherit"; + } + } + if (!elementData(el, "initialized")) { + initSizing(el); + + elementData(el, "initialized", true); + if (bindingDef.initialize) { + var rect = el.getBoundingClientRect(); + var result = bindingDef.initialize(el, rect.width, rect.height); + elementData(el, "init_result", result); + } + } + bindingDef.renderValue(el, data.x, elementData(el, "init_result")); + evalAndRun(data.jsHooks.render, elementData(el, "init_result"), [el, data.x]); + }; + + // Only override resize if bindingDef implements it + if (bindingDef.resize) { + shinyBinding.resize = function(el, width, height) { + // Shiny can call resize before initialize/renderValue have been + // called, which doesn't make sense for widgets. + if (elementData(el, "initialized")) { + bindingDef.resize(el, width, height, elementData(el, "init_result")); + } + }; + } + + Shiny.outputBindings.register(shinyBinding, bindingDef.name); + } + }; + + var scheduleStaticRenderTimerId = null; + function scheduleStaticRender() { + if (!scheduleStaticRenderTimerId) { + scheduleStaticRenderTimerId = setTimeout(function() { + scheduleStaticRenderTimerId = null; + window.HTMLWidgets.staticRender(); + }, 1); + } + } + + // Render static widgets after the document finishes loading + // Statically render all elements that are of this widget's class + window.HTMLWidgets.staticRender = function() { + var bindings = window.HTMLWidgets.widgets || []; + forEach(bindings, function(binding) { + var matches = binding.find(document.documentElement); + forEach(matches, function(el) { + var sizeObj = initSizing(el, binding); + + var getSize = function(el) { + if (sizeObj) { + return {w: sizeObj.getWidth(), h: sizeObj.getHeight()} + } else { + var rect = el.getBoundingClientRect(); + return {w: rect.width, h: rect.height} + } + }; + + if (hasClass(el, "html-widget-static-bound")) + return; + el.className = el.className + " html-widget-static-bound"; + + var initResult; + if (binding.initialize) { + var size = getSize(el); + initResult = binding.initialize(el, size.w, size.h); + elementData(el, "init_result", initResult); + } + + if (binding.resize) { + var lastSize = getSize(el); + var resizeHandler = function(e) { + var size = getSize(el); + if (size.w === 0 && size.h === 0) + return; + if (size.w === lastSize.w && size.h === lastSize.h) + return; + lastSize = size; + binding.resize(el, size.w, size.h, initResult); + }; + + on(window, "resize", resizeHandler); + + // This is needed for cases where we're running in a Shiny + // app, but the widget itself is not a Shiny output, but + // rather a simple static widget. One example of this is + // an rmarkdown document that has runtime:shiny and widget + // that isn't in a render function. Shiny only knows to + // call resize handlers for Shiny outputs, not for static + // widgets, so we do it ourselves. + if (window.jQuery) { + window.jQuery(document).on( + "shown.htmlwidgets shown.bs.tab.htmlwidgets shown.bs.collapse.htmlwidgets", + resizeHandler + ); + window.jQuery(document).on( + "hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets", + resizeHandler + ); + } + + // This is needed for the specific case of ioslides, which + // flips slides between display:none and display:block. + // Ideally we would not have to have ioslide-specific code + // here, but rather have ioslides raise a generic event, + // but the rmarkdown package just went to CRAN so the + // window to getting that fixed may be long. + if (window.addEventListener) { + // It's OK to limit this to window.addEventListener + // browsers because ioslides itself only supports + // such browsers. + on(document, "slideenter", resizeHandler); + on(document, "slideleave", resizeHandler); + } + } + + var scriptData = document.querySelector("script[data-for='" + el.id + "'][type='application/json']"); + if (scriptData) { + var data = JSON.parse(scriptData.textContent || scriptData.text); + // Resolve strings marked as javascript literals to objects + if (!(data.evals instanceof Array)) data.evals = [data.evals]; + for (var k = 0; data.evals && k < data.evals.length; k++) { + window.HTMLWidgets.evaluateStringMember(data.x, data.evals[k]); + } + binding.renderValue(el, data.x, initResult); + evalAndRun(data.jsHooks.render, initResult, [el, data.x]); + } + }); + }); + + invokePostRenderHandlers(); + } + + + function has_jQuery3() { + if (!window.jQuery) { + return false; + } + var $version = window.jQuery.fn.jquery; + var $major_version = parseInt($version.split(".")[0]); + return $major_version >= 3; + } + + /* + / Shiny 1.4 bumped jQuery from 1.x to 3.x which means jQuery's + / on-ready handler (i.e., $(fn)) is now asyncronous (i.e., it now + / really means $(setTimeout(fn)). + / https://jquery.com/upgrade-guide/3.0/#breaking-change-document-ready-handlers-are-now-asynchronous + / + / Since Shiny uses $() to schedule initShiny, shiny>=1.4 calls initShiny + / one tick later than it did before, which means staticRender() is + / called renderValue() earlier than (advanced) widget authors might be expecting. + / https://github.com/rstudio/shiny/issues/2630 + / + / For a concrete example, leaflet has some methods (e.g., updateBounds) + / which reference Shiny methods registered in initShiny (e.g., setInputValue). + / Since leaflet is privy to this life-cycle, it knows to use setTimeout() to + / delay execution of those methods (until Shiny methods are ready) + / https://github.com/rstudio/leaflet/blob/18ec981/javascript/src/index.js#L266-L268 + / + / Ideally widget authors wouldn't need to use this setTimeout() hack that + / leaflet uses to call Shiny methods on a staticRender(). In the long run, + / the logic initShiny should be broken up so that method registration happens + / right away, but binding happens later. + */ + function maybeStaticRenderLater() { + if (shinyMode && has_jQuery3()) { + window.jQuery(window.HTMLWidgets.staticRender); + } else { + window.HTMLWidgets.staticRender(); + } + } + + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", function() { + document.removeEventListener("DOMContentLoaded", arguments.callee, false); + maybeStaticRenderLater(); + }, false); + } else if (document.attachEvent) { + document.attachEvent("onreadystatechange", function() { + if (document.readyState === "complete") { + document.detachEvent("onreadystatechange", arguments.callee); + maybeStaticRenderLater(); + } + }); + } + + + window.HTMLWidgets.getAttachmentUrl = function(depname, key) { + // If no key, default to the first item + if (typeof(key) === "undefined") + key = 1; + + var link = document.getElementById(depname + "-" + key + "-attachment"); + if (!link) { + throw new Error("Attachment " + depname + "/" + key + " not found in document"); + } + return link.getAttribute("href"); + }; + + window.HTMLWidgets.dataframeToD3 = function(df) { + var names = []; + var length; + for (var name in df) { + if (df.hasOwnProperty(name)) + names.push(name); + if (typeof(df[name]) !== "object" || typeof(df[name].length) === "undefined") { + throw new Error("All fields must be arrays"); + } else if (typeof(length) !== "undefined" && length !== df[name].length) { + throw new Error("All fields must be arrays of the same length"); + } + length = df[name].length; + } + var results = []; + var item; + for (var row = 0; row < length; row++) { + item = {}; + for (var col = 0; col < names.length; col++) { + item[names[col]] = df[names[col]][row]; + } + results.push(item); + } + return results; + }; + + window.HTMLWidgets.transposeArray2D = function(array) { + if (array.length === 0) return array; + var newArray = array[0].map(function(col, i) { + return array.map(function(row) { + return row[i] + }) + }); + return newArray; + }; + // Split value at splitChar, but allow splitChar to be escaped + // using escapeChar. Any other characters escaped by escapeChar + // will be included as usual (including escapeChar itself). + function splitWithEscape(value, splitChar, escapeChar) { + var results = []; + var escapeMode = false; + var currentResult = ""; + for (var pos = 0; pos < value.length; pos++) { + if (!escapeMode) { + if (value[pos] === splitChar) { + results.push(currentResult); + currentResult = ""; + } else if (value[pos] === escapeChar) { + escapeMode = true; + } else { + currentResult += value[pos]; + } + } else { + currentResult += value[pos]; + escapeMode = false; + } + } + if (currentResult !== "") { + results.push(currentResult); + } + return results; + } + // Function authored by Yihui/JJ Allaire + window.HTMLWidgets.evaluateStringMember = function(o, member) { + var parts = splitWithEscape(member, '.', '\\'); + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i]; + // part may be a character or 'numeric' member name + if (o !== null && typeof o === "object" && part in o) { + if (i == (l - 1)) { // if we are at the end of the line then evalulate + if (typeof o[part] === "string") + o[part] = tryEval(o[part]); + } else { // otherwise continue to next embedded object + o = o[part]; + } + } + } + }; + + // Retrieve the HTMLWidget instance (i.e. the return value of an + // HTMLWidget binding's initialize() or factory() function) + // associated with an element, or null if none. + window.HTMLWidgets.getInstance = function(el) { + return elementData(el, "init_result"); + }; + + // Finds the first element in the scope that matches the selector, + // and returns the HTMLWidget instance (i.e. the return value of + // an HTMLWidget binding's initialize() or factory() function) + // associated with that element, if any. If no element matches the + // selector, or the first matching element has no HTMLWidget + // instance associated with it, then null is returned. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.find = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var el = scope.querySelector(selector); + if (el === null) { + return null; + } else { + return window.HTMLWidgets.getInstance(el); + } + }; + + // Finds all elements in the scope that match the selector, and + // returns the HTMLWidget instances (i.e. the return values of + // an HTMLWidget binding's initialize() or factory() function) + // associated with the elements, in an array. If elements that + // match the selector don't have an associated HTMLWidget + // instance, the returned array will contain nulls. + // + // The scope argument is optional, and defaults to window.document. + window.HTMLWidgets.findAll = function(scope, selector) { + if (arguments.length == 1) { + selector = scope; + scope = document; + } + + var nodes = scope.querySelectorAll(selector); + var results = []; + for (var i = 0; i < nodes.length; i++) { + results.push(window.HTMLWidgets.getInstance(nodes[i])); + } + return results; + }; + + var postRenderHandlers = []; + function invokePostRenderHandlers() { + while (postRenderHandlers.length) { + var handler = postRenderHandlers.shift(); + if (handler) { + handler(); + } + } + } + + // Register the given callback function to be invoked after the + // next time static widgets are rendered. + window.HTMLWidgets.addPostRenderHandler = function(callback) { + postRenderHandlers.push(callback); + }; + + // Takes a new-style instance-bound definition, and returns an + // old-style class-bound definition. This saves us from having + // to rewrite all the logic in this file to accomodate both + // types of definitions. + function createLegacyDefinitionAdapter(defn) { + var result = { + name: defn.name, + type: defn.type, + initialize: function(el, width, height) { + return defn.factory(el, width, height); + }, + renderValue: function(el, x, instance) { + return instance.renderValue(x); + }, + resize: function(el, width, height, instance) { + return instance.resize(width, height); + } + }; + + if (defn.find) + result.find = defn.find; + if (defn.renderError) + result.renderError = defn.renderError; + if (defn.clearError) + result.clearError = defn.clearError; + + return result; + } +})(); diff --git a/english/site_libs/jquery-3.6.0/jquery-3.6.0.js b/english/site_libs/jquery-3.6.0/jquery-3.6.0.js new file mode 100644 index 0000000..fc6c299 --- /dev/null +++ b/english/site_libs/jquery-3.6.0/jquery-3.6.0.js @@ -0,0 +1,10881 @@ +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.6 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2021-02-16 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "' ); + + var leadingWs = text.match( /^\n?(\s*)/ )[1].length, + leadingTabs = text.match( /^\n?(\t*)/ )[1].length; + + if( leadingTabs > 0 ) { + text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' ); + } + else if( leadingWs > 1 ) { + text = text.replace( new RegExp('\\n? {' + leadingWs + '}', 'g'), '\n' ); + } + + return text; + + } + + /** + * Given a markdown slide section element, this will + * return all arguments that aren't related to markdown + * parsing. Used to forward any other user-defined arguments + * to the output markdown slide. + */ + function getForwardedAttributes( section ) { + + var attributes = section.attributes; + var result = []; + + for( var i = 0, len = attributes.length; i < len; i++ ) { + var name = attributes[i].name, + value = attributes[i].value; + + // disregard attributes that are used for markdown loading/parsing + if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue; + + if( value ) { + result.push( name + '="' + value + '"' ); + } + else { + result.push( name ); + } + } + + return result.join( ' ' ); + + } + + /** + * Inspects the given options and fills out default + * values for what's not defined. + */ + function getSlidifyOptions( options ) { + + options = options || {}; + options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR; + options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR; + options.attributes = options.attributes || ''; + + return options; + + } + + /** + * Helper function for constructing a markdown slide. + */ + function createMarkdownSlide( content, options ) { + + options = getSlidifyOptions( options ); + + var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) ); + + if( notesMatch.length === 2 ) { + content = notesMatch[0] + ''; + } + + // prevent script end tags in the content from interfering + // with parsing + content = content.replace( /<\/script>/g, SCRIPT_END_PLACEHOLDER ); + + return ''; + + } + + /** + * Parses a data string into multiple slides based + * on the passed in separator arguments. + */ + function slidify( markdown, options ) { + + options = getSlidifyOptions( options ); + + var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ), + horizontalSeparatorRegex = new RegExp( options.separator ); + + var matches, + lastIndex = 0, + isHorizontal, + wasHorizontal = true, + content, + sectionStack = []; + + // iterate until all blocks between separators are stacked up + while( matches = separatorRegex.exec( markdown ) ) { + var notes = null; + + // determine direction (horizontal by default) + isHorizontal = horizontalSeparatorRegex.test( matches[0] ); + + if( !isHorizontal && wasHorizontal ) { + // create vertical stack + sectionStack.push( [] ); + } + + // pluck slide content from markdown input + content = markdown.substring( lastIndex, matches.index ); + + if( isHorizontal && wasHorizontal ) { + // add to horizontal stack + sectionStack.push( content ); + } + else { + // add to vertical stack + sectionStack[sectionStack.length-1].push( content ); + } + + lastIndex = separatorRegex.lastIndex; + wasHorizontal = isHorizontal; + } + + // add the remaining slide + ( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) ); + + var markdownSections = ''; + + // flatten the hierarchical stack, and insert
    tags + for( var i = 0, len = sectionStack.length; i < len; i++ ) { + // vertical + if( sectionStack[i] instanceof Array ) { + markdownSections += '
    '; + + sectionStack[i].forEach( function( child ) { + markdownSections += '
    ' + createMarkdownSlide( child, options ) + '
    '; + } ); + + markdownSections += '
    '; + } + else { + markdownSections += '
    ' + createMarkdownSlide( sectionStack[i], options ) + '
    '; + } + } + + return markdownSections; + + } + + /** + * Parses any current data-markdown slides, splits + * multi-slide markdown into separate sections and + * handles loading of external markdown. + */ + function processSlides( scope ) { + + return new Promise( function( resolve ) { + + var externalPromises = []; + + [].slice.call( scope.querySelectorAll( 'section[data-markdown]:not([data-markdown-parsed])') ).forEach( function( section, i ) { + + if( section.getAttribute( 'data-markdown' ).length ) { + + externalPromises.push( loadExternalMarkdown( section ).then( + + // Finished loading external file + function( xhr, url ) { + section.outerHTML = slidify( xhr.responseText, { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-separator-vertical' ), + notesSeparator: section.getAttribute( 'data-separator-notes' ), + attributes: getForwardedAttributes( section ) + }); + }, + + // Failed to load markdown + function( xhr, url ) { + section.outerHTML = '
    ' + + 'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' + + 'Check your browser\'s JavaScript console for more details.' + + '

    Remember that you need to serve the presentation HTML from a HTTP server.

    ' + + '
    '; + } + + ) ); + + } + else { + + section.outerHTML = slidify( getMarkdownFromSlide( section ), { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-separator-vertical' ), + notesSeparator: section.getAttribute( 'data-separator-notes' ), + attributes: getForwardedAttributes( section ) + }); + + } + + }); + + Promise.all( externalPromises ).then( resolve ); + + } ); + + } + + function loadExternalMarkdown( section ) { + + return new Promise( function( resolve, reject ) { + + var xhr = new XMLHttpRequest(), + url = section.getAttribute( 'data-markdown' ); + + var datacharset = section.getAttribute( 'data-charset' ); + + // see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes + if( datacharset != null && datacharset != '' ) { + xhr.overrideMimeType( 'text/html; charset=' + datacharset ); + } + + xhr.onreadystatechange = function( section, xhr ) { + if( xhr.readyState === 4 ) { + // file protocol yields status code 0 (useful for local debug, mobile applications etc.) + if ( ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status === 0 ) { + + resolve( xhr, url ); + + } + else { + + reject( xhr, url ); + + } + } + }.bind( this, section, xhr ); + + xhr.open( 'GET', url, true ); + + try { + xhr.send(); + } + catch ( e ) { + console.warn( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e ); + resolve( xhr, url ); + } + + } ); + + } + + /** + * Check if a node value has the attributes pattern. + * If yes, extract it and add that value as one or several attributes + * to the target element. + * + * You need Cache Killer on Chrome to see the effect on any FOM transformation + * directly on refresh (F5) + * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277 + */ + function addAttributeInElement( node, elementTarget, separator ) { + + var mardownClassesInElementsRegex = new RegExp( separator, 'mg' ); + var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"]+?)\"|(data-[^\"= ]+?)(?=[\" ])", 'mg' ); + var nodeValue = node.nodeValue; + var matches, + matchesClass; + if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) { + + var classes = matches[1]; + nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex ); + node.nodeValue = nodeValue; + while( matchesClass = mardownClassRegex.exec( classes ) ) { + if( matchesClass[2] ) { + elementTarget.setAttribute( matchesClass[1], matchesClass[2] ); + } else { + elementTarget.setAttribute( matchesClass[3], "" ); + } + } + return true; + } + return false; + } + + /** + * Add attributes to the parent element of a text node, + * or the element of an attribute node. + */ + function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) { + + if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) { + var previousParentElement = element; + for( var i = 0; i < element.childNodes.length; i++ ) { + var childElement = element.childNodes[i]; + if ( i > 0 ) { + var j = i - 1; + while ( j >= 0 ) { + var aPreviousChildElement = element.childNodes[j]; + if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) { + previousParentElement = aPreviousChildElement; + break; + } + j = j - 1; + } + } + var parentSection = section; + if( childElement.nodeName == "section" ) { + parentSection = childElement ; + previousParentElement = childElement ; + } + if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) { + addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes ); + } + } + } + + if ( element.nodeType == Node.COMMENT_NODE ) { + if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) { + addAttributeInElement( element, section, separatorSectionAttributes ); + } + } + } + + /** + * Converts any current data-markdown slides in the + * DOM to HTML. + */ + function convertSlides() { + + var sections = deck.getRevealElement().querySelectorAll( '[data-markdown]:not([data-markdown-parsed])'); + + [].slice.call( sections ).forEach( function( section ) { + + section.setAttribute( 'data-markdown-parsed', true ) + + var notes = section.querySelector( 'aside.notes' ); + var markdown = getMarkdownFromSlide( section ); + + section.innerHTML = marked( markdown ); + addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) || + section.parentNode.getAttribute( 'data-element-attributes' ) || + DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR, + section.getAttribute( 'data-attributes' ) || + section.parentNode.getAttribute( 'data-attributes' ) || + DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR); + + // If there were notes, we need to re-add them after + // having overwritten the section's HTML + if( notes ) { + section.appendChild( notes ); + } + + } ); + + return Promise.resolve(); + + } + + function escapeForHTML( input ) { + + return input.replace( /([&<>'"])/g, char => HTML_ESCAPE_MAP[char] ); + + } + + return { + id: 'markdown', + + /** + * Starts processing and converting Markdown within the + * current reveal.js deck. + */ + init: function( reveal ) { + + deck = reveal; + + let { renderer, animateLists, ...markedOptions } = deck.getConfig().markdown || {}; + + if( !renderer ) { + renderer = new marked.Renderer(); + + renderer.code = ( code, language ) => { + + // Off by default + let lineNumbers = ''; + + // Users can opt in to show line numbers and highlight + // specific lines. + // ```javascript [] show line numbers + // ```javascript [1,4-8] highlights lines 1 and 4-8 + if( CODE_LINE_NUMBER_REGEX.test( language ) ) { + lineNumbers = language.match( CODE_LINE_NUMBER_REGEX )[1].trim(); + lineNumbers = `data-line-numbers="${lineNumbers}"`; + language = language.replace( CODE_LINE_NUMBER_REGEX, '' ).trim(); + } + + // Escape before this gets injected into the DOM to + // avoid having the HTML parser alter our code before + // highlight.js is able to read it + code = escapeForHTML( code ); + + return `
    ${code}
    `; + }; + } + + if( animateLists === true ) { + renderer.listitem = text => `
  1. ${text}
  2. `; + } + + marked.setOptions( { + renderer, + ...markedOptions + } ); + + return processSlides( deck.getRevealElement() ).then( convertSlides ); + + }, + + // TODO: Do these belong in the API? + processSlides: processSlides, + convertSlides: convertSlides, + slidify: slidify, + marked: marked + } + +}; + +export default Plugin; diff --git a/english/site_libs/revealjs/plugin/math/katex.js b/english/site_libs/revealjs/plugin/math/katex.js new file mode 100644 index 0000000..a8b47c4 --- /dev/null +++ b/english/site_libs/revealjs/plugin/math/katex.js @@ -0,0 +1,96 @@ +/** + * A plugin which enables rendering of math equations inside + * of reveal.js slides. Essentially a thin wrapper for KaTeX. + * + * @author Hakim El Hattab + * @author Gerhard Burger + */ +export const KaTeX = () => { + let deck; + + let defaultOptions = { + version: 'latest', + delimiters: [ + {left: '$$', right: '$$', display: true}, // Note: $$ has to come before $ + {left: '$', right: '$', display: false}, + {left: '\\(', right: '\\)', display: false}, + {left: '\\[', right: '\\]', display: true} + ], + ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre'] + } + + const loadCss = src => { + let link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = src; + document.head.appendChild(link); + }; + + /** + * Loads a JavaScript file and returns a Promise for when it is loaded + * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/ + */ + const loadScript = src => { + return new Promise((resolve, reject) => { + const script = document.createElement('script') + script.type = 'text/javascript' + script.onload = resolve + script.onerror = reject + script.src = src + document.head.append(script) + }) + }; + + async function loadScripts(urls) { + for(const url of urls) { + await loadScript(url); + } + } + + return { + id: 'katex', + + init: function (reveal) { + + deck = reveal; + + let revealOptions = deck.getConfig().katex || {}; + + let options = {...defaultOptions, ...revealOptions}; + const {local, version, extensions, ...katexOptions} = options; + + let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex'; + let versionString = options.local ? '' : '@' + options.version; + + let cssUrl = baseUrl + versionString + '/dist/katex.min.css'; + let katexUrl = baseUrl + versionString + '/dist/katex.min.js'; + let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js' + let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js'; + + let katexScripts = [katexUrl]; + if(options.extensions && options.extensions.includes("mhchem")) { + katexScripts.push(mhchemUrl); + } + katexScripts.push(karUrl); + + const renderMath = () => { + renderMathInElement(reveal.getSlidesElement(), katexOptions); + deck.layout(); + } + + loadCss(cssUrl); + + // For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does + loadScripts(katexScripts).then(() => { + if( deck.isReady() ) { + renderMath(); + } + else { + deck.on( 'ready', renderMath.bind( this ) ); + } + }); + + } + } + +}; diff --git a/english/site_libs/revealjs/plugin/math/math.esm.js b/english/site_libs/revealjs/plugin/math/math.esm.js new file mode 100644 index 0000000..84699b3 --- /dev/null +++ b/english/site_libs/revealjs/plugin/math/math.esm.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=function(t){return t&&t.Math==Math&&t},n=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof t&&t)||function(){return this}()||Function("return this")(),r={},o=function(t){try{return!!t()}catch(t){return!0}},i=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={},c={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,f=u&&!c.call({1:2},1);a.f=f?function(t){var e=u(this,t);return!!e&&e.enumerable}:c;var s=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},l={}.toString,p=function(t){return l.call(t).slice(8,-1)},h=p,v="".split,d=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==h(t)?v.call(t,""):Object(t)}:Object,y=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=d,m=y,b=function(t){return g(m(t))},w=function(t){return"object"==typeof t?null!==t:"function"==typeof t},j=w,x=function(t,e){if(!j(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!j(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},O=y,E=function(t){return Object(O(t))},S=E,T={}.hasOwnProperty,P=function(t,e){return T.call(S(t),e)},_=w,k=n.document,L=_(k)&&_(k.createElement),M=function(t){return L?k.createElement(t):{}},A=M,I=!i&&!o((function(){return 7!=Object.defineProperty(A("div"),"a",{get:function(){return 7}}).a})),R=i,C=a,N=s,F=b,J=x,D=P,$=I,G=Object.getOwnPropertyDescriptor;r.f=R?G:function(t,e){if(t=F(t),e=J(e,!0),$)try{return G(t,e)}catch(t){}if(D(t,e))return N(!C.f.call(t,e),t[e])};var H={},z=w,W=function(t){if(!z(t))throw TypeError(String(t)+" is not an object");return t},q=i,U=I,K=W,Q=x,X=Object.defineProperty;H.f=q?X:function(t,e,n){if(K(t),e=Q(e,!0),K(n),U)try{return X(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Y=H,B=s,V=i?function(t,e,n){return Y.f(t,e,B(1,n))}:function(t,e,n){return t[e]=n,t},Z={exports:{}},tt=n,et=V,nt=function(t,e){try{et(tt,t,e)}catch(n){tt[t]=e}return e},rt=nt,ot=n["__core-js_shared__"]||rt("__core-js_shared__",{}),it=ot,at=Function.toString;"function"!=typeof it.inspectSource&&(it.inspectSource=function(t){return at.call(t)});var ct=it.inspectSource,ut=ct,ft=n.WeakMap,st="function"==typeof ft&&/native code/.test(ut(ft)),lt={exports:{}},pt=ot;(lt.exports=function(t,e){return pt[t]||(pt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var ht,vt,dt,yt=0,gt=Math.random(),mt=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++yt+gt).toString(36)},bt=lt.exports,wt=mt,jt=bt("keys"),xt=function(t){return jt[t]||(jt[t]=wt(t))},Ot={},Et=st,St=w,Tt=V,Pt=P,_t=ot,kt=xt,Lt=Ot,Mt=n.WeakMap;if(Et||_t.state){var At=_t.state||(_t.state=new Mt),It=At.get,Rt=At.has,Ct=At.set;ht=function(t,e){if(Rt.call(At,t))throw new TypeError("Object already initialized");return e.facade=t,Ct.call(At,t,e),e},vt=function(t){return It.call(At,t)||{}},dt=function(t){return Rt.call(At,t)}}else{var Nt=kt("state");Lt[Nt]=!0,ht=function(t,e){if(Pt(t,Nt))throw new TypeError("Object already initialized");return e.facade=t,Tt(t,Nt,e),e},vt=function(t){return Pt(t,Nt)?t[Nt]:{}},dt=function(t){return Pt(t,Nt)}}var Ft={set:ht,get:vt,has:dt,enforce:function(t){return dt(t)?vt(t):ht(t,{})},getterFor:function(t){return function(e){var n;if(!St(e)||(n=vt(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},Jt=n,Dt=V,$t=P,Gt=nt,Ht=ct,zt=Ft.get,Wt=Ft.enforce,qt=String(String).split("String");(Z.exports=function(t,e,n,r){var o,i=!!r&&!!r.unsafe,a=!!r&&!!r.enumerable,c=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof e||$t(n,"name")||Dt(n,"name",e),(o=Wt(n)).source||(o.source=qt.join("string"==typeof e?e:""))),t!==Jt?(i?!c&&t[e]&&(a=!0):delete t[e],a?t[e]=n:Dt(t,e,n)):a?t[e]=n:Gt(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&zt(this).source||Ht(this)}));var Ut=n,Kt=n,Qt=function(t){return"function"==typeof t?t:void 0},Xt=function(t,e){return arguments.length<2?Qt(Ut[t])||Qt(Kt[t]):Ut[t]&&Ut[t][e]||Kt[t]&&Kt[t][e]},Yt={},Bt=Math.ceil,Vt=Math.floor,Zt=function(t){return isNaN(t=+t)?0:(t>0?Vt:Bt)(t)},te=Zt,ee=Math.min,ne=function(t){return t>0?ee(te(t),9007199254740991):0},re=Zt,oe=Math.max,ie=Math.min,ae=b,ce=ne,ue=function(t,e){var n=re(t);return n<0?oe(n+e,0):ie(n,e)},fe=function(t){return function(e,n,r){var o,i=ae(e),a=ce(i.length),c=ue(r,a);if(t&&n!=n){for(;a>c;)if((o=i[c++])!=o)return!0}else for(;a>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},se={includes:fe(!0),indexOf:fe(!1)},le=P,pe=b,he=se.indexOf,ve=Ot,de=function(t,e){var n,r=pe(t),o=0,i=[];for(n in r)!le(ve,n)&&le(r,n)&&i.push(n);for(;e.length>o;)le(r,n=e[o++])&&(~he(i,n)||i.push(n));return i},ye=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],ge=de,me=ye.concat("length","prototype");Yt.f=Object.getOwnPropertyNames||function(t){return ge(t,me)};var be={};be.f=Object.getOwnPropertySymbols;var we=Yt,je=be,xe=W,Oe=Xt("Reflect","ownKeys")||function(t){var e=we.f(xe(t)),n=je.f;return n?e.concat(n(t)):e},Ee=P,Se=Oe,Te=r,Pe=H,_e=o,ke=/#|\.prototype\./,Le=function(t,e){var n=Ae[Me(t)];return n==Re||n!=Ie&&("function"==typeof e?_e(e):!!e)},Me=Le.normalize=function(t){return String(t).replace(ke,".").toLowerCase()},Ae=Le.data={},Ie=Le.NATIVE="N",Re=Le.POLYFILL="P",Ce=Le,Ne=n,Fe=r.f,Je=V,De=Z.exports,$e=nt,Ge=function(t,e){for(var n=Se(e),r=Pe.f,o=Te.f,i=0;io;)for(var c,u=Ze(arguments[o++]),f=i?Xe(u).concat(i(u)):Xe(u),s=f.length,l=0;s>l;)c=f[l++],Ke&&!a.call(u,c)||(n[c]=u[c]);return n}:tn;function rn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function on(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function sn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}ze({target:"Object",stat:!0,forced:Object.assign!==nn},{assign:nn});!function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function f(t,e,n,r){var o=e&&e.prototype instanceof y?e:y,i=Object.create(o.prototype),a=new _(r||[]);return i._invoke=function(t,e,n){var r=l;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===v){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=S(a,n);if(c){if(c===d)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=s(t,e,n);if("normal"===u.type){if(r=n.done?v:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}(t,n,a),i}function s(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var l="suspendedStart",p="suspendedYield",h="executing",v="completed",d={};function y(){}function g(){}function m(){}var b={};b[i]=function(){return this};var w=Object.getPrototypeOf,j=w&&w(w(k([])));j&&j!==n&&r.call(j,i)&&(b=j);var x=m.prototype=y.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function n(o,i,a,c){var u=s(t[o],t,i);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,r){function i(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(i,i):i()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=s(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function k(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),f=r.call(a,"finallyLoc");if(u&&f){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:k(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}({exports:{}});var pn,hn,vn=Xt("navigator","userAgent")||"",dn=vn,yn=n.process,gn=yn&&yn.versions,mn=gn&&gn.v8;mn?hn=(pn=mn.split("."))[0]<4?1:pn[0]+pn[1]:dn&&(!(pn=dn.match(/Edge\/(\d+)/))||pn[1]>=74)&&(pn=dn.match(/Chrome\/(\d+)/))&&(hn=pn[1]);var bn=hn&&+hn,wn=bn,jn=o,xn=!!Object.getOwnPropertySymbols&&!jn((function(){return!String(Symbol())||!Symbol.sham&&wn&&wn<41})),On=xn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,En=n,Sn=lt.exports,Tn=P,Pn=mt,_n=xn,kn=On,Ln=Sn("wks"),Mn=En.Symbol,An=kn?Mn:Mn&&Mn.withoutSetter||Pn,In=function(t){return Tn(Ln,t)&&(_n||"string"==typeof Ln[t])||(_n&&Tn(Mn,t)?Ln[t]=Mn[t]:Ln[t]=An("Symbol."+t)),Ln[t]},Rn={};Rn[In("toStringTag")]="z";var Cn="[object z]"===String(Rn),Nn=Cn,Fn=p,Jn=In("toStringTag"),Dn="Arguments"==Fn(function(){return arguments}()),$n=Nn?Fn:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),Jn))?n:Dn?Fn(e):"Object"==(r=Fn(e))&&"function"==typeof e.callee?"Arguments":r},Gn=$n,Hn=Cn?{}.toString:function(){return"[object "+Gn(this)+"]"},zn=Cn,Wn=Z.exports,qn=Hn;zn||Wn(Object.prototype,"toString",qn,{unsafe:!0});var Un=n.Promise,Kn=Z.exports,Qn=w,Xn=W,Yn=function(t){if(!Qn(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},Bn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Xn(n),Yn(r),e?t.call(n,r):n.__proto__=r,n}}():void 0),Vn=H.f,Zn=P,tr=In("toStringTag"),er=Xt,nr=H,rr=i,or=In("species"),ir=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},ar={},cr=ar,ur=In("iterator"),fr=Array.prototype,sr=ir,lr=function(t,e,n){if(sr(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}},pr=$n,hr=ar,vr=In("iterator"),dr=W,yr=W,gr=function(t){return void 0!==t&&(cr.Array===t||fr[ur]===t)},mr=ne,br=lr,wr=function(t){if(null!=t)return t[vr]||t["@@iterator"]||hr[pr(t)]},jr=function(t){var e=t.return;if(void 0!==e)return dr(e.call(t)).value},xr=function(t,e){this.stopped=t,this.result=e},Or=In("iterator"),Er=!1;try{var Sr=0,Tr={next:function(){return{done:!!Sr++}},return:function(){Er=!0}};Tr[Or]=function(){return this},Array.from(Tr,(function(){throw 2}))}catch(t){}var Pr,_r,kr,Lr=W,Mr=ir,Ar=In("species"),Ir=Xt("document","documentElement"),Rr=/(?:iphone|ipod|ipad).*applewebkit/i.test(vn),Cr="process"==p(n.process),Nr=n,Fr=o,Jr=lr,Dr=Ir,$r=M,Gr=Rr,Hr=Cr,zr=Nr.location,Wr=Nr.setImmediate,qr=Nr.clearImmediate,Ur=Nr.process,Kr=Nr.MessageChannel,Qr=Nr.Dispatch,Xr=0,Yr={},Br=function(t){if(Yr.hasOwnProperty(t)){var e=Yr[t];delete Yr[t],e()}},Vr=function(t){return function(){Br(t)}},Zr=function(t){Br(t.data)},to=function(t){Nr.postMessage(t+"",zr.protocol+"//"+zr.host)};Wr&&qr||(Wr=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Yr[++Xr]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},Pr(Xr),Xr},qr=function(t){delete Yr[t]},Hr?Pr=function(t){Ur.nextTick(Vr(t))}:Qr&&Qr.now?Pr=function(t){Qr.now(Vr(t))}:Kr&&!Gr?(kr=(_r=new Kr).port2,_r.port1.onmessage=Zr,Pr=Jr(kr.postMessage,kr,1)):Nr.addEventListener&&"function"==typeof postMessage&&!Nr.importScripts&&zr&&"file:"!==zr.protocol&&!Fr(to)?(Pr=to,Nr.addEventListener("message",Zr,!1)):Pr="onreadystatechange"in $r("script")?function(t){Dr.appendChild($r("script")).onreadystatechange=function(){Dr.removeChild(this),Br(t)}}:function(t){setTimeout(Vr(t),0)});var eo,no,ro,oo,io,ao,co,uo,fo={set:Wr,clear:qr},so=/web0s(?!.*chrome)/i.test(vn),lo=n,po=r.f,ho=fo.set,vo=Rr,yo=so,go=Cr,mo=lo.MutationObserver||lo.WebKitMutationObserver,bo=lo.document,wo=lo.process,jo=lo.Promise,xo=po(lo,"queueMicrotask"),Oo=xo&&xo.value;Oo||(eo=function(){var t,e;for(go&&(t=wo.domain)&&t.exit();no;){e=no.fn,no=no.next;try{e()}catch(t){throw no?oo():ro=void 0,t}}ro=void 0,t&&t.enter()},vo||go||yo||!mo||!bo?jo&&jo.resolve?((co=jo.resolve(void 0)).constructor=jo,uo=co.then,oo=function(){uo.call(co,eo)}):oo=go?function(){wo.nextTick(eo)}:function(){ho.call(lo,eo)}:(io=!0,ao=bo.createTextNode(""),new mo(eo).observe(ao,{characterData:!0}),oo=function(){ao.data=io=!io}));var Eo=Oo||function(t){var e={fn:t,next:void 0};ro&&(ro.next=e),no||(no=e,oo()),ro=e},So={},To=ir,Po=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=To(e),this.reject=To(n)};So.f=function(t){return new Po(t)};var _o,ko,Lo,Mo,Ao=W,Io=w,Ro=So,Co=n,No="object"==typeof window,Fo=ze,Jo=n,Do=Xt,$o=Un,Go=Z.exports,Ho=function(t,e,n){for(var r in e)Kn(t,r,e[r],n);return t},zo=Bn,Wo=function(t,e,n){t&&!Zn(t=n?t:t.prototype,tr)&&Vn(t,tr,{configurable:!0,value:e})},qo=function(t){var e=er(t),n=nr.f;rr&&e&&!e[or]&&n(e,or,{configurable:!0,get:function(){return this}})},Uo=w,Ko=ir,Qo=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t},Xo=ct,Yo=function(t,e,n){var r,o,i,a,c,u,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),v=br(e,s,1+l+h),d=function(t){return r&&jr(r),new xr(!0,t)},y=function(t){return l?(yr(t),h?v(t[0],t[1],d):v(t[0],t[1])):h?v(t,d):v(t)};if(p)r=t;else{if("function"!=typeof(o=wr(t)))throw TypeError("Target is not iterable");if(gr(o)){for(i=0,a=mr(t.length);a>i;i++)if((c=y(t[i]))&&c instanceof xr)return c;return new xr(!1)}r=o.call(t)}for(u=r.next;!(f=u.call(r)).done;){try{c=y(f.value)}catch(t){throw jr(r),t}if("object"==typeof c&&c&&c instanceof xr)return c}return new xr(!1)},Bo=function(t,e){if(!e&&!Er)return!1;var n=!1;try{var r={};r[Or]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Vo=function(t,e){var n,r=Lr(t).constructor;return void 0===r||null==(n=Lr(r)[Ar])?e:Mr(n)},Zo=fo.set,ti=Eo,ei=function(t,e){if(Ao(t),Io(e)&&e.constructor===t)return e;var n=Ro.f(t);return(0,n.resolve)(e),n.promise},ni=function(t,e){var n=Co.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))},ri=So,oi=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ii=Ft,ai=Ce,ci=No,ui=Cr,fi=bn,si=In("species"),li="Promise",pi=ii.get,hi=ii.set,vi=ii.getterFor(li),di=$o&&$o.prototype,yi=$o,gi=di,mi=Jo.TypeError,bi=Jo.document,wi=Jo.process,ji=ri.f,xi=ji,Oi=!!(bi&&bi.createEvent&&Jo.dispatchEvent),Ei="function"==typeof PromiseRejectionEvent,Si=!1,Ti=ai(li,(function(){var t=Xo(yi)!==String(yi);if(!t&&66===fi)return!0;if(fi>=51&&/native code/.test(yi))return!1;var e=new yi((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};return(e.constructor={})[si]=n,!(Si=e.then((function(){}))instanceof n)||!t&&ci&&!Ei})),Pi=Ti||!Bo((function(t){yi.all(t).catch((function(){}))})),_i=function(t){var e;return!(!Uo(t)||"function"!=typeof(e=t.then))&&e},ki=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;ti((function(){for(var r=t.value,o=1==t.state,i=0;n.length>i;){var a,c,u,f=n[i++],s=o?f.ok:f.fail,l=f.resolve,p=f.reject,h=f.domain;try{s?(o||(2===t.rejection&&Ii(t),t.rejection=1),!0===s?a=r:(h&&h.enter(),a=s(r),h&&(h.exit(),u=!0)),a===f.promise?p(mi("Promise-chain cycle")):(c=_i(a))?c.call(a,l,p):l(a)):p(r)}catch(t){h&&!u&&h.exit(),p(t)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&Mi(t)}))}},Li=function(t,e,n){var r,o;Oi?((r=bi.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),Jo.dispatchEvent(r)):r={promise:e,reason:n},!Ei&&(o=Jo["on"+t])?o(r):"unhandledrejection"===t&&ni("Unhandled promise rejection",n)},Mi=function(t){Zo.call(Jo,(function(){var e,n=t.facade,r=t.value;if(Ai(t)&&(e=oi((function(){ui?wi.emit("unhandledRejection",r,n):Li("unhandledrejection",n,r)})),t.rejection=ui||Ai(t)?2:1,e.error))throw e.value}))},Ai=function(t){return 1!==t.rejection&&!t.parent},Ii=function(t){Zo.call(Jo,(function(){var e=t.facade;ui?wi.emit("rejectionHandled",e):Li("rejectionhandled",e,t.value)}))},Ri=function(t,e,n){return function(r){t(e,r,n)}},Ci=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ki(t,!0))},Ni=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw mi("Promise can't be resolved itself");var r=_i(e);r?ti((function(){var n={done:!1};try{r.call(e,Ri(Ni,n,t),Ri(Ci,n,t))}catch(e){Ci(n,e,t)}})):(t.value=e,t.state=1,ki(t,!1))}catch(e){Ci({done:!1},e,t)}}};if(Ti&&(gi=(yi=function(t){Qo(this,yi,li),Ko(t),_o.call(this);var e=pi(this);try{t(Ri(Ni,e),Ri(Ci,e))}catch(t){Ci(e,t)}}).prototype,(_o=function(t){hi(this,{type:li,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Ho(gi,{then:function(t,e){var n=vi(this),r=ji(Vo(this,yi));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=ui?wi.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&ki(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),ko=function(){var t=new _o,e=pi(t);this.promise=t,this.resolve=Ri(Ni,e),this.reject=Ri(Ci,e)},ri.f=ji=function(t){return t===yi||t===Lo?new ko(t):xi(t)},"function"==typeof $o&&di!==Object.prototype)){Mo=di.then,Si||(Go(di,"then",(function(t,e){var n=this;return new yi((function(t,e){Mo.call(n,t,e)})).then(t,e)}),{unsafe:!0}),Go(di,"catch",gi.catch,{unsafe:!0}));try{delete di.constructor}catch(t){}zo&&zo(di,gi)}Fo({global:!0,wrap:!0,forced:Ti},{Promise:yi}),Wo(yi,li,!1),qo(li),Lo=Do(li),Fo({target:li,stat:!0,forced:Ti},{reject:function(t){var e=ji(this);return e.reject.call(void 0,t),e.promise}}),Fo({target:li,stat:!0,forced:Ti},{resolve:function(t){return ei(this,t)}}),Fo({target:li,stat:!0,forced:Pi},{all:function(t){var e=this,n=ji(e),r=n.resolve,o=n.reject,i=oi((function(){var n=Ko(e.resolve),i=[],a=0,c=1;Yo(t,(function(t){var u=a++,f=!1;i.push(void 0),c++,n.call(e,t).then((function(t){f||(f=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=ji(e),r=n.reject,o=oi((function(){var o=Ko(e.resolve);Yo(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Fi,Ji=H,Di=W,$i=Ue,Gi=i?Object.defineProperties:function(t,e){Di(t);for(var n,r=$i(e),o=r.length,i=0;o>i;)Ji.f(t,n=r[i++],e[n]);return t},Hi=W,zi=Gi,Wi=ye,qi=Ot,Ui=Ir,Ki=M,Qi=xt("IE_PROTO"),Xi=function(){},Yi=function(t){return" + + \ No newline at end of file diff --git a/english/site_libs/revealjs/plugin/pdf-export/pdfexport.js b/english/site_libs/revealjs/plugin/pdf-export/pdfexport.js new file mode 100644 index 0000000..c399fa9 --- /dev/null +++ b/english/site_libs/revealjs/plugin/pdf-export/pdfexport.js @@ -0,0 +1,108 @@ +var PdfExport = ( function( _Reveal ){ + + var Reveal = _Reveal; + var setStylesheet = null; + var installAltKeyBindings = null; + + function getRevealJsPath(){ + var regex = /\b[^/]+\/reveal.css$/i; + var script = Array.from( document.querySelectorAll( 'link' ) ).find( function( e ){ + return e.attributes.href && e.attributes.href.value.search( regex ) >= 0; + }); + if( !script ){ + console.error( 'reveal.css could not be found in included elements. Did you rename this file?' ); + return ''; + } + return script.attributes.href.value.replace( regex, '' ); + } + + function setStylesheet3( pdfExport ){ + var link = document.querySelector( '#print' ); + if( !link ){ + link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.id = 'print'; + document.querySelector( 'head' ).appendChild( link ); + } + var style = 'paper'; + if( pdfExport ){ + style = 'pdf'; + } + link.href = getRevealJsPath() + 'css/print/' + style + '.css'; + } + + function setStylesheet4( pdfExport ){ + } + + function installAltKeyBindings3(){ + } + + function installAltKeyBindings4(){ + if( isPrintingPDF() ){ + var config = Reveal.getConfig(); + var shortcut = config.pdfExportShortcut || 'E'; + window.addEventListener( 'keydown', function( e ){ + if( e.target.nodeName.toUpperCase() == 'BODY' + && ( e.key.toUpperCase() == shortcut.toUpperCase() || e.keyCode == shortcut.toUpperCase().charCodeAt( 0 ) ) ){ + e.preventDefault(); + togglePdfExport(); + return false; + } + }, true ); + } + } + + function isPrintingPDF(){ + return ( /print-pdf/gi ).test( window.location.search ); + } + + function togglePdfExport(){ + var url_doc = new URL( document.URL ); + var query_doc = new URLSearchParams( url_doc.searchParams ); + if( isPrintingPDF() ){ + query_doc.delete( 'print-pdf' ); + }else{ + query_doc.set( 'print-pdf', '' ); + } + url_doc.search = ( query_doc.toString() ? '?' + query_doc.toString() : '' ); + window.location.href = url_doc.toString(); + } + + function installKeyBindings(){ + var config = Reveal.getConfig(); + var shortcut = config.pdfExportShortcut || 'E'; + Reveal.addKeyBinding({ + keyCode: shortcut.toUpperCase().charCodeAt( 0 ), + key: shortcut.toUpperCase(), + description: 'PDF export mode' + }, togglePdfExport ); + installAltKeyBindings(); + } + + function install(){ + installKeyBindings(); + setStylesheet( isPrintingPDF() ); + } + + var Plugin = { + } + + if( Reveal && Reveal.VERSION && Reveal.VERSION.length && Reveal.VERSION[ 0 ] == '3' ){ + // reveal 3.x + setStylesheet = setStylesheet3; + installAltKeyBindings = installAltKeyBindings3; + install(); + }else{ + // must be reveal 4.x + setStylesheet = setStylesheet4; + installAltKeyBindings = installAltKeyBindings4; + Plugin.id = 'pdf-export'; + Plugin.init = function( _Reveal ){ + Reveal = _Reveal; + install(); + }; + } + + return Plugin; + +})( Reveal ); diff --git a/english/site_libs/revealjs/plugin/pdf-export/plugin.yml b/english/site_libs/revealjs/plugin/pdf-export/plugin.yml new file mode 100644 index 0000000..f6db9d0 --- /dev/null +++ b/english/site_libs/revealjs/plugin/pdf-export/plugin.yml @@ -0,0 +1,2 @@ +name: PdfExport +script: pdfexport.js diff --git a/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css b/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css new file mode 100644 index 0000000..e8410fe --- /dev/null +++ b/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css @@ -0,0 +1,31 @@ +.reveal + div.sourceCode + pre + code.has-line-highlights + > span:not(.highlight-line) { + opacity: 0.4; +} + +.reveal pre.numberSource { + padding-left: 0; +} + +.reveal pre.numberSource code > span { + left: -2.1em; +} + +pre.numberSource code > span > a:first-child::before { + left: -0.7em; +} + +.reveal pre > code:not(:first-child).fragment { + position: absolute; + top: 0; + left: 0; + width: 100%; + box-sizing: border-box; +} + +.reveal div.sourceCode pre code { + min-height: 100%; +} diff --git a/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js b/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js new file mode 100644 index 0000000..5bffdc7 --- /dev/null +++ b/english/site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js @@ -0,0 +1,351 @@ +window.QuartoLineHighlight = function () { + function isPrintView() { + return /print-pdf/gi.test(window.location.search); + } + + const delimiters = { + step: "|", + line: ",", + lineRange: "-", + }; + + const regex = new RegExp( + "^[\\d" + Object.values(delimiters).join("") + "]+$" + ); + + function handleLinesSelector(deck, attr) { + // if we are in printview with pdfSeparateFragments: false + // then we'll also want to supress + if (regex.test(attr)) { + if (isPrintView() && deck.getConfig().pdfSeparateFragments !== true) { + return false; + } else { + return true; + } + } else { + return false; + } + } + + const kCodeLineNumbersAttr = "data-code-line-numbers"; + const kFragmentIndex = "data-fragment-index"; + + function initQuartoLineHighlight(deck) { + const divSourceCode = deck + .getRevealElement() + .querySelectorAll("div.sourceCode"); + // Process each div created by Pandoc highlighting - numbered line are already included. + divSourceCode.forEach((el) => { + if (el.hasAttribute(kCodeLineNumbersAttr)) { + const codeLineAttr = el.getAttribute(kCodeLineNumbersAttr); + el.removeAttribute("data-code-line-numbers"); + if (handleLinesSelector(deck, codeLineAttr)) { + // Only process if attr is a string to select lines to highlights + // e.g "1|3,6|8-11" + const codeBlock = el.querySelectorAll("pre code"); + codeBlock.forEach((code) => { + // move attributes on code block + code.setAttribute(kCodeLineNumbersAttr, codeLineAttr); + + const scrollState = { currentBlock: code }; + + // Check if there are steps and duplicate code block accordingly + const highlightSteps = splitLineNumbers(codeLineAttr); + if (highlightSteps.length > 1) { + // If the original code block has a fragment-index, + // each clone should follow in an incremental sequence + let fragmentIndex = parseInt( + code.getAttribute(kFragmentIndex), + 10 + ); + fragmentIndex = + typeof fragmentIndex !== "number" || isNaN(fragmentIndex) + ? null + : fragmentIndex; + + let stepN = 1; + highlightSteps.slice(1).forEach( + // Generate fragments for all steps except the original block + (step) => { + var fragmentBlock = code.cloneNode(true); + fragmentBlock.setAttribute( + "data-code-line-numbers", + joinLineNumbers([step]) + ); + fragmentBlock.classList.add("fragment"); + + // Pandoc sets id on spans we need to keep unique + fragmentBlock + .querySelectorAll(":scope > span") + .forEach((span) => { + if (span.hasAttribute("id")) { + span.setAttribute( + "id", + span.getAttribute("id").concat("-" + stepN) + ); + } + }); + stepN = ++stepN; + + // Add duplicated element after existing one + code.parentNode.appendChild(fragmentBlock); + + // Each new element is highlighted based on the new attributes value + highlightCodeBlock(fragmentBlock); + + if (typeof fragmentIndex === "number") { + fragmentBlock.setAttribute(kFragmentIndex, fragmentIndex); + fragmentIndex += 1; + } else { + fragmentBlock.removeAttribute(kFragmentIndex); + } + + // Scroll highlights into view as we step through them + fragmentBlock.addEventListener( + "visible", + scrollHighlightedLineIntoView.bind( + this, + fragmentBlock, + scrollState + ) + ); + fragmentBlock.addEventListener( + "hidden", + scrollHighlightedLineIntoView.bind( + this, + fragmentBlock.previousSibling, + scrollState + ) + ); + } + ); + code.removeAttribute(kFragmentIndex); + code.setAttribute( + kCodeLineNumbersAttr, + joinLineNumbers([highlightSteps[0]]) + ); + } + + // Scroll the first highlight into view when the slide becomes visible. + const slide = + typeof code.closest === "function" + ? code.closest("section:not(.stack)") + : null; + if (slide) { + const scrollFirstHighlightIntoView = function () { + scrollHighlightedLineIntoView(code, scrollState, true); + slide.removeEventListener( + "visible", + scrollFirstHighlightIntoView + ); + }; + slide.addEventListener("visible", scrollFirstHighlightIntoView); + } + + highlightCodeBlock(code); + }); + } + } + }); + } + + function highlightCodeBlock(codeBlock) { + const highlightSteps = splitLineNumbers( + codeBlock.getAttribute(kCodeLineNumbersAttr) + ); + + if (highlightSteps.length) { + // If we have at least one step, we generate fragments + highlightSteps[0].forEach((highlight) => { + // Add expected class on
     for reveal CSS
    +        codeBlock.parentNode.classList.add("code-wrapper");
    +
    +        // Select lines to highlight
    +        spanToHighlight = [];
    +        if (typeof highlight.last === "number") {
    +          spanToHighlight = [].slice.call(
    +            codeBlock.querySelectorAll(
    +              ":scope > span:nth-child(n+" +
    +                highlight.first +
    +                "):nth-child(-n+" +
    +                highlight.last +
    +                ")"
    +            )
    +          );
    +        } else if (typeof highlight.first === "number") {
    +          spanToHighlight = [].slice.call(
    +            codeBlock.querySelectorAll(
    +              ":scope > span:nth-child(" + highlight.first + ")"
    +            )
    +          );
    +        }
    +        if (spanToHighlight.length) {
    +          // Add a class on  and  to select line to highlight
    +          spanToHighlight.forEach((span) =>
    +            span.classList.add("highlight-line")
    +          );
    +          codeBlock.classList.add("has-line-highlights");
    +        }
    +      });
    +    }
    +  }
    +
    +  /**
    +   * Animates scrolling to the first highlighted line
    +   * in the given code block.
    +   */
    +  function scrollHighlightedLineIntoView(block, scrollState, skipAnimation) {
    +    window.cancelAnimationFrame(scrollState.animationFrameID);
    +
    +    // Match the scroll position of the currently visible
    +    // code block
    +    if (scrollState.currentBlock) {
    +      block.scrollTop = scrollState.currentBlock.scrollTop;
    +    }
    +
    +    // Remember the current code block so that we can match
    +    // its scroll position when showing/hiding fragments
    +    scrollState.currentBlock = block;
    +
    +    const highlightBounds = getHighlightedLineBounds(block);
    +    let viewportHeight = block.offsetHeight;
    +
    +    // Subtract padding from the viewport height
    +    const blockStyles = window.getComputedStyle(block);
    +    viewportHeight -=
    +      parseInt(blockStyles.paddingTop) + parseInt(blockStyles.paddingBottom);
    +
    +    // Scroll position which centers all highlights
    +    const startTop = block.scrollTop;
    +    let targetTop =
    +      highlightBounds.top +
    +      (Math.min(highlightBounds.bottom - highlightBounds.top, viewportHeight) -
    +        viewportHeight) /
    +        2;
    +
    +    // Make sure the scroll target is within bounds
    +    targetTop = Math.max(
    +      Math.min(targetTop, block.scrollHeight - viewportHeight),
    +      0
    +    );
    +
    +    if (skipAnimation === true || startTop === targetTop) {
    +      block.scrollTop = targetTop;
    +    } else {
    +      // Don't attempt to scroll if there is no overflow
    +      if (block.scrollHeight <= viewportHeight) return;
    +
    +      let time = 0;
    +
    +      const animate = function () {
    +        time = Math.min(time + 0.02, 1);
    +
    +        // Update our eased scroll position
    +        block.scrollTop =
    +          startTop + (targetTop - startTop) * easeInOutQuart(time);
    +
    +        // Keep animating unless we've reached the end
    +        if (time < 1) {
    +          scrollState.animationFrameID = requestAnimationFrame(animate);
    +        }
    +      };
    +
    +      animate();
    +    }
    +  }
    +
    +  function getHighlightedLineBounds(block) {
    +    const highlightedLines = block.querySelectorAll(".highlight-line");
    +    if (highlightedLines.length === 0) {
    +      return { top: 0, bottom: 0 };
    +    } else {
    +      const firstHighlight = highlightedLines[0];
    +      const lastHighlight = highlightedLines[highlightedLines.length - 1];
    +
    +      return {
    +        top: firstHighlight.offsetTop,
    +        bottom: lastHighlight.offsetTop + lastHighlight.offsetHeight,
    +      };
    +    }
    +  }
    +
    +  /**
    +   * The easing function used when scrolling.
    +   */
    +  function easeInOutQuart(t) {
    +    // easeInOutQuart
    +    return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;
    +  }
    +
    +  function splitLineNumbers(lineNumbersAttr) {
    +    // remove space
    +    lineNumbersAttr = lineNumbersAttr.replace("/s/g", "");
    +    // seperate steps (for fragment)
    +    lineNumbersAttr = lineNumbersAttr.split(delimiters.step);
    +
    +    // for each step, calculate first and last line, if any
    +    return lineNumbersAttr.map((highlights) => {
    +      // detect lines
    +      const lines = highlights.split(delimiters.line);
    +      return lines.map((range) => {
    +        if (/^[\d-]+$/.test(range)) {
    +          range = range.split(delimiters.lineRange);
    +          const firstLine = parseInt(range[0], 10);
    +          const lastLine = range[1] ? parseInt(range[1], 10) : undefined;
    +          return {
    +            first: firstLine,
    +            last: lastLine,
    +          };
    +        } else {
    +          return {};
    +        }
    +      });
    +    });
    +  }
    +
    +  function joinLineNumbers(splittedLineNumbers) {
    +    return splittedLineNumbers
    +      .map(function (highlights) {
    +        return highlights
    +          .map(function (highlight) {
    +            // Line range
    +            if (typeof highlight.last === "number") {
    +              return highlight.first + delimiters.lineRange + highlight.last;
    +            }
    +            // Single line
    +            else if (typeof highlight.first === "number") {
    +              return highlight.first;
    +            }
    +            // All lines
    +            else {
    +              return "";
    +            }
    +          })
    +          .join(delimiters.line);
    +      })
    +      .join(delimiters.step);
    +  }
    +
    +  return {
    +    id: "quarto-line-highlight",
    +    init: function (deck) {
    +      initQuartoLineHighlight(deck);
    +
    +      // If we're printing to PDF, scroll the code highlights of
    +      // all blocks in the deck into view at once
    +      deck.on("pdf-ready", function () {
    +        [].slice
    +          .call(
    +            deck
    +              .getRevealElement()
    +              .querySelectorAll(
    +                "pre code[data-code-line-numbers].current-fragment"
    +              )
    +          )
    +          .forEach(function (block) {
    +            scrollHighlightedLineIntoView(block, {}, true);
    +          });
    +      });
    +    },
    +  };
    +};
    diff --git a/english/site_libs/revealjs/plugin/quarto-line-highlight/plugin.yml b/english/site_libs/revealjs/plugin/quarto-line-highlight/plugin.yml
    new file mode 100644
    index 0000000..ca20686
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/quarto-line-highlight/plugin.yml
    @@ -0,0 +1,4 @@
    +# adapted from https://github.com/hakimel/reveal.js/tree/master/plugin/highlight
    +name: QuartoLineHighlight
    +script: line-highlight.js
    +stylesheet: line-highlight.css
    diff --git a/english/site_libs/revealjs/plugin/quarto-support/footer.css b/english/site_libs/revealjs/plugin/quarto-support/footer.css
    new file mode 100644
    index 0000000..385473d
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/quarto-support/footer.css
    @@ -0,0 +1,109 @@
    +.reveal .slide-logo {
    +  display: block;
    +  position: fixed;
    +  bottom: 0;
    +  right: 12px;
    +  max-height: 2.2rem;
    +  height: 100%;
    +  width: auto;
    +}
    +
    +.reveal .footer {
    +  display: block;
    +  position: fixed;
    +  bottom: 18px;
    +  width: 100%;
    +  margin: 0 auto;
    +  text-align: center;
    +  font-size: 18px;
    +  z-index: 2;
    +}
    +
    +.reveal .footer > * {
    +  margin-top: 0;
    +  margin-bottom: 0;
    +}
    +
    +.reveal .slide .footer {
    +  display: none;
    +}
    +
    +.reveal .slide-number {
    +  bottom: 10px;
    +  right: 10px;
    +  font-size: 16px;
    +  background-color: transparent;
    +}
    +
    +.reveal.has-logo .slide-number {
    +  bottom: initial;
    +  top: 8px;
    +  right: 8px;
    +}
    +
    +.reveal .slide-number .slide-number-delimiter {
    +  margin: 0;
    +}
    +
    +.reveal .slide-menu-button {
    +  left: 8px;
    +  bottom: 8px;
    +}
    +
    +.reveal .slide-chalkboard-buttons {
    +  position: fixed;
    +  left: 12px;
    +  bottom: 8px;
    +  z-index: 30;
    +  font-size: 24px;
    +}
    +
    +.reveal .slide-chalkboard-buttons.slide-menu-offset {
    +  left: 54px;
    +}
    +
    +.reveal .slide-chalkboard-buttons > span {
    +  margin-right: 14px;
    +  cursor: pointer;
    +}
    +
    +@media screen and (max-width: 800px) {
    +  .reveal .slide-logo {
    +    max-height: 1.1rem;
    +    bottom: -2px;
    +    right: 10px;
    +  }
    +  .reveal .footer {
    +    font-size: 14px;
    +    bottom: 12px;
    +  }
    +  .reveal .slide-number {
    +    font-size: 12px;
    +    bottom: 7px;
    +  }
    +  .reveal .slide-menu-button .fas::before {
    +    height: 1.3rem;
    +    width: 1.3rem;
    +    vertical-align: -0.125em;
    +    background-size: 1.3rem 1.3rem;
    +  }
    +
    +  .reveal .slide-chalkboard-buttons .fas::before {
    +    height: 0.95rem;
    +    width: 0.95rem;
    +    background-size: 0.95rem 0.95rem;
    +    vertical-align: -0em;
    +  }
    +
    +  .reveal .slide-chalkboard-buttons.slide-menu-offset {
    +    left: 36px;
    +  }
    +  .reveal .slide-chalkboard-buttons > span {
    +    margin-right: 9px;
    +  }
    +}
    +
    +html.print-pdf .reveal .slide-menu-button,
    +html.print-pdf .reveal .slide-chalkboard-buttons {
    +  display: none;
    +}
    diff --git a/english/site_libs/revealjs/plugin/quarto-support/plugin.yml b/english/site_libs/revealjs/plugin/quarto-support/plugin.yml
    new file mode 100644
    index 0000000..546956e
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/quarto-support/plugin.yml
    @@ -0,0 +1,5 @@
    +name: QuartoSupport
    +script: support.js
    +stylesheet: footer.css
    +config:
    +  smaller: false
    diff --git a/english/site_libs/revealjs/plugin/quarto-support/support.js b/english/site_libs/revealjs/plugin/quarto-support/support.js
    new file mode 100644
    index 0000000..ab97ded
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/quarto-support/support.js
    @@ -0,0 +1,243 @@
    +// catch all plugin for various quarto features
    +window.QuartoSupport = function () {
    +  function isPrintView() {
    +    return /print-pdf/gi.test(window.location.search);
    +  }
    +
    +  // implement controlsAudo
    +  function controlsAuto(deck) {
    +    const config = deck.getConfig();
    +    if (config.controlsAuto === true) {
    +      const iframe = window.location !== window.parent.location;
    +      const localhost =
    +        window.location.hostname === "localhost" ||
    +        window.location.hostname === "127.0.0.1";
    +      deck.configure({
    +        controls:
    +          (iframe && !localhost) ||
    +          (deck.hasVerticalSlides() && config.navigationMode !== "linear"),
    +      });
    +    }
    +  }
    +
    +  // helper to provide event handlers for all links in a container
    +  function handleLinkClickEvents(deck, container) {
    +    Array.from(container.querySelectorAll("a")).forEach((el) => {
    +      const url = el.getAttribute("href");
    +      if (/^(http|www)/gi.test(url)) {
    +        el.addEventListener(
    +          "click",
    +          (ev) => {
    +            const fullscreen = !!window.document.fullscreen;
    +            const dataPreviewLink = el.getAttribute("data-preview-link");
    +
    +            // if there is a local specifcation then use that
    +            if (dataPreviewLink) {
    +              if (
    +                dataPreviewLink === "true" ||
    +                (dataPreviewLink === "auto" && fullscreen)
    +              ) {
    +                ev.preventDefault();
    +                deck.showPreview(url);
    +                return false;
    +              }
    +            } else {
    +              const previewLinks = !!deck.getConfig().previewLinks;
    +              const previewLinksAuto =
    +                deck.getConfig().previewLinksAuto === true;
    +              if (previewLinks == true || (previewLinksAuto && fullscreen)) {
    +                ev.preventDefault();
    +                deck.showPreview(url);
    +                return false;
    +              }
    +            }
    +
    +            // if the deck is in an iframe we want to open it externally
    +            const iframe = window.location !== window.parent.location;
    +            if (iframe) {
    +              ev.preventDefault();
    +              ev.stopImmediatePropagation();
    +              window.open(url, "_blank");
    +              return false;
    +            }
    +
    +            // if the user has set data-preview-link to "auto" we need to handle the event
    +            // (because reveal will interpret "auto" as true)
    +            if (dataPreviewLink === "auto") {
    +              ev.preventDefault();
    +              ev.stopImmediatePropagation();
    +              const target =
    +                el.getAttribute("target") ||
    +                (ev.ctrlKey || ev.metaKey ? "_blank" : "");
    +              if (target) {
    +                window.open(url, target);
    +              } else {
    +                window.location.href = url;
    +              }
    +              return false;
    +            }
    +          },
    +          false
    +        );
    +      }
    +    });
    +  }
    +
    +  // implement previewLinksAuto
    +  function previewLinksAuto(deck) {
    +    handleLinkClickEvents(deck, deck.getRevealElement());
    +  }
    +
    +  // apply styles
    +  function applyGlobalStyles(deck) {
    +    if (deck.getConfig()["smaller"] === true) {
    +      const revealParent = deck.getRevealElement();
    +      revealParent.classList.add("smaller");
    +    }
    +  }
    +
    +  // add logo image
    +  function addLogoImage(deck) {
    +    const revealParent = deck.getRevealElement();
    +    const logoImg = document.querySelector(".slide-logo");
    +    if (logoImg) {
    +      revealParent.appendChild(logoImg);
    +      revealParent.classList.add("has-logo");
    +    }
    +  }
    +
    +  // add footer text
    +  function addFooter(deck) {
    +    const revealParent = deck.getRevealElement();
    +    const defaultFooterDiv = document.querySelector(".footer-default");
    +    if (defaultFooterDiv) {
    +      revealParent.appendChild(defaultFooterDiv);
    +      handleLinkClickEvents(deck, defaultFooterDiv);
    +      if (!isPrintView()) {
    +        deck.on("slidechanged", function (ev) {
    +          const prevSlideFooter = document.querySelector(
    +            ".reveal > .footer:not(.footer-default)"
    +          );
    +          if (prevSlideFooter) {
    +            prevSlideFooter.remove();
    +          }
    +          const currentSlideFooter = ev.currentSlide.querySelector(".footer");
    +          if (currentSlideFooter) {
    +            defaultFooterDiv.style.display = "none";
    +            const slideFooter = currentSlideFooter.cloneNode(true);
    +            handleLinkClickEvents(deck, slideFooter);
    +            deck.getRevealElement().appendChild(slideFooter);
    +          } else {
    +            defaultFooterDiv.style.display = "block";
    +          }
    +        });
    +      }
    +    }
    +  }
    +
    +  // add chalkboard buttons
    +  function addChalkboardButtons(deck) {
    +    const chalkboard = deck.getPlugin("RevealChalkboard");
    +    if (chalkboard && !isPrintView()) {
    +      const revealParent = deck.getRevealElement();
    +      const chalkboardDiv = document.createElement("div");
    +      chalkboardDiv.classList.add("slide-chalkboard-buttons");
    +      if (document.querySelector(".slide-menu-button")) {
    +        chalkboardDiv.classList.add("slide-menu-offset");
    +      }
    +      // add buttons
    +      const buttons = [
    +        {
    +          icon: "easel2",
    +          title: "Toggle Chalkboard (b)",
    +          onclick: chalkboard.toggleChalkboard,
    +        },
    +        {
    +          icon: "brush",
    +          title: "Toggle Notes Canvas (c)",
    +          onclick: chalkboard.toggleNotesCanvas,
    +        },
    +      ];
    +      buttons.forEach(function (button) {
    +        const span = document.createElement("span");
    +        span.title = button.title;
    +        const icon = document.createElement("i");
    +        icon.classList.add("fas");
    +        icon.classList.add("fa-" + button.icon);
    +        span.appendChild(icon);
    +        span.onclick = function (event) {
    +          event.preventDefault();
    +          button.onclick();
    +        };
    +        chalkboardDiv.appendChild(span);
    +      });
    +      revealParent.appendChild(chalkboardDiv);
    +      const config = deck.getConfig();
    +      if (!config.chalkboard.buttons) {
    +        chalkboardDiv.classList.add("hidden");
    +      }
    +
    +      // show and hide chalkboard buttons on slidechange
    +      deck.on("slidechanged", function (ev) {
    +        const config = deck.getConfig();
    +        let buttons = !!config.chalkboard.buttons;
    +        const slideButtons = ev.currentSlide.getAttribute(
    +          "data-chalkboard-buttons"
    +        );
    +        if (slideButtons) {
    +          if (slideButtons === "true" || slideButtons === "1") {
    +            buttons = true;
    +          } else if (slideButtons === "false" || slideButtons === "0") {
    +            buttons = false;
    +          }
    +        }
    +        if (buttons) {
    +          chalkboardDiv.classList.remove("hidden");
    +        } else {
    +          chalkboardDiv.classList.add("hidden");
    +        }
    +      });
    +    }
    +  }
    +
    +  function handleTabbyClicks() {
    +    const tabs = document.querySelectorAll(".panel-tabset-tabby > li > a");
    +    for (let i = 0; i < tabs.length; i++) {
    +      const tab = tabs[i];
    +      tab.onclick = function (ev) {
    +        ev.preventDefault();
    +        ev.stopPropagation();
    +        return false;
    +      };
    +    }
    +  }
    +
    +  function fixupForPrint(deck) {
    +    if (isPrintView()) {
    +      const slides = deck.getSlides();
    +      slides.forEach(function (slide) {
    +        slide.removeAttribute("data-auto-animate");
    +      });
    +      window.document.querySelectorAll(".hljs").forEach(function (el) {
    +        el.classList.remove("hljs");
    +      });
    +      window.document.querySelectorAll(".hljs-ln-code").forEach(function (el) {
    +        el.classList.remove("hljs-ln-code");
    +      });
    +    }
    +  }
    +
    +  return {
    +    id: "quarto-support",
    +    init: function (deck) {
    +      controlsAuto(deck);
    +      previewLinksAuto(deck);
    +      fixupForPrint(deck);
    +      applyGlobalStyles(deck);
    +      addLogoImage(deck);
    +      addFooter(deck);
    +      addChalkboardButtons(deck);
    +      handleTabbyClicks();
    +    },
    +  };
    +};
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/README.md b/english/site_libs/revealjs/plugin/reveal-chalkboard/README.md
    new file mode 100644
    index 0000000..7391a00
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/README.md
    @@ -0,0 +1,160 @@
    +# Chalkboard
    +
    +With this plugin you can add a chalkboard to reveal.js. The plugin provides two possibilities to include handwritten notes to your presentation:
    +
    +- you can make notes directly on the slides, e.g. to comment on certain aspects,
    +- you can open a chalkboard or whiteboard on which you can make notes.
    +
    +The main use case in mind when implementing the plugin is classroom usage in which you may want to explain some course content and quickly need to make some notes.
    +
    +The plugin records all drawings made so that they can be play backed using the `autoSlide` feature or the `audio-slideshow` plugin.
    +
    +[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chalkboard-demo.html)
    +
    +The chalkboard effect is based on [Chalkboard](https://github.com/mmoustafa/Chalkboard) by Mohamed Moustafa.
    +
    +## Installation
    +
    +Copy the file `plugin.js` and the  `img` directory into the plugin folder of your reveal.js presentation, i.e. `plugin/chalkboard` and load the plugin as shown below.
    +
    +```html
    +
    +
    +
    +
    +```
    +
    +The following stylesheet
    +```html
    +
    +
    +```
    +has to be included to the `head` section of you HTML-file.
    +
    +
    +In order to include buttons for opening and closing the notes canvas or the chalkboard you should make sure that `font-awesome` is available. The easiest way is to include
    +```
    +
    +```
    +to the ```head``` section of you HTML-file.
    +
    +## Usage
    +
    +### Mouse or touch
    +- Click on the pen symbols at the bottom left to toggle the notes canvas or chalkboard
    +- Click on the color picker at the left to change the color (the color picker is only visible if the notes canvas or chalkboard is active)
    +- Click on the up/down arrows on the left to the switch among multiple chalkboardd (the up/down arrows are only available for the chlakboard)
    +- Click the left mouse button and drag to write on notes canvas or chalkboard
    +- Click the right mouse button and drag to wipe away previous drawings
    +- Touch and move to write on notes canvas or chalkboard
    +- Touch and hold for half a second, then move to wipe away previous drawings
    +
    +### Keyboard
    +- Press the 'BACKSPACE' key to delete all chalkboard drawings
    +- Press the 'DEL' key to clear the notes canvas or chalkboard
    +- Press the 'c' key to toggle the notes canvas
    +- Press the 'b' key to toggle the chalkboard
    +- Press the 'd' key to download drawings
    +- Press the 'x' key to cycle colors forward
    +- Press the 'y' key to cycle colors backward
    +
    +## Playback
    +
    +If the `autoSlide` feature is set or if the `audio-slideshow` plugin is used, pre-recorded chalkboard drawings can be played. The slideshow plays back the user interaction with the chalkboard in the same way as it was conducted when recording the data.
    +
    +## Multiplexing
    +
    +The plugin supports multiplexing via the [`multiplex` plugin](https://github.com/reveal/multiplex) or the [`seminar` plugin](https://github.com/rajgoel/reveal.js-plugins/tree/master/seminar).
    +
    +## PDF-Export
    +
    +If the slideshow is opened in [print mode](https://revealjs.com/pdf-export/), the chalkboard drawings in the session storage (see `storage` option - print version must be opened in the same tab or window as the original slideshow) or provided in a file (see `src` option) are included in the PDF-file. Each drawing on the chalkboard is added after the slide that was shown when opening the chalkboard. Drawings on the notes canvas are not included in the PDF-file.
    +
    +
    +## Configuration
    +
    +The plugin has several configuration options:
    +
    +- ```boardmarkerWidth```: an integer, the drawing width of the boardmarker; larger values draw thicker lines.
    +- ```chalkWidth```: an integer, the drawing width of the chalk; larger values draw thicker lines.
    +- ```chalkEffect```: a float in the range ```[0.0, 1.0]```, the intesity of the chalk effect on the chalk board. Full effect (default) ```1.0```, no effect ```0.0```.
    +- ```storage```: Optional variable name for session storage of drawings.
    +- ```src```: Optional filename for pre-recorded drawings.
    +- ```readOnly```: Configuation option allowing to prevent changes to existing drawings. If set to ```true``` no changes can be made, if set to false ```false``` changes can be made, if unset or set to ```undefined``` no changes to the drawings can be made after returning to a slide or fragment for which drawings had been recorded before. In any case the recorded drawings for a slide or fragment can be cleared by pressing the 'DEL' key (i.e. by using the ```RevealChalkboard.clear()``` function).
    +- ```transition```: Gives the duration (in milliseconds) of the transition for a slide change, so that the notes canvas is drawn after the transition is completed.
    +- ```theme```: Can be set to either ```"chalkboard"``` or ```"whiteboard"```.
    +
    +The following configuration options allow to change the appearance of the notes canvas and the chalkboard. All of these options require two values, the first gives the value for the notes canvas, the second for the chalkboard.
    +
    +- ```background```: The first value expects a (semi-)transparent color which is used to provide visual feedback that the notes canvas is enabled, the second value expects a filename to a background image for the chalkboard.
    +- ```grid```: By default whiteboard and chalkboard themes include a grid pattern on the background. This pattern can be modified by setting the color, the distance between lines, and the line width, e.g. ```{ color: 'rgb(127,127,255,0.1)', distance: 40, width: 2}```. Alternatively, the grid can be removed by setting the value to ```false```.
    +- ```eraser```: An image path and radius for the eraser.
    +- ```boardmarkers```: A list of boardmarkers with given color and cursor.
    +- ```chalks```: A list of chalks with given color and cursor.
    +- ```rememberColor```: Whether to remember the last selected color for the slide canvas or the board.
    +
    +All of the configurations are optional and the default values shown below are used if the options are not provided.
    +
    +```javascript
    +Reveal.initialize({
    +	// ...
    +    chalkboard: {
    +        boardmarkerWidth: 3,
    +        chalkWidth: 7,
    +        chalkEffect: 1.0,
    +        storage: null,
    +        src: null,
    +        readOnly: undefined,
    +        transition: 800,
    +        theme: "chalkboard",
    +        background: [ 'rgba(127,127,127,.1)' , path + 'img/blackboard.png' ],
    +        grid: { color: 'rgb(50,50,10,0.5)', distance: 80, width: 2},
    +        eraser: { src: path + 'img/sponge.png', radius: 20},
    +        boardmarkers : [
    +                { color: 'rgba(100,100,100,1)', cursor: 'url(' + path + 'img/boardmarker-black.png), auto'},
    +                { color: 'rgba(30,144,255, 1)', cursor: 'url(' + path + 'img/boardmarker-blue.png), auto'},
    +                { color: 'rgba(220,20,60,1)', cursor: 'url(' + path + 'img/boardmarker-red.png), auto'},
    +                { color: 'rgba(50,205,50,1)', cursor: 'url(' + path + 'img/boardmarker-green.png), auto'},
    +                { color: 'rgba(255,140,0,1)', cursor: 'url(' + path + 'img/boardmarker-orange.png), auto'},
    +                { color: 'rgba(150,0,20150,1)', cursor: 'url(' + path + 'img/boardmarker-purple.png), auto'},
    +                { color: 'rgba(255,220,0,1)', cursor: 'url(' + path + 'img/boardmarker-yellow.png), auto'}
    +        ],
    +        chalks: [
    +                { color: 'rgba(255,255,255,0.5)', cursor: 'url(' + path + 'img/chalk-white.png), auto'},
    +                { color: 'rgba(96, 154, 244, 0.5)', cursor: 'url(' + path + 'img/chalk-blue.png), auto'},
    +                { color: 'rgba(237, 20, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-red.png), auto'},
    +                { color: 'rgba(20, 237, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-green.png), auto'},
    +                { color: 'rgba(220, 133, 41, 0.5)', cursor: 'url(' + path + 'img/chalk-orange.png), auto'},
    +                { color: 'rgba(220,0,220,0.5)', cursor: 'url(' + path + 'img/chalk-purple.png), auto'},
    +                { color: 'rgba(255,220,0,0.5)', cursor: 'url(' + path + 'img/chalk-yellow.png), auto'}
    +        ]
    +    },
    +    customcontrols: {
    +  		controls: [
    +  			{ icon: '',
    +  			  title: 'Toggle chalkboard (B)',
    +  			  action: 'RevealChalkboard.toggleChalkboard();'
    +  			},
    +  			{ icon: '',
    +  			  title: 'Toggle notes canvas (C)',
    +  			  action: 'RevealChalkboard.toggleNotesCanvas();'
    +  			}
    +  		]
    +    },
    +    // ...
    +
    +});
    +```
    +
    +
    +## License
    +
    +MIT licensed
    +
    +Copyright (C) 2021 Asvin Goel
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/LICENSE.txt b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/LICENSE.txt
    new file mode 100644
    index 0000000..28c1c4b
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/LICENSE.txt
    @@ -0,0 +1,34 @@
    +Font Awesome Free License
    +-------------------------
    +
    +Font Awesome Free is free, open source, and GPL friendly. You can use it for
    +commercial projects, open source projects, or really almost whatever you want.
    +Full Font Awesome Free license: https://fontawesome.com/license.
    +
    +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
    +In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
    +packaged as SVG and JS file types.
    +
    +# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
    +In the Font Awesome Free download, the SIL OLF license applies to all icons
    +packaged as web and desktop font files.
    +
    +# Code: MIT License (https://opensource.org/licenses/MIT)
    +In the Font Awesome Free download, the MIT license applies to all non-font and
    +non-icon files.
    +
    +# Attribution
    +Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
    +Awesome Free files already contain embedded comments with sufficient
    +attribution, so you shouldn't need to do anything additional when using these
    +files normally.
    +
    +We've kept attribution comments terse, so we ask that you do not actively work
    +to remove them from files, especially code. They're a great way for folks to 
    +learn about Font Awesome.
    +
    +# Brand Icons
    +All brand icons are trademarks of their respective owners. The use of these
    +trademarks does not indicate endorsement of the trademark holder by Font
    +Awesome, nor vice versa. **Please do not use brand logos for any purpose except
    +to represent the company, product, or service to which they refer.**
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/all.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/all.css
    new file mode 100644
    index 0000000..7fec2e3
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/all.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/brands.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/brands.css
    new file mode 100644
    index 0000000..2d9e4c6
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/brands.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/fontawesome.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/fontawesome.css
    new file mode 100644
    index 0000000..68b26ef
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/fontawesome.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/regular.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/regular.css
    new file mode 100644
    index 0000000..02b22fa
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/regular.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/solid.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/solid.css
    new file mode 100644
    index 0000000..aed56a2
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/solid.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/svg-with-js.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/svg-with-js.css
    new file mode 100644
    index 0000000..504203d
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/svg-with-js.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.css
    new file mode 100644
    index 0000000..b10f655
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.css
    @@ -0,0 +1,2170 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa.fa-glass:before {
    +  content: "\f000"; }
    +
    +.fa.fa-meetup {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-star-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-o:before {
    +  content: "\f005"; }
    +
    +.fa.fa-remove:before {
    +  content: "\f00d"; }
    +
    +.fa.fa-close:before {
    +  content: "\f00d"; }
    +
    +.fa.fa-gear:before {
    +  content: "\f013"; }
    +
    +.fa.fa-trash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-trash-o:before {
    +  content: "\f2ed"; }
    +
    +.fa.fa-file-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-o:before {
    +  content: "\f15b"; }
    +
    +.fa.fa-clock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-clock-o:before {
    +  content: "\f017"; }
    +
    +.fa.fa-arrow-circle-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-down:before {
    +  content: "\f358"; }
    +
    +.fa.fa-arrow-circle-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-up:before {
    +  content: "\f35b"; }
    +
    +.fa.fa-play-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-play-circle-o:before {
    +  content: "\f144"; }
    +
    +.fa.fa-repeat:before {
    +  content: "\f01e"; }
    +
    +.fa.fa-rotate-right:before {
    +  content: "\f01e"; }
    +
    +.fa.fa-refresh:before {
    +  content: "\f021"; }
    +
    +.fa.fa-list-alt {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-dedent:before {
    +  content: "\f03b"; }
    +
    +.fa.fa-video-camera:before {
    +  content: "\f03d"; }
    +
    +.fa.fa-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-picture-o:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-photo {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-photo:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-image {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-image:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-pencil:before {
    +  content: "\f303"; }
    +
    +.fa.fa-map-marker:before {
    +  content: "\f3c5"; }
    +
    +.fa.fa-pencil-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-pencil-square-o:before {
    +  content: "\f044"; }
    +
    +.fa.fa-share-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-share-square-o:before {
    +  content: "\f14d"; }
    +
    +.fa.fa-check-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-check-square-o:before {
    +  content: "\f14a"; }
    +
    +.fa.fa-arrows:before {
    +  content: "\f0b2"; }
    +
    +.fa.fa-times-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-circle-o:before {
    +  content: "\f057"; }
    +
    +.fa.fa-check-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-check-circle-o:before {
    +  content: "\f058"; }
    +
    +.fa.fa-mail-forward:before {
    +  content: "\f064"; }
    +
    +.fa.fa-eye {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-eye-slash {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-warning:before {
    +  content: "\f071"; }
    +
    +.fa.fa-calendar:before {
    +  content: "\f073"; }
    +
    +.fa.fa-arrows-v:before {
    +  content: "\f338"; }
    +
    +.fa.fa-arrows-h:before {
    +  content: "\f337"; }
    +
    +.fa.fa-bar-chart {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bar-chart:before {
    +  content: "\f080"; }
    +
    +.fa.fa-bar-chart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bar-chart-o:before {
    +  content: "\f080"; }
    +
    +.fa.fa-twitter-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gears:before {
    +  content: "\f085"; }
    +
    +.fa.fa-thumbs-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-thumbs-o-up:before {
    +  content: "\f164"; }
    +
    +.fa.fa-thumbs-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-thumbs-o-down:before {
    +  content: "\f165"; }
    +
    +.fa.fa-heart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-heart-o:before {
    +  content: "\f004"; }
    +
    +.fa.fa-sign-out:before {
    +  content: "\f2f5"; }
    +
    +.fa.fa-linkedin-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linkedin-square:before {
    +  content: "\f08c"; }
    +
    +.fa.fa-thumb-tack:before {
    +  content: "\f08d"; }
    +
    +.fa.fa-external-link:before {
    +  content: "\f35d"; }
    +
    +.fa.fa-sign-in:before {
    +  content: "\f2f6"; }
    +
    +.fa.fa-github-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-lemon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-lemon-o:before {
    +  content: "\f094"; }
    +
    +.fa.fa-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-square-o:before {
    +  content: "\f0c8"; }
    +
    +.fa.fa-bookmark-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bookmark-o:before {
    +  content: "\f02e"; }
    +
    +.fa.fa-twitter {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook:before {
    +  content: "\f39e"; }
    +
    +.fa.fa-facebook-f {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-f:before {
    +  content: "\f39e"; }
    +
    +.fa.fa-github {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-credit-card {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-feed:before {
    +  content: "\f09e"; }
    +
    +.fa.fa-hdd-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hdd-o:before {
    +  content: "\f0a0"; }
    +
    +.fa.fa-hand-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-right:before {
    +  content: "\f0a4"; }
    +
    +.fa.fa-hand-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-left:before {
    +  content: "\f0a5"; }
    +
    +.fa.fa-hand-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-up:before {
    +  content: "\f0a6"; }
    +
    +.fa.fa-hand-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-down:before {
    +  content: "\f0a7"; }
    +
    +.fa.fa-arrows-alt:before {
    +  content: "\f31e"; }
    +
    +.fa.fa-group:before {
    +  content: "\f0c0"; }
    +
    +.fa.fa-chain:before {
    +  content: "\f0c1"; }
    +
    +.fa.fa-scissors:before {
    +  content: "\f0c4"; }
    +
    +.fa.fa-files-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-files-o:before {
    +  content: "\f0c5"; }
    +
    +.fa.fa-floppy-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-floppy-o:before {
    +  content: "\f0c7"; }
    +
    +.fa.fa-navicon:before {
    +  content: "\f0c9"; }
    +
    +.fa.fa-reorder:before {
    +  content: "\f0c9"; }
    +
    +.fa.fa-pinterest {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pinterest-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus:before {
    +  content: "\f0d5"; }
    +
    +.fa.fa-money {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-money:before {
    +  content: "\f3d1"; }
    +
    +.fa.fa-unsorted:before {
    +  content: "\f0dc"; }
    +
    +.fa.fa-sort-desc:before {
    +  content: "\f0dd"; }
    +
    +.fa.fa-sort-asc:before {
    +  content: "\f0de"; }
    +
    +.fa.fa-linkedin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linkedin:before {
    +  content: "\f0e1"; }
    +
    +.fa.fa-rotate-left:before {
    +  content: "\f0e2"; }
    +
    +.fa.fa-legal:before {
    +  content: "\f0e3"; }
    +
    +.fa.fa-tachometer:before {
    +  content: "\f3fd"; }
    +
    +.fa.fa-dashboard:before {
    +  content: "\f3fd"; }
    +
    +.fa.fa-comment-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-comment-o:before {
    +  content: "\f075"; }
    +
    +.fa.fa-comments-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-comments-o:before {
    +  content: "\f086"; }
    +
    +.fa.fa-flash:before {
    +  content: "\f0e7"; }
    +
    +.fa.fa-clipboard {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paste {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paste:before {
    +  content: "\f328"; }
    +
    +.fa.fa-lightbulb-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-lightbulb-o:before {
    +  content: "\f0eb"; }
    +
    +.fa.fa-exchange:before {
    +  content: "\f362"; }
    +
    +.fa.fa-cloud-download:before {
    +  content: "\f381"; }
    +
    +.fa.fa-cloud-upload:before {
    +  content: "\f382"; }
    +
    +.fa.fa-bell-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-o:before {
    +  content: "\f0f3"; }
    +
    +.fa.fa-cutlery:before {
    +  content: "\f2e7"; }
    +
    +.fa.fa-file-text-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-text-o:before {
    +  content: "\f15c"; }
    +
    +.fa.fa-building-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-building-o:before {
    +  content: "\f1ad"; }
    +
    +.fa.fa-hospital-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hospital-o:before {
    +  content: "\f0f8"; }
    +
    +.fa.fa-tablet:before {
    +  content: "\f3fa"; }
    +
    +.fa.fa-mobile:before {
    +  content: "\f3cd"; }
    +
    +.fa.fa-mobile-phone:before {
    +  content: "\f3cd"; }
    +
    +.fa.fa-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-circle-o:before {
    +  content: "\f111"; }
    +
    +.fa.fa-mail-reply:before {
    +  content: "\f3e5"; }
    +
    +.fa.fa-github-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-o:before {
    +  content: "\f07b"; }
    +
    +.fa.fa-folder-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-open-o:before {
    +  content: "\f07c"; }
    +
    +.fa.fa-smile-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-smile-o:before {
    +  content: "\f118"; }
    +
    +.fa.fa-frown-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-frown-o:before {
    +  content: "\f119"; }
    +
    +.fa.fa-meh-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-meh-o:before {
    +  content: "\f11a"; }
    +
    +.fa.fa-keyboard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-keyboard-o:before {
    +  content: "\f11c"; }
    +
    +.fa.fa-flag-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-flag-o:before {
    +  content: "\f024"; }
    +
    +.fa.fa-mail-reply-all:before {
    +  content: "\f122"; }
    +
    +.fa.fa-star-half-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-o:before {
    +  content: "\f089"; }
    +
    +.fa.fa-star-half-empty {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-empty:before {
    +  content: "\f089"; }
    +
    +.fa.fa-star-half-full {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-full:before {
    +  content: "\f089"; }
    +
    +.fa.fa-code-fork:before {
    +  content: "\f126"; }
    +
    +.fa.fa-chain-broken:before {
    +  content: "\f127"; }
    +
    +.fa.fa-shield:before {
    +  content: "\f3ed"; }
    +
    +.fa.fa-calendar-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-o:before {
    +  content: "\f133"; }
    +
    +.fa.fa-maxcdn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-html5 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-css3 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ticket:before {
    +  content: "\f3ff"; }
    +
    +.fa.fa-minus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-minus-square-o:before {
    +  content: "\f146"; }
    +
    +.fa.fa-level-up:before {
    +  content: "\f3bf"; }
    +
    +.fa.fa-level-down:before {
    +  content: "\f3be"; }
    +
    +.fa.fa-pencil-square:before {
    +  content: "\f14b"; }
    +
    +.fa.fa-external-link-square:before {
    +  content: "\f360"; }
    +
    +.fa.fa-compass {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-down:before {
    +  content: "\f150"; }
    +
    +.fa.fa-toggle-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-down:before {
    +  content: "\f150"; }
    +
    +.fa.fa-caret-square-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-up:before {
    +  content: "\f151"; }
    +
    +.fa.fa-toggle-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-up:before {
    +  content: "\f151"; }
    +
    +.fa.fa-caret-square-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-right:before {
    +  content: "\f152"; }
    +
    +.fa.fa-toggle-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-right:before {
    +  content: "\f152"; }
    +
    +.fa.fa-eur:before {
    +  content: "\f153"; }
    +
    +.fa.fa-euro:before {
    +  content: "\f153"; }
    +
    +.fa.fa-gbp:before {
    +  content: "\f154"; }
    +
    +.fa.fa-usd:before {
    +  content: "\f155"; }
    +
    +.fa.fa-dollar:before {
    +  content: "\f155"; }
    +
    +.fa.fa-inr:before {
    +  content: "\f156"; }
    +
    +.fa.fa-rupee:before {
    +  content: "\f156"; }
    +
    +.fa.fa-jpy:before {
    +  content: "\f157"; }
    +
    +.fa.fa-cny:before {
    +  content: "\f157"; }
    +
    +.fa.fa-rmb:before {
    +  content: "\f157"; }
    +
    +.fa.fa-yen:before {
    +  content: "\f157"; }
    +
    +.fa.fa-rub:before {
    +  content: "\f158"; }
    +
    +.fa.fa-ruble:before {
    +  content: "\f158"; }
    +
    +.fa.fa-rouble:before {
    +  content: "\f158"; }
    +
    +.fa.fa-krw:before {
    +  content: "\f159"; }
    +
    +.fa.fa-won:before {
    +  content: "\f159"; }
    +
    +.fa.fa-btc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitcoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitcoin:before {
    +  content: "\f15a"; }
    +
    +.fa.fa-file-text:before {
    +  content: "\f15c"; }
    +
    +.fa.fa-sort-alpha-asc:before {
    +  content: "\f15d"; }
    +
    +.fa.fa-sort-alpha-desc:before {
    +  content: "\f15e"; }
    +
    +.fa.fa-sort-amount-asc:before {
    +  content: "\f160"; }
    +
    +.fa.fa-sort-amount-desc:before {
    +  content: "\f161"; }
    +
    +.fa.fa-sort-numeric-asc:before {
    +  content: "\f162"; }
    +
    +.fa.fa-sort-numeric-desc:before {
    +  content: "\f163"; }
    +
    +.fa.fa-youtube-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-xing {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-xing-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube-play {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube-play:before {
    +  content: "\f167"; }
    +
    +.fa.fa-dropbox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stack-overflow {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-instagram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-flickr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-adn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket-square:before {
    +  content: "\f171"; }
    +
    +.fa.fa-tumblr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-tumblr-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-long-arrow-down:before {
    +  content: "\f309"; }
    +
    +.fa.fa-long-arrow-up:before {
    +  content: "\f30c"; }
    +
    +.fa.fa-long-arrow-left:before {
    +  content: "\f30a"; }
    +
    +.fa.fa-long-arrow-right:before {
    +  content: "\f30b"; }
    +
    +.fa.fa-apple {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-windows {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-android {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linux {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-dribbble {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-skype {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-foursquare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-trello {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gratipay {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gittip {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gittip:before {
    +  content: "\f184"; }
    +
    +.fa.fa-sun-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sun-o:before {
    +  content: "\f185"; }
    +
    +.fa.fa-moon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-moon-o:before {
    +  content: "\f186"; }
    +
    +.fa.fa-vk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-renren {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pagelines {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stack-exchange {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-right:before {
    +  content: "\f35a"; }
    +
    +.fa.fa-arrow-circle-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-left:before {
    +  content: "\f359"; }
    +
    +.fa.fa-caret-square-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-left:before {
    +  content: "\f191"; }
    +
    +.fa.fa-toggle-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-left:before {
    +  content: "\f191"; }
    +
    +.fa.fa-dot-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-dot-circle-o:before {
    +  content: "\f192"; }
    +
    +.fa.fa-vimeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-try:before {
    +  content: "\f195"; }
    +
    +.fa.fa-turkish-lira:before {
    +  content: "\f195"; }
    +
    +.fa.fa-plus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-plus-square-o:before {
    +  content: "\f0fe"; }
    +
    +.fa.fa-slack {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wordpress {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-openid {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-institution:before {
    +  content: "\f19c"; }
    +
    +.fa.fa-bank:before {
    +  content: "\f19c"; }
    +
    +.fa.fa-mortar-board:before {
    +  content: "\f19d"; }
    +
    +.fa.fa-yahoo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stumbleupon-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stumbleupon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-delicious {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-digg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper-pp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-drupal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-joomla {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-spoon:before {
    +  content: "\f2e5"; }
    +
    +.fa.fa-behance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-behance-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-steam {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-steam-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-automobile:before {
    +  content: "\f1b9"; }
    +
    +.fa.fa-cab:before {
    +  content: "\f1ba"; }
    +
    +.fa.fa-envelope-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-envelope-o:before {
    +  content: "\f0e0"; }
    +
    +.fa.fa-deviantart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-soundcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-file-pdf-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-pdf-o:before {
    +  content: "\f1c1"; }
    +
    +.fa.fa-file-word-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-word-o:before {
    +  content: "\f1c2"; }
    +
    +.fa.fa-file-excel-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-excel-o:before {
    +  content: "\f1c3"; }
    +
    +.fa.fa-file-powerpoint-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-powerpoint-o:before {
    +  content: "\f1c4"; }
    +
    +.fa.fa-file-image-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-image-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-photo-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-photo-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-picture-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-archive-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-archive-o:before {
    +  content: "\f1c6"; }
    +
    +.fa.fa-file-zip-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-zip-o:before {
    +  content: "\f1c6"; }
    +
    +.fa.fa-file-audio-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-audio-o:before {
    +  content: "\f1c7"; }
    +
    +.fa.fa-file-sound-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-sound-o:before {
    +  content: "\f1c7"; }
    +
    +.fa.fa-file-video-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-video-o:before {
    +  content: "\f1c8"; }
    +
    +.fa.fa-file-movie-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-movie-o:before {
    +  content: "\f1c8"; }
    +
    +.fa.fa-file-code-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-code-o:before {
    +  content: "\f1c9"; }
    +
    +.fa.fa-vine {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-codepen {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-jsfiddle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-life-ring {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-bouy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-bouy:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-life-buoy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-buoy:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-life-saver {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-saver:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-support {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-support:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-circle-o-notch:before {
    +  content: "\f1ce"; }
    +
    +.fa.fa-rebel {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ra {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ra:before {
    +  content: "\f1d0"; }
    +
    +.fa.fa-resistance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-resistance:before {
    +  content: "\f1d0"; }
    +
    +.fa.fa-empire {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ge:before {
    +  content: "\f1d1"; }
    +
    +.fa.fa-git-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-git {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-hacker-news {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator-square:before {
    +  content: "\f1d4"; }
    +
    +.fa.fa-yc-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc-square:before {
    +  content: "\f1d4"; }
    +
    +.fa.fa-tencent-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-qq {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-weixin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wechat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wechat:before {
    +  content: "\f1d7"; }
    +
    +.fa.fa-send:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-paper-plane-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paper-plane-o:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-send-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-send-o:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-circle-thin {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-circle-thin:before {
    +  content: "\f111"; }
    +
    +.fa.fa-header:before {
    +  content: "\f1dc"; }
    +
    +.fa.fa-sliders:before {
    +  content: "\f1de"; }
    +
    +.fa.fa-futbol-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-futbol-o:before {
    +  content: "\f1e3"; }
    +
    +.fa.fa-soccer-ball-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-soccer-ball-o:before {
    +  content: "\f1e3"; }
    +
    +.fa.fa-slideshare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-twitch {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yelp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-newspaper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-newspaper-o:before {
    +  content: "\f1ea"; }
    +
    +.fa.fa-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-wallet {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-visa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-mastercard {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-discover {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-amex {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-stripe {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-slash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-slash-o:before {
    +  content: "\f1f6"; }
    +
    +.fa.fa-trash:before {
    +  content: "\f2ed"; }
    +
    +.fa.fa-copyright {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-eyedropper:before {
    +  content: "\f1fb"; }
    +
    +.fa.fa-area-chart:before {
    +  content: "\f1fe"; }
    +
    +.fa.fa-pie-chart:before {
    +  content: "\f200"; }
    +
    +.fa.fa-line-chart:before {
    +  content: "\f201"; }
    +
    +.fa.fa-lastfm {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-lastfm-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ioxhost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-angellist {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-cc:before {
    +  content: "\f20a"; }
    +
    +.fa.fa-ils:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-shekel:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-sheqel:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-meanpath {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-meanpath:before {
    +  content: "\f2b4"; }
    +
    +.fa.fa-buysellads {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-connectdevelop {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-dashcube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-forumbee {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-leanpub {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-sellsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-shirtsinbulk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-simplybuilt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-skyatlas {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-diamond {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-diamond:before {
    +  content: "\f3a5"; }
    +
    +.fa.fa-intersex:before {
    +  content: "\f224"; }
    +
    +.fa.fa-facebook-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-official:before {
    +  content: "\f09a"; }
    +
    +.fa.fa-pinterest-p {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-whatsapp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-hotel:before {
    +  content: "\f236"; }
    +
    +.fa.fa-viacoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-medium {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc:before {
    +  content: "\f23b"; }
    +
    +.fa.fa-optin-monster {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-opencart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-expeditedssl {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-battery-4:before {
    +  content: "\f240"; }
    +
    +.fa.fa-battery:before {
    +  content: "\f240"; }
    +
    +.fa.fa-battery-3:before {
    +  content: "\f241"; }
    +
    +.fa.fa-battery-2:before {
    +  content: "\f242"; }
    +
    +.fa.fa-battery-1:before {
    +  content: "\f243"; }
    +
    +.fa.fa-battery-0:before {
    +  content: "\f244"; }
    +
    +.fa.fa-object-group {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-object-ungroup {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sticky-note-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sticky-note-o:before {
    +  content: "\f249"; }
    +
    +.fa.fa-cc-jcb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-diners-club {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-clone {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hourglass-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hourglass-o:before {
    +  content: "\f254"; }
    +
    +.fa.fa-hourglass-1:before {
    +  content: "\f251"; }
    +
    +.fa.fa-hourglass-2:before {
    +  content: "\f252"; }
    +
    +.fa.fa-hourglass-3:before {
    +  content: "\f253"; }
    +
    +.fa.fa-hand-rock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-rock-o:before {
    +  content: "\f255"; }
    +
    +.fa.fa-hand-grab-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-grab-o:before {
    +  content: "\f255"; }
    +
    +.fa.fa-hand-paper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-paper-o:before {
    +  content: "\f256"; }
    +
    +.fa.fa-hand-stop-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-stop-o:before {
    +  content: "\f256"; }
    +
    +.fa.fa-hand-scissors-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-scissors-o:before {
    +  content: "\f257"; }
    +
    +.fa.fa-hand-lizard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-lizard-o:before {
    +  content: "\f258"; }
    +
    +.fa.fa-hand-spock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-spock-o:before {
    +  content: "\f259"; }
    +
    +.fa.fa-hand-pointer-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-pointer-o:before {
    +  content: "\f25a"; }
    +
    +.fa.fa-hand-peace-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-peace-o:before {
    +  content: "\f25b"; }
    +
    +.fa.fa-registered {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-creative-commons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gg-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-tripadvisor {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-odnoklassniki {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-odnoklassniki-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-get-pocket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wikipedia-w {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-safari {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-chrome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-firefox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-opera {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-internet-explorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-television:before {
    +  content: "\f26c"; }
    +
    +.fa.fa-contao {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-500px {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-amazon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-plus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-plus-o:before {
    +  content: "\f271"; }
    +
    +.fa.fa-calendar-minus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-minus-o:before {
    +  content: "\f272"; }
    +
    +.fa.fa-calendar-times-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-times-o:before {
    +  content: "\f273"; }
    +
    +.fa.fa-calendar-check-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-check-o:before {
    +  content: "\f274"; }
    +
    +.fa.fa-map-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-map-o:before {
    +  content: "\f279"; }
    +
    +.fa.fa-commenting {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-commenting:before {
    +  content: "\f4ad"; }
    +
    +.fa.fa-commenting-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-commenting-o:before {
    +  content: "\f4ad"; }
    +
    +.fa.fa-houzz {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-vimeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-vimeo:before {
    +  content: "\f27d"; }
    +
    +.fa.fa-black-tie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fonticons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit-alien {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-edge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-credit-card-alt:before {
    +  content: "\f09d"; }
    +
    +.fa.fa-codiepie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-modx {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fort-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-usb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-product-hunt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-mixcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-scribd {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pause-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-pause-circle-o:before {
    +  content: "\f28b"; }
    +
    +.fa.fa-stop-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-stop-circle-o:before {
    +  content: "\f28d"; }
    +
    +.fa.fa-bluetooth {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bluetooth-b {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gitlab {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpbeginner {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpforms {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-envira {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wheelchair-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wheelchair-alt:before {
    +  content: "\f368"; }
    +
    +.fa.fa-question-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-question-circle-o:before {
    +  content: "\f059"; }
    +
    +.fa.fa-volume-control-phone:before {
    +  content: "\f2a0"; }
    +
    +.fa.fa-asl-interpreting:before {
    +  content: "\f2a3"; }
    +
    +.fa.fa-deafness:before {
    +  content: "\f2a4"; }
    +
    +.fa.fa-hard-of-hearing:before {
    +  content: "\f2a4"; }
    +
    +.fa.fa-glide {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-glide-g {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-signing:before {
    +  content: "\f2a7"; }
    +
    +.fa.fa-viadeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-viadeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat-ghost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-first-order {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yoast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-themeisle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-official:before {
    +  content: "\f2b3"; }
    +
    +.fa.fa-google-plus-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-circle:before {
    +  content: "\f2b3"; }
    +
    +.fa.fa-font-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fa:before {
    +  content: "\f2b4"; }
    +
    +.fa.fa-handshake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-handshake-o:before {
    +  content: "\f2b5"; }
    +
    +.fa.fa-envelope-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-envelope-open-o:before {
    +  content: "\f2b6"; }
    +
    +.fa.fa-linode {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-address-book-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-address-book-o:before {
    +  content: "\f2b9"; }
    +
    +.fa.fa-vcard:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-address-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-address-card-o:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-vcard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-vcard-o:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-user-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-user-circle-o:before {
    +  content: "\f2bd"; }
    +
    +.fa.fa-user-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-user-o:before {
    +  content: "\f007"; }
    +
    +.fa.fa-id-badge {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-drivers-license:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-id-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-id-card-o:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-drivers-license-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-drivers-license-o:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-quora {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-free-code-camp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-telegram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-thermometer-4:before {
    +  content: "\f2c7"; }
    +
    +.fa.fa-thermometer:before {
    +  content: "\f2c7"; }
    +
    +.fa.fa-thermometer-3:before {
    +  content: "\f2c8"; }
    +
    +.fa.fa-thermometer-2:before {
    +  content: "\f2c9"; }
    +
    +.fa.fa-thermometer-1:before {
    +  content: "\f2ca"; }
    +
    +.fa.fa-thermometer-0:before {
    +  content: "\f2cb"; }
    +
    +.fa.fa-bathtub:before {
    +  content: "\f2cd"; }
    +
    +.fa.fa-s15:before {
    +  content: "\f2cd"; }
    +
    +.fa.fa-window-maximize {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-window-restore {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-rectangle:before {
    +  content: "\f410"; }
    +
    +.fa.fa-window-close-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-window-close-o:before {
    +  content: "\f410"; }
    +
    +.fa.fa-times-rectangle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-rectangle-o:before {
    +  content: "\f410"; }
    +
    +.fa.fa-bandcamp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-grav {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-etsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-imdb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ravelry {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-eercast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-eercast:before {
    +  content: "\f2da"; }
    +
    +.fa.fa-snowflake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-snowflake-o:before {
    +  content: "\f2dc"; }
    +
    +.fa.fa-superpowers {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpexplorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-spotify {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.min.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.min.css
    new file mode 100644
    index 0000000..a47c8e2
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/v4-shims.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}
    \ No newline at end of file
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.eot b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.eot
    new file mode 100644
    index 0000000000000000000000000000000000000000..f8e48185fbfce6d497c89780b654fb96f61db74d
    GIT binary patch
    literal 115052
    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
    AMF0Q*
    
    literal 0
    HcmV?d00001
    
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.svg b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.svg
    new file mode 100644
    index 0000000..68eb65a
    --- /dev/null
    +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.svg
    @@ -0,0 +1,1127 @@
    + 
    +
    +
    +
    +  
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +  
    +
    +
    diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.ttf b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.ttf
    new file mode 100644
    index 0000000000000000000000000000000000000000..2b00dae7f43938d373e59c9b18011de7fd4250d7
    GIT binary patch
    literal 114816
    zcmdqJd4L>coj3kGbyrt)^;ungpEKQaUwutxl9@>|IS3&a5J(_|gb*ME3<)A2U!PyWy6zfXR*{$0boazXT_^A7sb_`^?EZ9r@1O7VeEO-b
    zdg`fqp6B~~?s7?e`sQ4-BSGi0DiAO=b|mU
    z_J8WCZxf;(ASC+gc{{Jz{{GLMe-R;t>j}MS{`u!_+2)@|E=JwMK<#|&kmidIWBXa4
    z?fi=_z5MH6I5vj%UL{0+W#_xj*>dHJ&Nm3j-b0A+`bAqV-z7XkkKuR}^|Kdmx#--@
    zo-hBN&`%#CMC{u2u05CD^z!O;gnsS~LIQUX+&evV49A4M$EJ?`UbunnnfpgCb@yQJ
    zPdi`zr_H|kM~NZ06@I*CGuj}8l{oil;RbpbKQ+P+qhb7CN?WAFYPowo#Dgu|o%_eG
    zwN3K2kU3WbC(3fR1ZO+uBhtMj3k@^cg!aF38
    zW5?Wm=kRj2&Rg|9F>?;u5cay~{+V8ma$@#3N^C3B?CQj>_6Q7
    zY#aOC>$r9BdoSC^Az+^{f%DvwZU29Op#G7Wc2=U!`2g$7PiE@lIQsc#*3bXn*vs0&
    zc?Wr0Z`~Vf|M0PCI>C>-bq?|Sru%2EcbNZn`|Uq|4CnDNB5WV}w-;@(d&Bu`>{y%b
    zIIw-75Y%~d_PUr!-Urm3J63Poo^#B-Heqc5yZBh5y+2VeZ|AK!N1eCz;qc5kxCdbk
    zJBEAQJF}0qb^Gz(v)6F%ogJI$3w@1myX~@b83@4Y04|;2x7+`}9Q#k)*A#t#*E@bM
    zGjy|;?Z-9QxmPgy;rlV~)3fclZBC%h$7hbQb6EZ7@Ov-%jBWQ`C-}8l8^^)xzIENt
    z96L&H#PJ7b+G6LBnL1gvjqA?#^UzFtv%gt+1lK!<)#vx@_La4<7yEAK?YQ#{x^?@H
    zHduR%-s$i8Hu^g)Ot5R=_g>x(qjR?{I#aUav&RmxdH^d~J+$SX`y|%*p_%i4%a037
    zc)M&~g^8JK;Jml`NLU-Qzh|#K+xE=4jCbH1_nI%yw7Zv|=k7;8czgVOx9_a}A@_d%
    z%#O{{pL;EKE<5gCcjlUG-@%#f*<%wJ`%AEY2hPWF_Zn~AE8Bk^vERMFr)RFk
    zexn_X4ZrsZ{@dM$v7lc#{+pfWwvYB^$Hi?6=cDcExAyVh?)nfWX0DHY?${D`tvPMt
    zo@VFEEnnho^RZy(@Vc`lqXBnJ4q-oQhaGqK@i7sw4}UTs0zCkvjJnIMNR%De%TDP*
    z32BA>k^*^4zDM>Fg{(WW@5l#^+;QZ-BR@Ry%SNbCYs_zKY+TT|xN%A2(#AE7Ya7=$
    zZfo4xxTkSnxI@!t(RM`w0_?DMeEhp8?E2BTCG2}rl;g7?^JH8Ff}-J($u=C)222|{c!5v
    zrkYcKJQ_ZF$I%Cle)8z!N56dZxuY*0efj8jk73r2T)2C7N>Ac2;ja`jB
    zjVl^^(Wjf;KHZBx?Qa}tJlptImNK
    zo7Xo#(!9I*Nb^(8C()-Dnm=s*v)iZhTbH-q*SZdUy0!J;*2h}+w;pUg+B$$feY5pq
    z>s#p4_t2+bwtn6E9r|<>eG;bBsQ~)aKBrHwPW@(T>Zs?x?-OS1|D`_)`ul1w?j+1hdxA~z~^)HAbrOD{DA%oJq&&7Rr&^flm3ZL3zCo&`tTVLD#9>6
    zEAd$;oF$x%&-wUVEL>&N5m#iQ+k{jqk@+>oK&s?jew2=boAQe(0
    zbuvsAkQ2#CWEELU){#@mdU6^$oopZ*$r)rbIh&kEE+jk2ZgK^AFL>Yw$cM>C$Q|TP
    zau>OuJU~7{_LEPNN6Dwi=gH^D7s;2%Q{>C!Y4TO_4EY-Q2KjsP68Sdy4ta%qAN2bp
    z@)Pn?@^et|FF?J&CI8!{-rtiWpx^%_f1wKXP?K8JNBuNJZP0O&W@(A`&^|gaL(R+S
    z383W@=}B}IT}Mv^MQ@^;={9-+eHXo$1i`uAP5z1eGkJ}QBto92LArrhBuciC_mB^g
    zhv^_K(;>PHc0(6AA9mF_bT_$_JVcu07?sGAWC|9^LNZP!$RaXH7Lz4pDOnC{-~_UT
    z93=lhDfQBMWEZ)X>?7BaFOYAMeG|*=Ta5&OHe;B~)NMjcV(@h%C
    z+!#n2B|8St#V9eJ4B&~RaRmnnp@jc|0eq4)-pc`wNg7vifOnF{)g0tZl-F>8pOVI2
    z4#M_fju^mWN#lABg7I#!F#_mmC^0t-^bC}@a)1|;2Ii3g@`*HVjAPq?4
    zQ4Yuj(s+ym5`r|?90QOQr12>ZNDb0>f&=n{G-d!vLKk4WPmI3Srw<7E!Q+Ixiq(uy?xkppszG(htVkYJ?oeGbSn
    z()a-fVdL~e4#+ps_z?%0M)_k7%4py>95j#eH4Zw7^0yq2h@|oF9FUEq@jDJkNzypN
    z0eMLp4Gu_7(r9u(hLQ#wQvlMGG^RKpS4o47I{*nwngR!8Eoq7zkh-L)aX|i(Cgz&~
    zl9)8T9FWPRX>mY0lct{oa+)*)9FW+g8RQ^`P=+|DgEGuPV<>G7iaBjYI3VLm6ZgtM
    z{sSeuSAd>{vd#ewfHX%q$ahh)`v9O7kS4~R0r~-HF5rNsK$>G5&>2YcL=I>Vq`8s<
    zdIV{*YXHzFNb_tC=oX~8g@fFHaw`Y)4bnV^1DXeEZsULsLYklz2Id88Zs(w^z4JJr
    zp^)bJ9MDxr^8yZNEu_ir4}ktcniq0FlOfHEIH1#zCioTuvz?lt6$a=zq0+
    z0|2@YXMta*!)gUdsW^h&1Ar#UFQ78^%^7Epec1G*k*evSiLA89_xK`uf0
    z1rBD-H^0aMoscxY!~yM)G!Jkx
    zTDNjQgD0&Ia6p$Qt=l-D)sxl-IiTN@7U+@znm%cLm;*XLY2CpA?Vq%;E*M}3kk*|X
    zun0)&E)LiRq;)q3tOU~fCQDUtzz$PKB$2ee}kk;cIuv172YmfmJ3u%E~8DP7R
    z)~7jO#gNu#IAG6^)@M0j*^t)fIAG(D*5^6Mew0{`46u7h>kAyPfJp0$9I%B*>i`F=
    zBGURY2kax#dWr*<5@~&f12z+B9pr%ZL|RXCz>XrVXED<1!Stg0j~j>YUhCefJ_xR;7K4;m_G*c
    zFv<=NI*789gO*WtanK=@-5l^ekSW$r0A2_()yn~Y1exmNfMeV;?-b~Oft-Vq
    zT?2sMf=sdb1K`0RQ|mb3%OF#yalorVrdU4#7I~feAqPAiWa?E8_&mtezj46(L8gAg
    z0Y3UZ>c71Ms?#DRxf){4ZqcCFu=z{j`}#@?IB0~9Ps;)qX7pmzp}u{s*&V9~9kcW}T{M2((JymQ(EHKn
    zI4J1r=!+b50m_#-=th*^67$l!gInAai{dKJS;z?B$YpCer-s5K#%Hg
    zdLH)t!Psa#ZoFc~y?JY?wcYxTujt$7d)(jVf71W0z;NJm!BxTC!2_X4=&H~Y;on6L
    zI6Iw}qj$&B@h>JGN^VX5ORAWo9UlqikVBZAIQF*`$j&Pzdhe9oLSi4rnT*8
    z`$79y(Ja1D>M1>5`d+Eok?&gCb!pdA-L>vVyI<;&dM0~*)f?=s_1@Fx@7v#>?qAyf
    zhk>@iyNCLQ_6VMX@)unn{eO>*g`g6l?&UuwS#;mai#(q6MG0`z`<;3F)H!j+-=!r$IFODoeFu7>*r6qSRy?9w|*^Xtm
    zEDtY#X!)xrtUBR^6JA~6U$Jh*11nxTapc6^CqB9IrIQw|Nv@q-d->XruUmhzc}nDz
    zS5NIZb>h_Rr@pv;<@z^HJL|L;PwzSXnGHYL_|T>s&x)M&_-6m+^Up4Bnb`8DtwUQc
    z-}=NkL+2dWR@`>extDMEZ(qLsp7YjSaLNTQT=2V{=U=?D}8dv)=Q-dwy{FSy$}6qIu=|tJ|)=>gvy2{fE5|
    zUE6c*!~1&n{cPW#u3LZIq3hS(aQMa>-(S4xted`f^U%##-u%WbXWsI{t=U`G-TKf6
    zA|KfKfzRBg-M0IKD?fD2?b_}8Z~yg&&;Ic5?zsFTk&mqT$hYoXe&@Y+wcT~*-PT9%
    zxyOIcRrehE*p83Ac5nK=b@x4b-)kR_fBdqK|L6VJ+~0iQ@=uUY+`E5b|Emwa@zC;z
    z4t;Xsle<6p=)=W_Z-4m6Bd0&Q^U)h0ed)1FAA9lfF}p-
    z`OG&y`|xL9``kmH`_tzqKELzxFFhG~^7JPkdh#1z*!D%`i~A0c1KSUL@XL`e-}%(t
    zPyPBUZC|n7>zg)
    zr#eQ5B6irKrDCP#4ApDZN-?i0s*<6RT78UG`h+}w`QUXf6&KJ-ZIlj$yQx#F*KoQW
    zR@wfL5~fQT2XBqOv5=P*4zL
    zLkJzM9()gRnj8Cv)b$PIx=P3Blx_6=_{t%BfgMT9gdpW;6Qbt7!HSg
    zI+Y|r(!MIGnHxGhdZE-=ndm9mPK=HzK{0NdNm(<*jL%C|b^5a%UNcqdnlFp0JU-Cd
    zVOoQdS3O^3VJTc6-g5=_;!#AlZArnPi1`DKJ&Wkm^N@jMCOg_O?8R}aVgeMkRKqwI
    z@+ik?NmcsbY9FH+gt&Yd-AHMuh8b1D5i#FK>m|hw^T{YF^l`6{Nl{OyKN2n_e!%LW}Hlx+|T2pj0;^9l2O^Rd;V&DSqhwkT)2*QpmQa
    z>vk!#CXtSpvfBDspV!QJ7bt?fR?C`;6&n5kJGm=8{lL(QY^e*QRwznhsv}6mV}D^;
    zRrJHKFT0t&)?VzV#X4xLRvwCgQhZb?73-j+5<37YR3eTHIvc08QoBo*3P@?NRH=;%
    zRr)LOic57x3J4=3Aya+Dr(LGY+K$mtk4M$#jr!$}=~Sfi{hFm;qj{$9lq6ki$*Ok`
    z6{SrZSBm%DWrzZm^fyEDfJA8^9+zdwSfNv4SXAgT5TLwD5xzz-*9}!}PfDVYKN$j*
    z&(Gh}26B1?SkTa|LQbI_YYHP?!TL&5wWOBoW#`R>`{=yIyKmgR*!|je=bh>N<9Ql8
    z$Fq25*W%rGA3j{EpiKpH{tJQ92hrkU*r1oeH-&Xeb9u!Mgd^qLP^}uM6lKgUTZ0AA
    z0G2D3VH!(IwIgiRMHDt{?h-8(vHsi&^_m=33Zl~NzgV~Eib
    z+G5pfP8Ii$3O1uR_X23t3CnqQxoQP9FcXm!jVSb2)1v{?2-3d`n&$L#-a=Xt6_xr`
    ztXxN5FcI(x=nSQTBANwRlCJP`VZG!I8t%}~(raMtBo%2|9`ul9%cs-s#J|c?Z^q9RC2@CO}8fmpuXQaeqX3O6!3a{p|*5ckW|a?;v1`35@UHr8^W<;
    z#}1=`8{m_L=2N$XVr5K>ShO8mC5x(QS_a#!R`$n-hmxtGc|%D=^_I46IeWP`w!T{2
    zxnRZBCw#v!=(np&mJS3Wm8H&twN6iYaH-W>S#iyY(9Srm&_i@T^yM&oDK+ShCxZ&v
    zvPauR2XhVHU1p?Fe+L1nE=$K8f+)cG^Tn!KuMJ`CVainnP!%+fRhFV`5wJ$tg|HBuh}%Ymx9{LYoZ9E|;vrjx>|>QJ8Y#0y
    zD!9yyEg!aqT=s?=$q0<)v0=~SI!>gF4vY&m9Pv?6&CFk%%k&RKlc%ndbx~1-u6gan
    zR5WHr6P=~C3#A9JyzBr-T{UD;wjodw`4q$x)x8;IltuT#y`GbyN^^*-$l2);wz5tBA|6kiv@4^Ik>rrvs{_;xtbVwG@e_gC@RFLA6pN
    z3PRk1SBChLe;~^z3K3OKhhnL4MxmWpZerAG_ofAKi)*MP3yMb-6mVg$Cyo|mHRugQ
    zJi6+mhAi*YWYCU4_X^aD`;|hrMkV0^MF#tp3;?}APt!>mdqPYZ%mImOuq`A+yOa!A~_rU7_;Sy)LK2_)Y;Typ|K*5skR-=
    zZh3GB^r5<{5_l#k(!n{Z0-|CcPN|GeBW%CRcuPee#o;l?aIAp^U5g^&i3NVOI8XB^
    zn#YVJ*JV@L6&}a%xNOyH6k@4J?j|*u$aZh;FXrQZS&^h#e*S`$rzmn>H`!o;D=8%(
    zNF)(YVZ>8HD7~l@jp(ts(Kf7lJYMfde1VAR_xlE7YQ|K&mTqrN`7G)Lvz9?$*1bW~
    z7xpE>Az2ZHoHt5o2XrvoBZ;!%!@Xk;BvTZ%1oKiK`vv_1#;MAz*pRDGI`*s@2-)s{
    z;jqP^vZcq?PZ_Fb-A)TmIl|;xsVG+5vBJ32ZKZ(GI5OB*E_y^vxG5((drQffBuuVY
    z-K~n68O;vn`?@k9##nJg>l=Jpki4N>Tc*^J_j%}kuP>okV%(#OQqb}R0!Ff^`+T92
    z-KO|Mset1(12KqrP^C&c#|y>jgMtw7_!UDp#0#TA7{i>${+vEYA406S0H5;&Z145p
    z=g`1h=2}Ci!r%aQI8s|c%QM9gwhQ$FB&9pkwIK)d?8Cf5FLt?etvMVX6wDRQ?G?SMYy{qN%E;Y&HS`Cm5W%
    z6q9IPYWV$+djkuCUMsKw-`?PYfcHzDOx0I_KrI+XK@_EeuNsAf)gWtmG3+<@%$z;b
    z=R@=(&^x=~eP0BbatDi`v@;_C3a86Hp*Pr2>hYVc0~iAY#%Dt9Bg4VKto~X2-^)7tbol9)k@`|GS*g&FCOSPVA+bRew5K9
    z`+(1)X{Z}#^hLw5q~BJ>db{Iv$)+C2Xo+ZdTd99uZ&$zWowWT1w49p_-Sp*UQ`RNg
    zD|iEzX(+ND4y3K;dKUIB4rl`P2m5ppEX)jADujk3392Y`KoRhoA+4whKBX_(Bb&L>
    zkl!N;x^b0a>ALaTYch7So}M34A5A%#%e-*RX<<9)ReYLF
    zWj(GcRMjo0K>5zCf=E@S3J~MiUmz2&g|{+*NX=46#f^y4Z^67h0NMB@%$`rEvww>J
    zQr)Smup?wJhB{k~vw9zflS#R8$}6LeThS+?VoB|zswF_=2{kY(tWXCkdcCCfqc$qK
    z|7w-3+!}8NmvLJvMN~&+mty=6lg8Srj|pfb!c~6t6FMa9H$uwG{uOB&quZICB>ka62d}Ux@3=VnXu;M_aT+=
    z=C*brLK4Eo_(A(W+m4x<^kQFV}
    zOU14ZR9#I~zd|RV3uqoODwzVrJq@M;EWv`?FNf)V=#K(4Nci&V7K~
    z=!uoZSF%q&nO!v)zc?|l@4%V2ub6&g>sA_`o?5hs1!`wyBhx{B@DL9%PbPhbstF$g
    zGfqJ+SnEvf1XF|;B119x%vxn~q2NF@F1l7=9mYu{tkB!1_lJ|oFg+XJ)Bhy-Em`tK
    zeV0GQ)Wq__uq0W2N!KO6Pm0+nC<3!NH)$v{2X#
    z7`qFqUz1dy53A3w-j(p?;Qf=-YeSKsw%rJrEV6p+C1iLWM0_(3dA5kwx=djEK@Q}Um7H5$?G7d?%8IkSl5%GT%w1HU~WL_dgWpZr{
    z)8;C}^@2s+v4CHP%d~n~EwjVm;&4;A41UlqK;S`0FvgDKgYP(AaE~)l0zp`32Iden
    zg@XID3ZV*>p^)zr>QD~Y4cK!ofod~iiEVWSypk4FXi<>lupNzhN>E^Z5Rc)KN7Zai
    z+gPN~=l!;!%Cf3QeLksUtrpj)8rMdORK*dG<{t6;L|S5p@L!Wvb76F)=BPzg35UXt
    zCE3%_!fN$FaN%mPUM|+{
    zauo+4?bTUwX48hf?(n;_i}}Hlt6l|kZaM*m6?4frn0UcIJ5T=|F
    zfJI?xUPtvRvQJlZj}rEWRgb1X+0s=LiNoF%na)&uTdFG`jzq%whpebVlbN9`O$dI&
    z@)hIBM9TEhWZpi_iR#r1(tk5$Q8YceNb{OTwV+oI=BO%33bo8gE*0@A8vbOj-;z{s
    zCA-dsQq@)aSR=Hkl_uk2*vN(v*&}F;c*`roY8Bq
    zn9={?t*T?7(8bx2gaYL1BXuaVP;kmj1foX0R4Wbgk*>p=QclkEg^Z$U=lrRvKVWIT
    zP$(8L?07yJv9h_C*zErpoA+r@hnMdh{wP)|TXya+8)OS}-T&)iHLmz!Em-MF6gSph;DakI{mdl?T
    z$+bB*0kKu-7NOmZp-aec^n)Tiy!@o
    zs8BDV8?xWHcc_C9Cg?7X)?{Jt^r7iPbmE%+)EPU@NNGJ6o%c*46YKT&`G-b^Zk|}P
    zYWa#mI@q~z^4=RdZTibMYcIW2dueaFYiOuTY4>+63dNk16OUh5_UM`1Bu$UEwVyB^
    zfqReHfv@1+o`mPcgV-n{TU2BYzH$j)azAz2eW2s92Uo=|kFEN4Cj@oG^LTjrmB&4w
    zpifR`*RH+gy6gHg{^4PNhVfeA*q`Ael3ib47nhr=sJK49dZ<6cQ2@;n*tf?>XKT6Rw?5D9ix{3B*~Lr6bQ&dWhdPzus!y1z3u{c@_a
    zGes+@&gn<2i~Yugcfo)^4qt!_
    zU|K=lfmhQhl^ygMyt!@{ss)q~Yyw#HjB}8Al0bDTiz8SUzxl?HAan
    zG4Ck%(7=%_l$aU81OWI>_4sxP+Xcpu0PK&<{l%Opa}L(s1|VmPrE1;gh8DK#PNAe;
    z7^;K)s;7mTv3fVzR)2yH!vedIS
    zv?yJ;5OM=vLmEXZrpRlcw|gL0Qt)IdN>M{70v}bCi?WOz
    zDO595MOwqEtID^-p&%6=>Fm7jx~<*wuRr_j_r33Zd-m)x&9cRADC8ugx~x!H#&z|m
    zWrWxbK|gWt%Q#yBH-%iFxUML~(MTuUFp>h-1$J8=*a#k#T}GE-Ey%L2f|o?0HCqnU
    zK-H9G6K1h0Ic!%{WR-9&R!e7hhyT;NyE{My@YNp^_R;H*uQ~?L$NjJ-{tlD?mIw1r
    zDGVwl@Op*KX}yR@l2fe})dIv!sgP$*j~X-9d~mX1a{|}fu6xm~pDu|=h4rrp}6-3=MazVrN>jo8il6G8-MWBVNB9#R>WZRioSX>{mVD2I6
    zWBL&yc-kWl!Rz68gtigBjpZ@Sd(8}_MPQGT3qSL6poXS)RB_f@WnI`<=
    z0!%mEB(Dx#8%oHk
    z-x@gN^>t^vyCypOHBT^r&M5AnETr#7Zz6~gI^Pd;^+_TGN`aJDc~oS$1Z
    z|IFl=oC~INPd_bW%Sqw;&Ne$ZeSa)b&i7y35wSnIwcOt*e1Ejm*)~?3zhb>Vn9uga
    z(y2INc8F(S{8?P87hW(z-(ls6uHzdnYp?>S^Nd|%;lVY|R;$hYpy&s8nYlY{x_^4F
    zHx%+x_I;9~MWQ`{On{lI6I6@@6M>$ntt%6X7VUFv+v$sHP!dAk<0nlYOZh?`{Dlgy
    zod~rZ8@{CCgcRLphr&KhMW)G&?)GQ*zVREe5jzB)fG`>pu_YL~Wk=N~sj1N=SZ|Zy
    zrw7kV-cR@I>hxClv2jf-iRmAI1Z^?-|M&EdE)CbAU7rNaWUe`<*3kEQNp+z*kpdVW
    zgr!mnmmtTTIzxmpLa16WiOCaj?_FkK+NuyV7oEEcew))3T6
    z+&wIdKBipu(NF~A2^+0e#7~5r#sqeR)qtuTDY>QtxHjZ_H59g4oQaW2v5o`W8w`?X
    zK2T-Vz*P&z`&HSmbzZcyQw_*Fbg$&8pOmuTvJ-u|4d0)CDwK+VC7P)f6_04bMAmgv
    zTMmDJ`>EjoLV920saBw}`#x5UYC*r9n5Bzjl=(jak+Tdd$cY(lt
    z0E%E{7hC^O;E!*Xk8i%S!rYpm!AE_e;xc5iq!Vv4szqvr7&toW(3E>8b^c7q>Hq0LY13`Z%Eu
    zmx|ISj0s>Ca6BN={B_YIMttyU$h0HXt`1j9!E7(Y5=A1%Xx{j`)nACg1fTwz9B9i~
    zvgH+h*s*38f~ArC@mzqAk`5=6=L4t1stgo#uy#6$c1mA$_9vMNAn
    zj<=hOCzdOyrKYe>sFc)SVv!-k^r{ePdd%eohuyyV-6-S^@NO0}$Mi8q==!%EP-$8y
    zyXwneA1ye{>{4@Vm0&Ca6`WA7WoMNaJIsa%AwcFBpEFv@%wR!>0qejy4@n*;CW)FV
    z$g!lTNsBuI3Un2%GN7x7_xL)0AtY_tnLZqqP1}oTwjd`$GCe`bA)1KsS`RVrHAPK~
    zg(7l38#U|%4}!GY>ScP$_M_kbiFlqAl-cM8PRG!x(1xhw$I{woXV`8kS|L+*&?z|-
    z#|||GwL?$rd*}-+h>ob7mWc=9&BVFch%z#e)FW9p-WTyZ>RRr5JcMUh4{Lh2xqYk}iPlHYIsN@#I3bQ&Cp@v&
    z&C@wV_o6R-ctUM4=$;7z*dPU41(0I6K
    zZ~IO6@7;U(F72(ad*0e|_r2{W>x=kSUj*3bG4NL8<-9{9G-v^)yK}gEJvHX4c?&o1
    z-F(KbDDB+;n>mWy^kcMZ`bTF#?1AmWW(Qw~EX-h3P9fKl{diXPS6KfQh%Xk;b>|P1
    z2ToqA4`FAaRD=k8=Pjr#Db6*23#I=W_jfZCY!$7+#&vTH&=4c5ewbT03!;?y)aNE7
    zl&}vRXaTA-!m5I_m@PG%?I0JKaRkzG8!4(bli!T{pe{b}$rj;Jah*o6!&$llJiP4m
    zFzx^~#_82G*s01$;_>
    znTOC0w`@qfM)X;5lz{JA;4&5rAk#7|SqTLZN~4z7Zz3n?HYq3xkyI4sgl5DvBY@OD
    z7&2how~F$@dxJ&#Z=*bxiLgDHUqU~
    zxjKZ^%6z=ci;Hhi1PjQ*h(cJK`M9c%yWW`_2J!BhJ!lE%!`2@}!?Vq@Cc)%|;RWJvT3f2}yB$N+g0P{c6R7ShUAC
    z;`5)p&hH;|j1twyClEde+6X4{m6K3HY88RUn>>q*5c^TFIy;PRJtrhWW(P7}V%M2g
    zpWfjhAciIORj4njsD_c(;#c$l^_LQgX@tYZQ!FvgBYUCGXS05m{1H$$*6DDmSX`UU
    z#&rcp;MFv|*iyCA1jzz9LaaoS@l+t1$-`|D%H{o*W1JEQlvGH3WYLx26jNXd*tRjh
    zj^JIfH|mSBs=;(LnTUiFSDOa>&{|l{h3!R)!*(@!NwBl6tz%IvHsG;s&+`J72mA+6
    zA7D}hgPVduM@`4$P)FGQjf``=?DHA;i^X*0Xhb4shTwV8b#_KNZQHerS)I*D>Iqyg
    z=&EIEa%@RZ@px6g-$D`#>LG*Ar^m4tSvuYli&~c1;fr{Y=p!pWgH;hFAfP-B1CUbLvce@QBt+#Zlb$8nZK
    zBKfdsS^bG*hZb;U!Y?5c9>i7<+F%!Ag&Xm{g6o-ms4({gR9I%N!@g0KclsveNR8>m
    ziZk$5{Dtvg$Pcz)-7GUVNHYZ0Zyfd!TODYz<{Xd3AQZ#s9y{w$EnpqEF&JFgcK6Xf
    zpB0T-z5$PBSWfs?bD8z@gc+i6|9Hj}c!&H5NU0_Q+aB5DN0x+Scs-H@_N+)=@upa~
    zY^TEUjWBHS9uh+f$BQAKCm@Bl+c6r8v|()FcJv37Uwf^ZwNlZ%I+W+H&0(sy(1=%+
    zjMGFJX+_B31iyrPN%uQpUkDT?hKyP`dQ*Q4A-e#AHvx@`39nz*{O7D$bB<#9sRf_A
    z8=K`a*u;28;R%B0WX7X3CLqX)I0yXDPL%~9LC$Z>oD~sBgo4eLb%;MVxOik>ZGZpT
    z&1(k+)|{U0=*X_gbaedmxI|0-?2O8WN<4mg^^D4Q}*3I{abT*={)n5
    zSIl`!hw12Cbz=JL^6BN_-k!ms?%v^YZx>7Pg$Ha_hw!)-bq{o_`LLJH$1|Rnft!Db
    zd9|3k#N|%yjOSI}Nj1!)<#MTV749K6=Ox$)JOryE+FY-~B(ESGRfX!I=1X9{u0x4u
    z-9XNRV33W7d?e0oYjs=(jzji=b7TQ6&Dfue*qoD*UWaJ3s?$eh**83wfbQ(Yx=8h|
    zFKBJSNMu{QJ&ym$P}-IQ^%bnk2joA
    zMRr34s$mtYwggQJ;)luIp&EU%Q&d#AnZhw4Y};W0Aqk2*y!=D3MMVJ44I@
    z`(j(6E1FElIt#hzP%bwVJ!l8uR}NhM-eC0QEV4c|_{LfGr~b^Gp}RhtHiJQ55-woF
    z@pZ&?>I*J~y{{*|65RHZH@N{B&O*TS2I$@(d%_!e=o9o4;AsJPC^N9>D~JP~f|&B<
    z;B5EeT?bDi67U0Z7*C?UNeO%cyd#$W1rcw~|0#$x}KBG{abnASKg
    zs{>_Z$$`F{G7{0>=C74O!B7EMxDs3txroqBOHiTV!_BMsccpZt#w2+ePXV|k2p9oC
    ztO2ISRNz9W3_0~8$Q(Ly7z-d$E0>f!lo>1>I4EtFt5+{qT*V`TCnONRa5W{Lar8(1-}nvv`v&WuNT4bKqwK=JW&sX=ZK^WSf7#?
    zELxA6ei=dYMVjO@OiR-8qQ^bhr9mDbn+oxEnD*@P9E#+5_g0Z<;oevw9s`A9vxwLi
    zx`n>6l0v!XTXB|q3-zD(ZQ~pw-H)@J)cW5NT4K-gCp;~wpftel1X@nOfpc;l6FvWmlXoy0?Dqwz3soh2@f}7xh&
    zll^IU02X6~?7^F7K7kd2=M?L+>j6r#4Zj{JImfqL2K!$a31i4e`(|1!)5H-SgH#9A
    z41&04WW2(xJf;d1ocaI@XrMkf7ai~$97Am5cq9LP8}@7)Ok>53v7fan6cH{&o-qSD
    z1n&h%C`WpusM8=ADsqq&=^x%kiW4CpvK0Kt{f7l5QA>BIC11p`eZ5wB*7yH
    zofBdRQA#9W2PMST#IW$-?1}c=^OUw&zz0#oPwT@;elb9$72st7Q-2Pu&F|GZg@h86
    zg#^6wa7WFdp8G6I-Yy8D7)O}at9cS3E2!d$D+K|Ct(#y5mWq-zMw80LGZj;F>%mw>
    zy__UoAd2Fk8PL3b82g?%^BaYfUg_plZiS@2j=h14al29#-0r{5BQvv+Pg8+~QDv&!
    zY?g?PXKo-R+-a>ME&>iyRamgI41obdgmFYz+l;rsyJFWNF);nuU9aLKm}N}wb14Dm
    zp{X(^%`R7p^fnVpgKd84Z4)$NssWFPbk=}B6p5QEvQ`xS8T)?@V5N(2
    zs;W9}Cj|M*e#tu0&g>l-ZMV;sQqa-88V~kXZwB<+2Ky#C%c9*c&_Akuq2x7#H3lHz?z`kgO`a8jSb4asaMnF!UKg
    z!t6^3DA;lAK|}|O5($Vf@92+YDd!j5nBQBTjOh*I-KC)DpP){t?dDiV>_8rtj$t65
    zNC||}McQU~eDHq536RW`Zp&u;^87BXBLCEhbjzMw<_ynt%)2h@0WZQ@;Axehtkdx3|YdY$fDp-UqK?w
    zg^o063)?QWK~P3&^aQc9np1!c%SMLh>Dr0IqZ9LYWRN=6R=DzFZ*O68u-YAnmp}BS
    zcuwwORj2}KK}XlES}H0qZ@BK+4n@<=>lNe@s1$ctSBlr4RM=i$JTj5{cF&67;L<_-)6rX#
    zLUh-PiRy$o{o%7Z>SvFRcb)W`clQkB+7}r@-|7OZHCR(~r?r1pYR_!DY~8`J6$>s{
    zs$Z>jVtkn2m&ab>hy@R_r}C-l>IztAMfb+kqRY%mh)BVla&?lh`nF_D_G~17QV(G~
    zI;NL;3!~7SVm-08MBE!h+Muvf(l;Q-PBV4cv*5h>^Uu4IeJ$u-(cQgbJ^P|XE#J1F
    zVCc!7IP&w6y&tqrmpzw)^l_H_`pg+PZF=v_DLBuKOa49H*7!8$7aq#Dv?e^a$+DV2
    zqwMC#1bWiYlEJ|xL#NOK0N=3F&bLZSzXfCx1`tAVgD@bM6O0Z
    zbk|*EFW$YhAM*rj0NQ`u)k>Lzk9}N4zo4i?&{JS(FfR{y6n;ct1vm-|8@zRpz)y3)WVw4kEax58um^WbLo=i#p6M;9PtF@Y{FlSCM-`f
    zUW`Xm%Z5cM6ZNvBN=@wAbY5D#an>>%}7Q$=M@iOGCz>lMe@^
    zm|^MznL^fx+2L@$nCdjWzT0ql_Z}2a$IK1jE@HEHAfFzCisaq}NSbI^W6wg{cmW!>
    z4XQ{YKFIPMx}lW`Bki>e|X(AU-x+2@7F(b
    z(&nDcCk5;E=dcx7wQAL{`-^5ju4x}v%#WMO?8bR}%H!vqH(u^+Z~r(pi1}wD0V10_4H^c(Th
    zvh(Jj=!T~kFB_>9p1F5Hcw+TrN5^Dm+h}Aov#CCR+bEsC?Xs;$F#}ufUfR*=hQ-_4
    z7G895CSUAWvUai~m(CAVMz>wQZFI!7RlX~f@y_ifcw@#&yrF3m=>J^U(>w8Yuq*JE
    zyX)}=%Maoy!Ml;a^a$S2^;x{V0`JObXGU(Z;C|;-_8cU@1U2L+%V7;ej4)BlzlZ8&
    z$ZCKoZeYOt8_(jFp!S#QRm=w_2FuK;me>ZKsFWSVgH?zsHaqw)gwPh6$Ieo{z*@ru
    z!oAPLyozVX-Ll|7JXMiI&F%-Hi9N7UR+*0!(~E6X6-s5Kc@4wHlXoE8zeBQgI;>OV
    zDXVfFF3QU6kqafSPAjrX>&RW3zPP8ShxV4GVOo*Ia-YC{E~SNut=SD?A*69Wb2eF6|BoKs+6mETS
    zGt~|4A6IJPfLX(vlLcv`Q1SFjc=}NDop=s?Z1MJQn$G%DPCtF!vLszh>A8}0?&;TD
    zv0%O|*J`jpkh%~VKegLaESkORgXh7x*tl7iH*Ypo;midKG&^{~79sNRYUG#loDi(D
    z2SGUyZFR=npijW1jC7$g;Pav_z
    z3Wu!`+i$Zz8T5-Av*DY)0Xq|n$q?#z4#krRrY%FbSstsP>W4&WJk^(m(7DPAhhmvx
    zt}~7)%av0x11~oSnE@wrOWHQ^G6E$MNT$zQz^mfk6*tHGTD*lRj7*G^@wTv!u(xu7
    zkQh@{nAH%0mp#uOslvlk>?cdX=w=!NQ}O$-i4H+|sw)%laLi2$L0%E98q;aT;&Uh$okOdg?)k00GIbqPyZ59M(d}
    zE<^qYp5VeZNF{L>>|XH%}%G
    z`lfp2tYoUTX?pwRm!q0zUSY}o`Rwk=Wux`+MZ+UE?#>n9tJ`$prr}D@!07O%8g9?M
    zKlToTrxEe3;yrq&F;6PLH0)0I%1ldw!_;9e69Dw&njs~Z??e8VX9C+$qrnGp62t)0
    zw%IyjKS6eG=iXd8TAx_F`}*Da!ouB4aJ$Ar$#D`|d%ib>)D$@BEN>JF{l>ka)Vz(9
    zo+K>;b%e4`)JW!2gF#hYTN=+6DDGUL2Mf79*Y93DULRey1t@NV@YqwBBr-OW38
    zeLPqIs!}gh#}R*mk%6d^!@K?8cT;~~azvS!Sg>#{4W#DzN5loi@kQNE$D-uASaEOx
    zx}(kQ&g5?1oosTrWClya!)Ijx`cBf=qPw|_$4@P0TbBw~S
    zG%&y`M^gSxij9ovu6*9#nO3Ecv}0nk8ulXrHJJ^EgCX_j%4PH*rk4@j;^C1SKy+Wu
    zwADA&hGMDC7#^W37SnkPCKMb(+AlYCM-bpG6$KkkJ{s_BjVIP$HfPNQ5KSpETO;(h
    z7YOEuWr|nd{A+8Yc;LVRdhoBVirc%o)^y>L-1g*am)%D%{GVfdg#YGZ72&z(8IN|A
    zd3oWf!5%j;fF*zEc@4u_RE-A`i9kFQ&igduZ`}TL^X5Lk5$<_c
    zryYLR&4&NvfM@6GQrrV#XFA+Vl;_}fAd_P@W&)oS3z{fc%SAl?!5tM?<0a-^C{~fS
    zghyGxlK7%_tv;913v-fo7f)8p;c#TNWCzo+L|?AWXUBcspT#%da@ZS<_&c(F`LcgS
    zVnd~VW*w&g-1OdY+F4pKF<$To`qFXBNcRMy;pCS7d3SGf;E(P~CZoBoA)FS++rC^I
    z=lGmd5&2ojo;my<&_{;aKK6*Aif01`k*ZO5SawboS{D{F)M)rx{_2eEkPBI9)$qjl
    z=;C{9ddVePM|){Q@86h>?}|(D0-&suNKQnlJ(wCB+ukGe_4dj}
    zGdf%TKkALj`7D?*qcf&~GfwPsW)>fZ3|FCB{?!h_<&wzvW#V2uT$RXlwI|!vF|iWC
    z%T~NWI;4b#2LDFq9t1EsbN9I0J{B~9mJJRD)j90u$1rYIKfaCqX%=EY1mAV{z_?W)R*^8kA`=K2
    zuqRB_zdAZ)O@Jn6;GGf%-lKpGBx~SXk+22dH}sP3vMQp62Z3$ubL*h;Og##}bWjYI
    zZ-#y#+oCLs5x9@tjlVIf-&Q@F;Fng*OV}fdy=SrSlNYh?HS?H0y%D*LYSK|oKpwu@
    zy^0-JdII}iyPSQGOt9~hBY29v2QN($;j)fUeh(5;RwO#Z2WIK*`v1|)s8B1B-GI?M
    zUSK@!0_Ao%4TW4X?*zF0+85iB6IgV$q#bkU;w$Q;}FtFuvI
    z9st*#KrW&wi`qyTzF}nM;3uAs5!gc(%+%nU>`5I7hB;CJq)M+P`UKH^Oa=pkH)3Ei
    zpg;Uo8Bmp#o%5NyVBG{>*d=Z8s*xT|(6eW<5WuSCx+I^z83vVd+NmB{I&+>R>nq`2
    zwv(!$g}37ILs46DriyTcpsv~KapTp;dDeXJs}uf5WA1Q=3e(J)cgA(Au;+^r?q@+N
    zrfxB%?5_@7FXD;H`(>?$cSXoI%i8;qz*XP*qg_*R=w;dUrdkCrrbX=@du4$qL*C7Ya
    zHmk$@A*UF!lJf^5dKyn~Rzj&*INA5f<9joz$F7Bvv2ddAilrmB=BJ^X
    zUHE@EdlN88?z6sseqG&FUDZ`xU0qk-=XCenSIq>(8XFr33H&kePkaOcHV^^{@Q`4Vc=Z3g)iZm@
    z@Z{k?M<3PIb^MO^_a5K(``#rg^~T|)xz)sOd>)+VbF={IfSymLyqh9}ZBY${@c<`4
    zchLROAMIY1`L*N~?>Mu#^8NMt$-d+6EUYXd`vG6#
    z$9$e+l7CMmi%dczKBC$q`Bl&F{^4hW8?#S*r@!~nf;yGk`$dl0`a$rOB2kJIweRHW+TiRTAqNClr*Tx>0wY$4Vqwg&>
    zYfBqTwPt){w?CVBTW0&+8~4}SPo!qlXNhb*IPpUhf2tl*uVVD}v6|OMIyRpCiUG|k
    zBzQxpBt&XsK?k88hy8($<1ji$a-;=u>_>cs>*;CXb(xXw8*>n6|`MMl*z!i-*ftV!X
    zAFhwMhA{w>tB{+A`UJZf(ha7_h^&eAQDPi%z3ZY~^^*o*=E&ac-{ou45?oRLrc_>O
    zW(TmOsoQQCZV*~CLETe&DrJ+p+{{7zqqTC50n5Z6cyR!JpU^C@#dOZn9lV#w!5I?Q
    z@=>!!zFVa--7#J9sIK;qV%eNqE&dh6H>o0ciWaHVb@1U_nb5Z`HCOJ|(Jjh=Ph5C`u!U&EX$n##JEfF9Ga#zhtenKYYw6T|z6R7O6U{Q(0vbmUrtB8D6@(ia<
    z$0(Y`s-c{=VYC{cbPU5w1$NJ?{SqolrU(NLe3b0(S}Dy7GCXQ2(%*}wi_-+&n`)Xw
    zwKUCShPqb=+MBktoZHh?B)EMuEv^;5<7dFT7P)z|D5N6f9Teh}9@z#X5j`W9Hmff4
    zo692rLhv=R9Vw%cLQb7m{~Cwm4kw)a=u
    zvhTdp@rTc=+eZCA?JX_!)X(nS<2&CADOvtaxKsB1dFnIB(1v7-s|9UQ>w{bs+}HjT
    zmxM3;by@<)8@pb@q58Cd20;e{zmQlR%w(FGgMaRxpw=>tUpO!S>dioMUR0h{mAUtm6BGMugLoN+iH(BOL}E~cWl{cbyLxuRGZ?+6Cq!>2WMM_Dj9EUX0N2
    z^qU-qREfgPSGVG~?HZ-Y-98}4iVM?cYgmeK@u{Bz($;+br$=DfiTp#Q0Vkdl)u(Bw`>6FD*3IT!|HeFL-khY>11CswzwSXJG?N&QUH@_3fvA|Ks&!^>hl-!IVLh|qH{4SS!&276-JkFIGJ~XKoF#xJgbS7Gj74p%{Nw8
    z7PjuW>*VPhH*PAHtL3N9+fYjJtCF`x4b?wOS{PxE2%ri~j3O0(#O<*cUV!78q&o;Ew!5?}i+W5B6(mx!
    zFk)LII)ub&ATHtDZ-uy$S6}Ipt@$G85A<1*1$@t_>#TecA}q
    zaIxt+E2akvBFr&>%q4+hEZZc`{eDoR$W1}HiupSB*nnyqfiNNW7l>P4{qgpLJAb_O
    zimk0z?9|IQL~iHsm9S_Dv)Th3vTJQL|x2&wF8&WrGdlSDZ6p0fSTo!)_
    zH^y^Vmk0Sn7juRtBy*YZJrsLI#+86u;Koe!J5URVx&xrIh=?OfK(Dfo{3qk^WyknA
    zeeBqeB#$c0&H9PqgWBFHU3|Tdz4oW4tHq{keiL>ob{+ry-r?`tzWMMoTU%RG
    zB(G0at$ef<XJ9ikV5;IE1sjJ%INS$5W`^d}J%ZBc|jo5WDFIiNa
    z{vAggpV8+0=1Wg?ONL(Z>Hsj>`D~|JYF9($8-5RhhR|-C*W9A1Gw+TWQV$(#HmgfE
    zfeqJ`;Tgpz?)wT{jvVMGkKVR3yD%sh?Q-5-jaOzmrJ$|p1&#PezS;?T)=jr-yQ148
    zkM=PXg7K_?t&!Z`Q&PPK)pHby9fuXc+~XF(buh3!yf|OcOA3j
    z!p(4FsOa2w-@sO2Ajsh0RYarlvbzHX%9;qG?Ci5Lr5A7xA(-wOzoG)B^A}y
    z=1p_CA2_DpU7DO7-v8;D$(<{DRcq%|bLRAMi%{?)WS%z`XBM|x&g!@Qrd^*|AlY*1
    zQm^XS+VLI?oq7}mEpL!7)V<@Ib~&|qlw8r}(?0{m%?N-4&-54T*L+8>I~Ck?DspO9
    zoiPkepJVYBU-9#)0`pmB^LWj}I30{U!p|&wJjS>M-umJnb=@sD-^}05dp~f?EjNFT
    z7xM04ZoQx5weT5S3w~|_JQL$a8cfVVd16c*I0N{kudx>Kv_7Pr63^ynJsOB_z|dvH
    z5gzA@vJc}hQ6N~)%rMl*}{Ait70A@2x-s@>dd&TU~Pn1!0Fnd2Dn&cCURl)0pow5&QZZimg
    z%fZWH8%>B_JUbh!QwAJY(v?Qu(T!rIHM_DlH?y)hJ-5Cx4}4|sb5<@zppsMz7|YT)
    zwjim8h!^ObBz}p)RHqs@a%`jlVaOlJpfW<6BV8AY`
    zcmw$3sL4h-_8uw>QR3@!#>2hoP
    zBQuV~BxjPVO%*#>XK6dK)B0~XWe3c0Ij?8!-y`nonC1t;9Dy%Z8+w?Jt=-j9R4KIJ
    zOU5oP5YorIH86DH+$ltjw%@_NvfY%!V9uuwJmtpGJP+w
    z%^^{6zJW7XC|}@DBQxsVX$N}IiVYzeX+MG2C%+S3boG6VvJ?nw1|*ieCP|7R>sH2i
    zl}Wnh!QTgKHXIm=fM0`fBHiE2<_w24e>5;4;As>GJquMEd)Q8@7+9Wf`Bwft
    zaDWIB9m9BG2G>YRa~5W4X!-^tJFkuXLN_Yq#YLN*j!KrudX%kmREx|Z
    z=a-4|ouSH+_p=L)r3Qb$dVx
    z?TY%XdgGzpt)-m^nrDO^Pu
    zr&(WJ+FET5$T-O6f-;1DUZFa_e0=?0_$n;-VF~V(s`JvN8O-uAC&k5#_6hZ3dm8Oj
    zD0T=3CjaVZ_8v7IkW)XvTWwQoS*
    zT}pCc`U8a8Kt_Sc5)p7+__3sc_E#>zsUvjD{&)!_RTlr>Se=wD%yJG72u
    zqkzHI!GrUL`NnIG)Mf6CSH(5?x*Tl3PZ({wv7BTiL8w7rz~qbY6NyHsj1EE;4iDbp
    zIEf>eev@8I4zxV(PhKxW*qwZbEeKB`1nyykBvdbBZCTV_W0^1Oq@E={Q!YfLa5UWK
    z_a2H+M$+mAlMZ?^tSe?F-XwBG@Hc4%<}5Uh1?Z7^wDKvatSsou4V$$Pfuv>NK|_Pa
    zTb9chk!KLvF*NXRaNi2{!$_wb*84;ZLT9CkhX83O0uM7zdBu{J0Vp88m&v;P?6LnSy-rXQv
    zI)pIABUmbtFGK4EA=Xk+PnnrNrF@3tY}ExMT=9KHffvz+fsY
    z+ORHDKZRxpOXQ-JtF*1SUtGUXsR?^A@)W)@Si*1)W;7j6T}gQ-jfB=qXOCJotau!q
    z4ayC&>5T8B-mL3%L(ZKEi-pm%Avpvrq;7!9C3ZFkq@f|0&*U65BAIJAQ!d~b#A;au
    z18^EnqKBo*rvPBIn9b`$WDy=F(JL@QLq`8V
    zA7M)Ghfz>9nQIrceUivx19k_7b-ccckV}pM7&JNX2!)hSl0$*w!wou`+g=)26ymx!LXlD!cdk?w(xA9rp9q*@hd6V(oL-*DT*&C8*O!8pw
    zK6>ua-Q;0_v-{vkzgzN#MRPZu-ZhIuujDv&+bI=R*`#S~T6N1#zLHnZYJO^S$t>jD
    z1^e%e`gYAIxYo+q6)S(Yy;#UQ=F(=$*VGMsT-x7t@0*3igE!6_E}ALFclR%2_tBp<
    z3k9RLT{pbExqS9qrZ^Xt<6Oy(%Hdowb6nGoCz~Ssl1C8j>+0gr
    zA+w&zm8=kbc_a@nF}#xp6tg7Wk~|FhKXAu&-751%yPX&bc@F$%`)q;
    z6Q!HA>A8*$(6SzdT3`opO+7c&*;(41+z2x_UL_R(%v`O~tj$z*uTvJD{GjE}>W6!4
    zWH;yYv+b$$z;8sAB#!$(5Le%mV4&+{LE!ovv8;8yA%$JKkr9M#5uAzO8+KU}wPgd1
    zV7Q>7ss8=9Han?DZeG#$zNa;L)vZVGslW)T{aJUY{fwIb&D}?*)xR9v`(4NH&K7Q8
    z*-+}?rNxeVkGVM6Ti9=}^J)YCqxe@Qdd9%_1}F?0Ka~7@;;y??X7A}czxq}76(u7<#m&(Z^&%0B>9e%OJ}MO^HiTRswn;*{KhBLLBt6mBW#w
    z`g6bL*0SVtQEjW?X1@6_ayZri?nU2iXp@a75BGKkID4u>LZ0EHoy^}}YoHBU_nT`Y
    z93B-EG2J_U=VNO{lsBzR35WG1r|*{1`UjANuujIsGiTf?e85V5&%lMXnn3H=4jR?{RB1lD>OXKC-D5}WC?1uRAtOH@BkAKpB(nbC@fvEoY6&!j0Q_SZS%833{;k+{O@!{c%6D3EKQe0O_3k{8Kccf+mA7ljPh_4C4)-Z2T2=`p1*c;
    zeZJrwzV^!F$EIetUeVip>IE`Kb-otdvSnU@4KNutrxv%jf9=2}q#hUd&__

    06|AW^sy!xnW-eD$)c(4%&uZhx>8iEEq=hzFv~#cL~kC5Bp%eCT)}CNav}8mHq= zl**;f@@NGGaI_8vgOC(|%YFV9Q{AAu++SNp9IUNw3f^i7o_F*_WU;_CSmt!%*@=Ia zLLLzSk3=HyfO5&h+N%1`@OYrafsoFG85`v!OAP|#g=ra(YoUZSh7AXx zuTQlHqs~MZy^X(;10@7Qobr6i7?TGfLr~VFU=L(EiP|L8+4vDsSNh)(nIsN?s0P)lwdfMtn<@ALB@A6eYA%<mLyU)-UZW`|6z98ZqI z!uCnWIDL~+H(u)c+$-&$j5Dg=+CLko+&i;>I?nllgYW0{(>Lv(V8^@c3X&5XT)~Z} zxPqNRwBC&><13)Og)`#3`ed>uUyTNOGoJGY$F}eYRdAqR`i}xCD&fU{@U<~2=*9n4 z<|&Hg#sAn7CcAiG0FTo^s{&lTbWw7?n1c}!I@9^0Gu*Z_yC;-7v75>54D;T6!w;i0 zZ9Gx_->Kl7*N=TF@s4_|)kC5M9f z4v&zN#);OL_w9poU2#;;ZOgfmLzxwma}_VSnC1%;=gz5#bI(5cJCbQHBqcrIlZ=tG3ksv$<{758kUz0^bR)9p^6gi!gVU@)o`g}*J zr~v7+YH9j+2eZ8!dfH3?5OlqBggkv5%){w*u#1_Ws1#%T%tpRgeOGSK7*xDCWjU3Z zY6&&C5oqL!yFP_zlzK%gfc7nF6Dz)YVVgtnv$T3*v01LYFtIduXi%+ng0l8Lke^e_ zbBC|*Ocl*)+-XiEeej1#4AVttK0_b;U+@jWn=)PmB|TfTR!PePO(vdX?tfeO#Kq+% zYtc5zN$OpKRoweYc~p1q{bbN+1nN#6uTPm3;3!_M;Fh~-+piWCs}HL}N)4)o(08H+ zHnn>5_{&)Dck0>6MsV>6-$QLP;8VC6O$=c_?^?eHnGBdDZB9|r!bzv!uBDL$qH}** zeTu#$t%m4!vR04Rar`gtIO}}P+gC2ZY=;K{it&1ik1$l9)Qw89LX_I{{9MsrIi?4- zAZK?LJ8^nvxl(fDs_lgis14n`ouvfN2goZHl6vZN0m@_bx@??}JDs?Wx4DMBjqk#w zNw_|-w+{MX_giOyus2JKk1timpukPVdC7Hgu?#Y4?{SNZnyub-v5gwXj8^0Xkyr0C zDsnE+uNw4wsSenR9C#tO3NTkacWJZkeN8G`m|kk0Z(#0czibuqG_NNmI9L^p6u@ik z9pka{Rg8~!f|A&hh%ETXZjz=fxgLyoGRZB=km&uyvd5nT1sqa$4kb&A zjRAf#K$auOS>m&Ixu;b6@JH)VqBMXU%>>meEXM;wrV8(@=^3kSK1NSR4cnTTwd_Ww zPviG9&kuhLotyu7M$Wt)^{u;Y+;6d6R2J~^8;DUocbME!qaMV-ijh? zzDIT<+9Bg*-}co&3LRnPNMuDu6!DrOPk{?h>cL%hVDkZbO@U26&ks)%t^m8w^zz1e%um{DZQwY@E>wk!dtrh8d-6t_c`zES)~rdr~gC zEcFClt@XlQ+p?RKIWsbDNok)b6D@cYZ(03^Buw>Z?X2fz+a;@3vlwQ{y^Uk0!lQJ8 zTwAG?M_6TSX$`x=bV*T4-fBx-0r)Sb_X9YIs>>idF!muOS)**1ctI1A6AXcW?0Jom zDbX5^Nc(i8mDX^ze+V>| zH#wx#2?Z%eEzEnbNrn+?*BtIYW0bov+B?JM_?qvW`id%l7poe>Y( z_;G(6f0Z@s$6$aFz6&r~W2g;c5MNIc$rS8EoD|cMkiJCpaVE+}UEg}ecBy>lJJf?= z_3?kz4omG1JssY< zV3wgIp%<%8?=L6m%`1^QzW3kD`CO6eJjOGcc5{sVv}^?PFehYQNi_=Fe5v4Y)3~9p zf&1Wg%q-)}Mpk`_8pwO6W3k1uKZN-9{;u6Rc{pR{py#o3#$=4MBl{?7!A&H@?6=`J zQyc2rCnhJ}Jn`O%4`7WXW~3}668#eWMIvO04kM#1iB}u(QXGwQ6Xi3BNQm1CA|0~M z@ZO3#AgnsFFtN@Cg4LD`*=}e5u=~EjK|jG0BvkV>RuBpKzYr)8VWv62Vbf^iVJ^IAe#{jMo=eD|Oq1CDoRrzHaaJ*};TM8Xhmqz|HyT!~ zETJo%P>S28nKT{lD=g!z6~wMmF!3>g}o7L9bbh+&pYn&~pX9&)Oqmni{NFzED;XGKPRLr&CPK zATcRzIYkf*z@y2qMoAlVakJ-)hStdYIZy>+Z$>s1spf3IP+wH#Y{qc4>CxG{2o z%hkc+(hR)BrN-W;2x+(IPwj>O^}?U1&#Mohuf|}7CdNT`iS({I|$nUh?&J@_oWxK=VepEZ0YuTG>a$llYW8 zbQgNX`Nucri@gQdl;PAcwHt5LOkOzoR^GXM!w(f}I6d~>)ybBP+E%v1TXoi`6+79z zPZ#Gm7Czov*qGnA=v-8PxPKN-6_$;vN5X)7sj`0tx8ceevgw0Uy3K=AHn^aTd5+op zp5)@>GB@7HnK-jt1b{^0K=~8K^^Yeb?3#(EU{ZTGvg6bABU-7!A~dcRo0I?&M2Ps% z0Fg-J^3>sJB_2b5Xjo!BEM1^YShWPt0i1*=k@)>qE{Kas&)F4nUkV(b$YG7e%M`{}1Dm`c~?B7Ia{ z4D-HKYfQDvC6myKSt_@u8a2z$hl|yb9?gMq^Gc;ospO$m0|U=f7MOg4hXN}_WrXI8 zUVt5Vrs+V~Y6aCOhI9cObtR6}k5}E-pQ%JJb&7Kt-6yJ?dA(cx0eoJOLH&cG0b5=W zK|kL#2cUJ$W&olk&{Lm~Uu?pW;9{N7*@W=3dTL)JlvhDc{f<^MPmP z?vX3(l(J)>x-M536^^HT0==_M2@^JFarpTui|h}Tu8V>xcFccQpHb(S+XUWO2c;_$ zV4-x9rjzND7+I_)BoPTGjbMKa^+S8#=amvNrud^)$-FnG7r}2?r%&gAp%jt0=Stq& z6Nablw|k|%zcbCdgp#0`wywR_N)xBE98RC;O`_jQ9itNK+Qh}^AWM)o02jyH#=^i= zDl-~k!?RKs-TqHJ^;EZHpE^}tE1fP)?!P*9?YCd%!usx~o|-J>PMxZ(l}}%@|EhHA z+Nb3Hr4iH4KA z{ko67;=#(PA=}IIA5CH`&nJG8OoBAN0@?PGi6=P23Vd~|qkx?CzWyx~_IkIU;A3J6 z9U{gA!N;;Xjxr@HdqR_giqd6m9}M-k zsm(=^I&~@F^KT;0pRId1mNRBM@~TJOYy^LGKB|!3xj98)a+S#kdHx>m@!BKoVwe@c zcXpw7e{b^1Qn}zbZ@&m2t(_$yrdi52GMXQd;#)7<*19h|b^r++E!~O?GMT#BXD#d5 zZL2^+P+^v;G>{K=lsZy(e5Q7MbnFKl*FB#iOKwEF-JSRWi3}pLzO`8Z+mD+?2>fWj zc-+LDeQP@tCaTf4T4pUU#Izj@8RWwd%q=R*1?aJ%6M3Xwlphy?8355Q_3sGmMqt>M z)tpS{%tooYHFeu`e|8cgnxdL5R(lS4R(6Rv;&2#w_V?pn2>s8 z?sV77Usug%g~1<@q0cvg9B3<)NSpoK>hLWcF9^KO^0HO&r*1>ZUdkecVtq-yw4ME{ zd=%BA==R)a^7+r?5_|9k@kvZ6jDLuRZHN(v)N9upYB zjHV~tui~AM3C;_kd`VFR9ARj}3?6hjl*C^)t!^%x&2=r4y?V{X>Z-F=TWSr8!3;=@ zYHCMK#fOWng%axb0rz5f39nYMyk z7|$^mY}vyTkHHiAdf2Jn!Wx%IG8B5zKoe#mO_zM%fhYTKn;1p3MEsI zrvzI(Za#uTyj>pK(D3zxdK77xgf8U`t6eB-~Is&szb*> zNix^)f(Twt{P!#xFc>0{*ZUH7#+(2Sx;7XC6%vbshxG)i zEL}pk?T=?(2m(s{8qje|cgCVIv(MOmF%W|LHjJ1ddIX9~9%32Qz-dzhL1xkU3+jV{ zoxzL6{aUk-tAfbczT)xSmt6-E2_wa`sgVuT67Z19!J2F7`AWgloXKJ>Ux38`5K+-7 zIE|xCw8Em~Fhc)tcy6uO^Pq{mtJ8ksKT3e!p`ULgGrGd;g_{Orl>n^WnBoD=tL9zWZH@4!seA7pTp?@Sk? zLb^@LD$VKo*MmVxb(+`vl75o4ymq<}71MW?Uw!5FgLM$OB*>jTzIopX=b^OrrtHbH z$Cu{QOvUu_+I7cvPix<=)c0$rcaNP~eRRCiE{&fOoaOH#B7UAIq*QbY$S0W?`3%~T zFCmQKa+O+m8V#!@ZySI74MMLErSjUwTVM9F_t)j^t#Ey9zV#b>U;0>@szioie0c9m zs(;&U$p#T1A0GP`&#T81`)-_PG%*5xBM=-v`45N3R#qP1Z#cYvW#uV#?7F?{)W4Dc zzaOhk60;*44PWv-c)eIk1WI`zX9Y8o_zLi-FfVzHpp>o`l}2`D-jCe|$vBePEJ((2 z%1^R)vXaR+64zIte$YfxI~5AKfN)HY9-Zlh{x!!0qlY)eElsD(ksTMDg+Z^~h(bv5 zSYWC}@({|QmhS#r*kf=`rz?(?_nNs`c!uY7FxYQqi7e_C8=I#^L)x9}UY8jl-f+;$S7x!7{ja01-Nu`7%Ag;q;Eyaz4z&9nz*KtrE0EkB#j zT%Ow#0hG+=af0H)%XW@eqrAN^je5fR<5p62!?m*Y5*boRF)Rz$g%}#sYL=8wM3ZY5 z%Mp}E=GG<3-fyQF`BXK9#U-5d+l`>usMV$*@T);Srkg<_1xs?FP;N9TlYI?H84ac- zez)h9C9W~i31D+e#^wH^#CK%tY-*rc zYlE4Uq9hcgyiw=$ohh?${oxskd@D5{SJpSz4_9*Uu9Yfg1V)_2#^` z1lwJ1xi**~wY=3$X)nFK*Bb4{K~+=Rd;jLh)Pj?z;;FB`JMY$8bIbi%pFDOio}XIS zXmn&Aj>p_*5=>D?A|P-oCf6xfH=b7i$e3H}hMjRrC<>r(GIGztym0VM{LqOkAFZo7 zq+3LU&#h42T`L9k&fvZ6c<&eDb~{#Q;`VEaVP%ViMpntJ-&&0(r6H7Ix2u(|o~kOt zo9grlm^Ui*0v{Ppt=yU^g)_%59-{q?M_)CiijF%o8I}%hrBn$rb92RSaVJ(wd3GHI zl47^Xy<)RH$19Op6FqI{XAJl~wAfcS{p3%4VDArZQ0q7Bz3+WD{K(r>b?@u(yWXYT zy}#i>+A2-|pI3j5%uAs|79<<1H^}r7|1W@5%swKZy@9&oE2^~j^H@#lrw$)Ix|LUZ zPYAAI%wKc6e@U0KShiAMM6ZpWJ1`-k`AL*BO~pFlTnGqT{+mc>&>H~JzY$zbXx zzPo*a*Imod{sP95IJ|m`ws7g~hf?W@7N1Y9CP^e>XaEo3N+IAQ z@Q^?SNK?Kvh3|!l>BEPo2eoQpWwJLc*xKgHQfnWnCqFMzH9vXy#>170+gt4wY!^S) z-1?2lZsY3`Za~4(4219YGOXb~j^@H;k@I=svMyd#c!_uJ+0I6XzvWIl*qNViRi?Eo zpG+O2lt*{6dzt0`j`rq>&33EpFYGSVOS4vP?ZhLpQ+F~M2hXdIGiP%69y-)zpYTQZ z7r6uMizF#A3M93PDJ1hCc{y4TMo;+!iweQ?qiapucg%c{R!esg>fCBRM3BFknL6B_ z&YU#|lZU?-Le|^SF$4XiS8l4Kx13s8Ua3yC%EQvOnLhQ{=In6Bxb4mxAGqtjd+)g6 z3NTCQt53e|*_S`^ipP>T_!rcFq20QSs27bV{KK*qphPF0_oT_xpKrbDs>C~T{N-01 zZ_Ur#Sgy`oIWym>7M=7v|1$l{S3b6rI3JH5ZR+~uBncr`%?5>P6uks!Xd)XA`iV1M z)=RiT_Js*5peSq728Mn~uPnXhHAs2LGW@_R^&y}1U0Nh{X@~srd*4gW0a$rzAJkMe zt=m??$%EcFz@>fzU(gs^vV`q_V&a!&CP{5{F;peAxdKvZ-|ZpMiiF@>)(S2s2}ZC~ zjzmu-m_&PBa3LGx^n6S`yuz#}14O;t1mC0;xfNc}&!WVR3quk2l+B4Od#tXKJP~fV5}KK&>yWU8 zkzq}@)44PT*fSSh!^beK3Zzxw8IjBe2^8f>C;RK)h%j6o(*Q>Zxil-xxVh3?j@e;2~DcskMa>C0i-BqO6&T zshV4fuC0(8;f6De7+J@ET^(g^%uSGg9q+4^iPJ;cpV^76!SB9dm>7x45D9~kZ0w?Y zkV?d!tAnJQB@a!MDkwIRFa8{qx$S&VcBeXai0>FnIae)%RV9st*ot94ojQ)H2v-n! z7}Q$KdHJ-f=__PxSbppU8^YP#*r*lj?dj>#Tt8^l$#*4DHVSKXkNO4`SPrbft~yb% z{1wMOer0MtOX;CXmy&TF)rCmP$zIj7Xx3s>ZZSuS-1Dc^Q|K-o?)vb=%ZQXwUDsaUBfzD9mEYXXlhjk-) zllV*bd)N@5u6!@Kd%U6JGE#CgoJJF87{^Y|LZYoG*e;i~Be7`tEE=B=?*0T+f%&oz zGG4{|stW>`U(yXjx#qE^D9yz$+vV$=dYo}4aaMV~x+Vs-2&w)60g6T`Rsk2tWk`!4 zfmm3OPHdOEP9VzS>yR5@w@zQa9aH*g+&?ro*FZOo&@vEaaz#<7Z;MNT`s;2WNj`=F zbvc(p0w6guyr|{N%ucefv>VAnGBZxbVvZYi{TMi5NvL&vNKq5FgvdPdYA}_ET|3nb zl{HEKq|PCg(^G(Jfz<*p)*JfWPR#*fk+nXok;_UcW$X`txygl4K1k1zc7)ww!)`^M z7kt%rH8wS%xljdOzm*JEGaGug?oyCx z%Al$f{zcoX;rel54#6pcD~&feX!rnDDcmWQKFktkG0b?an_FHcERqtY_cT>J~- zpv0j9UYQUubR#Yqx!f&D7%8yCx|h+P)OAmYE>r1}D^j?D&nz4JWdusG)u&dBUc7H7 z&e;BIr3N&W`%KF@lx-D_T((>+k+DmDv%!%GMN_5;ez6=WYk;;PFvAC=(`kkoK$-<3 z#UJ7Cuq%*VmE-! zk%E$K#=-zYWI7Ymvsz8Ogj^9GO{yZo1!Z-skaQ6a^1~^&XnVvCsG3%Ery4O{i&)a@ zK&0Dxg)x*V<7?F2JiJ4^s8FNRR8zzkG9_Kh{|dvNp#wXNhEo&}oMYB>&dwmid75od zJQw~mZoxHm%cmxNxbYsQVVlg(D1Nh z4$F4&o#ZBFq?m5b4%~W5<;`qsw?LW8qb1W#6}R)uz8tyLaXJVSJ@eBO{}Y*=qlVRI zCw>Q;lZsS?P}f*zRwQ$dUqk}TdSZ@|aVo(Z0ivv+S|B7O*qX>(kpKxaMf?G>RIQSo zno5%TW%rP<5wb)_Y_hT?$kuo`u8BM@cZuf#;SzAZW!WFwS`I&4Ig%0)79iFVRV!cv zlOJ^mDJAPEj#zf*G)`Sl4kym|mnq;L zls`pFF_0xSyc(R)b#dn6d*=vXT8mH-FfDQ5i)Y+pU!)QF`!vCTA)KBqS{`@G-DQYU z7jUSj-R~lvLR6Q@%e2ugwY)3SKD9j!i5?O_@){5@*uIzemt6D#0KqS|@iOo!U^YR! znD9PcZqDt!=1a{py%}3KoT={R_S>(mKk(ptPj~XgHo(wJ&!d6O$4V9i_O~4S{N62> z9Z&$-mmf&*vJD*|J6pK+Qfa#HeZHHls&X=)sMTgZbFW+&qSi*8&*%0ZBm%t6Ms zHl2#AljWLLMI_}8=NP}!n)=&v+e3JpYpo3a(`?wURS`v%T0~m2eh3nn#>>Ob2X_W0{- z+HYvuOQ_o^tXb0Bq9@`b`3$zy(=tNPG(7MWZEO=z(^{wBK}3k+g>xU}A*pbuhoUYe z`V&FwWRLaXzBMDkGrEB;V9xVEo6~79I7Ff<;y9BXx|e)TzsL>}F2JE1sZZ>^Q=6{U z1{w84YEZ2Xri!GSd2lF8!YB%L=5bkz2s}|{Je~INDHcI)$-;*@VCpCo>0;RNAkoOA z$}G70V`M3*G7EuL@H$};3@(fzd|%g@R*I~)X>ISF>3+33rKz)-slD$c>zi6GDqHsi zT4$!?Nw3aIjD|$|5Jxo3T6pCHE~}o@*n<_i4>8M}E<* z6Ga#>6+N)F$~YIlCkiT|7TICHJre|utQYc|bPDF@n9CSsM&dIS(v{?Q-2QxdO#k|i zf8&5hW0=7LHsmq}kid;PgHZjSLx)Zt+WU9Z9hUel)dKZ$-D^g;MlgD$sz)ipE`=VX z9<|a@wGsMus5cr_9OQ_q82*stTj*FRZI~f7Eo*%I;=z*5_KV){@Aj{4uTW;j>@Dh)$j_)JfhMzpcglUS0E1)wPokMAZ(TbSC~`1{E<=>dQf+{ zXuqrw0Yq@Uf`!6G$-}G@({*xyoV?@x7AsJCTJ+K8!LbiMf}WC-u{U*AzGd%rf%Nc_ z_j)pI3w52^*(Vj~#tdU3{lfp*uRYbmhw;F~ce3V-rIeUGU|Xg8Bt=lnlLnP!LLJw# zX#Cg+4K-rVSTOjqpUlT(?qRU$nf*vw+$ZA!&p5vvWZxX2>muA7!qF}RK;)+Ekhr#m z3W|J|1$8ZJZoUrHTQ1jetd=LlU2~u&wR*Q| z+D;HuDos`7yY)O?;Hw`uXRj*E7UDTthd^kN%9iO;?vcfmKb)eFA4K+iD<6cFYO|%u zQ6X(OZAXAOYYqGbE6d$h!K`*0)zCGkhj2bQ3Xo88c)(5d!TJep?#jY^u{zHR3#E_a zk))XV;p9kAq%NyitqdTbtIFj$oTyrDwbTn&zDl3F+MO$u=2$PC$Y$8orSE7D`dQTrbZ&eCSl6yHt*v>GWiy-O2VR z@97t32e-eRv7(UG&#NEDXA7c%hzM~vY>lqc9)90rYWYW=e2+T+&`b9A5}7V}=+B{1 z2K#*324t3(5M~dBF8jKVWj^fOd%wPd+01RC5-V$h`B-`qb3s^z>gAm#cG~6-~vRnB2U~N~L>v za_Jgl2hWjYAm?L!Tg%NJjtv8L$=Rkd_WnY?w+T>9Fa~4nhXZbFKrCsIY9ePQXwTjf z;~yKDEC(dw0D=?}@9}!Pm_;uGpTL+C(O>{bW?T%ygIdSpq7a~>R7GF}tc`?-C#jJ< z66G8I#=9Y#B55@B5|$_JmoCLr?cH)+yZxG3lAyF%kT7=b)>NthAkXcQ`O(gLc`Aq5@m<+QC zhjUh0Gv~zdm!BMS@;ncQPdF_@ID3z<0$uL8y`cZ#Dj0VdvL64)0*-73Jb&~pD@(!_ zhlYUCG+sfH=xZ`TM7xsKkY85(v0OCO z+-Jx5%YOY^4~v?8aF$>Dr;o{L4$hp|XP-c|`z)hq6;8sdn3B@(U{vwL&^)+gq&Wl} zBvK)XPVk;VvesVjXJ|NG+K6UDB8&HE>~Un1`V&&Mh6~F_*6zRBzGChA&7z&(Ts|4r zz3$1^mEPcYnkS-IU6aZ0UFWQJ7rVV|_6ODWjXNq{sK!l*y#S!(P~ydI_p42>)c-qhd&TWC%`3* zpv=6_C$CCedj6jEJJ&ZCc~L4|c(o6YK!(5Y!j}?Gj$_PtI)e@X8$q{Wr;exyk2kR| zwk^c}NF~zVZQ{Vou26>0@psG~PopW)tpsMmo{#m}&!9(?*@>x|CE~Ip`pSN^0 z-ITT6{Ym_05Pjf&+518f<0y?R8*^&e=n6NB47)t;l8m*3yAwn;bMeLZHokRMcnLO+ zu&V;Yr(<~*1zo<;zbsq*`Niw!7f#=G{ldca?M#%z`6bjy8NAnEjP69|(QMt-)5?rzn$IMnw5v2T)S;`^|puQK|Q{3eR3oo{yHE*2uMA~u=xK{nUmR+hko!% z@gbr~E3E;Mkr=c3t<=s4mG!_*TD8WP%w zc{6skByYye-;^47V}U zff1@ZGr5r^q?69L-D-OV=jiO>%y#zeMEA2$VG;ho2!uDQ=nunqz7YSkfWq>%H*Rc~ z?0immuBI&l*Y72V7iOB*M47Tr~x#RkAJoFp0O z5%bY5y-YYq47ZGUQSIKFe5J@Gn2S@LLZ!CVFFFH?Id)1%js(r@;|n9xT$;QEY;9O-cBbZ?f>(-a zaW%+Mi@e?&EG*HwwQ9TJ6pEEftJ&+~Ee)!E95+ghLZDPo;6)t!)d18eaNt&j3KveJ zU9AO0cL~f@z2Z|Wts2*&l2>r9Iy?)V{4JA9rb*O%U7_ffkag#YXMb*D7e4<-$wT>% z6JMM7ZwbdA0W>v@Ep$}fuI^K>QD@b&>ci?+iD&(R`g5c_O}_vp2nyVkg~IQS|6oN?xZ1?4c*C z`glaJXrKx+cKF(O3%#z#;uYl=-|hZ|To@#5?Q<@Z zjwEJ0He~Nzw0#|a)2@p_6K4aEOr$Q3QS(%YmdQf*b$^yzek|v)i=0Ru0q!?$k zkSWKc(+kHdQ{9?P0S?^_wOj{76}2=7sizt-`0J4a!9!NJONE?eYgH#Ov-vL(+&5uC z&>%jPW8odC0~-R7NLAIGQ6+ylzMnF(cz3DC+l9I|wT17QOD4s+ zgrF7bKh2KAjF}~(Z0FYUxYWs{X9u155HUC_$Si6`4el@!{SIDT;I25s?ROE+G1~{4p1PlZj_FSi#C7uW80eln$uHZhGm>VV>_mIj>;&(&f zbGxyweHN!Qiw8wo00l^$leC(%tUMxt5^nancvID)@=G)wBan!lxa`erwa|m+$MLN~ zHW#jK?hIVNn2V87DK6i&sPK9O;5e-nlp`<1gKoG`FdzZB7!=1m01{ zbOoj1EwPr%o9(QFlUy@^-DFd-9ej$|JRvg0ZTf`>$6VIs5}Kw(ZCR(+c8rXt6X2lg!TUs{kU1uaOWwi;4!9Yk}YoWoDoj z5|V|KF->?CZ)4unDvIa<BfY&FmH6k~Gt~`8-^|xXf4$Vqn~HcP$=*cC zU{Z$Krf53K1s~33*+gu~G%y;3Fu30gy_3lVv=HV*QlI4W>Tkhb_~htpPuvOqLgZ00 z!xOe%fxZn8FJf3q2wgrA-McT7-srCnAd61zq>y-sVno3*nv(VF?EGo7MSlz<+-hntsMj*-uHwVktXeez0eXLIYy zBd_^?nw_6n5CBSr{0B7i6i!BoUlS`bgRopA(g&1={>$4-EK*mjtZ9wTlRFtz4GM5* z!DU6DX|1!=Kef6kN8SFmw?5hJ?R+rIrDD_iZ@>ACxJjmVvk^4X}-UF>L;HNSAh z|2Fdeee?I{qDFo$*r=pCVY%CQWbS?o|IA#Jr)+e$9C9$ca`%_J^$=M&mya4bj_R*h z((Sv)-<^+Fc@y*9&~Spn6(1_E`0R3U!m!#c$L)>%eWM}!a-Iq$tcfOF7RPEx)zKHn zu_!OZ7-Aj7B}EpS03UcK=IQ?0Gj35s+!#_-o*i-hTn1kJg$`^@9ae(Sp1BV##p)Ew zRP)Ldt+Ji()WW*e&NxMgUah*5A6y;|+xtMPH3;bcocq1MZQB&{v7xLNqWZ!T9Hh9n zEsvyi7!S%dqHveok49W>a~v=G|9KDRf9s!l;SzTHXI`*|e*8k}sCw%}i`IYhSi?eB z5d~?0W`pjL5W0&2Ig&t}Oif@v-2ojT<};5pdg3Ib>EpzQq%$g|pOV}Tpoz&e78Qa- z5F~)?m;8z!Thh-&vk;1T^@5~8WxN|-u`pH6E}mkQsmI~r$#~(8H*F8LicP0JJ9TE| z#v4ym^M0L0IeSH4a-+hjrB_b&LDSV5=~t!)%f3~eYc!!>nt~D&a=45$H&@l#Ue~Qm zy5L^?L71)e3KHuz(}mfk(if3}6?++qh5Yr@BqQ+%H-x7fcnAR>)1*{7;f~^KU0Uj$JG993cuC$*30p3sLwktu4l?bO9DE z$SpKHBgu~pzTNt>Sf7JcnK0)mY(W&_5J{O zm8if1{uWD_*J#a0*oV&th$3udeg|U1ij)^}j%155GB^=qqepV?N60?n?=CW|i7vc7 zq6CCtlR&-L?_z%VQ%0%o8lWF-_wXR61x_(VF|r!?zfg$o6&V>YKct~(tv2?)Mn0Qa zp_?)qm7BdX3p$oyHq1i;qxByO&;zx!kKU(k@E=h0hg^o&*5}B}(puS+g+gN~i`scW zVQi!9^- z^&kn`fIthBB1)g&zm&zU&syavz?tdPlvx%N7=jQh2OhGJ_VRT&ZPwrLvc;C3ja#1p zn#Pzhu$_LLW#(g4%bdeg^ipE!uM@7BBT{xDqTlJObt9sW5`SG!kg2R9;}wK4!bn*k zu$8`+U)CXp%xJ*ZSf(kGmWW$}9ydV5F^~lKLH2(ml}|0C*p;yp8^e9~|7drsygj`* z2$v5ZAF6>tDbcFmP-hz?sh8YbwpcbTZNAxtIBoCCIcDDDmAMH@t_uX zW%KWsN9~%3}qb=B*Z+ie&*lGw~w)mz}`=*SA5C@V=?X%Yxv zW{DhJq+Jt<=c<1Z2CeR3Fxm3M$L-#f>uc^yug#}}!t{)LlR7;W1qRHar?2};L^tvnKoSs&5YFV;qKn$-PK3osS;>BZ}FH!}={KP(=AHW|k1nZ1vfyWO(7s>I{o@87fY>Ki`!6UXj3 zf1CQTZfWmhY%Qs)OWj+ac;c<^ID7V)XE;Y14wSE@-ll$pSll7>q?-@ye3k}ekcN|* zfhub|`XkbeVGhs!{%sF3NdogggTH1Z1o)Yy1iplZv~ThXkW_|plzK{Q4am>BqhRd* z>JJm@e;WFx2P#%vedQ4-^2yOOU;YX}(bwOaGxnZSb624bKBLqln)<%9nop%afemov zSMWw%H`&|N(pO_$E~oy3HnjvO+f7+7l}uC6Zh`Zk4h6biJL}+@$!MLPrt7baHREdV zJ_tDcV5$G5AHqHa+>?1^g%xkXG*9Ch1rWF`*q+pdxRwhO%D1$*#?mTQKWnGNBNzsv zR44P9NiXV<+$=4Dt)9>ZjM*E+&CP5_(Y~N2T{c)ApDXzmm^UMwwDTosx}aDlhs!P$ z2h+1tE#ITiCGqbBuSq^ft0ijm!|4b2Nlf*GnGLh&4x69c0lM zS9|H*Nn=PQNW|ZWyGxoRxp~w;G{>Z=5NF)?L7w3s```qEpxKZ7!$ly7*o2M2m2WIK z6}OY~^U-vaI&8dbzS?e07P`4&qd8qhi}rF}wK?29acrkvDduk&LKbVTOb^SEV^<0@ zm8DYShGtN}l-ANzhN2pRaS|VEqfgOra=d}77rW6~*l~-et~`Dvo5s503#mio3KihO zI>Jq}pi2*Nx4!h&y3h6VHrX_*eAae0iUE<6eEnp*hC(&o3em_jZf;|7{!pt~=``n- zwr8gQda?s`%JlTk+Nj%6GmR@cyE8Mp9q5=ki|ev|eX%nece)#kiyK{p#0~$T>NRlf zD&@~k?|r0Do}Mlj@WU4C^`f`;J7i<^`{CZ7L(g2Vo2*5`*GfMdM+Wh7e-E%>_Cw#z}ubXJR0 z0Ma~fm8vP_plrAOd@Ud2rvXZ9J2g0F8YEaEU7SMGvg=W2UN?S`{W`^b&GD0iSWXF; zp@#$AD-Ip=|D)|q;3Ub*I`4{z%!rIUA|m6+$ooF(zB99`tE!Lc?wX#Sp8M{(x`zRV z8F(3nQx0uTMLst1LgaBl@SA#dUjg@{o$ z+JAj!YJRUv1Q#0>hbG`YCw%K@q(xd{NAcPu>2MRgVG8f-4T2jgeQJMvUekCq8qwd2 z7Tddj+Fn>}E4B8*!P%2{UNd{$2IirnbtV_X_CH*uDYMgX`N@l>T_umrb)Jc@WVB6L zk>N+;|F>V-)8c!&n_V7DCsSI+OE`A5RUXJx5PcczZjDTQmxu^R4#K-)%j1?ZAbTA8 z0`MS|Ds#6GJaErF^Mz(}7UarH?$I-cbLqS9RMLfF^GMlmDl=2^$!v4?r@z1JRElor zovflC^;GLPx>J5ndRf}wL2A-B=$RUtABE>+{}7Uw9Rlkw9s&T7b5SQ+dEWi<_R+Re zC^W-RNpB~O`LwZpSTSrjocAo{{H4~nIdAve(@+0>*a&(2{ew8i`CRFtr)!p(sfE`y_35~ZpY6%5X^Y zb>QChV_V0xtG0HAYM_$GNUGtn#l>R_Qx-OHr9N5dAK{iG?Zue?JY${)3-V%^P~J81 zGZSA>n##69jLusndmLpd+T+E-@+xR^a;RSH$_>PE1PX;~7dx7i!s!Dt0f-~vXo5^zkkB=@qwL1JSKw^O9KU>hYv+DAi+-zsE|afQ!8*m%V2FxUygKk`!5 z6-k5e5DQ0G4Rnp)dReE3G>1jY7*-ih})uNh#Vh(pS`M@2Z>uZ~=*uNLa+uA1I*VE95f^6%cO}viNyD>r#s2l^V2}uaR9y8xk}m;R(AS zAX7*TXQ*4j6Q--3KiQ#n62g6u?JdiJ7nv#;%~76~G7oGgtVt7ecp^n8WEL!@0%(~4 zLpBd2L_`)8{RTBPbR#EvY!UL(8-BU~n3j+`*-@g;222-8yKa@k63KvM*7_kTGm?(h zp{sLJ?sbX-=igg0<~~Dnh_79g@3I=Gtl(dMs68)EGJ89-(ZGOdp{y1qh@b!a&+w?j~ z-^&CFBn>@IGEaz`Lj7Yju(K5xJO@W%gfLQN>QX{b5bU)|^X^iWR+Y3+Al9HJOMn+t zGnYy3{!5pTI}H!W^CWVXW*Ip7Lh52z1p8At!^u|(^j9+ly-KAe1Pl3Yo{OCgsztTY z%2#Uzj#P+cfQux70@a;H114>+sCA2;LzAm)#`dx)5Y3B8LKzAn=zJO;+$t5HVJ=97 zQt!z%;^1jzkWNH2E?g1rCrz-Y;z!^}C@+P5XI^Y*)QteKWi}Hg>QQYTfq!r$Wx^3z zrS5xm#N@@Hz%WC>3t18{(s-gBB5uT2!37s&>&|r$6=ey6(TV=gisjT=Z+f#HH0*Zq+40ld&>Q&IUi>VRA-pwB5~PFYk|l`)y=E&R5V%C*Y9%JY>MDDO}{to$NJ zL1vo4K^yTBi7t^#1X~7Trz1&a^ne2(U?lP;FHy*JyyQ!@p$Hc>9EW=#Go+3%CLU5n zn~4nKz0O`J{}cBvvXR5F$jzmK&UfX1U%rCHO)eK8Ba)EAK?*QEZuE zBG%k*hwUX+pl}L01S$sbo#>2wVw*8_1)nXA7}X`TgRfJ`z&*})aS=u<^mzdV$_h*{ zY8yDF0tY4WRf1X4`Bp@|@@NtbZ6y@ zl}>+sy6%&5R(GF^jLZiIMvhr(mArD&t2owLHn42VYAPU8bg*|c#WT&LUbzg_7vTe8 zGDmzRsvXisz%Dd1O~P9>iW%~bbmk*5Xi*6DOcP zfj|bCN94Uwevyu)(lG_+r3i3rRwOC;Qqsb@HhT@(Ft1po{|6!m0C%l|#G-P=w*obJ zfLI(GO}1%8$q&FsroBhmMzZ)?x~r^EMo6Cd;hY~}Y^b!nCNW6G6;1w_kGSuU8k0x= z6b)4b*v47$%f$RhPfN*$$nXr!52)G#6eqoQsZNg+UixVOLHrzP(zJpM7|wOc;=-*4<%E} zI?3_`%qme8xYf8blIc;IlNd}xCLXQP$kxdc?%upACM3BEg2|d#gpq>5ZsQ?=fmnD( zTP;YuS*9wGeA;8$N{CRx)Z|w=y25CARM!rv%aX6)=lSWNAju68wQXwfVT%xXi(M%x z6ge9HWS2ZRemY--$OAT`(We9+C^lS}!C|KmxFjCk~WLC25lY5i$S1_M)kCNP^+$xb|K5=u&5%9-kPCyk%?UY~^Vmplk zl?l)HlZH>fsOTKHb*Zq@v!pbV9JhR(4ftum15}Fh8l9AytH~Y98KB+;-ocK9a4XsX zSPIBn^>zY~{G`@(JlMG=TgK#6+H(AFRoiO*aI&-(Vh|SG(P6_4lfG6p*^IVvA(cNV zI{?qfd=YJ#a4;#laWnN2-V#-P>Gl?5^``9!k7OwA5pnxNQQ zD9Mv1o){fE#agrZfefe`Oim`K3NQndhMBD6g!NI!0TqEM{E3KmlloY2I3fr$PJ6t%T>%iIqB{Fq5Fp3CNL1b~Wu}u|%6dIjHN>O-FK2 zjK99r04u{!@asn1a?SEQwZ;Fs_!BR^Vb>3UB@&Deog6vN~}) zwpTPIqj?)mC(+HAkz(Y;F4`e7LwaOi^r84$iQFg&4fO??%_{;#UP(l$VlhO`#tVk> zK3LizF{y8?t!>mfP#`B4ys|gX-vR?&o*GCD zZZKI9Um@43QtwXzp*Sfyg4+3@+H$Y$9qP{IXavhRCVKc!s*!CO2KD!|#pdG8kGeiW z;^4s`RDAc*@jO+3(?5gHC zOPgmmZr(h*Ij6j&zS7C+$-j5J-Ty*LjK4F*nK9kvBdo|%$`LHd8DcnxCe9J{j*KXR zz2Y$wC>kM)ctnn{%5ch<5+-RQ4#Q>nZN%NmrKR}mQE8_PaSZd1)4?L^#FLM&iHIiT zEYc2%7XKF+IC`1Pd?X3VLeOFm2(UI#uqBwX=o-NfQN2vXR>^#uFh6{kJUt>$cgWK# zkxMj*E2gZOlee9mu~J2f?zs?Tup_?JUiPrQ(u_VY^@8D!`F#!a}@4 z#$-nbDVRdAK;TFO=_7c)K1G;`-*WhOSf0K|)$0Izl!4!DPhU0714gJpF`sTQ!dw|G>mZl^+n$5ftNEBAAB9lbFTHKObTv<)j zfxI0JP8f4Cd-}%nHd+oDo zmmIPi#dMz|cmq*amw3u7D9yP)LGM%_1DD>#Y((rD@*p)q zHxNzxj}yPacrhL@7UB~LI!16TpxmTzlhHw}$*O+u;+p*h#x&j-5N^CU*k41&o(z|a zIoFGMDTOLHDB>25*e7scLsl|ZqkO%Dy~I+H)R&krGLzYX%-b=%X^}gLZ6dR|5Jl=n z;b`w|ER`=F_p|UO4EP|8w}TYSz)PLI3wk0fXEpUwgN&RlSvjh0$>b$W_oF}_Vctkt z$}6!*DGX6b7NBb>@k-oC)eFpUM4LRjQEKSDIajM6C-KwhX+_KEl(XwcE3HF)3D(?( z8{?y#b-<|vt?D^^1N0q)R%*tu%`C+?Rm~{+XfDv4U?EegL;qUK*RvfJ=R(c|g>gskOx;10i2o@F zoR-qAS;f@B@DZ{Tf<^>)a#`=bj9;aSD6zJJ7EWZ6lXVzn^h{|d0n|8?>`bQYn(ReO z+>rEbIhRD78~n^3S6*LG09RB4d04I()W)Uf@sR&vfM+f1E~8^}H_PQ#yIgL!%H<7~ zH*ReKp!jGsVWOwqf7rO)_m8yONA{m@-?(G*8qYhmk!^3cTHAX##;26?M3wgVVTmSn z5Rn~Y@AXSx`pf-?a{fzS`jX3^$khw~Om5&@7}{Q|!Vgr;{k<^omocuO3}93z@m+&t?2X zc64lUl6Tb;wKTbcD9^+#a;JK z#bf1x-Wz}J>G0k9?thw3-1+otJ|BMR7Uf9)jQQl#HSc?WT|$&{9)F82O4F@!qDRwj zY9T1Y9VhuCJ$1=;QO-QS^`bYtsP+5@AKd-t#~!~XZqA%LJU(({eC~PAyWw{pd+c`x zQ!(w~lnjyquH=)-KPo@T9UQ0xfI~=t6{$Nou9O8nCcs3;NrVm(8`x0^lePx=;`QYu1 zLA&v+XEoaW#>|61-njYZ2Ee2TX49EFYs6!WnZbee7Z0Wlr5aF2UYvaNMN_3uG#UWp zi56t0tiXR8*b*mgALL%LrhXKW)9;H}R9G!2Cj&F>f3}={{LnQ0BKtE3A5WL-wOSC= zbRFEjUO4V<9dvgVW^B7LGk;u>cgGcDuGyS3c6W&qn087EBDAmqJ_{QS`rZ&vgQ=w7W>DqHbjmXWC0N4#tyQ=o;&b_|?YJ znsLij5@p0JOO##Ht9MUjpo7v3*n+5ZuqouLzfHSFuPx+A5#faztKHO%_e(by%`D`b zxXj6>@|ZE#%FdpCAg^~8(GqIsm;Mmr_$$B6Z|Ti~@z;jez;|3%A@z!AQSdMU5d?Sq z@h^38p<5-iV5W1o{z{{_tgFAF(Eu(FzCPjR@uc%E<0kX&Q^@9D2K6fup9s;(O^t&= zoRu@iJ;0iX4AMd*wlU+xtiwnYwh-E=EIuht&dqlyRnATm~7BT#Q^Gk(sG;)+j z$(N)4KSW$420r>~+B}#}318EKrhQD+KB~!M*(>290IaW-(UkU*nNCxMTS$E@S}@<@ zLpM^UCB=FPbz4Gp&dpBFDh2Om%TyqOz(P@yeA_FIXBRh`3E2tR%jusSl|< zv@a%ZDnWXpwMjM?js%|yIuCNM zq%@%a5$qONgzIEyNibr8T5Q+kf(2V3_){{&p4zkZZTJ$ zao4aj`HhR;W!u7dpf7Ql;qnqa(}(P2v6GBqe(_<%LxN!K(0(&eHo1gYci4T3av*xF z(-aOmH$%!zs&X%S#RrI)%K?m#<5yv&NaUl>*%KRfR5f5+ zc#--l%vV@i*}uybg0zjN<(>VlcapMohckW6>!j+F8(*H(!%7o7GDFRfAc}~a3|D$V zi`%m^45QZ6&~HSq@iUYhpi~rccuI5ktLM(2KXTCgQV6J!v(ZkGlWX_T-&ETyx3cc$+(#KUdd?eZPVUWxEOUNC9b*@QLy{I%F zef0dp51*%jBr(NoJ;-+R28nXu&&4jJ$s7$jfy{cLnKTFe@>+GUT=)#-bRWeMl1^0jp(|gs*X!d4K<@p-#DAdn;IoX>vXo-VeW->;*Hsz+!sVd{NieciwohuS@Xa6QLKRoM2Igu zTE2rqMo37APD9}Z7Qaw~#FLC$k)(*3v0M-eq@1bBFmr(Wvlh^atdg<7XaFNu)|-tx z&)nH)PHzA5_T=tgI7OIzu6Uey#(UoWzgtzrXRcjy!!ckAqC13z017;G%PeU;2+CdJqA7$WPkxCh|W*KPbcK_n~VOT1K!|S)VmzK6aAY?<1 za~&^XK7Vce@@@ZXD_2xHo!EIEjg)-!nUzCF9B!D*N^jJdySX zZG^=ocb7rRMv^yiPJ|olqs3;ChmyJiN&MRj#};^em=ZlM8fWHb=qe#-nY`cIN*O_F zaWO?`e6s_UoKDlwVzCv5k6y;3^V0Uh!qLTr*H9-+D9e!i}d}z&z}HX|9=<>7sjn3xIW+!^u?yvTFJR0a{ zbFG|wmpz=-1D7VG5Us)rts7(!$pdJtNI%)#=yW!&lBZ6&*BkbF6DGFtui{(%BFMY% zgoo~{RMVeRz6Y!CZ=yLK9X{eKdgTdiugbjUKkArefi;P-7o9N6Lj)y{SPF3EVlfbH zj0_Z~8!t$%EdOO;rEo}P>r3C-+m%QP7QrvXzZP5I@mKvIG}@85%@#c39~;Zg;zI=u z7=24*wJ{h+0EWFoiqib-Ty_kd(f(nG@f5BQ@}_mla4hy}bch_Ca*)SEJZFyIx!x2b}?N8EVJIRGGP)3QbbQVwh)v~aZ&b(ksko7&>_r1Bb{XeysU3zW@>BK_ zw9yf8D!9#q{$E4>8>TJSojmB0%Ol1VsfuiIrrdx*IAem=DyGt{jLqHWIKz-yXEvc~ zDv@>TGr4qFPW52^%?1>+5q>vjEHK(@$bG(XX>%CIE|(jR7gv@Gx!I z8zdG`)$=vBfYACOJXJ|^V-EohVu39rt0;RWdnPMLz?zWIlHe!hlh1+E0tuHXg29GG z6~;gImdNFsZOeAr6*`NHJ%!dRkig64Y!jXVUDz{d(1xKY?g8mT>_dzuLrC-aL9!Qp zezN3odc3%bha>W&Sd-L$bL>uvYIPW|(fvpoi<0v!WI{O_SV=ZYb_D|_=Roq6D5qz7 zE|*I3PfI(ka;K2vig86`E4~StY&tu8 z1af{a{pwRFx3{#actfz$BvU#@uF(E_?Z$)oFP7kO%{jb@q|Wl-w|9m^qiL z?S`3pIrM8mLqOHaG9}YMxTL45K|hBa0BUOX;UNTsh7`4|e6ASgGC`gIDA}|$ymy6? zmCr*OnR1{?ptU2}N(RNCv_Hkg$QmB!NP|S7^ClcBwd*W@jq$)JC)fHK2bxbQtLK7Z z%z$1X2`#rulFmYg1giNVzC?DHI{*$ejuLGtg?8ktfIW}_&jqEF1CEzrB-08&PzTAE zw?jAOO+yX?s3W=%TpHTCDN7FZ{M>L3XwztktT7Fr)466j4N{S)E=QOnAI+`EfZBNySs|3H1M@)J=k z1=Kc88)JwzwF$A}Ak-+LB$8D~89@(Vki`Nzl34iG%1@LbH|>{q0T;2L4PVpedpYC%5cnPn4z`p%Hg1?+-$^~%D4E6VnM9u&*rOkDIZ|`V3;_$&}tQP zfm@m#1uZv_a6uF=_y(He?NLT#qG!yj=(;gsGVuBNaUOmfB4mYdtT@Nk@4@mKjgMb@ z;Mfzd@6{)duXLPda_Z2Dt!aJ6TswKdP;P1Mo_kx(ca51;gXC$v|KC>r8#=cpeRC)x zz&z)CBcPo0&5C|cVh~~9BSRwS6rK>nFf1I{TAH21l!v}%W;oxvbs>A?`G*JuD)YCt z<`x@Q)u+d!nZ{0Ywd;DyW4-o^HV-X!e7|0AX~!OU!=p!A_4@9MJuPtV|MvT#UhtOQ zbmSPvR6>7#p4#Z2BR1(#`}VdC%(yLwUsLN_l?SZXx7&$?^GUF zevIk*D+)F=ED5NM5eKM=I?#<#0l|cZB&E|&7J#ZC)1^=vAk6BxPkv_H=Wmq)pKvG& zP;xlJ{vuum3@4h>-hp(Y+fk_p8*A~!YA`HUE6f6&8-@5?>MQ4zD~bG&?1koE*axj?AS zeJh6_jt-2iI)fOa%`OJ3#0h}w1#!d0;i@6W8Q~n|xA}EBgYnY9Qbq5I-ZON5ADE#& z@O6$wGGlV?5=0VfLbhixaMa|u07l|r$O_&>&jA<%W5j@Afki8#^f|{Jb!{2VQ&0#H zQOF>PPIArybRDoWK34l=Ir}=46iQzm_}O#_!$_|85hZWWPMWRl-M`KCXnh+(;qvFy z4s@zT{mFOh#Yz{lOIW|j_t>;m0HvEnv*sL1c~eRr|C!<+$3`cB6lUOvN=UbxVhY$u z&L8wBI(z&UI)X{xP1_LaG)=1J=;#bcnQqns6bo3Ja3EZDgsfih->CEJ3c{z3Q5#TX z>Y%9?eR4~@usOKg#%iYf8+`@EgDy@~1E~KZ3PcSxG4O5YpmWu`~ zy=qa_Ji1X9=m=(ZYRG z#VJ3e)U$gZ*j$skPm^pqXy@oEXTz^z2=+jrH4G!JVN+Bj`V1yBp@7EzNoA)e`5~ye zQ@{?0cfkFfrp$-PQ~RnA^f>k81d^;ab=tx(0K8B5Y77TX`a1K}k^=?RM$j5Pjm>>B`Z3hYk_RN*;dvb&iB?JvpT{YR<{k zdaX;_LAdlCN=XdMMf)iMat+@d6a0(@gYBRoK7^(;zgQ0!So+OL85P za+@ScZCcP0X~vKEwqw{;+YTTqN~9Z(MSmTs3*aWvLbu%aGB!nUD8y90&GU}JWutoy z`%+g*PBU9I6O@MfShVbg7OH3A*C-Kdg8?X~rAwW^=N^P4NJa3%3`hG?w28!?e_#10 zOW{juM%vRyP0@Mo5bq>y3murz93N zW$tjTSV|-(qnh7wYnV2!8Xedko-S8DzCB(&nlekpXC2&l!7T*>a&O5b^Ml4xvQsI| zP|R<kBJYHSyAfR$pr_nU1woog?({(u7)CIC1BJv!$}BZ!Ip1 z{*#)W&nn*_HY1%rUGh~`a0d%?zd9s&%@BVQeG3>{Spgan2BYzSEF1Ax7^2BvcHng< zYZkR{lTezp0*^j4f)KBRj#d&!ixJUdgm{7EOq>Qh+Nke-^YcIO&7G-H5cnzQ;qbM` zZuzd`7N|4pcxC$d@#D6g>{=NEdW0;%zLes2JY_9P9jA7`tNFz*Ht(q)`fflj!1^=5 zxRq;bukJ3QQd@tSDV0kvt7mHtZ8~nFtxHI!`?Lu?cLQF&-3yn230r@vw@B29= z=jEIXaqG+mCHRUq)x$m(2{EuFh z*S5-CO|jfTF83+itgP;|g7sO&_0;Y`^1Iu>7aUwHq=}yoa88VLz8;E)l6I6PZXG4i zg$A}boniQ>kqR0cRZR5MZ4?Am^S)bje7%;&0N-umqFue9mxJO0Oz}mpae_Kw2su(y z?S8l2Gd3r4S;exeXAX}nznH%PjHQwOD&7yVZxPdJ`^)%DxQ`Hj)!eEGXq0QpL!+6% z^yM>|TOw~h$Kn106`Ax!kPdqBbOH#VtmHfD#PTf<+`6=M>jSqe?@pXP{jbZnEX$hZ z@g$9L^$QY3?CPaDrRxs<$s)9iLzkgmJ1GQ zJbIy;!_T`0p1BPi;;WCkVK|*O^NkmTu$TWGi3vU5txuPxp>?bPi8)LY5F5N{Ht}tR z?7MO|PJ+`_UQBChO26`h&eEOY*L?@DId8G-8=Cn6C^q%G;LdzxJC0*LMSaRAiL@^e z1($x#dvw3iA@7x-jE1AW){f?s00H;m5!@M62nfCqLuyH^JWRm>_nq=+?d0V8ed{g1 z-fZ@Z<%Lp+pQto`+Bw|l1mW@>t4p^ohe5lsb+*1zUu-o~)k?2yXM0Bm%DG1C!2Ji7 z4o?lHYwblU7N-s^O<%YB$lCP$+{$2h*Kl~(>g3AY{PddApo2!ec3ao2(6z7trRj!T zOR0DL7BQ{wr0>}=vb_&*Jqe6(V|Or;sYD^B(hrO_QKU|L$q+c5p+oErHU`UiS*Q)U zWW&LDWqBoP@wSKK8V>^W4HuSgM3JJ=YEoL#3hzl@Ihw%+tC2tPA*;z`n7eckLfl=k zI?bo7w=me&6u0at`Lh4(XM6YG-@7lL-+SGC5BdI$>#jc#1P89a?#UedG`?cee_bh% zYERJz&sWk&p^VQ3M$e~;Kz1ER)_O4U=h>@UK1*FfxqHT0bk6QAyrFjebsIqt?^qb* zFZ^fnknbfrdlS{#?;!T~+c0eYH-&0kk{YpJDLAtD)|F=o#l>=!J2hU-=X;`7K9HE; zO8m(lv{$2YbR^hzk8et3Z!F)7zHJGwWU8xEDv1Ni!fZ zxEITk?>7`GQ8Cv${f=B5*@B;1;#Z<6g~D$S$ZN(wbx2u>cF`B2$@pZX0C+DJxo8xY zg6LPrVrdX<{2~R}i99V1$fR{_am<4({R0lUYNbC_E78s>3p=Yr*TI@uQUk&z&2G@0 z?sNwp3BK@?_p$-LALbh~x|H!P{xSMU2HOXKhS$N;WMOE{aOdOhRx})+COm)9K4C)F@7% z5ktl`=^*@dY&uwt{ESXn3^k=zw^vo}PGszygt@@aDk03<2BD7MS8A?b!ELD##8HzE zV(98Qs)k&GLRrHp3j(21prSO9cWCV^oJ3R#&@7s4CE$Yov_qRC)8xif%wu+;=6A~l zNDjpHq0^DN`%{XWuVlf$s`M@P{A zPRr02iV-EM#92cgOKm7va_T2xFM+H=uTM@DRP|KX1lB;!kGI=9_EJ9*?l z0n@)$4SShFdfcQiDoqdQ0ER`zFz4pvaKSRn` zHp~>P@O-1}ZS^+3bG+Ha5M5DB-J_^dd2OYJ6N!zLP_yV{JS%su)wYUITI495m6)Qb zXW)|#(k&QqpuKZycm~C8yIuS1sD2O5E;Ux~ zTf`So5HS%K6$5%sc^)yLHX3FVOZ7hZd?yt6qCkp(szY~3fS!s{Mny(dssvFZ(V)&K zNMW`VpqPXk_z2?!GNEWKbc0GqRt?&iDV;I9+y8=OaW8JK9KQL)u^VnUcH+n5mz!@t zdG&3#U48Py@yo}P`E<>+(m+W~?b~{0u95XEDs!7x{cz9BmNPCwHq`@Lj=Pu7dA$qC ze5Sg${j1rc$>yHP=E@y~VCTA>fPc|TJ}g{&_qBy^@8#X4RDuc?JOA(;K}^fVXQL&G z?PR9A{Wh$jXAbRc@ap}~iTu%n9R8Q5hZJpzflq7~krBp0gKC1RG8 z-L}e8%OpRsn=Fc&l72|hkK<82L+N?S$B$YVVn!RK#;?wAW_bEznj&LD*1x18Y_r-a)ucL zbTibgN+Fjf$>@@f)12bMx}^9)c2N<51FR-?|2dnQGd+Fj*Qg{cZ&@p#BNW<(k4rs# z2E-%GvY4wKkOGiEm4u&_xRB?GVtlQnsaSBw_vp z-8!Y9NU>UZprJGdkvK@*ot*O;^yKt&8icrXKPn2wC81>%gK3HE`%lc*pM+y;LX@f8 zNFuD{HJXv+%=h%FSV63gCMsSA*BN@P=pNjwUk>*+9INN%O7N3&VPRkmGP&CPWM@!Z zF4e55*+Q>3yH0RK9VX4uW_Nq%NXbJ*R60|`;nJ8E(0ND+s>%LryX`fVpQzWJg07bb zCCKv(bF8LKFI#sAt)o%ESR?1PGeYY}Pfe)t=}1W~>N)e%65h{R!BXn_(KNl71ZNU) zqMXO8_9wa%OK^|S1y?d^Lvf?XTSk5rq>9j~buObtcnyGU$=0NdgoyH8&!!U6yQMfsAOe-`B z@4GB9{i%f`3+Ct3E6Gx8oLj zT_P~>7vgQ@Ac2&rkqG0)iX9IDRsQDcz14aqO^+7no~dB#9vKXeq)e~S^eR+AtBGo# zj8WEt=2=u9G9+bA`pdnROWWj|l_%#0)1y`;tRP*458ug89_$`iZ8QgAl{?Kb`;bo; z3rzJ|!&@9z7wc9PqWtNKzuL@u^~%D`*+F+obeUk)g-7Q+$QalJq?(1Pz@Z*g2@^-q zAYmek!cOofL`qH0n42m}QD1SckOnXadz5`Nq4WQdic-Dl_71crccxeRoqiRY1Y;(Z zt`y7dxdU@8w*cL8rqCe6W`Pz>Xm?8YBjpUG1CPiJ(+xMWd1Z3vrXzszj!jnAkZ%>S%G8&y4d)$LLA z=qbLNnJjH&ovEFhw>hojleKjeL{(19sV>>h`t0)I3a8bpdF^t+epP9{^6l3}0PiS& z_NVG`u2%r_*gEF~U_lDCgpq}a;)rV%7682CY6NgWNE}fV9!_0EUn6D0V$%gWTyJ^% zw|*$61+Clzy+LEA)-a8~^ir97N2fLxstdb68x%5L>rH2)E#_}H1&zR3FiKnrP9!9XcL zbiW1HnYsJ7*_`$~%?py9ze-uJAoH1j;x<5v-#R--c>Ct>`1)r~KZN?a!EED5l3Q5bK~nuI#oPfnH}E;JphST2=oqleF<(@n56lMk50@3UFuJ-U@C zP33Ck`a+{rTPjaB3(pA}3A3N2g(q9wxLBEN6`tecr=?O(f6B5m)zV6Hyt~T=JoaVE zuP7hGz8lH?i4t8B6NlxZj8mzveJ z!oBN<53S!{E^M)n!yzi?kR;Ub(!UMvN~1mQ@cWEnVaVEqg=Hs3zx3!`!7 z>gnmLXXZ~$QcA4)+mF2Qk?rkAj`mt){QUzr9pF)!x%$?tXO?fACqp*Ba#TKNBTBRq z$EW1;1M%#n;2#>N;Ar|uB94WhbTqHH}B zMpSK!?amY)fjA{oEzmGIPL!lXOJZA!8&=+Qh&@rh#i!gK195-!j(YsMH@){w*ByGn z(FeM%$w!V(E$q&1K6~@b+U5=@6bj)jkEU4}-^$ycSv&r`$QWb8M7&cZr=zntu*C#oFf?6T5<|h%?S_r6xmOI z!UTVeGuk3q;)b4YSp{e|RNFr^%G%1@%TB*N{YAw>iB*Nv!R8Hnt9Js_e|=R` ztBDk()|1Qa9>8>(8|6aP@m!j=XNZr(hrE3&%p$33x4G)I4!+=OSZ2U(1`l=oTBmH} z0Ls`=%hktIi*p~D41A1W^Gk`O0Hw12+)!YIJKFP z3m~{XL1Us2k-ZV0@E*WIyZ|l-S$Hm>Oh@_Sa)i+}6Yrf$(%8{w6|<1*B-^vZU*CX> zjeX1Y8}vuwlJb9*pW$=K)^H56TnPCRv4LnES6p_E^rM5h{2V{x>w|r{uDp-#er9%Z zvz1G=4^QINo96WLaK?h1cJfdwlWT2E61Xzw#;Z?M7Rz+qpc*`U8H}q&v7kdo6_B4K z)W#eN=R)rz`_Rvff*K!5P*_V4D=T{R=sXLkXx-8q2Fq2v@Pc>ijF$n$)|1m zp%TV^4u&;+m!j=hR>R7@She9g&xKy61v(98^0ZA;rq1lbFL~f?z~^AvW#*2CV6#&V za0xTS+^p%@S*XaS55k<6&Q<)vHZVJDc7EysIu(uk@H$jW9}zs5nhZ`B3RoFgtLM@E ziuC!Q;13AMd4pQU4uJ2a?{?C;oR%!ymG@|#b6qMZ8?>}G?C#3$1y!Owp4H6il(4)Z z6hPl{$1&7u*^$0Z?jj_&UYIGfeYV+tSZy@xtwgp}ZQm=0-mgU5<6l<~E8mZdUPMX@ zQ}dZ9-Xm&TvPqW;z`3McPnom(N<8ZBjW!QgM#0dhKQYUE7A@~lhz3d4?=Qe3U@7MWBD|zc0aE@u07*{qkKM*IDf^n^8NFj&V0@L zN5AUi?TV^a=nh=RfYeKN+H_Iq*3wy!pNR-Lbm~{xk-;J%JKEJ z!>YPD20cjeb5d{TUG#uyE+T7Y(lv5u(xIH@2y?SUlT&WmsJV6u44mo#4s!s1 z)&SzsXN{nYsJX8XI#XphYm=~*lv~wix$1e)`<3#w&dl0Xj~+(1i2WP$$=XzLkD=&0jN} zC-_t1x61kPG7z(U#j~h6OC#bhcT#0 zZfpF9C_KVpAhV>bSRCzDG&YHe;o(xoRHSzG+30{5!& z8lQKqFqTiP(orTCbD7-q@u{if(^e+CIQbBzx%|+zF7_d*Lhy=di@mL~57u+e zmtrF>^|oCYT+VRT*d5O}g~5Jh#&{o&_{>;|(Kb*e|K3Om?b5}O8p%j0Ot0+10u*c1 z#!pSbqyH-FU6(3Vbj)WMN!kMuzh z>;7{ITW5h=2|*HA;Q+Dgxl0ox>QdYsq$>8G)obs(I~!z=p~h5NdVR<;VHYC zU9cl=mp%FR4SGC1B(a};4?w(^2$4bxoyjQ%8Z!WkP$XFlD2xT!3b7>#5V01qCL2ad zfsH$QU%n=hA@Sbe{1qEfzGnN@2OyX)mVD#p(G4%XH{62T93xSk%h?Mp#Krcl8o-4q-fQ zo}5p&+!csN6YlNBh348y>9sd9`Z9JR>pr7=E5eT!qTUgVR2(~@XEuh77)(qR5SLr@ z!IE)&`ljtlV|4FWm-DlF{L;L*i)c^34Itco%W2s4b~Ne#M`*H;(|f)4 zz%=e9M@}aKoZ*cBke>B28Sk>1B#lhU^%Hl*d^(yQS)1*F1nyP>vPdzJk2KF37AVA! z@SWJTE6j1mhBOuDh#`zo8XGcbB;n4MoSuY^#R65HdXhLd5FcB|9CY(-bRqf3JUy)% zg*;fI9QEx$QZmA41koP#Woegc3b?-Bl1}Sw7%a|5ZJIuU+RX*i$~NVT?0_Bq#TX23C0+X-F`Dzpl%PqP`w)~q>&I{p^OX}QN@{)7x#41G$MpP1T- z%!|xd0}~9vL%KUo9dUj=E?`uf-_ZuXQffgZON%6@_si8EKk)3G+*itNuTmvpnsx1B z;hsNCFYbOVJn&tQ9^HQQ*cbXA0MzPCI^=Xm_bXQ|-8Mc9qA*!0_JS@Y1$w2@&h>8S zMDlF+^>5gbc_2Dxmw38Sy?%7P^=h~7NIOoSek28_?lrgEditH|cKSzYePo@yg0|zH*QYDqv!3;# zT<&9;3WnV?bz2+m^;e95o$JO#IQrpH2MJ#05#Z_1c(_ zBueplBYDgD^B)l;Yh+ZhE=jv}@SzF)kyPu;@IW@f+DLvyalwn)Q)C)IrKqb{G)E4q zBCVpG##NPtJrDzvKHO8sL-E*|Qc;j}JTydtkN1E!GS$TS7j?ZNSsQ*pjw4<#zJ0V8 zaQq`#70pjwCZ~{E2}zigy%ppKq&SkbJeb3w-amv!1KK~5YY&rgMU$rK0Eg+k39y4I zX|SY{I8L0?Uhu_^r_&eYFrB}_f1zK8NUfRv5{7@K2Gm8sv8_cn4}_0qS6j508< zZbb1*57tc4?$AuTXcdY_4stm$TsI0OU7|~94Qw|sK}5Z>iwDMyItjgcqX?sTzLKX~ zs9h?cGJQ2wsuUZQyb|QgPERO3a}E$}h`2q?sr%I;H35cYR?83xXh1^j5+ckkda~Nq zGR1UFC`SSGGoVt?2Zu?TO9k(IyA^yNg$TWdlb$=EQGM%ZlYWMdoO-J0ZgbfXSFmEZ zIq*j%!CPMVYh?c`&{Q#Zlt&+_3cg>5yv+<6YXyw+M%4WVZz4Gk4PLnQ$Kn2~A@9e5 zw0Ss$B$6$-J&gfTN2-o!=*^$3Q0^O_yzaupe0zMlneTPXnzdFm%k@O4ufdmI^MkFL zQkrQbE3K(iXC|1pUcFNq&rVlY3R}Y)@<+Gt1Qj}%O;+2rYN1-#?6{q6x9Bca?P`;< zT^ebd1#-?)T-Xrw zeI9KdOdO$;2Yd=cV;pEwi7FOW5LIaLMr51#0#XBuxgWJN9Sp_3m2*O!$yh*|aM8v5 zqhq5HRdV1^QKLi4#kv@0)`eSpuI~0hzB`XUxh*LADYgjW6^rsFcR<+ryrWdEv z!l6Uihu12m9ByveTVzj3?p^w+%tpE3XT&EolriThyg-FTDY}x=#l$MC$^{cKD3^K9B*DCT@GtNL(-cMHVhagw3*RnozH zkpf)W2J=BLn7R?7(jq-r)&`eC9J`+;d+GuqtpE*4W^+>u*|Y)W9$fxE0?qqC$n2e5J~-_Fx;_w}aUpgP`Y=;oa)LWL_&r!TF&-PCKcmZ#s# z`}5b%omdN&+q6sAJRY%o&K&&_`S^vhlNZX;8!kS*UzVb$ujv@$qO-*gyFgz29N2KW z+l{$7`QM`Rdw)O{DSo>WS*e5m9dn0HEN@!7ujn0ST-0KyEX)l%)7dlD!t}w>*7z^< zdV79tQ=7l4H}zzBr|-4~^W%+ES05fNHQD)q-xAKHkN+E4*dymQ2To;3CVPw7bsQ`C zTJkQp62-rV$l`NhEqfu{lP{k*H}PT6ydRzTWn%fChO6T@Cw_-(MdEZQ)gSzcI~VS~ z%JTkuI8?$h{R9x1e45-_j^4A35RLvkz9GCT@~w-ndHB4NE$OMy3R=C(J_+~j$1!;; zY`czuy&k7w$=zWXN-8s4i4bAf`eNM+v54%v6CG}_w=;uRS(a0fSLH34=wG+p?q)JK zx7&-Y)(Ry9xQ>_n0tJq-o&!`%# zVAU+Qr*ozyOG{}B{gF#Icx{01R$ffY(fHqR_o4gmSAOuNyMK4F`E{; zbt1{7iDESZG9dNLd=?cH-RRN%?T=SGkuxTNR#r>LSez~8t=l(6R`b#M+u9gImHGpl z2P=iy%6iK#+RFXP;8=gfPb+Qzz#*z!0ooIG`py?oO-l%AFnw~RS1*!`qn<<2{zz?A zOQ3$ML9S4wd`%@IF0z&Y(|@P`U5V((49iFwVSjTL#b8297I{7(+9 z%yfrB?jB=Za5+25Q}1Zbox1DP+}x@8jk$OH3tStWjpGsLhVlcmrE`onyXoHS)g8B0 zzpakR1YlxY_kMvSAb{8VCm z?^>Zy?{fy>Wy@b~t~IF;q2M=X+Jj<7FZf-%l(9PX+gqKyMWPzmWG;`)X*iQXz0-VW z7_8kpPK4~IU%za5D_@7cb(&R3@jF2GjHrD)hp=!Goimu6Z)d#V`3 zbLC&*eg717P}}5};aVj(EbU&R*EpFhu`@|3V+3&n3&V#EOED+0-<3}! zD)wA`&dQk;YtBhls#emu*GW`rxr8%kQ4`>S++Sn^Fs>f3w*@CzuEpDw>+v?b|60GN z@ez3P?bFd0llFpTrOWn0LtZP^f}NztC>;FuX`5fe-&E~+%i;$Y8w&so*^>3GyBeqE zJhcn|a^e3{eieL@hW|qKrMMiSJ`ckimN9> zkiGW3(K99AX3eX?I>KvO%X`2XH}_s^CRzY|BRKR+i)l4aFOl>{yp72>|NMY|;H$;` z9kSaG@xAl`Q*!}Yr|Vcgu37ixHP1WEmA)=Ug3p;XvQ)>bynKs~ARqT89P61AqmIo)2;-$Si0HbEKHRnEb$Pk?{zK@d_D% z5wt!;2rhD7e5)r{UD?J$k1Yt(r3rbo8#dO8X7 z#IFS~rv4iAFu7kW`Cj>x0pVM+h0Jh11C4AFaLN3N~ zjWDGirEKFB5r-q=!5E-W;R9k=a2G_TBPg(o1gRKR21WuCRv%eCLIX$4i-b|6n3MUU zTu5yakboG_v@_Bd%!ka(59mY=zJ-i#iUJu9_!t?X*%r0!;L$Tijhb-qhhjQl$<9|B z>8Vx+u)Rc92z+F0zyZXSQ~B0xGC2mpN3|32m;`WJI((#QLz1O}9S<<0rVHeN2fhzE znh@=Ptd-_R*`C+PFOhKxCi4xio0ASSNn)(@O*L>>`~g-KVxiQZv*HA4P!b7=83~C3D>kNL@t0%s1;xYWJk4KW~<}-vog74of%JzF}qeUXSvb99Y`2>6KinsAQ*%eN980H zZbtiBiNAoMC~x-<@`XAJ06rp5iKmVnPb7{XNlYc5cbxF<@#j(6mweqZ7LUD7)y`<0jwXKvZGBBs z*Vk!cc5GYIwvUlt**TU-9NW=eh-2}@5jm41PtZ|EOTKSAdh`BdplNSCs_RGJs%Zyx zsMN`3C%#4P;rx+>&7}6`_&aX~F{pjtQO@P)_sJ1yZ#&AYKKeF|=>6p~N;+{rQ%1E1 z1UqPGnrOiZq=O)B#I!B$wFEcObPSu`3szeH(tP{cs< zvs|0DT__g`=S*Ju!tUcarv&ajXV)a}k~(bPyL6MLhzCi!6lhJ{G8#){0w*IU3gm$E!uy#>OijTsG<3N&V(m z6Xd2%``gaY0VW_2y?E&8CW@2R@Qe4~-OFSMSPyTx@eo0E99?5|du=$Lf|B?0DgBPb za#;!yEv>N*Gq$;{DOHfS@X4l}WR4sIG4NA~Mk+L;;L^AG(P8>k~_aZZ^g)8kU@99^(+y6tQue@jXf#~n9-9M9e z{g)JKgVU!6wYghMw>~;qEflJgA{GgZp|8JPIe#%uB@z3H9>)59q{tW;4W&i6hCd13 zDE*&zexdR1(hnbbdGqB5KArmXVD~R4mFG?lKKt2s-rBu&@?8D3ht3zz-#0awI{k|C z=O?4zky_kOKz{mZ^1`=p-%74?K!ie6H;jkEd@b3}=(OGF8M~`4PC;Dx@>La zhe}*ot}HMR9Id*W9ODU9dyF?-X3lRXjrZ|FT~~B1_wAxp;(qv41p7h1N>9o@BQY9# z(PhL;riG>4;Q9bMEGDybUcUsH+mDG1L_`t^t-8=RnfmBV5pb6g|(Hd zSBAaol|iN0P2Raz9rOw@lRKTFS1R>NrMq)g%E9e^-?sBv+RQ7*tN!DQIrT=RyRvfi zsf&mY}2*urb&~iS^Qc@we{LG z?RzgTU7nlfwK3H1xijD*$xT1~6oa|<+&gzU_uO;-|Nr?fzkhx@mz&Pdq-IhZhRJkl zOr5WW5+_nK3p1(zoM#pg^|@U|U&@^HM)NP14@#&c;fl(0@=;EDOJ=l~2(1G!RwI8$ zYUZCu3+SJ$<{}deyUQyIf0P~-@-&i^^y=U9r^um?ogX+#zt=S%s6D74thH1L>a9## zz@k=KP^9w0gsxc5gL}_#%Vq4=`_SX0_AK4weAHBoVyU?>xTkWavM=m^x9RxCVU%n; zFQhD`L63(NR!)Z_@mUaDrwfIMFCH(&Vlq%_?EG{ooE}N;7kkdm&6UJO;iw#3J8-o9 zO}m$%hxII`UUU_dO6X*y zh+UKuIzC7zIwzCbLKNK+B188nkva_-sQ|iKmaLF6Fh@epRgkykN0-l~jLt_|MsR|~ zTT-`_$g46Or7$iv9sb_*COZW(9LDh;N7ctY!&aYD^%oq^S!hLaxV~0RaWexCR8T}{ zO!kP?loW$=--$3Xj0YpVmza8=7L24L^_y;1j%qTh?Pj(%xn-xN_I~?IqM3K zk~WZpLCJzU9I%s+fwZO)w*V_Hq5^>OC|r?tkQ*dGC8z=>JwFkE>re@V3?gq-;u2-( zq731eK6K2W3=3pYq80$c1;K#uS*@A}Ksavf^bx_2)Kw_if@OeRm}wXsF`U5W%Bdpa0<(xof{VF}i(qL@#WzZZ zJn;CKxn(l}nQ0;9S^DJK@V`tjodKgP=+9_@FsZ}APs4{oG3oNpO;8MPVhsW%q@a~@ zp^8lg=1+^U(elw&^Sht8ys&WjQx81w$}1wj^Gdg?`v!hptaA>!Ti=XSFV8Y#yF<4u za}&_7n3PEmKVEb1^Xz2iO!~;_2kIejJ}_Ex1}oXop~9*A-#%Lj`-*{b!4VJzz)62H zdht{_6=8l$xrb0OnveLpn@2N=q#4iPZke)m{Vre zu>Tp$d3;9+T(OtK)~{3_E<4&Hxj{Iisj?VNt0u2`gqtoXMNJ!`0?V&rK0!36ML!_ zPth77L8=+ErL-UPV=3+QK%&NE*j3MM2{MJHooSQ)!g_MMG*(JQlm@{m=CD}GcNwba zGCi`r7|@L!dLZRd%{IC)I*)${t8B=o{XFYXmhJgF<=9`cY3r$x(bQPkY_*yj$>EV? z$Z8E})+bY=BdKwlb)3}f+JtORIlp)f%)1+4yV0W9Yjt(`9TlJvC3WQycB@UF)4k1m z6%UC2lAJj(lg!TG#{B-=bZUD4Op4+~_D-i#GeC*#04YKOjWL~|#m4U3|Qi~2(4d`)mAx2cs%b-}%N1mJuLrY{t zsC=b>;OR%)9+voqAQj6uOe-SO)6jY}Z7;4iM8GH>2)WnqlOvkcDq>1MtrveH<8Y@i zaNo5TOC^`kZ!CWYp+mR7$~E>*X~@({%8etE3@r#^|v*x zY%XHo_bC=!rVg4*W+y3A;&C4gY{tA#AxaF(927uNek(njHf85?BRThELOSgV6MN#5 z?yU5(BMvDD3OSI3k4!K7Q$#ix)YsmdtL_EXCel4?wc%3lKpf%X)`P2e^JD&g>YL z(;!&Un4J`(Hah?8hK$CC5sDN}^-G9D zu$2;e(14KU|q{(klX=$8qDIGrT{`1GYE$Qa;#5^ zJ%&PZlK2kf6U`$$j$qm%NutzGv-qZX7ugvGgh2|_vaxc^iew-QL3ot{NW@=1X7o8% zrz9G>`RhnJroUM6D1PxlR{t=Nprza3M>R+Ty49}%ae)A_yp1X99D8uj4Gcf6w zchc{p--a6o?@%06hK$~YBpK^FNM_F*unEV%H{0%{rGNjX-#V6153V7*UG^F5#)l1( zNJ+Z+HL(gG3LuRSAdyO;b57>QMBadimUud!Zc~)br~D>=*ab(FF*`x_NWywA-fzN^ zh*r$jgg=;x4|%6UksAlbMjVc~k#y?>0-l^K94th`X9v-4TV^NAd&_4gu$NdKJ%4uI zosVQjld8RP;*|KAQen^hjKyg#Pm~XE%4jZ|v?`?Mu=#x#rp8VKV69Q_e@r~{Zz7fC z&@NVp$-Ec+VsDmvD`OUNM=z6BC4_&vq#|+(7m{Hky-i|=!F`lyjlER`Iw&8M8Izn2 z%9-D9!(d;O4CqA)za|S;$hzxGcznL?l-K4BO!&Ns&=CCCnm8g8^QQh~I3^s<$yh85 zgn!EG6~AIMUNL&j-?4a&>qh>)mhYIo#)p;@fka>_YfLAWGnsR4cUtlJir&<)%bgld zkwQ7ZKkvxOJpSv%p2~cw4}r*c6^j1Mz|RbP0gC>8DH-abRaQm=!(X7s$YRA3x*6S~ ztWO7Z@r<`BV}W_WsH$}RlbqD^ufNlfbS6Q=g9-~ZPe@l!6?AZFSQJFyiYi3p>CrVbcXTl?M zu-ibK1vb;+itfA!nx!x9oiaxZ(}U@_F<>&!M3O^2Y=O!CN&*#lY*TzGoe2+*OpO=v zgKDynH9A4_wYar@P25gHx@Zr_hJr)xp>wJyNXi3?F%TAOAPaaLj!&fXBZaa#?eG#J zgz<-e&|*U15XJCAt7P2!GeeP-%gn?{*q!EdQFuv311=o;VKI2j>;ny*x3&ar$88f zuXLOZ`*CL(02QaF^ZX4;F+E4i5u!dWgXp$_htxXRFkmRCg@` z8!Czi6RSPwGYRt@JnWp6ZwQslWGD32c!cU4!5G+(hT_`STzC zy>EZy!iAZw!B6+{R`!I?Lydz68#mv+osfIqA69H353w`G(%&guow#t}BftK_htHpnJ>`E^TsXJz zt(Ok^4ywqJFMVt3D@PyyDTyG0`;LQquOB+JP6f;d)}E{%I8c9b?SMnxd+%OZfx6e? z51UXDSQ5BL*;EG@bqjtA$w2%V7)~3Vb`#E1cI;c>fW_mp1;Q_!8~fHvuWcOV^%QuY!HT*3eh2lLsUkYVF8GkFwSKPMqQmSR~&D%xsd?s}JAnZtpO*`_i zXJqLaT@1Fq_CuJ=G0}i_dB|wFpDfQ8u>xHg=nniCa!HTGP6e^M^k|J9>#0Gyq;F2K zG)`a~p^3?DzWkOc0-_h5N>W_oe-F`qSLiSN9UnmIU|O3faeNhJ)$ zh5XTv94#!AUbBrKm@nazHokvf$-48U;eEsWM`9?HN-;67Zw`ffn?FY)L?4jPa^Z8n zKWs~+#>bK|OZmjF;gzc>1p1Q|bp_Z)@pMVkx>y`CaD)x{X{4`cm4LJp&3| zk;nqUyG*+)W}-x=!rmlOUCd#_>wnZ>m_hzB%!K?T&m&97-3Ho^VIWI~G7qBN#W)-C zhQLp`*QiVzjOU5%M>rgWk;}R8*GWKl6F!a(P3IFZsona)s^mxd!M4huM;`FQ$Slj#^rBxfN}aI40SYCLCD-yLHN z8`Q%9wMg0dRdP%`kLJUJOca6AX=G!bu1r_RAfLku;6b+ond3W{T;IR<($?V7^}P>@ z!$${?4vOc`?0kFg-YwzXIl6bRh@9EtPmaes?O$*5P7t;wbdBVY%*{}6mV$cJVlc!M ztb$Tcm&Za98iMa#@8ozOG+5qS8PhD~d?2g3ouMS)C2mXPo*|Q)@GJZn%mL!W?|w6% zHJHl7zu4fP87^dE@>hFqN{_u&nKX9MTdEb0)mPDgYXMQ3W2}E6`#}6s-iFl~w%BSqv zWHKlQjh1_lo){h<7v-T8@Llr-#UWf{mB{2gF<|k@xYwn53jw1eeY;J+j9+zF;!y_aEC|G#Hcn#PfdV z?IU+S$*w#&EB#~r**)p>o?QNjG<)cEBJ(Wc$tH6W3jB*_NnKvS&dwYnBwqYi-+kcS z@2OqNzU}fwap<*y8#lgF-a2*a6Z5ly$qFHk#Ib`R@J_}+FQ!Cl{*ri*-i{|(KyQB^ zGQoNDfDhrlxP%Aw25+Dz3?KR}eDB&ch`M3?{fJO)=X+OI zZ_ZDCXX0bMBfh-4dPq!K%{yN-YR6Ys+5Fu<^E!9_)KTvJ-dh^#in6Kx8O;BpXN}ZW z39H>cK@h52+^g&yL2-808Z#$MYxeIuT$;1xU;=OO|AN!)5_Qv{@{2CNXWLpf|26=V zyaTB_`_+ltd`u-z)eLAm>T}@G zg10|~VpLIv4N4TR z1!|!Ak;QjD__B?-ZlYu?Ab$^m_Gu#BNAHq_xW%W_p1)C^X0DCfAjvzWxmj`rIdXRK z%lhm}S42rwIG+((7|w=I7|n_M8*L(+C4?x!p5Ek$ISgW427NLtPI=mN8Sfy|Uz!sn zC?jvkW$D7fA{Gyls#3GtYicn9mrX>9Du9|KCiceN)+lMrJi&B2=!vOGhus{vh>F>C z*>uxnn8hZd<{XD?pe*(-WirO%?xCdB6G{%x4<|!3Oe8g!;}y95sdCEi_Sp_OazIhf zDN^VD+D&NgO=h{<13wAA_@@T`9{w`_S-_ntA-cjr0k=goe!~~FSP?n;O}{u0($`8* z<~RAGcAi4QMxFDDE#U2ygE5I)d-c4nkMLmoE=ssVKPi$HxNS(Z=23$-QYK`s zU?(WpO(Xh)fIJ4to(p7akW6YmPdwswdJNkKI2p!D2iNrs6$A z`r=Q3^j57y`VyZ}%D<;#O~R?v>jL}*Y;Y@ewV3Jh!i$iEf(DmCtW%_<1F_a_lEIe3 zuz=@}&9ttD9h%i1#(-*6Kj*aIA!m&E{UM*m<F2aejl@Go?4;hM-FA7`f6?Q^ zX5lbsb9BK^vQAwQtxsAclp)%EDZ9!pqZfL=N;Zpz(xZFLqe+mOGH9kGjsGWjK8Yo4 z?ml}ayX*(O$LS>rtiP7cu*>6G!c?M=>~qoL^#&|Qk6Hp=uVvBb#9D3x48bm^*@ZN~ z9(LTi!Q&+-T`~>aHCao5O0WfYzGcx~a3=j%ulkeD7qr`cnK$60K`BQfJQ6(=()kxW zOoj=`uU48CHxAwZ$o+>VCXPGKtzN#odd_)l;@Q}oc>dB&u&l0#%$0n65=*pDlPNzLhy(fVHZm>c-FFdBBV9}fUR z0q&MOcRmM#LnxZd9Q64$5DjMY=?T@nZ)C4a8=C|WGAgq9w~dJDg5Pb>5}EvUca*R@ zf68QYn7yioj@#l1EsRMXi|ze4k#oKQovcWdOA*kY5t6QBZ$tKZO8LCIupqPwlgeBX zibGTAU_zC-k}Ak5a&emHH!NDYDUIY(y#;D|0>pD9Yr){6aArQf!IL zzVh&p#XOj)K9(IM$F2Vopc_&2LSCD_kd{tPkyEjFF-#7EVR7<|e|%_UJC-aRDu`_T z$li)Q{Lt}7qLwo=g(D?PFkls# z?Co`*-Mp$Cv=7N%|CDgk1Sx(Fk6#Q|tR>aYhS;mC>@ZHFtdr@Mh2%!J@TYv zu#j?jpMGYkkgUmqd;vl6qBk>lG8l_88w*9rb^yR&Fj)~Gky~)ewFG8nGA?y6GDb3K zpdSkUwCYHdN8?GEp{5-6$`CD!E$B-D4ifSm90z{bW`EA1q=?KMVLDM@Jv=TPJDU%)N1tQbHfr1NLjYPtFZQ>cX!!NzL9f9aj zVRkAxlO1u*tAJ%o958DLyiJ+dt$5$t5AT0@e-a-Ad=(7YoYiE|E;_RD;qZt$O41gu zjXMaiGuN*v5 zj^hlV+3d!ED-fqIlR!zc1WLl-ad^W=rtTieA0In+VY+m{7kBx*QL9TBE5{=V!-5+O zJ@Z+E(C77kBVH0efrehnziLUkmr06zXKnOq^{aE!aQUHwrMNR>b$Lw5Kw{97@PP4c zwIyS5g?wp|%)`e;@o@W^xOeViWH1nm=E+uPI$g~T8HdZE6wTBy&@8kK^VVJc*Z*SM ze01k$Nag7hD=f>(p(A5)zty9+jXRKV_#M5r8B`S6Hb-fjsPFa}&yAnE2#6VNl|c@6_DSyzK0Olw_J5F1sCZ9MmsTU*dtc9_WYq9J(v;c3cPAb~)hrKVgu~5; zF`xJP$v$A)=Lc3dl+8aj9pr9He0?cX{LRZBEXpd2~*j-}nM;}o!$s@i69IIyBgI$?xXvQJMN+#bS ze8@9ae4X}~h_rA&hK|3b3utJ#P;(K2W-_+OcVPaJKRho%JnufoY%=NR=-omth_Ai@ z_rW&^d8U+$36m6M45D^s&%~EreRb#hT)RE@^Ww(k%R4v3jr6y_z4NMmuHMc<{5X-= zZ{gf5(g|+BbowzSYjo;QfA9SO_#bW+)5&h$77KYGoJ5_^V}pO&z$0i#7*9p`EPVjxiKu2k&42>GSz^ts>=wi))QHzcCXmPw zL2f?BSLc?J>A`ye#S7YuE-|{&Fb=fyS>G{RK0sQ|(bM~wt%SVZci6n%AUJ|Q zJ$4!(?$OcHW8Q*c&Xw}|{uJ$ioYFid*H)*4d`+c={OIX2?x#62CHeisCx&JnK?na6 zz163Rhl|C-XAXlen3xR3l6y!akYh%PPQp~_<$Pzfw;?Na1av$s`N+IZ@hYYUzritOO69?^ z4iqP53|`gh_ZE^KC&Yy5EG{lm*s?jSe$r(TjU|zW9=ihr@};5Ng-~$hzLE5NIWlrm z9M2ud7t^K*hrx#dBNv@4_+Qiz@Q4k@x_CAo|K123l zd%_z`iu`zdGEtZ()I$lTMJiyi`Sn|nJ}7Do*kTs5erL0tJm=<^Jzz*A3;}!GY~jwu z40smf8IN<&5dy-}H4_@r|ai&NK zA4lY7L&}YkC-UH+^IT!X=L%Ir)?n28vtE}+8$If@~HY*Pk-=( zABe^1mtTl}>C4$a{+(a>j()Dr%WsH-@V6;qgou+A6FQ0`(1N-SfiBpSdst}zOv~m# zkuB+yE+-YnmoZzoPG)|FbXwG)Jq<^DA{cZO%+c)DR){b?25>E zShVD_O>OkIo8q6K%lIt1-WLXb2@INVkgM$X2mWZ_y957vU;tl;P@vb0vNbC`M@ibGU~oPB7Vys@EqN5S_DWYPg++&${i)(!Kf%g|54k!fweH>3z} z%o-{&aU=>k3Wgndzsx|H`7B6Fc4wF*CP`!1naPJikBbEd2f^1* znqfs*4O?>Dlyf?Rj)2nyVggvW{(|BP6Pt)C0PUjDoh+B87E2HB*NjEe$GA51H)tp|J>ht1ZI19@^6F1`y0#* zyl6YmN|e~U{KZW(72g;RKqYt)W{%1f1X7pkL3EymPnG(6ayaK9k%0_zdsZM-c=TGS z#+3RzRovlAzVkib`rhN;Pp6I^Q}Wnv@BuXi!f_G|pg0R>C(cDx!e;$pmovGvcjQcp zbnT?5W1RA6=CC;C5wZPuI!gZa#K_Jo@y2H?-+U3<)xD&$BeDcf2aDm+kNhXp^7O&6 zxl~+)-6$m8MwiWl`q&nG%lx-S3U=Gn-UBOgJfqCkv59|!me~iM$7%eh_#uY0F*{>I zXC}v;)VS_r4-+6v9Z)#pf#B68qAJPK&FH$lk5ShHFDUtF0GB>DdR;~%DDJL%{z7f; zh^PTCqLA+?;4&mm4pkmWIGs3Y$VNFcp0P8~Xq8Y5d0Fl{9me_W1Ba5yd``J4+=nOT zdl<8NoVe}K#*K|b`a*hQO_^tK)N0QUz8GJeuT<^`131*b>LHBBJ)ZP^@fXN731oeV*adPr1PEhZNi9K^ zBt?@Bs1o-|QYvY04$Z32m0oss@dq(WDl?X>xcI9i#|~LyfCel~&)%4uS}+)PJ~TZ1 zFUqx{;(Fr?U-+@~NfP#uT{Rq?IhmfAow^i>#UhucW^?n;hFqR>B)#Lgi-N(cRa(m|+mkO6Y zI_{d9bdo*(m>NHxJhlNny?MNUEbCo(?)|Gb3zv%LA6Z^rw>lH9r;^7KQ3$ghqoZT~ zOFdv-uVD}Mah}BpciG^r^UB%M zKXQ)4zw88Zr({WU7{mB5lAshicXA28-dBi7F37;lQ66MVxhV4zUhEt zd^kL3)Gj4+tm#q*M+w;t^1cz`?NSy9uxPL#z#bC6V1sS??T(N?=bFf;5t zS2}7D{$kSOGfo{iw9jjJdg!3bmIwD)Q8T2@37#rPCWJWmF=ETWvoI)@(6KbxeT#de zWT!Xh{n_!oT0TRdrCG%YJTbX2k_AVERBhH+%CrAhm8^mM)JPynBO!W-Znx(^@||bi z%=3iNf|++9OByOh5>|89&|I+-G;=9t-(o-+OM>Ji@8xY=}M z&7_S3$$PhB*Q=`W(j3~V$^(|~{OUCd*MH5zSV8Z)LtlJapPS{-rtva#MHq14*sbM# zLxtDX<8vZ1YPKF$O{AMc3!|!s$?4;%co4?pB|#2$L~ z5$fCXJ^Mv$?F^&}LG5zR$Ol6+Vmn=ig8DbckT(qETBwk5<-FN5;q39WtKcqv>J_8$ zm1C!h2PXh!ct>fjwa;jr>0R?CWL;wV41{J4(;?rqA@Fpwa_*6t?L%J>!+$Pl& zUiX^=I~?bf(F7Gp1{{GtyH9v>vmR;2K`pjVeDczv$4>eEM~BZ<62(v~8Z0H>_0k^} zS7!>j!p^`;z`ZB8VqCyP+kcg|f04NL99fF)lYSGG2?(e@H1z(D2#zCVB`DK;_i%DT zSWf!VyL|GVpdOSjuA<89L2}eE&d|_F(OhR-5_gCp_Fls}8Dmj6;vJ$ojQ4|_piK%_ z$hxkWZ4Y}GAcSHnuUF389it+v|nb(b~e}W`gj$tA%CP>6!NTyBX6WD`w zyuh4DZ0L)#P273LEmit_X{(7zVdi>GT`;3lxb7c9~QRQiT0=8xAP}X zlL(hRUhD8J-Ny6u4zH{u%%kwSEUFsfgFZPzgx4vdDlKc0A?iI=^2gb)Jo>0G-Kj{C zSzHYsyXWx!{fAkR?e%rre>FGv=XdIJ+@6A$<52VTj!f*!7UYSycEpJYlzo`R6guI& z#NVXX%O29N7A|6g`kDe;+p**b7hyxcF_28v4Yp5|sZefV0f)7+@tStiEpNV~eZ+&NcU-D*_Z zZ~9yMf9A)FwRWf8+)U4oP0EY(?=^eZ)lbwmYwc>cwwzwvPIs=ZPIbF0>6LbKBP~y< zH5$!ytKGa(Tk4Ljb-S(k@$r@Z{;{Rz1_%sIEY;nCG#ISc25KO#Hfi13kKCUIu{DkK z+$PuBCXp{4to$`J>04yQsV~7OC-cX?oo@%MKAft4Km!J}Ydma6j2j>05WH@%#<;rHSp6zg^+{C5|2& zSkupHVRabiv!d5gUcGnx7)Qw~^~Wu1Jz$Xa>;6PnhQJYW4=5JifcORrtFQ^XaG|Kq4bV0HwI7=ZH`0~NQ;cfLdWx>Kyspz7!*S|K#TzURfa;0iwQ9) zrU(h15wl{B?1+2BUi`oJiT$X7B;NfYaabG?N5wI5T-+m0Fblg+oD`?TX>mrJ6>kx5 z759sC;=H&Z-Ud>`CGmi`EFKgOiMNY~#UtWT@tCNJMX@B7MNO;_-L@v`;tG-U4Y46M zMN_oIJk4Eq+q`lz0#NruT{W ziw}qoif6=!#IxeV;v?dt;$z}D@p179@zdgy;%CI)5uXyD7M~HH70-*mD}GjdPJCYc zJ@EzcbK>X4FNnV{eo?$2z9{|y=rUg-d+e9RFNU z!=t_-{t;1zFM*QyZSjxAZ=)Id9r3&3pMntn`{ED8%i^DjKNNo?{#g8p_>TBL#6K7R zLVQ>Jsdz>FOYuGNeeo*pPX9{$Yw>5|--tgK|5p4v@qdwf^#5UQ_5X^$6#pJP=Km=E zllcF{4?wZ~E25_V8tMDLivI>y><`6`cug5V&mx0baf-y96Tc`0@Hz!Y9}EFb#ih6v zkK!dL)~^JVpb}ETN(9%=m=aeKSgcY?TFEF`C8y+-f>KmU${_xw!^#LLY|BJEk1G?( zq%x&UD>KThG6#;!9%ZjGuk2IyD+jQ59aIhh^m0TwsvJ{}EB7cTz<0S15SUZSY2}P^ zR(Xr^R^@&GVa_WTl(&&^>5}q*a#?v$c}RJ?^04xV@~HBdQdJg}C1qKuDJ#mVvZmCP zE6TdkP&SlJrKz-($Cb9yQM$_3fN6GOqIKO>U0SMjI`zdytz2JfZkpNN>NHonhUzjK z%U2{xDXnJCrTa+_*#b-CTBS*xAxjg4Bj zU0>I#Tg$S}_Ucx**=pBT>ep*+t$MXy-K1i}j7>qNLlDx{F&&>$R>%X{lM?G_u~dEH*a2}X4OlJwRT(XY_6`> z+T}&9U$QMWwrbsGv%6MaDQ))#Mv4+oAU~>YJwDq+zA?>FeEUyK7voudX^+)VtM2xw%xUZfeVQx(J;?UvITL zHFdeUw6?Vj=}z^}aV@v&i;I!~^u~sHcUxl&w-%e%)#dgU9ZFr^uF~(V zwQ9Suy;yHAcZ{{g>b9}Ayjru+y*KDx&9l&9l}2^de&-&2 zLz2o)d8KZVzvvrWrhV6CIPUfiGaFkpOwGE|((Bc1zK!ft#!*S`9`~z)z$J+y}i_^DXXhixy?1W)>L9PzJ9w+Jd+@btqfzT}L-~t&6}h_( zNi$No%2vH4U%F|vy|vjj!bMu%H7GRieY1A0(|>H+9lMNc^;XBR#yRC`d9Buf2%FZL zurKpkv%R@kZ#2}kX7@@}?%jIg3Da74qcN+|V4YU8Ypic9FIwuGooub$U*H-UtZPq&F&1Scz_R7X9)vHzO75aFuV`^7wo9kT4bfw9QQ?E3e z8;z>v%5I&ND;@Kd&PsiGxlz;BYuk%ehAr!*#YB+!G54aSoZQdYCESf^f_<@%<1x2#g2FPd0wT{kwiSGw9p zbybdO%SN@{SX!%Zv}_xYD2PBC+GCbXr@7qRR5z;Esid}1TZV0Q%&hBM8|4kPS1_?^ zciE_Qw_5zTT5T~fEF1Nuc2gHLpu}drI@3`%>Q8KK){Ps@%{RTk>YCRXjLquJ`xUXrCz7eljCH??S;8H-%fWVMb8 ziCn2IYprUxU87a{T$qz3F>cjtt+nc6yS{{E()P60nq2#Od4*0@yVh*4yLb1+LODOYf#NC}PWfyWAUamRmb)a)8pSWHZ^} zDa%_+-SQfvN^Na*)@sXYYrDJF+*BTa-17Jq{dTF^s+k_&YPPGEcDX;>)%0%H-ZnuJ zmb$7W3>!5z5O*wX>MrR)+fE5W4*{yzHXZ$qJ_+h=X>HzU?*f|?xlXIGz07$Xn9b7K zD#VVu2kD~V~4k_c9zx}_3Nx)Ys@o@`gLOm zdTQ>hZ&x9f9TSCC&Dzn$#5GvANiVVk;;D-O&JI0T*0#JVDTV9SX0Hj%yW7@Ia|>Zr zN@QB6RjaO7TdbR1gfLt0&`t|3>C~$W0pgM{$Nr`i2v-`-YgT^U?hR=>J+-<^3wAfQ zHx`=>ll}|4AS-mOjjcva<0Jk>t%x>SlenL^Y^%o?T%fx z&K4cD)x3t_s8U8^x5ygk&*DT$Qj;W9vW3l>d3V#nSe9aG`C6^M*wpmt#ZuFvuj`#g z%}uo!-wZ6Nf1#(Uj4sqIHd#HUC-qLV?a-^$-lclIEw!tY2d7*~ve|1vt-opNZnv7# zMx?B^X$!K@wLx{-wN?3sw>8E9lx*3s)mb!ebvj#{o7FY-YPAZ*)DXMmJH(cFh&sOb9N4*BqZ)}_N$7iE{y}s$X zMrY|zgZ|acyW6H~Ya2@)+chdIMW<@{ns%)YDZJJ(Ttl3_)@-aG{4-rytacFwX)QOj zWtsU=2QDLfa?NsUhxJ-(kq1VWZ&SR*&#tv#^BW!Gbp$^fm09gq!YIr3Z7J6;(i^0t vw_Syg`nO>Twd-&aTABUa6j8Ca)3^=0HElN;a?b7MR+r}9eGmOjsebwIBOLQ^ literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..9e4b7e1cf0ef7bf662c3f57862cff76ac2a7e7a8 GIT binary patch literal 73920 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

    3r|irg`=Eb~<0saelL3pTCha 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

    MH4)xoH~}+J+$)>1>4Y|*8`U(`L^L&CK%&rr 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 BVx|B9 literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff2 b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b9e58c5e61070439cebd54042000ae14b2365cfa GIT binary patch literal 63376 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 literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.svg b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.svg new file mode 100644 index 0000000..5f49543 --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.svg @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.ttf b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cefbd50f29c9a6a3bc2edf01dbea72b3e3eb1633 GIT binary patch literal 40516 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 ML}LQ6NqwXL1*cE}hyVZp literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.svg b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.svg new file mode 100644 index 0000000..1534b64 --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.svg @@ -0,0 +1,2231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.ttf b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..618136ab12df83b807b9ae22d073b0689e6b4472 GIT binary patch literal 160548 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 B=Kufz literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..af47657815d05becdaf8308a0cc9657f5aa326bd GIT binary patch literal 76632 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 APyhe` literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff2 b/english/site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9ef566a9eebe03f0f4fa739e9c7e068db9b9199f GIT binary patch literal 59572 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�GYmrny(U8IX{B~ejP76Ma;{>tr9Y?FrQ{mQcB*JU>ZJN#M7)kGaTFH5ilIUT zm`BfBCHXre8R^m;G|157>q<)H&#wm8N?|(l(70)C2H@Zbl2<(DuI_QbAqd3)0P2)4 z6QjQB?=;CN4I&5RJiT^1%8O7J-D!3K)+-S=>~YVIb_1UO6OFlDb+Xa**F6VcbbMGC z12lcy{ELVbw}n=(dgF`Mgpj-)X4Y=Pz3u%iXZOq3yQ-Gc41mYu-F5)edziALx7D0+ z7{LN3C29OQ%E@8YOHLza%`YkWznyv*fQDsqwGv=hzZ&z?q>(}WpL6xAw!i1qi?q0U z_M?9e-XGYtqVRM7UU$Q9B$yeTiJlqb4n5a|J>IO~*9Ke-LwhGHkRGZoV5 zvwIrq@M(EB+a^7pEy98qFY5IRD>T)=ferN4i2~APP1_@zuBVI0yFBvxs+%(!^C?Ag z#XknR@rhevZ^p($^-oB$!C}0CUF7g;%OH4ed2N2B+0ydF*sRDjzF1kfE#4q8@vSHS zB5&pl1@=MA!y{}J%gzZZRSVP+3RjFFhP699Vi``&Oukv+?t&fAkI!{Epm((jA#@Bh zxc<>TLLP{{Ky>8_c!={(KAZdHAVgV7ZaIX7ZN+9jm1{*gx#{McFqg6D6&_HwS`*WK zTx;9OF4D9>tCI0kkV#T_v1LAcBgwuCCW)i6;Z3r@O)>Z;LsmbTJ(w^MSTFj)-EXBk z$=ttwgJWSBnA=gh3tiaEaaSOHF8y|`QdHPzx83~z&aNw%KK~&RKQ6ATn)KbX4Rd~d za%G(U1{Ti!pv6z8XN#L~cH##ojNR7xZRe7P*@~*iPR0H38A(={bL%&I<~niEV0Fb4 zj<({|UFCik_Dxmt+0O`*&;sAch5tQLJ3MlA6B%L9=8mp&6m@oW-*dQq;%TKK6k}E} z07BHhJ@LH`74SJ!-)qtZmt}xKw#lif2CQoyKz>hm!ujInh@aIk7w5MUHx1|4j5b>4 zqFFx}D)ba;Pp23zD>q`op^9&PC8T=|s~Jsr=xliD+S<84F@2h`mo=R-S_}gTCFgL0 zsKNN&iQ7Jf+EBg4SRlOF!7DdAyKXbc)ek{>5uu~;=j0Bsl705|oLxYj(-RCmULvZ6 zYp3_YlHs*P|AK4WO}-w&8GejH=1_ZM*1a?Rpfk0ic)GI-^vYR zv%W#285VW&e{N=Pz%M#-ZR)jIfUML20liFI2GIP?+_s46B2<89p&VwL9Vxw)>cfJe zwY=Q@x_ZBwRR0>Jk)zUn{WM9uBF(TFD`8OiXX7YNrb!FW2?u%h@ArR3Bt9Ia?S&dGWGYuvGRpg9ZYHu&M4*)=W3OXY^VPf!tS44Yp z|Af%l>gV3O9T3mDl@x@Mau)sjC#`kG)!_xIV@N<%m9uJyB6H!46Ju5Pj(~yU{LlYE5#y3ok^= ztvdFIOrhs}I4m|gIx&dRxdT$K|5b~-+*2Q1Q2}Ja_l(Da;XSkdrc(c&HL#C2gP;{w z+>itn`N!w=$Wqf}>HOB5E1XvO8IR^|K9Vcj$}&_>QrA_kP4YuycrZ;*(NSSubmVaY z;Y4FlfM2;V-hYQBALzR}$-9I*k+gkvWORr!zy=8iO$wW2mSh#CK_Q`3uhStg;u-X% z1o5rC*1x_{Ww?E*pp)SOsV&>hB@=|7gf`v6H-A}&Z;1n$c!Jvom0&QNbah$T)+$71 z8DBv=$2%chMS;Zz_)e*);It~UrKEs6!2?}bIv5q;x6`ly5$UMFPI3TYhZgamM+au3 z&HV$cvbb|suxxpkN?!l`i z$?3=837C$R$B&Lyj&<0|wk}z$j%L`(If=EB)#=GwVG9Rt@e)-FpOD21Mif)iipPnN zJAIl83#@W$qg~(|3F$ox8tqm&5D2T>->b@svDzDdUwfk!1CF*o6;BSDtjq-A+@3 zTSv%KOjBg;m)e&izFUt8_JrpyxiK`M_ZzD}p^y~t~Ot)h0D7jS;y@h}^9@6$en z8r6u^NtVe&jmA*N?}a0`!a)nWHsX%Khgx&eb9SUwt=sXJF#=?o25qwL&dz422|TD= znaLcMXj4Qfs+MJW?%UuAl0RtzF09clDnU}(C61lbRt~zf3rkhin+urDgnG8|uaHBaRtPu+OWynGgTteP+3Uv&3ceJ8q81Oej`g}; zaatH%#S%)~JsBL?!d2Tqic!ivmHK-PYDZE}aU-*=<*k%ZN^AKW>uM>NwCb}``qY#k zN04=)^u0ZUJV8zhum+$wr6ke|GM(7ZS8>-(s>IuPNxW@I+CiOh2&oKj5k&~rcCO^D zRPUux%c-7ia@Sy~u%?K!K=@ts9#5hlLHdzDrv~SPt;8%)Eszm?a5cwFA==Ow$O;YN z{9;0NptQGvPJefHIiyayl^AX?xl5G}BGVU--W;BjXWuc>4f(!IqS7ICHyOf-TicuU z_BHR;yb4eU*!S7>UfH~5liogT4+MI(5w&ix^#0jPF;wqs^@ReR?0R0d7ljn3>UMqq z;bTj=OOGAi^tsHIWiz52fVhc=Y*^pT>vm6s*TmQJ0p70ee?6Vvw2c!JdKO^4ade<- zA%lWa7z?|;FYBc5UN_5MJb*?5f#v$|LZ&+57w@vT`b4Z#so2hZg58k3v&UCEdszozjUXg;QGE@#)AUcg@_rwxB?zaJTyyMcl9 z^-vHBbJdx|*9eS^Ah4peRIF!2E=u2hfv`m{MLmS~hE@b22m3;3Ai*ZL@CBA51Q!4R z6)NsWW3SYpTLqb(?xybvvh#HIh=&`mGY>ikef{1s=10y)H5F#3bsg+G%&0Rx=}9RL z6|2+nC`Gf6t|VZ>!gx7|;Px@!>j|v|RxZ0BL=W9tpi!K}?mLHn%XR_xg-mQD9< zsNi^?D}>uYdBTOJaYQFoG|W6a^AjU^VHFGP>hX!(wg!b1(T$tDP!l_9RnOTcot(A@ zcpZ0H&RHl31%38MnaciR`+P3hf0bGFMQ0sQbm-QUP{VxDYiN#{?Ng{FYjhoo1JPN1 z#z0a$8c_iZWiHH|UrRypE<7Er%4dylN4k(S!JdG_C!;)(ZGi^fc5$#iVy}u)Yg+b9 zWaJ}(YxIKwZib-kw$xVI8uFv&i8Im=KScU2YjLQ`AQ6^r6BiP!KNHJmlDhR72H<`oWFKE<#7t zpm8uvAZ)gA9%`0n2D*9><^c#KG$~q!D!vtbTQSt4t)MrBclI?M6&}43bcR z5FCmof-$+7dr$=|eArjUEcBzn!adThnozW1l0vZ-j^cE)nu1W^2*3X%MKn0ypWSE- z0vrS$S$v@Yp}1bi*Kaa6D%`w*J+v$DkA60S8L)q~ulYv75`Ov$!DmMV>u@H)4$zz` z%3;pG)R?s3GL!S_jIdZ-n7(Z8Q2Ok7%zi&5{r(~Q#%eN<*i^@7nQ!FM8Q-mlSeJ3! zH7`zcWY$x09#ZABi9WJG#O0NT1%6QE;i-xb3lN)E_E{vk1?dZY7ca&ZToB=TgIw z=pP>C6TAINI5n5-M#=psprFnd6CuQY0TPY!ROah*_ktM$TyXHcGSBuVmvt z0(6OCro!sC1pUN%7QeNcZ=)J!+^(ifuTj_XvtBcug3odJA0}N{b35YQFE=CBTp=BH z`R9P&=8BD33+XGzUQtI^(idihZ}fQeO7J>`rg#k`IiuyzKP^_pF5U$NjO|oQz3?sx zlhppK0F&YfDx7*#%sH~zzGBH}9|JBQ{kiDdk!s=wdT5j%MV#E&B!%pb6$_j~=fLgZ zBR7EDSWh6nXN=t`cZ@DJg77+rPLIYdmKrRgJcJdV&B4u{D+ma*6gxL^E_P|uP}C}- zm=xVNe<&Ij6IVt3htsADl+mQMUqmKO^KZ0Uq780Ab8V|Qz~<+x^7-ro3u7edIS+D< zNaQUWL`#lPk95h?tzk_p5LjJU9A0Hj@$^h_I0{(NW$$K&ew^DV%~Dn6LKb4as;Sv0 z=OV7FW<3QUQZ|9=+)hDesY@#cMc-}U+XlYSIoef=n-1-ugj1sE!Uq?-c?hqsz@hvz z+X|pRm5zcw`@?i!d?2JpQNsBMB|7ef593o|$`^6b6yy`rH{rVPqj&9j5Nouy=Za zLA#5iUuMcG{@E@)lG67wqs}6UI7G24ey*EuS=8lMuIUEXJm2g5q!yo~T}+<$0yJ@W znX2S{3NkXMJ>KWtYoH^Q6%b;|P#PohViV=&f{1!yS(O;uv#E^vje+@r?E97j2Q2s5 z$ArKD3387kR(89UeZ)gfID;m_U&Dg-1<_&pb|eM_BbW!a-`P{krp0?L%{%NKIi~ zr5sBvvF6P|3WVF~{jzMuz$xYAFgrK+LDu~q2yEQ03kzA>E~cVbL+0)3D0JK!v69I# zkBDJKP0d3jsz#Lip^=lPfRR-zm2gz7YSi@tJP{`vT@Gw~ycaS0)`->u4NRRRIAvNn zMNb!xC?eQK0@gH0GADv|f}lBg$BU38o$LWYZ6&U07QlGdLGuwE`QiA>9xyTg<6ZbP zcjbM&sP4UX*a>JYT$lZnDT+R?<)N#&lu;1M4uDDyluTN5a7I0?gH}J|U=e$yYlkQ} z(8$+|d4Vte_D*zcy*~r z^`&2<$%XakODyf<1^t4g_Uptp!VjJ+y2)1qLoai`pX~^WuVM$q2TkX6e?-pejdEG5 zPdknV7m;m$^57DA(BFRMl~025`qfWjd-{L;vHMuar>j?#2|lmRwD&)7`K{u+`!8J@ z59kqAm?TRQVg(`B1+3P-7fWzGBug+k0hPRNtDWpqoKVqE3X2d$ooL40rGHse;yI@P z!ebV+jbUZH#(UF-(gZ!|7)tK};K4_jO?y1A8jdQEO7$o|I=?|R=2y^D?JOQ)Z&!Na z9YHB8objVrmjwsjjQtL97(R-99ti+3;pWvPsD~%mR*;)#M_@&33j&MBlbdo*j!gk0 zvuA6`wIvPU^MnC?dxB0|X(glJ}?=xk^F zOdEO~YK0z8eW>QiUSmiH)05ny8`IvJ1)a3M52IcXW(SO?$84zOvXINkVqtgG+GbdtC#9lb_ zry2c6Rp#Ux?gD440o_E6R!^yD3|Yshu6GKStMv{ORJqYnaRh7UZS~FD2aIZAZ-1x*nxuWFnL!k%A2RRMprnhwc%`T4yh<}8Jd9=o?`1Tf6 zF>PJoH&D(+jpnOz!e_A6b)QAFLhDq8N@XES96Dqz`fS1oT^S2lbh<{I7ZxlH6`rTD ziu=68AcygB>nlEYp~ATT58#$njuOl`8wu=zq2_mDis^Oe>o5?`>|Lf zgY#55hp#PdkaAvbSNF0|baM0gn<+T|++BfTV-)T@qKuoctz&zg#>`;}y?O-hI42Qvu3bf@P&MNHm3xd_BFMk3}k-(ai(;3w1hW z|85_0y}hzd*VI9HX|Z%qu@t-{blmQ#6b96f%?fQiFpC-VSiNyymGA)omM{og8V1tK z)QT=yl|qf&1{$^y803)cnfZpWiWt4NzCqJfkD3Nu3~oriA>**mHE;kWHg?-sp0Qvw z3K_Si`W-TEt(G zTdqS6^mwqRaWrGOY6JRa^lb!!@;bY8YNZf z4r>!hlMrCaxeDqvq^6*QPbmXX){we^WCa0i^n#%wEBhg74(TD=dbk!uGpvl;fnH-; zhPCx_XsYTr)wd^kAJ$00mMQ(RHU9pZtO#rX%LmmTmjBO2d}_n6JyJ*@|{Hhium zBGa-dix8Eci($p;P9?1LMg^Sez5*LNyW0VQV<&GE4qCJqyWk1 z#hc6Sd&s|`7rfo-leY7kPx{WPee@<{R5#w_UNN@h9zyuKzM#PQIRW{td92CZ@P1R2 zu?e7|paw;4dY?pWzP#ivLfr2xFg2VaBKHT>YqK=FnO@qiO7r0r9J;zIZ)ey# zc$K>CAdkP#`6XEJ=7jVe0U#uVkx)plmSO@U=tjC%t5>=xKxHBj0c7>0eJT$Msyms% z&B2)qDaSp_;D4JeR26cR!Ad8p>2tI@>h^4AQ14gmqW9ne*ZU&GI0nILeu}slLY%y7 z3ve?_KK^{({24vQ{Q$HxsX0nt8YA)1?CWT}?h?m9!M)>ak?2j8jlz=q_ErB*>?Yj` zpnj`X3(B^QyCKqEWX1ZA%VXX(I_~q)_{9Xzo+K~ebE|XmPOG9LymcAh>eo)ksJwR^ z2skPlm0B9uC@l99q%3Oud7eE63LTQg$JqXYnR~FPGTFG0KvJQFvy~buW1cMnjh79D zLNWICUwYzG{rrJTr7SE|s)Rw=pBq@#p)pGxrzE15u*Y+{sxqC2usd)}+r`asbGGo` zL(||1cz%PaIzL~R)(*VfBz1ie4y$YIveerqNhooW+8JtFSLb__WP| zhTs5=#7~nW(V%{L46km4$jlXQQ&#ON@j%)&{?TIY?BiDPLGeN+5pX z2B2Y0i^XZtfUzBqL3uV8@4}CwvQ9b=nfr{w;F*AUl=~6~(b1V*N-c|XNIRWcSU06B zN9BH-fdR?DKzyBLFlD#|pG)N=TS(X!48Xn{?vma5;p>*BHEa0(U{7qH&o^fRA9)Vg zP+4h!edAN(Yk>O-*dW@4zjGu&v^L=6%gyW2Y<_tX%t6a;ssM2GZ-7IcVUC<8zZ1f- zr)}|NL3Z|HO`#^5C9#FjJ(N71<>7m5JZ<;x#RjQn{;|@h2-41oy*$Oq}dkn+B2j%@V3Pj;U7NO zWPt^C&c1jXJco2LsjaEeWnmU6{xZA~Fe;J3#k9DZ8XY$%U}Xt3#dYjd0I3UQAGEUCWj@H}=6N>z zy|+mpY+knc0n#=93HcPA>Atep^|XQlq!Ou6C0yXCBr4ag9gYQnT{!_u9(}UgIyRMe zMPWV$T5ZbIn5cu;JSH3iMpA#_hO&n~{~nnfsa>**(pd7Sq}*rMl3HF(?1kBv&p?0r#0CZaqG#k#M7yJ|z?8#=FAN%rjr!<)aC5%{D|hG#(yxG?!=*^?TsNMEecfO9r5%_6@5UU9Qkl4UdUc} z{X^M9&Y6RpxE2R|Bx2Z;6Ci|+9pOw6KZVi5JVJs1{Ie)}8wiK<^R3xWs>QqTS8D%| zNYM_2ZwCC7Gshd{{Jk*e$QRDU)E%DT_8%`=v8eUbDJzP#UR-n9{ZoRHZD+(dIZ`0p zd=p-X>w>u4=pa%TPK4itD~S{6&TfCLO;9?#kJd#+m3YnfAl!)a^osWKWJvhzk#{&C zJ1>%0WIKF!LV4VIywtXO^ug$Abi8u+FFQcz&6&Q7Mu`+)lgau`yG_B&_sO5p;vU0Y zC_g3$zwTxA@o?O)y5Gbw`RHd0VI+&7`qhV?{s!39b)q z7R4oObz*GhzTwE1q#H@O)6hlV^;ioiXUwNhs7AhUB$1Bq$B}XUct(AQ0#;0!{_T+( zH&JWQYZ3Jv9?R);4xWVXK3+?D{Xei2*MGv#k|65;!dpXXY<^rspIvzwub-;9Q@xk{RCyjL<#(ibNp z@HO5wHj1g;n8_cyN2OrHJrWP>3fYl$c$ zRy-zlZ1vpoIQ7A;)!BOuk`SF_?&japvV4Ee;|6l`eip6nm>wwQE&3^Rt+{CaZ=2`p zBq2!>a51MU;b`&s^}7enm9h|Y zz61H_v+r#9*%g35w2Z=;>}rLDJ?t@YV01EY(pyb<41-+KZ^zjJIN33;14wkAAi(Cr zQicv>Hayp7^}OOv_0b?+&{1{g%&^*rtI;rWM2-1&tg?!77%Le#MpItdvjwsR&&mcc zNdoPpoBx|9=25#ky)IdeSLd$opMQjV9R#Jj?sW&W`woTVbW_fvzSme&iL+!;I)VqQJ zr!C8+$fFkU|C+-!A)6Q&P>-LYZnJrUU0KULOg)3+-Q7BEV|F%(lVX>mRUUz8=+j1Q zC8h+b#&voy*J7(M(^my8dwW}mp_4bWN3cccPOp?X*=A7<8=&2TgW-VQ+nADRs9ByV zxGhhHfa{5FUM+_w*w*Z9t9qX&V0kq>@oeQLcy7dWMq55K9~kymS`v5SyRiLxYq0n( z+*fUm#t9;aaRc)abA!?GYG5@CuMSA{%I#napP&sb6dL>h)*{er9>S$q1Bkl5u&}eO z%37IFj)URWUvp;d%xFGzkPz6keI*4eI>^vD;aaZXT)Ar-0Mt2mB6$1GdeCY`=H1)f z1DbLO&;YmxMG3HV>Y=ABabC_r(gXQaGgByzvCPz&PzftuieY6DQ>T(Qh^j*PAs?o2 z2p?Inz~N9F9x;w&WQ^|(xsctqjaH7|rx`Ht^RQj8V5Fy-SDTiZ{HRc z2jh}AEvG~6zRimPxp82RiuHNw@Rp6`3Iwa%ILu=?ib2Mq#gPXj*t!1W?-0YvxXc)t zT4ki&;Hp7)DHA*abH~gjq&NTi=;kkadMiIY!kPltDZCFK)>FDEDvZ08J;AoR&|7Kv zo~kwSzwTJqsCXJ`_G)l--jogV^6OPoe)rVwjKhcgzJeOfodEgPFj4s$`OES}K^&8g z3^H49S=gxO_XLuszbA?Cy=McTqGhA2d9S_<)zRdu0Pqgl6jSqB8Q~1>455ik-znE- zBf|y)U5@z>_yHrQ6AZ(MHe0@vPHu9ap{#i=cgjKg-s-0dCxq+#tbkXzzPn*-jD9ID zctZVCp$P(v6|I**39B^bSvaQ?2V2X^;;KT07OOfw+R?D#eh`?wo+dLbLPf6CH9BBps)-+!L<3 zE9gs!t#!_XDpb@AvjeH)F$5jPlIxkVXS~vi_%KTRGznGG5e>V2w!Yovz(_eb+&}s~s_$ zZBZl*Y8eeF%9g`sj>TP3X{?K~i_#I<$S zKH>l%W9V4Xt@MQ_ORp(TL-d3NS4&_7fP))-9_?Z1N{AH|-N1s`h(76j`m26gNpw9M zW+8^8p?&mbs@Ka&q+~F}=1*06J)&QPnw!GA?}ljpFYB-XzxaDeHEQj@HHxbd&QC z9k;z+4o>c*T;V^W@Dr}>%CWa>In&G)XS+4nz5+SEzi;J(JX?d;0Wr*_rh_7<$=95oAlE9%Yjol1HWQAN28x33_pw{T z3#HKl!Un5gXdi`grjS{s|EY_m8PpLMzGI^AX7CXTy)J7e@H0suvS+^h`!+9FJm{4q zB|d~f%HL%kFeYf0u0HM&IzwVe@+)%Vz(2xn@C1=7^-gZf@a>ULm)}iM{Hp}JHtgZ| z(%fP-2hT}vttpeuW1Ws}^pMIfzj&ZLEu`_EEfIZaC(q??(c))(nHzQ69=_2IHA8l3 z=)iZLw{+zHa-2=68dA?i)4XdOetv|3Z)&c$*le$$fRQ|XHQ7~4Rq&HbD<1tXc_DJ<%R|ITk9H(qxxT3I5>*-KuU`{!^6eUaQX@`3O|nKAB+>Uqo_Mz= zFQ_7g*-^LABFWF9|CdF=r|4#{)KBwEjsQajGgOD|Cw^Ja6_e7)*cZlnI+uE3 z&!SYVrICrsaVLMCSUq%y@s4@*sa^o~hBl9EBzz&Rz+4F%n@4UnmGKq)^2X?zu*^bu z5FLaIKkGohuee+C2awP-+JD9Ub{l`-{jApsI~?$a;$RoX1j)-&=5<_Q^iXflRIU4> zQg*j#aH{M6C_MBn-<|||I5tId0*BN>7XvQOxXjDwd6gtwP=>#-8M_opftF%FWAN=~ z98E)obfauu1$aCmUU@ylxMd6W`qi%B_p#3shi>1|5}T3==fSB(wKN_@4Ks-iBsNJxKuS?%&06UvL2{vq$^ z;Y!JS$hGRx>cFfD+&J-k+h(DHs= z4>Ec+Cuck~s+>rMH<5Q9u1uVeOya64TuPhLjcM~KUDwtj{Br-AZm!!fK zG{ezV^YNL|g2-&d16A7jfy1En`9`CXsvJQdQzGXZ#kS$AW}%!#K8O{;EyB4~jY zCu62biHxW$q!l?6G&ndmIuN*)9qS<9`qCXcO6z@B7S5VrF=1?C7HXs*c?>IJWssY8 zPQJ-&D_HVovagA3G!?0NfS$c`41Auni7%#|qKWyNZr&WDd2%tL$2Lz+7Iwv538d(P zk7%a9(USc+)Q__6vR&uAlKb~B4~VNttBDI(ehB2RIM;KIisw<1^CzTzGhI9Qh$kUQ z@Jp6J5~_(0^7r!(%0fdWf~;QzNrdJc_j_y!=K)6&pAszhQ*R&kJ@@F~l=xHiTWI<% zJiPc>Q)N(InXoJ?;%pLuh;!jdkXXjVL|~N<4xF7wBV35AXZhk>IG*Q}CzWz+!_MEB zZj__9a&umxMI;v<#_3IZ+(o8@g{sl(M!$JU1g{9ZI73A_cbQUnq9=Qps8y|Y9LAGH z&FAomKPo9g;;M>AqCdcrX68@&(0NVIiKIgZ#}k_CC4xhgco^&q3=zxdSNgqVML{?W zqpNDsuZ{HbUAO31z1X%QTt`VhM-d7uC39giFM=8oqRRa?HH_q&bWrB2WFin{=|jbw z#uH<{FdQ5`i&c*xdVHdg78y}e5)mo*Re})1cP)mqZq^qb1F_t3ZvD&fdY2wg!|BKO zUNd1~ylO;*fpIx?LPk9uLx$MX-Q2Ml_XKwg4vVE=m?JtoPyv!IEH75Uunun)hJ6)= zqO4w>o12y`qLz%V%&x4tvnVCS^BRST!p7C8T_DH~&O~RUNUDKDk#sL?cF9*KK;RKA zX+?vqTpyr*5T%+vGI7zV`ca^LeOXCGsHB5yGIrOTjrsTux)zBlR%ht)1ZCe?`Fr+! zm#~%Fw1By)g4T{zVdaPwU9rmS?Y;ff_NJ!o?$`o68@tsFBqVGICFe0_l+b6XY6jzX z6Nu||K*!w9UdZ@5ecz2>`uc7RY+A{<(rNZxySKx-uS=xX#_J zx>t47Rq`O+b@cD;(lkIshyw>O&2Sfif=~!Dx(rhIAzVT7VYy6BM@h9=tst~v6pnB} z(yqir-_G5c!YO*Jd-59J!_g?up$nenSEUjzE_&JbvV!=tlv*TNks4<=u+Usl$9YiKUAOv3Wgs)BTT+xs_gPN^z7>2W)W?ESy_HI;;b)PvF5pa zBZPMB#OqY}v{+-YM_D(dTlU@F&+(Y%a&)=vXZ;wT)y!x*R$DtWik|crjq!G~kY46xlUtaJ;Ex7&T#uNfxrJd90D}<{A3RnK2#0(lotkF9nct z?8x7Zx~_RM{EgUWUO0`W>YKMSjpyk>^}q+F?Ubo`NfG&cRBbQlo^;to3zB(@*`b^A z0;I{?6v|$l%qv=uU2{pY^6I{<1N}rbts$v75b12%AGuEW5A~Uz5k$$dWD((6uaHt8 zQHC|Ux`WfzZ_;a?)y)!ybw=0ciErEmW&nDRVMZ|J2JFw8sHRyBZSG0C z%a54$?K7M!-*8D+y=v6%)iphp;@R5Mlrf8($oKK54F>-6L=iVAU*+Mmq3r|(2;{y- z{K$+I;xtVr5N)Hq!(jGn-7>T6oRr>%bz7yiLdoxx-LtDO^?y!1?sXho8p)R*;!oWu z{dHFaE}6H*X zYpKWTl6F(U63DPK3JC|pM`WWPBHV_j-60&1{Ntlk()4=I4Rjk=Y+zU!1Yxt)CL~-T zGx=7#Le(E?P-nd>H~ISciHuq5x*{IwHPsj*=)yooh7}C5U;o{a_s^9W-WR2v2|rHn zpzbGL#0O_cXYUBA;L>H0k_9EipL!ltGB=4gv9{c@j~Ro|d|gESpdRY8enooSs>KZN zQ;pTv|M>P-_?Td{{D-=`w?_R$_+;-%kiuXyhk)(X+}zwz`t*vqWEMD*=B zdONp5M(0Kzj=j}*?o9nD;(qG0Z~wSn-FV8Iv3ONo`ik|;y#tKTaAD>jiskGngt6)U z9`yV~ELk9leE*7|9kZnw!T5`B+cEvegih(j*F`^nKlk0QwTUsX;t+p|L~nsGg02uF z^$L5`abPRD9lPQqdnenzBgmA~WCX5>OIX%SSqS6`&6_lUYOqg9FR}>&#U><#tq8gP zG*_!USj&O_s4M@(!S5Ws#>WxEY6xp;V1rwtgQ|W=@A>YrrvKMztCpWTU#DKWZT3d! zT9-gR6|3?4z~Ku<|6w)%!yz@&2Z#NLmQ?wO7Is=a_JLL%^f}4bsXp|9uNLVI{^2$f_7dCe zXX$HW{)2ta?8qctbRum}*)uz2R}E;tGk2{ypgmViQjY7X5ydmtk(lIqkFnp@Sser| zg_hu5`1+vU;6!AfWdY!zr43t+OQ+^&Z33`WSemJvvK7i86NYLs z(f~WQ4NCWLWdAy!Fy3koEv-0RvI0P@cxVU$KGL69dWxr!t!i3v)jy#hXv~tc!Ej(K zCj!0|cz@@()1NT-vhWgAViMaUBQ z_0dsgb5y;sq@v9}ZaRHS!wwdO)Ovk$lAJiubjuq}3>lwB2l1L*&xKROp2xNBQ`w&O zt`IcQ`&KQ#y*x?Z+^h%0n6gFBmm|zc`~iUm)f3ii&QA&bgX!ybGh7U7e^`iYgndk+ zm+a1&T*uhmI+BLdtyFeLE;`cgUp>?58K=h1_w)M4E{xDKdJX_ymY1inqoX@~l1q=C zG|)^gKYQ^_#HC~EnXXf(TytSMrVFt%P>MFyDmKM%Qeqa$%c9vSyX~nIEhDk%VFqtq zLY&namw-wn{4C%PqF44B2r|NQykO>l+SItkG4foe`)t9zWhNC>^%W(_&*wIYz9T}H zM+K4*0z|8g-rJfV@B?BtBm39rZ2|lD*DQGXsr%FU;h~|u=U?%9lAeJsDBGLZinR}$ zgq5DCc$Rz>eyCR$Vr?Sz;$8S&Qk0cJFBFICq>%a}y_*YJEvso}vcN7>(V_qncYRQ^ z*9u`tsZd<>92-yG9GjI|Mxnq;1%}D11G$?aD^%Z)4FGGT}i=WGO*GX>cY|Sn{Xj( z&|S&f8?s%#%PO@DI^6PTPA-`flo`<@)HvOP6lB)%VOXLb4zan;Kwcmc83D+#EN7hK z1S0D7@E`TsewTt^$PW3hW5w#F97|UtC}#Pu7`%fnGa2=YSa_hu9~Hs~n{>Kbjb`^l zXBD_7!}~p7>wm@HuY&g=kOaV$m(YC2S7-V0eDeLTK1Z$~A(_NQTkdU^g!7rl%Gltf0Z?Yh9yOxC_86X}>s;a1=t%b2BS zK7~@ufI{o!SA;Ddxm*qbLI@mguE!R?fzAhOan8ixPe^C(pOQ9oU#w zeD1|`ES{SQdzJ#7tiLTy$(|tmk7AC|I@2XklT!1t>1pd{#riil0YYSe(avA#JPUzx>R3Q}t8xrfiTp z;F<UkDoXuMmrvl%Yr51aCTMXcfSWR#2$%Jh}L zf`P)ZhfNqE$Wc>I-T=nFg*k7}sM@&g07*~>K%Gz>ZaHBP*9w5OM1}?+gV|#7qgimpcANTW#T8S@X7uo=2U?l1wXS{6>BuQkvYGAVk&VoN1$t?4B(_46x zsDooOtoYH%hC`_xq?^HZHe(GxZQ0Yp#|yB6Wgv{Kh{2oCHTV0oPW;ySH^pD(ga5K* z8*SN7#*iF*GA{+EA!%?aUMaZTVB@1@bfWnEUt)AC{!8om?Jx7&p6q)@z%MW=fFztn*I3=FE>oZg9W_|KKcTdtUCLs+ZZ z<#v^8NIF!IFg#Qe?VC#w=h@3ZJmcp+v~*wCs13noQTy~O)-UqasFXz~(rUr($QJJF z@a=5ks^N5b2Gd=h>WYG~nrf)-c28UeL!UII8ZdIet?~ujw)Zlk=Z{!%$d?b{UP8jrpkx31 zP6#IO{Bf=5=^p9KXE?(PM^K`jd&Q6LcV(^?w+Tl zP8xeM>z26C{4kq56xZHchCs$Tt{fhgdU9ORu@QUX`t(0u;kkXE6SU**@ukRO{N5h&y5#Q zp!uu28I}u!qRvmz4eU+`n^TKh7@3+H$+hebt_5)~gY7pab*vc|&JOvUa_&O<$>%~O z+fR-3B+?8R;31nve*!>)!d7Qz+g+i6H36gad`N8nVh6nAJOC*uJi!79xo#qEBpqw* zpGXH^t?mDZfxZ16%BzEu{pGkSiYR#&B*-7R{0Z-d+d9< z@?C1?UfI=HMK0UxNPV~R={}F+gjJWTaqW(W^5mfE0dmYQu`+2N*XhRJ7}l^RyU8jg z!re0KB|W?;Ua!^aJ+=Ng!EGd8IjG&UVetcB&^P?G`%8U$w1dk05jVndz5buHn_&GV ztE?L)O06dMKS5AUqCohYWQ3$dj-ExK5+f+jmPS+h43o66N73hIz1XG0#lLP-Gpqmj-?Glo0;cy@&`dol8noOq2hzhY&Y_fOhstDv!l~3D% zRO<9)1}mI?Z2Py_9z!5PI(tiNXW=y-^Tcm#`YG!_=ZR7>nMfk*p(+T|n_9HK98Y7= zAwrZ}WMP3#?{|xuK!GCj$Goh|8A{Jx72L#MN+r{LmfcqKFftIMy0HQ zAx{52ws>5qgD@%Dkbk~SiIQL7N>aE1!y>_v!vo(;TfWZg;6bm{6T7|{SoBvGbRN9=;MK;IZ%#T?lB!B7th4Xtyye zmy5HMAU&BNhDeV!Lx6b=~ zG@>>I7LsOWfEX{BwADNp4)zG!bq9wVgrdns2f46E03b-O7a|GP{opWA4UQkGl?3tX z744~ie+In679W8BCERW7PW<&w)w)rSNBDKeM%C}v;UB#_UYsag9_1z`lA#E>9rO`y ziCy0vp8R*kp0KxYkHXg#Kf;r><{BRP72ju9d_As!%=_G^BCCv_|D~h^YLRvM_WMpq z0A3;V2ZnxNwAGwypB*H89NG~&U@MSWF~##k!^Uj`s|V#qxm6FuyA2c!ESuh0j;2xN zsM-m(2IvtiUJ5W|rBz;80Ica$Ri)gTmgaE8jciIE*6T(@`>Jg!iqb01@U>MSE-Q05 zcJ3Tb2fau(p;QmL{Q`48i8L^mMiawUC>yeVC)gd;T8GzlCyBxr7>kY~%tLo&`&EfF z#7R@KTY`HRS`AMKTrTB^hj-VduToh=Ry3tr(b}&rb$L56TrNAM8&)vU)}%H8pKsi4 zv{n*cYERW^?kQ;Ku6wngkC-*IuuZD1N~xXftC%NmNR< zwM;NTj6vMZ&($XZ9z3B^6>4N-HqCR+e6qeV`8Kf*b{5Y0?6<5Hb;R4r`o>>>YYm0Y ze+HyLP?o#97X5*Px8yIzoydLuJof}{alSso64l{P_3wzXWB>$Ei%=Z8MQ9e>G3u~( zeQOJyJu<4Jck;JIuv*MpC$(!`g@LRkKy35#ZKlr$Kq~y~O>xJ9uU<^7Mcm|i8q>?G z%32f+oC|He#pEA z|DxV-Y&(!F+VaS^%Y}ggh-oRX=LO9Vf&iniXiFyJoh3OV%XGQam+*6sTRi!JVasPW zh>2(@+M@#?jy{C2M=Cz=R}qe}fKes_fv|0Wmk{`QD5U2;ZLrQAE@Pcwn)GFhU}FW_+fFZVNG)A$51S zA;j~MoTno)-=qhBLBHfz{j9jBI9&b~f2|)NoN?+vfF5C)E+<_H=j!K9N%uxS=xl3U zaEhOx4nsgFH9%uQi(!uQM*#wv=4b=36)_M|hrb)K6*Ul_zBcb<>2 zDn#`Jnx>KL8R;sj$}`zXzOg{5f$UJyU<8B*0^DJoEj-@P(eQ)as;x+fjGXanWmrQ6 z*U&ONh2?HgCQemmQn0wZzly{Q*M{N8)mu zJ0T$?Td`>-)%f9Qr&VwIIdz#dYTljn(ZavKj6gx91rT~3o=9n``S433##?jjoTkwS z@!D=U#5V-2*?#%+JK&76w3)ZRk7h9hh_E0$M{-7cCpXwnZfqbRZy3JAAgr!7s>^>y zIh1?TU*#+)YAYsxK`yd;``J6ejpJeFwFhBh5l_~lYB9F(9@FyAXm(|xuK|FS-uvN= zg6LbKzDi-mYHw2j?zv_OG8&v2-DZ!lqv45vEJ^g3zv+Kt^v`L1A8Z`Px~Na)hS^aH zYo62r6c6|^GgqlqdFvMEomS=4c$%G;(#(tAg;5Hvik!E&G~{z@J}5i+d74=yYqB+A zoIA04&bw;@9tzq0uY=i6U4Kz~-m%=pHH|}7Jx#Ay4Q|pY`7a>=VxGIwU9}#}8w33n z+DnY8Kk?NmgfJPZpL?~HsCJNsV1N6-l;BQpsysw!e|nym0@%SsUr z%H8|?@%7;H;Z*AES=3arHj%q;u1)q-v9)l~(a$rvM!t!kW$Ms-rwB&UBnU2dBxqEl zI-n&?v-*1BM8}bqva>!a!RuiB zL9c|UdZ&4YZp}{bNZ*g&Jl=S}3fGS(x;6q+q4R>mQ*pXu+*})p_WYL#OQY;Xl)>EmrGN>C<;7TJB$r^%z|R*B#<5;SIhrkuD3iE2yePlyZ;MJC zCq^<)AMn3-DXOd090Z4fZiXVY04%C}v=+nuIUQG!D;+ufXI-_x-l(0YKLnjL2Sak0 z6XZH7ra>YBa#U80W-ekjH(9V3F$ksV1`Hzst@j>~;)j8hpm&XDw(p#f(Q9Go+c(@* zU5!`FZ6E5pH5m(k;l1mfwT4BD4nm@h%RW!}d|7nPzZZ@OeG@(SH{P>xh15ij_w^6z z$(%&0kn8>a2CGM+uh7%`!}SkI9&>!N!>*2ojBIGwwNdcCc6CBF;c_@!gT{(l!%S<7 zY=4@f`_b@08#lI^GoCvKO4dKlian^GK7HP4*n#ns)2C0@AB=stH(_3R`K5_t7s|@c zAG_yH{l71qaca!FDvRl!FW0Y6C5c9?BCTt#m!8uf7yJzbFX3=pwX z&gU0C1aao_8HeU_AV>)-=FAbpJKibD%Km;g+TRu?&6fLpoFaZebGfr~WP*Wb42$rh z35JXBDlP{4IXxOQj)hLt*LM}mWXxLL)V5ltOqRNjF~P($`SScGMmm>PRQfgpjLjt1 zEf21@DQNaeCQl#zFO17MGUPwO%npqjxq3l-e%n8mQ{+%t{@He3b?oX$R45}malvM7 zIz23eYGYY-)er*~y7Vh19$A=3K5JBd6n**R25>dr^OuGm^1} ziGtYwn3{S042G&x|BVFJ86?BI^2o48ho`5F`#mAe;GyI6XD0-f=6%-w(JPskW+ZHN z+B_RR_=nX=6Y~#Y&srE_cOzdRz5oUX)XJu!*i?}WUt4y{66Ei7TkJvo3A7;_k(V_XJ9q5 z+HX*2VtBGTI#`|zlWwrobe&ZQri1+c)^x3n=)D4B=1{f06eX#KAud}5>|M~_t{AFFw*$ttD}@*uT8$s zV+BD=Os+oO$h`W3icnu%odA9zv;&pL7ErHH7aTiKd(0c?y3CjFu-n*!%o+~({yljB zP|5mU7p{IPt1@(9Y)WBm1zJ&?Y^<>U&Az935tE941`D!6)2Fu}#i&uv-lUZugE%>3 zPfw#$tbSOpfOUAE2g40Z;4&ayRsG4U5ETdx_sv!5>;XF#I6bKH%LN;?f}eqyZG zNu*ktZ)+aI=sxGJ2tttrYh0W)LF><6Cd$J^yJJLA0h!aojM<@P<78&~(xA*_Oe`i( z)Xt97l2e-F2Z+O5r%LX=U<}==QgeNHCLYd6li6jsg^#^P-w@qm@yVq+2pBK!u9fn2 zRF92(sdsauXtMpwnn$BYD_Kd{gV-ctl2sHErGf0AO6nMmLLe)ooadl}nrS}DrAJ*; zEJV(Vi3;zOKZLTW7(cD|r{UgCznb%2t061UPJ0too1oJ+)N8xwF>}@@MAf`qs!#bC z6<+y4YzPPm&ddld$qdd3LZ#xQ50%nUA5-*7Z@;d|;1DMZBjj}kK-io~!J${$f~xn- z_Q(U;1`@WRs3IzfGs`+=xVfv#4W(k@|-R7?S%p_zkY6f$v^F!9JHmQUyk^^Coy zm_S)Gm~NM&<5)C1I=sB3y*_5N>efWDpp}K>cvHu^9$?(8EMLcu3-lICisKvk_YS~v z`6KkvfZE#+6fj>!d$Rb>dTlwLJuM^J9Uh)A!_@RWK-a4Q>u?xl%nqT`A{1KCv8X|vLPJw1hVT3!UzZDweUUBZ zDguxm@!QV3OvV{1sVkpIU%83N!(J06aU-e~cU3uxefu0yenB&|C3`}5wXMs4R2aLL_-&uf%{hjf zmm<^5{ps56!JQr8dr<)z@5hh5y~SSP9L++p_bR`Kf9w-WOro$G zU3&15gh5suCP!8l5^Yu1rLBJ^x-gT7q97p*B~ej%Of*`PNgk3B&{T=VS)nkTD!|7T zcy{}E`$l_m?%z|N`Gu_*p0#5DPWBA!+!L8hd;vd)Ul2Xd*~7>S%AG~!Qg4GPf&&{{ zMdNT@E#C0obg|{tvdW*AOZmn3cIOfE;c-!`Q>};H+k*#v){HP!n3Hr%7Knm&FuL5d zNM2CQr!6^2UdGo4azKAyzP0Mg3M<>XnbxqCV{Jcnir6}3#ax2_geTyK?GI4lN8_{- zPaV_5vie33J$)hmgfC&NpqE;*RL5^-6qHnD7bY%DF{bA9ZfCujMu>>bD&Qp5kpfd| z*C(JbN}REw_Og%xNy*i}_a`x$_57tA5C>i1lH+&_6S6_x7|gWbk4s$Pi#TDUTO%>e zunnrh^0a{O$5?E*TY?}C`XLOeg8UGLy$S+xHl0Ji6^&1(8WqqRZQ#V%xl`9%UQ>_G zlSS0uvf%|)Nx!syt%(XzK_PVsJ;(mXV6(u?e32YnThSh_Z(F^3^NnM?l*&u9s;RR} zCMII_|)_`c3|8(hWo=;-N@xVHBs-K%k!#@MnLi#fVHuF+9YipdVk3|rP_V@kd3 z4ZOps(daa0p*tWebopW}4(Tlv;h~RHiEXB_w+ZiOiS33qzf8b!BGM8?qo_iL^Zo9Q zaohTt+C%8GRlsLk>2h~@&rSg4MPMk3P(;YtJB$Ec6hH?;<6(5``JsP5>JABSi*lIX%xSCLA+5Op(WqGl_pQ?u5W8mO7)YxVRLcqxkYZ;a0_71({|4snh3SUm2*gBNnuN>9s~;@omQDAXC&a_EFVQ8SZ-F(Pootuf?Tn{KJE` zzmhe;VGh_eZ|TQ8;f>NhL(xcaVI2$XO3BNcV3SYsMlySnR+GMjUS0)F?CAXjt3;IG zQTyZWjVMY%YzS92%4C#pJv-F{wax5ix7}s5$nl1?tyVqG7RKn(-t~r0nkYI}02zP- ziNlRzLC8Ll1OR=8Xf~19la8vc7LqQH&f3=$0G<<$51j4StA@A)-cC)Ekr0A7}2vd z^k`MI>O@=O^)LQwaZON_#e5Zj7{dbNkcxlQ3^Hx`Q&9E6Jqjmw!0O*UKIw!K5;pTG zgja!g5qWG;*hZTN-t%)HgD|qLO080Db{#T32S@VK=wMkp50!~Q> zt;e~kENxtT=QBf5Kt+b^@&b@&HNmp3?rLR^UNNAk5>gr-HfxA;b0jFnZODP#LpguG z-ZJ^GE`{qUuaVwR>OtI(=X7tt~Ri1^;kl=x$C%f)-+1ZZ3H-_WfCl(AzK*E*kjV)E zJ1_Kd;8k+>3eO)1w&=W)33{N~Ce$=79sg9u*Sd4sqyy@kyOx!^Bs;Fs$HrotV_f+85i3ndLR*q0(xlcD-k3dokaGarrLj-ky_fjoMoRBr{(QFyeXws|ub{ zTn#BuqmNJk<8OXAniM(6`02%4dQ!)rBFE1B7)MKhhp1jNbH~?l=;_X#8-sU-p>X0Q$$$ zth66cnJwXj78&}(%VovN@q#e1e$i{WSf9T*y){7s`kWloalapqD|Pc`rd@Ez#BK()_w*A$@soW)uL@;$8Swv)SV<;lL~2;%dVv zYsUl$;V{gijphlJSy?Z|*m(EidGlBaZfYH;$i6%X$G{jcQHfmA`fNNM8*v?>pdQJY z8k5K&aI5j#UN~jY8=biRTjO7M5ItDv#sU{(JA<4QXEX&laCB~z;@{o^t_~p<``!Dm zwyXDPR3a7LO@7a)YqU!$LRPXajIvEwc_Bj>*neQPs7rO(eMh z#kO)%)13X7e5@aXm2;1jAbUC_H9sPEdC*T(D-@wMGqIcp&3xqZEQr>ZAy^NcSY)^& z3Ba@<+Fw@HG;ulRgT+9HLldFyD=}sPNY8&HL_$#9ML6{UL}q#WzU9Yj4dh;m zr<3SdBCduisiBeGPh&DlwHDwfB>MAI_KT!5U#7^Vj3ZQU^|1Z?fr18&r?G{*ZMNOQ zH1>E9R)vw>_hc9qe@^hye&!KHF&QB$$m2*HaqrszRK{h0 zhu~(wBCWe}pZVS)eE_Ic|aV*B_VG_=^5mHqFI# zb!4;-Zv*Z4aUj?7&6JK@<`##cQgRl_TyilI@GlbF`l)mHhBE%Y{DePWKWzE_Q8Ki! zc;mIaWxSFTYv1o|F;IWLd7?1!O%NxO{Qms?X%`{@&+=U{6P%yGDYMHSVH?&zlG$xj zom0w}Ooq!9pwd}pD$im0s2xyEAV5$iT+RFZK8A>BF0nU;1zsmC4+! z)tRz}nQ^SKCJTN!tl^-GQ=T)Qr)2gu>_fkB`)aJ*-p~jtp<e?{BSN{oHP$}v zFH7grJ(kVWBqS_Y#sYv4y}w;A`}8k(*CXulKHIu$kq!vAS*+~kpKHOUV^_;Lehg!~ z@V}hyWuuErY&P(5Vr%QcvqvT@DR$PL{qlfKJ;3wb&Ny>q=9rYCT2feA zc97W^9GVf@@QlLX=X+&0XX_N$^=wRVT}5zt+_Fev?jpuLS?^@h1l@WV*rDx~cZgAj z6d7Z1;z2i}?M22LY5Q_m35zcxOE}?vpsWvT6R|cdd7wXlaBL6-=gDkAT4IjLv68WY zu`=IL>n|XqWP!i4pdPXq6b#5iZIRCi>j=*xQQJQmVZT^#9yt#m<^*qM98~u3$1)Dy za(#YA;VSC8%B)HZh4^OCw_e zx~Te)Xijb8n#ivMCgb<~C6?j3;s<1}Nd??(|GpX&it&vaVpMsQ-@8V`?)W}jDBgwl z_5ZdhMz?A(L39Bec{4uFzla$fJWcJ>vrfY_OC>)G$K8NTB^q9_fRPJr1B{)_=(S8> z*YOFRdNu6xTtq*~j7doS04NV-vbzt^R}1Q*Y-tcV^dkbCySTj^L|M(!ciRVL*UYj0IZ@!NwzL?YCM8`{O}}OuP&D@uG888NQlK24a*HEe=hKBI->`x7hx8#$^Pl`aC92cng2{{?> z1>6hw3de*e<34PwKmND?0l=g#5Dn!26)eeC>wpqS5}@b}ZOVy^bo*q)w?~!MAGmEX z$|+M@8RY;2@DM@N6i-Z<+#)v*=&&9C)CKH!uZ((Jv37S|JWb=drCx^}>mCZMqE`hD zb&u(=^;g`$%A`)y6SjH@r*xDZa`D~D=!m}3J0Ue^)SRVg% z_Y{9zKviPPZei@Sq}!N$Ca>z!NJ`FkTvmE)r-e<2wRN{ z$5vwQm8K_-Ho~px#E|W;RfUCsFA=c_z(ui5gfD0|!ZYoctcYm+Ap55ALyS7DW(BV} z`_O3LGx+02k9Kvw^Ulhus_4`diWrpLyH~ZRq>hh-0;miyE^hbic z&LWWv;GRgz;&?xqPHQg=XZg2-sJt>vKmXvQ|eA=j=U7D6%3 z4ZqM^9gcg?uz*4^2DpZjlI2f@SLMG&SYij(H_b|+l+31*YIEEl1L)Xm%BrnY2A|1C z_@Xe1=q)vqfW#0>~pwUDivl_gK#@{rZCh2Ts(dxSmCp16K}LN;;nq6#Qg*T6M_ z_xhM@57cT*9P?snfX%_SZJW|IojV(@m;q0I;@dL$?mcgA=y-v?olL4%`#?h62K6yw zlY}(uI7|vRVDNI~u`kLlW+5mgFeUkw0#;y|_>)quY6^iBz{gSvxQDA>Dq$s*iQ*{* zj8uIR!%85VZPC%e$*cob_LMUy&jNZTSs+0j1D;VBa?ityYj*E5 zz}L|=P#1IyyAey*vY(2{D0uD;RE5s|P5qnRp_y;}T1aSt!#conG(N>*J_;E^MJ@m&DxcEs&zHC*yP&3$f8k-a-aFMYF9 zK>ULeth?a+~0C61KKwsx_9u*ON^Rs zCuFNCOlmsc=0f=qu32B`sPl5T9SCf=Se zdSH7po4~^r9IiCrr~9>cBohufNaCL#Zh|{;J#Og9>!{NEC{Bp3$cs0^wht_vw~P(^ zZ%dpyr0&+EDV+nU6#eB32NbL+mp>gpy9^kUG=A6?uLi{xR!_TtyeHj;25)vUfh3rV zA1To>SVIx|BI*TrWFr7Fs;DEsB2K^#WMzfZb*F+K|Ig6wt&!6o?#yI#J6%on6XvZf zilbY(%6Gt(eDpL%IXK-b4bq@PTB{NhY9>b=+JJM(vqZlBEhk9wG;jUW9usf&IT0M|ARB5F$_bMGUDJA4!%lP;$*63zSGQeUf}*ohT9=Xpj(l3lvp~vtNpz9GO@B zQz;qBrDQWKN&T3aWbPz1;XTWHY@m^VY?FY@4m!Xhxq_O^Qls%c)h00pFac;=24yMQ z`^(lx-)GyKGnd3{E=s2Gu551q!a+FQC;QAb*;wyceRO3L*KZr;z4$9d<>XJ0r+?@s zO-+I()gF8UqP$*LvTgIVzc2*Exn|56ao(tFofy*AkHPk0TQm_<2WL!Ogle3~*#3j2 z>69VUxq=gn6GjJ9AU9tH5t^4h+(EcUxeG7RRe9FQtHHXO~sxpym~RMuuHEx^a**l9CL&qgQZ9y-^xR}(^a0MQ|}52LO}a#yQCcq zdRS#t^$jpz)lR|1kicgkp-1n!C=iu>tFo`Q6e?5BaN-r?si@%9*IpC#%W>mjV<1@9klU*4&ffhId=oy+$;>qmM8DvLmYY2G)YmN7oo3 zrPpnwQ2~KX{xtEwUF^&?Rf}F|)TE>@w&42)>?$_ZcDOE#n4e(!y4qRO`__cYrpIb3 zTgw*tMWbXJQ7(&TtfMhG&(|ER9ZK@#w3ViVMV&j7=q*TAYf4!jy7Yx_60%!Gn4UPl z&@bI=L3pVLP$Rj1H{?X7!RkvYya~_LJl;nr@ z{iOMrr*)uf@+o|~hi{4*NXYMsL^xeto$OV~<5jl#gJil{G|{RHPbsy*E%l-tOo_pl z!$ZS;E#yqe=mq?94R1UIv%y7goq$m2r1|Vi69K!8xSnROeM~UDkItBZEzECV#ACajdV}eI z;PUz@RveW&pLS8v)LzBte=YKrR5 z4kGGWl3MDpqUDwgWznaMmRITqZGa*NORpsdaxwU&d`xK-1V%Fg)5nH*);~=}Xgfg4 za6eq^M{^+Iso?Tw^1sE@N>xc7tZ^$FX!`r(R(n%&Z(S+OnXWF#9U1*`HpBji_`F1C zGNVmP1&D=j-p-Fy;}cZ&cVOAekl# z9!Z+dbKx)?oaY|Wow~8ChUa*+s$_o7k{dV6*RdtOWh$De!s{Az%T;4(Ohg!bdjTWMdjUT_(c0M}LTQCT$u(1G9lzYhvRDCo$vkY%e@6Q(( zAP^HX1}8){!2b*kZdb*9838Vs!p%Ye>xo^7^9hc~((n1olP(mZhH)D^H$#8f%6=13^aM*eT%?FJipESHYFq|e8|H=pI+ah*>r2JO>L2Hz89)s?XN073AvE{*FR^T-n`;3uIyu=!|-bWtF znyBL}su21S2Al@|wy8^FBu=E>+4*(P9YuQlIAunIw-jj~4$x^p&{;~&QG$+2NK92@aIQ&r$uztcamC zW1fBnxqTO>y6wFN>4xvmb^Drd=JSpam7Wa7wo5nFnf@avNFT*QM(RdCfm~(27M&eO zo|$d>!29kbv4fT^UT^zY9zKj>ck;~^BFckcRzCa?&$Eo6SY3EDc!T`WwU3Sq)aUV& zB4127sa{Sw6X~8CM;9M@ESb$smNbH{ossZWU&AwjpDopkL+s!tTbzF36m|+j(Gx#U zoCQmJF=m%53+j$qOsIsi0VQU)xQk^SPj$zOx%l@yXd8W4QSCmIzihkP9P^WHj2M_F zZ;w6_7ipXlSZK?vVM2uxA<=zTNd=igi zLCpiUm^R8>$!M!4yV>L2G#eVxDqCMteA~Titmilka=wp+q7W z0e*y%PH-VX+hxE`4|`3l@sW*HaPIlja5q+ipmsXK)`DaRk7s{1zhH=i)LNc@lFsCP z4t5#2EAP83KEK~B%XAF-FljXYE&P7&L1XjJIEPNrdIGsA_)s=43MSi&?VsZGnqM~% z#-Bi!BD;wdrKK1s0@c2irBl?FS=2KyewJg%sxcs@zx4^#%wsDSy@PL`9^h$tqCDuj z477fLk%MolR5JU{YSa(~RUf5!_^P`8~eq zj*R6+U!FyJHFt}2g@j9GSr|n^nW47Gy^rAO<^A6h$Ur7KzgcvrH#{U&V4eL?)f z1zqT&j0V^?RKr#k+8A~eiQVgAaFT-`JY_ z3y4MZnm-S}f1#*gqVT<7)_X_NxC}I&=oUv~n?Dz&CBbPV-@zO?D-kO7DvO?0M}qh( zc9=a0Wx* zfL2Jq`Mla4avwm19J!NPOlpO($vF}$Nc2)iK*ExZ^X3Q)OEX#Jh=xFo($?aaJo(?@ z8SEmwMdUp1zv8l5*4wAUI<=Coiu5gPl??;JQ6eb`ir0ZZ@`VX0vZaG>YXdb;_6~j$ z$twdI9|jjsB?~#?T~*&<9U7X_xZOq2&%gB|KEkbr)&oim@K?#Qi@euT`3A1~74;sB z1NbA#Qd1;m*yF4%kwb4-F&7Ea;FD3IO>bE#a}>CY=^BHIPx*&v9>=J8lM+}AJ&=;) zV{zdf;kdEBKSA2X2C;Pb%_p5$9CEjOFzP79;D-{mO$w<^E0C>fwEv#>+h|Z7Q8_l( z*GG9;yS>8o)2TuUbFZ|1*=hRMHx_%sP5uhR=Sqb0gL2s)tzj5-oL?!=k^9mOjWLn` z^ED0g=5uLsh~a){UiM6GAjHyVuu`2 z>#L5Jv3V;z#CzV<)*qBBg9r20^jWON@0+;JbX=c$+Jwx-Az%ck92Zi5O2_EdUUtN` zrEXs?e?Cg3?FHDy)~~!)`SskdHopa!3H3e{f9@%zS&qeMzoXo_pPk-0Kl&OtJYRdA zZhv+OP4zygQGM1jp4r;vzH9VO^kQLdr1gAg`FU&41rpFmc~=u^-01hy z9RB;)0jL5=D)q6S+Kk<*Hz{!ld9v8LHr~htfwzh{cXlW)xxYHi_aOiISVL6?3Z*BC zOAG+b#R%+%dN=Ih*bq!2N?6}=zBkt>Vw@A&q!2x<|Jq!S?pP3JltWK@zDHoKaF=4W ziW_lg5y8_iBSX`}-v*~Flg)(LC?qH+ESkjwSxfwAHLAzYPaGDJ>#Y{Iu*A#SSHPn( z=a6M9*Ts~QzT7PfXDn&AHN|359jvIOY^{`#S#8&-JEZk3N;Y)0D}1l%7%O~~Ey*Nc z2uIXLV|UgJwe_TsTEdHqig|d4T#&iaqBD=w!6CbcVV^;_SbZ-Re_UE&<)>Aq`mvx+ZVn?m zK6`c};sPgL_fLWxM4*0=v3sEIt233Aoz{i=Qa3kX8uA zV{ngm4~R^Zv&aL(J+mCHz2!%2Gb@F>6a0rVozjYH--dZl7#$exahw8&KK#r^8WXRn zV)3ImkIV$KJL0{KzJd+G!XGWM>x{wL6 zDtr`Dwjxy=09Gy%L{$D}&n8(>w*tPb_q)Wc~qKK?0ort=coJV7zO-qAE zrcfAamKwznsQn|A3$MsrCxa)$q?9rB(g{A2&0@U=GitQGjh zw-H`wF8k9Q+bUj6ORF_gVs+da+-gLw+=#o|zlk25@S+kGYW&9Vk*qn?wA}QT@+?cEpG#|UNRPb%YrAHvGw$mM_@b+&s$FDR?Udk9ZS81Fotp4iB zN!dQm$w1{K=Rq=OaWe$VA4#D!Vh*M$^T}*GCP{lN$Ga7n3`&1=GK zXP!eO<-BrmWcCVBk`1y=>xfc~6{MG_yC;7rc(Ex9NnjNXm0ZI?-p500i}esF*2|l` z#2rmhX~OVc<{KWWYDq@?Mv}Fvb9-Bzh<{A{7)2cMYn2Aix61p~=q(~#<|XqK{sI<; zGy_QF`v^p?LD~aXxS|Pj7JJRrX@%ya3?bF^Q@)WGx|`OOusR&=ngMm|q``|fxP+23 zA}?^<%p))Q;tt61s!(OK6w##)B8?KBp-dnJ$pnG)k}mbZI{&ib)GlXC32Ym2MoGkR zM?xeqO?p2KTe&#hE}lM0@C9l#@A{`;%ftpcr%dw5;IWwIRI9QanJ*F*t^hp%sgT-J z;!@#w?GE?W!!CXetr3)IPoS;7Iws#BlqbV6| z$7k=L{ViHbV!022doU}Y=pJR1DMb5kJY~RpMGvYleoO=Lk0YL#u6TDdqZSk)(K5rZ zy4LbICM0$v8iz)thL{GypZ{_mxL94T1pj*u4EHn-ZX^vG# zyn9|je0xTHx%J5(j--6n!ZrXgOa567j-qnTq_TK(0|_>m+W6=OI_IfVGq)zBi3k$y zHm<}EM8I%Tvaf1VrnYE{PW+Lt$J`Cls)k*2znt5B4~KON$8jc*K^xz=ktr$7tUakC zO?Yz24BMuMP-(645M<%!0FFYqcRF^cm^^8qAiX$-x0z}#_t3K%%GkrSv_|eGZ(oZZ z1BKa;qJN1Y`$+mXRM5Kgc4K?uZb_@&M3wnO$Ki`1d*DA~kvM{raim{D*^`3H&-H|6 zgCb=W50Rs6C|P8rrVr%HtSwj>PV(BcnH%%c^*3|#y5le^FyrZA_)UA5m2ASBMPGNV znYrsmlhK+Ie7$GE-?XIyF)D|n0mjwXFk~A{C3&98Wr7{UpT`%OXBJC}5mxE@rF8DMoyPbL%Y9{|7UwUrQ zkiJJz>9jQgofq-aRo@XhQ7z8qd2vQ(fnFmY-J5a7q|0uB+j2ulgihWKz~3BVmutqi zB=6wgW&-`Ve}QL?{D`c=LJvu~jzC_;BisFBfrKwkT#!R-K+>;!&E&_&`@eWxnfElY zwF1g-=Jy`+B6yURTM#DXmyLl>!41qf{7GBGi1~x?hfHgul)rA`)V<&Z7yqH~^0n{@ z`RL*u1+R9yZGPc%Dp^ci8r_DuY`@F>xdsmZ*rraR&Rerf6>ZU=c^JKp-y>;we3$$5 zN=|k`lP#@RiuDZetC!;32Z9144Q7SGak;I*GOh=ND-}b8Az|@i#Ja7y#VHwxgCIMh zgM`;%*q1jD(MWde5~Zv2(G!J7iHR%wl*xv68N^W%bt3Ulko`BCi-UwO`^IcRdrnUa zfT{E`WZJs0?#U&tR`4CMD(u*EbCHwK$0w;TdSL`UcGg0p$bI;GOQI_RU_1u($38o} zCOM?-k^4-o&-TyOzPWCl!)Xny@S$`~i(ajSqEnj+e(npldxcZz@bD`M)71vVwk01@ ziQlWes{Z90a6;`VD9Vs&Ctp(x>*COn%20(&W*Q1a>UA=$Q>%gsD$e>-r&=Gw$Wk49 z0|nKd`}+>!23z`E!{G#4^w80r!PwAPSZ0(!I1B){!8b~66^?hGS^u>2vnJOn5u6d3 ztOE({Wxn&@^;Td*cPuqNVDBzL-(m`I6caF~8wi*ql4>fl95TM{6W)!#{I7um@P3GU zda{#C>2tsP;@qq334#RbQr6Amf9&jZ-0-T(@XO5kE_$WLkc+uxn!EoF9idfax1EMN zXQjIX<8M3jAGvCG9YH1izu9_S7e?s++o0|U))>?A(e*^Tt|nBqbj8ZuJ7m7)e)h6= z*}{_>+*lMBTh-b$msw^Wi7I+}cO*MH8`Y2q3~ej2B4qy&-X@`q{G`<81xDdwWhZ zuVG#L>pm`R`uaz*sN zuM#6k?N7LI8Z!Jmolfg&1V0l|UT&NeL~mGyr*K<*x>VPtaWSJd6Vu)%u~+anSUl>S zD4$LzM~|A2L=cU{buTgHga5n#c`Q6Z^mo8V*NLCB$j3ySfkR`CZER*yobE=Zp2F?K z_4V}H0#Ux|9#J`}7S+1j~IEupd3jfyfy4-gdkGV93i+ zeSqCrxk6$Yhk}~L?N;!mb!oO4P`JE6Hm7uw5Uo~~uE&V&a0~%YK6I%wun#szprdl? zxZeQ28$0kY=IT^3mma|kj-OgZEH|I8pjd`V)>Et>bgLrQ&MwxW$5*9~=-J7Yc%=s8 zElAZ1vl}Cn_k#y2(Z$l+G%PHVjWv=0f*m~OA5Or{@8q<)2I5J>JSP+9Yie^>zQ|Ir zbd0k&Ahe6HH4mHAVFn0|&)aT{J1!b*e$vuEL1veP%#B)rAI_pXIROyfcG|4yL2U`Q7*lZ3Hp9 z$Z2--;jYYr3OvF)I&oAJ8x6eeDc&|l<4m{8b^i&wcHT0wRU zvaTOV_rckBIa%2;O}-C}y=;^h0tv1~DY6hv=JQ(jOBg!D5MePaT;CdKUdMHv7()3> zoE>WNoGF0gKLNJh4uP(R?kk#^r!0j=fhH-JfN0)$P61)o^4K_pI2%hCw zbfT3dn;TRDJ#uX5tOv!3C~d_vmfiCKT8((y-)(BY`*}diOv{e|Uwg&$iY$GASaJlQ9#rY`e>yz=&n~wW+%7lrKy3&R_vHwXzSE{;6i^F{AdxMenza>(5Tf=?J7;NH{n*4QoaQ((%RuAc!+vs+#p`8qHl*yFoW#+C6+%G*8+YU zvz+4sCk+y(vR%s6nJL$1?UD*~Vsuea{^h)T&(*6RAiqA4J?gnzPf!z#Xv3kjeutS2B7> z)!Eu94Sl5HpD>@ea(?xk$N&%`_Ivw~z(=taguzj*)EU z-#|vue{CS23n;li4F7tbnmT77;g0GukVf9;!gf+3+N^%rmnvvAiZSg|GND8otB+9a z#46(<`{XS;#Iv6!w??eJ54#Evv%rP>Gfw@S5PZ`RCz%Wh0Mix~;322V*_PSPM?Ht} zFJ4Mo6PysX_jt+;XUv4;qlEm$KkyukqyTs{T}8)>_(XEi>0nEWC(_?ghWP0$UYUfR zEUNk=Jx3cO>I)f4OlK2^S;evGBb7;Cx%R2AodhXFt zQ*+m=FPCLNsn~RDvE9AgN2l)yM7W29)r1=gr18}6Z%p3{6Tz*__lnUC-9@i+nJ!uQuAm-N`(6r&|6_x{0(X3 z0L-JO)|_?qq4)-z2(~qtFjQd6aqRcdu4qFd=m&zfro2#nJwbq_g{#cBT*h^%WJGaj zP?g_63s2s^%7Y<(Z}-bvC)q&05tMp?-#pz zcG|5GiaCjGVoSJ{7IBOPBxBaWgs%fxNPE){bNHmMXLVS%bTQ=mMuUl`k90cO-|)YC ziY4TQH!&|OTd2vi)A^*I( z#I|H99k1Z8BY8p)3iBt0q%ul$ChvO5MPuRSZL*3EYfmCj$d`d8fYz~|0Ot9JOx@>; z8}PNT$G1wV^oKdiL%UVG6dqJT&*MDkl&^(qQy%mbg#PogmE0e)sq@c}BBMiu5gZgw zyf-uD6vlrGQ7@^gQh60}SVI@Ea_=C0!=10vJ`*j_^MnSAuZneBe`b+uJLmh7y0f!G zm~PZ{+x<`!m=EPHGDJ_dr?!tB;X8thX)lJ9sx3>v@)CP$i?X;8JTHf7VP8O_mST=* zdvebz2BsIg*N;aDL*a<4W^gFHFLE#F{mLXH7k7hb^dPm^rhV+Unugf*E9`_`YfOa1 zxG2mM?iG27iI)1Fw!VPBzzfU!dEDu`Q+@5;*WBZClWyk0hMiG?r(tCm#p- z>r*(Ap_ zGX?z(A>m?l%!aL9B=$D6=qA7`7%;pZ9+^x(Ge(xDXdL6KiN)k}bz`}B;7_R4X6j~& z4&pAygI3Z?!~iqm^QTjE0k%|gygJ+tN9`Z#mM={>13P*3Rgm0ucbP6{ZCvW`HDZ-;1%NOSqFarN)4NsUZKRz|F%+``>_=&xv94GjX^{3j}cW!*718%t1ELxmqJbx7YkW?lq z5k`o-%ek$HmC&|YCycPUuyzxkZGWlkJ#|U2&L1OkKebfewxAt$hR4!yhhQ(Xm%njI z>@fy5Y^ysvqe4-;BcJ3_i{R~q61J%$O#g-27HQJz2_zBB6+Qj|hR3{YtvUEHvWRPCxJ-G zeNOSEHAE?@oc72#EE_1bA8}2VOn@GBK9jV^WFyaxJosTAoZ}#w!N@G54x~D>rknjF zUOOS-r7SYYa@h0)Woj4Nkv8Tyt^AYy@p6g(KSw$g!YKmsVS$(QJaZ<)E zcKdnNS91IT zFEJ{zY8G@y73*+HxbQI@5q8htj{XTCLPi-L)1oHytG^hu3qW=eKDS9OJ>q|MM3_gW zrYxH~VTZW-D*TYZ%S5`h%!Ke=U0R=bdSX~W)!?YWs=ihKQ1306ebE^C(z}z4-EXFe zoYs-25)#fuUj5Tgf}VUJ1!{}E>_=L}R}ZjOg)_IJ-&w^&;Z?hRGplwrD8vnfG`->H6u74R zRw)h**{2j6OCQK=xdvd1WZ5aoIc=1LO)(8F+`)mzhBpNPEb^J|WQi+)x_HebJK#<2 zG3Uao=Z30z1#s8+q-sw9^;L z&r8bAQW7+7swei1^G5UuH4B1o23Q4O&F0b+GbXf4iWR_eq~Cu+-R zHVsNBy%NqTKP_x0qt9)?$;bD!N1tyaI2KwU00&>2f5wDA3TYo59AiZ@DCb)5)*k$1 zCgnF1AWPGDz-F&nRNRc88$}#YR~&ggPnNLU`4@J@mvtdbkxwG$dOtP!eJol@=N`6g zdC*hvX7-3Hiue!Tz%gnRnwykSG?`AS9Lnk^g8$Y9R+G~CHlGvnXUX4BNU;9`j>|2j literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/blackboard.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/blackboard.png new file mode 100644 index 0000000000000000000000000000000000000000..50a2f6435287dec404a8d2107fa21f86ddaf4ba8 GIT binary patch literal 32733 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 a|2XCdq$HyJiB6J$lLNg4H>x#oiTodH$#--B literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-black.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-black.png new file mode 100644 index 0000000000000000000000000000000000000000..170b520061b66e1d24e888836e893e5a865c01bb GIT binary patch literal 2142 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 FV1oGf3+Vs= literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-green.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-green.png new file mode 100644 index 0000000000000000000000000000000000000000..28a42218c9c8deeca5c2155987d12b36339d114b GIT binary patch literal 2106 zcmV-A2*vk_P)CR~gG2T~;n zC2FfwRnsa})kY;%l*?PCK2(X)KJ}sMOW!IbYMVkpn2;|n;jH_zT| zc0IGRvoog;i`!HcDvDs;^EC4`pO^EW?>Vfcr6us=H(vSOTKAd_cfY(dTPPHA_&-{- zy>nCW!^p*hQ}x=LufF;7zbJ}Qx6-JuF6MMrxqG(ypFef&995OV`hDAWZcNU_V%dAy zJ1dO?0G3LnBHw%NJKMwgWZP6BMsBs|J1cXvnkJ1Kd0kgm9BA8i@%-5M$NdKepT1s< z)o~7LZFYKwx}Vq{Z0l;cd1LabWm$z40|Ef&oYgC?^-DF}pEdKWpqXqc7hPN1vu^jk zz|OARz1(6luFk9&(6TID%VeXSHBIh#jp4NfO64jC@vd5nt5&#Up@|(3qxx7rvvjxI zK)U>(s_M1ut;7*uWwQaxMm~|nx%nyb{jOnRnO3#%Lf1Q$_0^sg0|LP0jmgu`c(&c6 z8G}O+kcy`9o4>!0*LHr37@E=I`cdFrL6K@#44BX76H9k8m*gS=3=5DMV#yTVz5NMZ z-TE9BNTF}@i-W&sj7jAJvah}nLL|yb3wKga#?-2z2n3X3KAnP4A>dHY0rL96m%J{A zvuFoV-+S zATpWE9JRrkl={MwZ1xnnExtbZUA(;Qc`(W#%Muu+bocI|Jr^!q_#zw*Pn8u20E>%@ zb5(L>mB-!8p7L$$eAYWe852MW0SDkvWQd|94)5K&fAph|&ZJVQXjy>(_`<@%Ei9Rf zTUxxeO-)T6(<~54l0j){UnzW;T^d6}x-7yD6o$ zj0uDZA_yg5lt2LoJjsf6h1p?rzs!pl%D);;STP&;Slq3;?Ab@i~ z6h#PvKzh2nHz!l6;*~2`&XyYp&bg_o>eNzhNeKpn0ZrE=Symu01`a@$BrwM4jvYI8 z{9|HbZgzI|^RfbgQcy&r(HYKpU9ZpQ(=?4qvJ6HkY;Y)w3?>L{&z{}Gr%#_AOC%DH zBzPYh2mpmbVKE#I->IyuTGiXy}1s;Sgwd2*Nl&kkK${NpRWz%oLj1@-dxBmAP@`&^SY);vP}N9vt@}; zM#;dyKxl4mE;BJPaiOe00I+Sl5R1iTwI$6N>ON?}o7U%zToXGiG7$cgtX%QDLf1WI9{s;b`W^Yxa( zf)PO!K>#quAjuNh(Aw7Gs;+K1bLPzPhZ#SQ6bOJPlga6LJZ^_VeF3v*R*Iqofe8Qs z1VMlx2*l^}b*D2Ke);m{zm*#Z&UsN))tkDmI|6}#U(=Q(S(ZUr=~I#4 z{v8%hr?b)1zOlnF@}++^Eqzicg@v?Z$M)e9Cq6jwps;vsK%f*BsZ=W6(9qD-;BIKO zEenz)6GA9JI2;az)YR0tLZQ&m;loG%SSF@9FyM22uef|3N zi)94@rLc%ZBGa0#IsJja7G2jwNm0P)a{b8Ai+TJxGyde=Nce`OE?qAx5CDqBVlEnu z&MLC9+UxapX_`it&oxttFY(Uj$4PP_L#N&Pej3SrY%dz&vH}6XFpP987MrhjRW~*_ zulE$qBDtvE#7jrs!l~KIIMDS3u?$m*wb6ZKB7L~*Kmf>Qv*CC=zSz>-vhmaTFV?;F z=^x0VWPuw+T+PhkhyJIql-H|0t|q!7KmbUm(=)xjz5N^dHwQkv^a-&E2P!3)IRiOv z;J3qXz)-XED+UC>XJ%$*UVHK7XI!qTn)5fVf(sO(bshLg^FgjJW+#62_S?T)L0@Tg zcX#idoW7a*_OE|xKmCgz*drf|SceY1a@ON%e-;2CD-8sIfq|{xbT}*O`h&skpI!QF k^2X%kSS%Jh&p9vt6PICzSH!DRyZ`_I07*qoM6N<$f(wfA!2kdN literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-orange.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-orange.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8c2d2bb415d576f49c8faea365d8a90f04614f GIT binary patch literal 2240 zcmV;x2tW6UP)ftU@_RnfQ@S~7@LcYjlp1pFExq1IH~R8 z)JdAgk(#QNsx}W%t336gRWEOCrAkp$sfyGpPfah0l2*M1;}{HP7nX~`c){!%_QJBu z?(BVMcjokA?I>-PI!^J@?`>XYemZB)@B4p8*j`!LbpBk=SD9Q;yt3k7;+*UFKPuYW zbG+|L>Ecg*ak>88*MIus-!aC_8x8gG5^C%A9B445Ey2mZ2^}?sdn($_?OY8-Lo0s2 zbEDw^0A{nf>iXMnxPN=GlwW_*#C<=gH)j6yOMhKmUB^bV0f3-sTErPhtbFU4&Wi@#!nZf>n}4PSWWBNHPX<>z5F@`fK5MPkY0yusPv$xyB5`$mRo( ze*D4X@!WFgRAw>A3m#%01%STKm z)0V!zz8AKv-L5oZYeb@eL4i!j0n?5aknN{P$+2h68ezu5!a`70RcBrSbzM)pS5=&S z`8#d;?dyd^OAsaiIuVhn?7*hJ??EUmC9Q`JH7zbKuDRXrKs+Az<_!=4_j1&o{R>3)k$QTF!LI@ODhN37+`;qp8gM&j0kx0ay&1TnKKc9FK)9JJt3Werv zR@*>tZ|^f{EnO%I0ueM1F^GZ)01zb+q99=B&YhKog@q-PQ&a9}H0r`S_U=#RvOplP==FI0r%#_g z7mY>)Cd&{65u9_#G6NxmG&VKXCK8G4y?ggUs;av33J3sBr_;{4A+@$1>W;@_l*tMN zL4aWZCPfAS($>~?U~cZt>eAAZHC|R4NtDDZHmthA)0I;-oDWR}wp07a1@3Zm5A z-PLyE#_+=0+L|Ym$^1|HdE|bo>w0=*c;tgqCr>^_DcwvcA(AM85&}Xf6j?@rsi2^# zv2owkfq}VbG`egUhL$%#07#`$s?BB_vh-Rmrc>!6QIa5vA_#K&kt7La+sZaqS65e$ zjg2j-s_Oi#`uWU>L{(Mq-0ivBXU?3t5Q|2cEXxoC0UUtDBnX6(n(FEu0GPw!2!_Mq zyLkl!0H4q22(ATVCr%uHG8&CirsPgGH#ihU0Rc!$OUu5Mm6f>D>Ga3raZg?W0bt%S zKWZu{C~n^0+?j~Sb0=HOIr4#iy1TksXJ%)8KA+G3sB_JFgidZBw_mH;QPr^Xb5#u) zO(T-TK<{t2$)o@PJ$CHq;Tt!G?*@ZG&!fyW>ynB&=UJ=O+TY&ZcG7G%SLucUNs>S) z1tB^8NTS3#Iyw#x4-YRyA`zdaX`f0z>lWLy*=%C;=4gM<6Fpxr45LI41R{ze2&JHu zK$aOPHk*r@nws_vT)XB_Rn^5gf9PDZu5(2qkqB8wt;3dH%NJA0RDr}8g!{ol5=Drj zNXpC0x0aP{t(cgYaI31ih=&A=bsv1f;jr7e=yaVq`{enE8WEWye+0>x1WGBXudm<5 zITu|nS7>c*?Z4{hu}o&m%gZx~L{jhU>^v2VMX4++pp=4hK$c|?fE+q>uyKBVA?S2E zy~$+KpI1Ntn4O&+E-EZ4YiMX_OC%FS&W#E8^`ihBr2BaH;faY!cQ63&QK`iOQ+NSp`XV(d>e+586C9_ zbRO;OF_}yi03b1z(+>y~Stg1}Q4Sn9(AeMKe>)nDy8r!J<+0xmXqpxs8M%4&si)5M zrPHY*Q51P{0)c?j=%V?$$YG9D#mWn~pJv$NK`0s?^3>71a1O0BJ}$7Asrd7vNgTs!3PAlYaA+5YFh z{?b{;8o4(!Gi%Q)AOJo&IeC4{=FL0n>grmOsU&1sA(RTx7Y89t{SiiRg`{k6(aW!X zzqj8uKbUVo05HbK#|N65n>#jd*;1qHSz?-dAKCX`McQ>8CGF25&cJX~|-< zx$69p-A7_G9||Jp5CtFu4QVJOeg5a$6Nf@qLVKhi45U- zn()YW3&wVR&FKH|!~R>-(*ql}f&ef#H#fe0M^(MB>#$TI8x;;yQ&Q{rhVX}X-uug& zZ~p2>%gf7y8}<)AD8`uS(xpqUd6r#{P&jJT*46D992|Vt@Appt;Qs{h-P4jXxLaKS O0000~$IV8*S3jU9VZi+YO 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 literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-yellow.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/boardmarker-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..23e87f52e2961d8d6843009de2318156d92c86f4 GIT binary patch literal 2105 zcmV-92*&q`P) zyL51~Gj!xB`wzd}f0lDzzS5=#ila&D+nrmogI z1E+pI-QB(IJA@Fvk~RhaQcC%?XP*C78UMH(G6T!b5wCKt?73$;_S6LSbWBXmrgh!C zV;IKLib+GEV9&*~ucfCi2q*rrCKHz`W$N;moW!Lj=hmm)*6)A!i=&F76uIqU_ZR7O zdNPyqv0Y!lQ%ug2ys->Tk)*inyCjqN8`;uaQs?pQ^`AcTK_39=IuHP2vDujyzPay3 zYFrSU19|H<;KWhpdzoaDZ;{B3mM5o^>z1!v8UDa6AboI?$z)=Oj@>?`>nfxLFha4U zkH9w1psezHxSM#BzWUPoSA`IMw}9+(dncJ(^lqrL+E!QSr9uTH2y|-#8m|Rqdr?yT ztY;}tiv|Y=kHUqk{yY$=^qr9#lVx^C6A71k4NVgimd&8k4iwe=3<~#=a96l>cz8H7 zHa7N=>p&@`oxZIP&m>nBbv9e=9#tv^e+6vSPXWfD2?53!-MxGF&VhjoH{$X5h^s&V za2!WpNIRo>V~syl^Yq4i$qSSzDhMbbB|IJtT;)o4clT5M{rzXN*=)>JAOIMKkr|uR zM{Mur`no_MU^@=soP$sbLI6z&6nnj%)|QqXhkAQ^4a3N|3IqVtG#93)XJ(#Q|3q_n zdHGt#7*SLe1O${(a8*TBRaIpu6zb^h?S02_9NkqQ0OWGHsfqE4Oehp;)ihDTxk?yQ zKnQ`VDnwBf5)1^^sa&l)d-hx}0NYg{0Awu{S3JAc-X0zAhu{hhleOp-9b(ISZOkt2xLem5&r8E+WgolQP zZcR)~eCjq3j^h~f^Yg=ViMfjQ_O=$&G#TdtlrcyNcr*Cexw(>UU0vbhmy{!NXIjizN%Rpp?J0g&)$9>P_w?u|kAD*^9yt(zb0>S}dMp-G!`s4JO~X)y5TLa1W^1AlEOtgB;foh9&P+{B4Y>`3 z<2YtAnY_9%zu;?YZ+p@*O~yqbSU8aIXj%ceGtzVX`00gmiA*+H(E+wfwF4t*Bv|OKt+; zIF6N0r>`bv6Q$v<&NkD~6)rqr^nUu$KxCfuG#~4E`k8%SedpavZ|l0Aa}9V8sn5^P z4_lV)Z*1JyXxS!J3v&_DoIp|jFp+mZp_SebA8Xt8a@&DJAO6)d zej=1bn6?RN{~cw%ALI7Ifb-^`M^CQ^5CE2zmL?&k`1UvaU)Hndi9#K4g<{#x!E$oA zQ}i2h_QJ%a6$1jm^z_W7)&5h0iH$MFIy=~UHcXwFFjvREp|ASXPUbk-D9snv?X&?Z2z23*yRj=+21{>R|s{Fxs j4jlMnI-Pz`N@@KA_3U%TKl-+c00000NkvXXu0mjf*%$6m literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-blue.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..f70c2991ee48c22d5e65b64f9799686ae6c33a6e GIT binary patch literal 5150 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 M07*qoM6N<$f;c6y;{X5v literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-green.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-green.png new file mode 100644 index 0000000000000000000000000000000000000000..39f3b20fc7fb1755496e83b7ce85620d99326743 GIT binary patch literal 4801 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 literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-purple.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-purple.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd29fb85484cddbe9bcc71a87f7b9a8b243b9b8 GIT binary patch literal 5250 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 IM6N<$f^h91asU7T literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-red.png b/english/site_libs/revealjs/plugin/reveal-chalkboard/img/chalk-red.png new file mode 100644 index 0000000000000000000000000000000000000000..18d4dc7893adb93ee7feb3beb066d63de403e3f1 GIT binary patch literal 4786 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 i(I@&upXd|)|McHWtasDPViX|&0000d zv|$3j{vg0Z0;g~!113zO$z#clLX(DR_4)Fl4CdblOn@+(Y!DU?2+%ZO<(K9UfF=Ob z1Yj9Z!z5q;fYoYp{sQ?M`Ab8#Eg5W?co$6*by_?^*SD7dxEe6nJ?2(-KB@0vC!5C8#hw+(|rn|U7CP?%L_@IcoIlCCTO^73dHEcEZUN^QHbFFCF5D~Gpn=n3Gw+Nxq&}UqNjCP| zDgo|%Jwvbx04U*L4liX{Wy4r(8}t8!VLOK-=RVI1u*r6Vw)%8igq0)S_k9ETm;B?0 z!6X;FzpD(-HHVEi*uS-0@*8HU4d;-pGD-R*_?bn|RVPspO;lkn)8am+dm?8-!Gdeq zAe2vrSI(Z>1Xo$gdteTAGxvuukY7pg{F5kxB&-6-xy@~M-Y)EfKIWJ}ZD1E{dfkAU z*nrMMG7X3%*=*Y+0iK52`s+`w#0?wRgnw_ZIyCtDT7W!vPOUHQ`~c^hK%P)6!imE@ zPX+*0LPJ33>${&QHkTK4Hwl^KF~CAM%W_i$78B);4Z6{toWQr3|2e0H@C0=9a|`pS z02^&!$&`JVv$9Q4jfSzFYyz}RA2#y}8W!>qI+-S)y+Hmcn(u$K+B6fVY~s6N2n|vI zasVK*76HP37<pB=>xg4V>Ik zO~N8hZk8rH69nX@6Nq6`c>zMwI{|?pl8OvdXyj;O$~FMtf>Wp@W`Zlvk)59o^8TZ_ zf`rY5Tbt(OI(2L3I#Q==HDM*?Ch`O5*3>I+|52$ad`meSI9$aPLIz=hoafj!<;iPP z2~By>uWMKnJ=LEB>efM4Q$@Br4ulj|D1XcppUWqRuiU8_Q|`HWh@gV z(y6k6?nHb-K7HUr-CsP{`a!3nPU$~IhVFoCl{`WWVM(zK-KTHj-3kZu%EoWu{B zQVL@k^tnNNF0K+}a{#PmxSO16g!G|EqFX|5y3ebUWbC)uop-6F1Z;JaRH2n>mWJ6- zA}@#rkJ`w&1q)hzlrktEl`W7)&o^(-61t7~{yZt9VOu^=SCX<1wo(<+H24Wa2frg&yFdZTA`)ke&-^&1-WOFZ=Xj(b_vSol< zGABjeE_+kc7AJ?(vL}q^(MHRY2e3FjXymfKs2fU}`#TsL-sr0u#LQ z%{*nx{C3jk&Z!7+&gFsmlA?k=Ck!AY4iU%e-Kn#BfCAjHxV*;C=Wzo+ub)g(adPNF); zq?rnTgPk%SYdsCg0@$5cE8Y{BTQJS&bR8Q{fub8Wr`GQaFZh;vbGk&5og;MIPh`=A z6LBygz@$*h`*_N=ce4)(dD1=lwEzi);vgQKDmrkHZw(3w-DeuVL}7hRjS&1Rm!$)V z)Dp=ij6-=~HSOVYvuGgt%I4+@;ua$yT15g^@4qriZixOD`43jo`6 zi$+^M^9xNZPGt@QeD$Ce(^}FjG>tCtWi*qWj?@?LmL15PeNh3-m-a#7P0;&ACcqA4 z#HKw_Hs`+q_JWU{8PW_5AYbbDnR|Kmc6a zN0_^uwu;>Yr`wj8snvWM3upmubb@W_+ujCo46F-x0u(8BFf`-{D1q=cLzC^C%i!Wk z=IQO4oJtOAJktTA1)(QA<4%0A83m^ns0fE=Bqmj9iwmdO|9 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 literal 0 HcmV?d00001 diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.js b/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.js new file mode 100644 index 0000000..76b736e --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.js @@ -0,0 +1,1976 @@ +/***************************************************************** + ** Author: Asvin Goel, goel@telematique.eu + ** + ** A plugin for reveal.js adding a chalkboard. + ** + ** Version: 2.1.0 + ** + ** License: MIT license (see LICENSE.md) + ** + ** Credits: + ** Chalkboard effect by Mohamed Moustafa https://github.com/mmoustafa/Chalkboard + ** Multi color support initially added by Kurt Rinnert https://github.com/rinnert + ** Compatibility with reveal.js v4 by Hakim El Hattab https://github.com/hakimel + ******************************************************************/ + +window.RevealChalkboard = window.RevealChalkboard || { + id: 'RevealChalkboard', + init: function ( deck ) { + initChalkboard( deck ); + }, + configure: function ( config ) { + configure( config ); + }, + toggleNotesCanvas: function () { + toggleNotesCanvas(); + }, + toggleChalkboard: function () { + toggleChalkboard(); + }, + colorIndex: function () { + colorIndex(); + }, + colorNext: function () { + colorNext(); + }, + colorPrev: function () { + colorPrev(); + }, + clear: function () { + clear(); + }, + reset: function () { + reset(); + }, + resetAll: function () { + resetAll(); + }, + updateStorage: function () { + updateStorage(); + }, + getData: function () { + return getData(); + }, + download: function () { + download(); + }, +}; + +function scriptPath() { + // obtain plugin path from the script element + var src; + if ( document.currentScript ) { + src = document.currentScript.src; + } else { + var sel = document.querySelector( 'script[src$="/chalkboard/plugin.js"]' ) + if ( sel ) { + src = sel.src; + } + } + var path = ( src === undefined ) ? "" : src.slice( 0, src.lastIndexOf( "/" ) + 1 ); +//console.log("Path: " + path); + return path; +} +var path = scriptPath(); + +const initChalkboard = function ( Reveal ) { +//console.warn(path); + /* Feature detection for passive event handling*/ + var passiveSupported = false; + + try { + window.addEventListener( 'test', null, Object.defineProperty( {}, 'passive', { + get: function () { + passiveSupported = true; + } + } ) ); + } catch ( err ) {} + + +/***************************************************************** + ** Configuration + ******************************************************************/ + var background, pen, draw, color; + var grid = false; + var boardmarkerWidth = 3; + var chalkWidth = 7; + var chalkEffect = 1.0; + var rememberColor = [ true, false ]; + var eraser = { + src: path + 'img/sponge.png', + radius: 20 + }; + var boardmarkers = [ { + color: 'rgba(100,100,100,1)', + cursor: 'url(' + path + 'img/boardmarker-black.png), auto' + }, + { + color: 'rgba(30,144,255, 1)', + cursor: 'url(' + path + 'img/boardmarker-blue.png), auto' + }, + { + color: 'rgba(220,20,60,1)', + cursor: 'url(' + path + 'img/boardmarker-red.png), auto' + }, + { + color: 'rgba(50,205,50,1)', + cursor: 'url(' + path + 'img/boardmarker-green.png), auto' + }, + { + color: 'rgba(255,140,0,1)', + cursor: 'url(' + path + 'img/boardmarker-orange.png), auto' + }, + { + color: 'rgba(150,0,20150,1)', + cursor: 'url(' + path + 'img/boardmarker-purple.png), auto' + }, + { + color: 'rgba(255,220,0,1)', + cursor: 'url(' + path + 'img/boardmarker-yellow.png), auto' + } + ]; + var chalks = [ { + color: 'rgba(255,255,255,0.5)', + cursor: 'url(' + path + 'img/chalk-white.png), auto' + }, + { + color: 'rgba(96, 154, 244, 0.5)', + cursor: 'url(' + path + 'img/chalk-blue.png), auto' + }, + { + color: 'rgba(237, 20, 28, 0.5)', + cursor: 'url(' + path + 'img/chalk-red.png), auto' + }, + { + color: 'rgba(20, 237, 28, 0.5)', + cursor: 'url(' + path + 'img/chalk-green.png), auto' + }, + { + color: 'rgba(220, 133, 41, 0.5)', + cursor: 'url(' + path + 'img/chalk-orange.png), auto' + }, + { + color: 'rgba(220,0,220,0.5)', + cursor: 'url(' + path + 'img/chalk-purple.png), auto' + }, + { + color: 'rgba(255,220,0,0.5)', + cursor: 'url(' + path + 'img/chalk-yellow.png), auto' + } + ]; + var keyBindings = { + toggleNotesCanvas: { + keyCode: 67, + key: 'C', + description: 'Toggle notes canvas' + }, + toggleChalkboard: { + keyCode: 66, + key: 'B', + description: 'Toggle chalkboard' + }, + clear: { + keyCode: 46, + key: 'DEL', + description: 'Clear drawings on slide' + }, +/* + reset: { + keyCode: 173, + key: '-', + description: 'Reset drawings on slide' + }, +*/ + resetAll: { + keyCode: 8, + key: 'BACKSPACE', + description: 'Reset all drawings' + }, + colorNext: { + keyCode: 88, + key: 'X', + description: 'Next color' + }, + colorPrev: { + keyCode: 89, + key: 'Y', + description: 'Previous color' + }, + download: { + keyCode: 68, + key: 'D', + description: 'Download drawings' + } + }; + + + var theme = 'chalkboard'; + var color = [ 0, 0 ]; + var toggleChalkboardButton = false; + var toggleNotesButton = false; + var colorButtons = true; + var boardHandle = true; + var transition = 800; + + var readOnly = false; + var messageType = 'broadcast'; + + var config = configure( Reveal.getConfig().chalkboard || {} ); + if ( config.keyBindings ) { + for ( var key in config.keyBindings ) { + keyBindings[ key ] = config.keyBindings[ key ]; + }; + } + + function configure( config ) { + + if ( config.boardmarkerWidth || config.penWidth ) boardmarkerWidth = config.boardmarkerWidth || config.penWidth; + if ( config.chalkWidth ) chalkWidth = config.chalkWidth; + if ( config.chalkEffect ) chalkEffect = config.chalkEffect; + if ( config.rememberColor ) rememberColor = config.rememberColor; + if ( config.eraser ) eraser = config.eraser; + if ( config.boardmarkers ) boardmarkers = config.boardmarkers; + if ( config.chalks ) chalks = config.chalks; + + if ( config.theme ) theme = config.theme; + switch ( theme ) { + case 'whiteboard': + background = [ 'rgba(127,127,127,.1)', path + 'img/whiteboard.png' ]; + draw = [ drawWithBoardmarker, drawWithBoardmarker ]; + pens = [ boardmarkers, boardmarkers ]; + grid = { + color: 'rgb(127,127,255,0.1)', + distance: 40, + width: 2 + }; + break; + case 'chalkboard': + default: + background = [ 'rgba(127,127,127,.1)', path + 'img/blackboard.png' ]; + draw = [ drawWithBoardmarker, drawWithChalk ]; + pens = [ boardmarkers, chalks ]; + grid = { + color: 'rgb(50,50,10,0.5)', + distance: 80, + width: 2 + }; + } + + if ( config.background ) background = config.background; + if ( config.grid != undefined ) grid = config.grid; + + if ( config.toggleChalkboardButton != undefined ) toggleChalkboardButton = config.toggleChalkboardButton; + if ( config.toggleNotesButton != undefined ) toggleNotesButton = config.toggleNotesButton; + if ( config.colorButtons != undefined ) colorButtons = config.colorButtons; + if ( config.boardHandle != undefined ) boardHandle = config.boardHandle; + if ( config.transition ) transition = config.transition; + + if ( config.readOnly != undefined ) readOnly = config.readOnly; + if ( config.messageType ) messageType = config.messageType; + + if ( drawingCanvas && ( config.theme || config.background || config.grid ) ) { + var canvas = document.getElementById( drawingCanvas[ 1 ].id ); + canvas.style.background = 'url("' + background[ 1 ] + '") repeat'; + clearCanvas( 1 ); + drawGrid(); + } + + return config; + } +/***************************************************************** + ** Setup + ******************************************************************/ + + function whenReady( callback ) { + // wait for markdown to be parsed and code to be highlighted + if ( !document.querySelector( 'section[data-markdown]:not([data-markdown-parsed])' ) + && !document.querySelector( 'code[data-line-numbers*="|"]') + ) { + callback(); + } else { + console.log( "Wait for markdown to be parsed and code to be highlighted" ); + setTimeout( whenReady, 500, callback ) + } + } + + function whenLoaded( callback ) { + // wait for drawings to be loaded and markdown to be parsed + if ( loaded !== null ) { + callback(); + } else { + console.log( "Wait for drawings to be loaded" ); + setTimeout( whenLoaded, 500, callback ) + } + } + + if ( toggleChalkboardButton ) { +console.warn( "toggleChalkboardButton is deprecated, use customcontrols plugin instead!" ); +//console.log("toggleChalkboardButton") + var button = document.createElement( 'div' ); + button.className = "chalkboard-button"; + button.id = "toggle-chalkboard"; + button.style.visibility = "visible"; + button.style.position = "absolute"; + button.style.zIndex = 30; + button.style.fontSize = "24px"; + + button.style.left = toggleChalkboardButton.left || "30px"; + button.style.bottom = toggleChalkboardButton.bottom || "30px"; + button.style.top = toggleChalkboardButton.top || "auto"; + button.style.right = toggleChalkboardButton.right || "auto"; + + button.innerHTML = '' + document.querySelector( ".reveal" ).appendChild( button ); + } + if ( toggleNotesButton ) { +console.warn( "toggleNotesButton is deprecated, use customcontrols plugin instead!" ); +//console.log("toggleNotesButton") + var button = document.createElement( 'div' ); + button.className = "chalkboard-button"; + button.id = "toggle-notes"; + button.style.position = "absolute"; + button.style.zIndex = 30; + button.style.fontSize = "24px"; + + button.style.left = toggleNotesButton.left || "70px"; + button.style.bottom = toggleNotesButton.bottom || "30px"; + button.style.top = toggleNotesButton.top || "auto"; + button.style.right = toggleNotesButton.right || "auto"; + + button.innerHTML = '' + document.querySelector( ".reveal" ).appendChild( button ); + } + + var drawingCanvas = [ { + id: 'notescanvas' + }, { + id: 'chalkboard' + } ]; + setupDrawingCanvas( 0 ); + setupDrawingCanvas( 1 ); + + var mode = 0; // 0: notes canvas, 1: chalkboard + var board = 0; // board index (only for chalkboard) + + var mouseX = 0; + var mouseY = 0; + var lastX = null; + var lastY = null; + + var drawing = false; + var erasing = false; + + var slideStart = Date.now(); + var slideIndices = { + h: 0, + v: 0 + }; + + var timeouts = [ + [], + [] + ]; + var touchTimeout = null; + var slidechangeTimeout = null; + var updateStorageTimeout = null; + var playback = false; + + function createPalette( colors, length ) { + if ( length === true || length > colors.length ) { + length = colors.length; + } + var palette = document.createElement( 'div' ); + palette.classList.add( 'palette' ); + var list = document.createElement( 'ul' ); + // color pickers + for ( var i = 0; i < length; i++ ) { + var colorButton = document.createElement( 'li' ); + colorButton.setAttribute( 'data-color', i ); + colorButton.innerHTML = ''; + colorButton.style.color = colors[ i ].color; + colorButton.addEventListener( 'click', function ( e ) { + var element = e.target; + while ( !element.hasAttribute( 'data-color' ) ) { + element = element.parentElement; + } + colorIndex( parseInt( element.getAttribute( 'data-color' ) ) ); + } ); + colorButton.addEventListener( 'touchstart', function ( e ) { + var element = e.target; + while ( !element.hasAttribute( 'data-color' ) ) { + element = element.parentElement; + } + colorIndex( parseInt( element.getAttribute( 'data-color' ) ) ); + } ); + list.appendChild( colorButton ); + } + palette.appendChild( list ); + return palette; + }; + + function switchBoard( boardIdx ) { + selectBoard( boardIdx, true ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'selectboard', + timestamp: Date.now() - slideStart, + mode, + board + }; + document.dispatchEvent( message ); + } + + function setupDrawingCanvas( id ) { + var container = document.createElement( 'div' ); + container.id = drawingCanvas[ id ].id; + container.classList.add( 'overlay' ); + container.setAttribute( 'data-prevent-swipe', 'true' ); + container.oncontextmenu = function () { + return false; + } + container.style.cursor = pens[ id ][ color[ id ] ].cursor; + + drawingCanvas[ id ].width = window.innerWidth; + drawingCanvas[ id ].height = window.innerHeight; + drawingCanvas[ id ].scale = 1; + drawingCanvas[ id ].xOffset = 0; + drawingCanvas[ id ].yOffset = 0; + + if ( id == "0" ) { + container.style.background = 'rgba(0,0,0,0)'; + container.style.zIndex = 24; + container.style.opacity = 1; + container.style.visibility = 'visible'; + container.style.pointerEvents = 'none'; + + var slides = document.querySelector( '.slides' ); + var aspectRatio = Reveal.getConfig().width / Reveal.getConfig().height; + if ( drawingCanvas[ id ].width > drawingCanvas[ id ].height * aspectRatio ) { + drawingCanvas[ id ].xOffset = ( drawingCanvas[ id ].width - drawingCanvas[ id ].height * aspectRatio ) / 2; + } else if ( drawingCanvas[ id ].height > drawingCanvas[ id ].width / aspectRatio ) { + drawingCanvas[ id ].yOffset = ( drawingCanvas[ id ].height - drawingCanvas[ id ].width / aspectRatio ) / 2; + } + + if ( colorButtons ) { + var palette = createPalette( boardmarkers, colorButtons ); + palette.style.visibility = 'hidden'; // only show palette in drawing mode + container.appendChild( palette ); + } + } else { + container.style.background = 'url("' + background[ id ] + '") repeat'; + container.style.zIndex = 26; + container.style.opacity = 0; + container.style.visibility = 'hidden'; + + if ( colorButtons ) { + var palette = createPalette( chalks, colorButtons ); + container.appendChild( palette ); + } + if ( boardHandle ) { + var handle = document.createElement( 'div' ); + handle.classList.add( 'boardhandle' ); + handle.innerHTML = '

    '; + handle.querySelector( '#previousboard' ).addEventListener( 'click', function ( e ) { + e.preventDefault(); + switchBoard( board - 1 ); + } ); + handle.querySelector( '#nextboard' ).addEventListener( 'click', function ( e ) { + e.preventDefault(); + switchBoard( board + 1 ); + } ); + handle.querySelector( '#previousboard' ).addEventListener( 'touchstart', function ( e ) { + e.preventDefault(); + switchBoard( board - 1 ); + } ); + handle.querySelector( '#nextboard' ).addEventListener( 'touchstart', function ( e ) { + e.preventDefault(); + switchBoard( board + 1 ); + } ); + + container.appendChild( handle ); + } + } + + + var sponge = document.createElement( 'img' ); + sponge.src = eraser.src; + sponge.id = 'sponge'; + sponge.style.visibility = 'hidden'; + sponge.style.position = 'absolute'; + container.appendChild( sponge ); + drawingCanvas[ id ].sponge = sponge; + + var canvas = document.createElement( 'canvas' ); + canvas.width = drawingCanvas[ id ].width; + canvas.height = drawingCanvas[ id ].height; + canvas.setAttribute( 'data-chalkboard', id ); + canvas.style.cursor = pens[ id ][ color[ id ] ].cursor; + container.appendChild( canvas ); + drawingCanvas[ id ].canvas = canvas; + + drawingCanvas[ id ].context = canvas.getContext( '2d' ); + + setupCanvasEvents( container ); + + document.querySelector( '.reveal' ).appendChild( container ); + drawingCanvas[ id ].container = container; + } + + +/***************************************************************** + ** Storage + ******************************************************************/ + + var storage = [ { + width: Reveal.getConfig().width, + height: Reveal.getConfig().height, + data: [] + }, + { + width: Reveal.getConfig().width, + height: Reveal.getConfig().height, + data: [] + } + ]; + + var loaded = null; + + if ( config.storage ) { + // Get chalkboard drawings from session storage + loaded = initStorage( sessionStorage.getItem( config.storage ) ); + } + + if ( !loaded && config.src != null ) { + // Get chalkboard drawings from the given file + loadData( config.src ); + } + + /** + * Initialize storage. + */ + function initStorage( json ) { + var success = false; + try { + var data = JSON.parse( json ); + for ( var id = 0; id < data.length; id++ ) { + if ( drawingCanvas[ id ].width != data[ id ].width || drawingCanvas[ id ].height != data[ id ].height ) { + drawingCanvas[ id ].scale = Math.min( drawingCanvas[ id ].width / data[ id ].width, drawingCanvas[ id ].height / data[ id ].height ); + drawingCanvas[ id ].xOffset = ( drawingCanvas[ id ].width - data[ id ].width * drawingCanvas[ id ].scale ) / 2; + drawingCanvas[ id ].yOffset = ( drawingCanvas[ id ].height - data[ id ].height * drawingCanvas[ id ].scale ) / 2; + } + if ( config.readOnly ) { + drawingCanvas[ id ].container.style.cursor = 'default'; + drawingCanvas[ id ].canvas.style.cursor = 'default'; + } + } + success = true; + storage = data; + } catch ( err ) { + console.warn( "Cannot initialise storage!" ); + } + return success; + } + + + /** + * Load data. + */ + function loadData( filename ) { + var xhr = new XMLHttpRequest(); + xhr.onload = function () { + if ( xhr.readyState === 4 && xhr.status != 404 ) { + loaded = initStorage( xhr.responseText ); + updateStorage(); + console.log( "Drawings loaded from file" ); + } else { + config.readOnly = undefined; + readOnly = undefined; + console.warn( 'Failed to get file ' + filename + '. ReadyState: ' + xhr.readyState + ', Status: ' + xhr.status ); + loaded = false; + } + }; + + xhr.open( 'GET', filename, true ); + try { + xhr.send(); + } catch ( error ) { + config.readOnly = undefined; + readOnly = undefined; + console.warn( 'Failed to get file ' + filename + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + error ); + loaded = false; + } + } + + + function storageChanged( now ) { + if ( !now ) { + // create or update timer + if ( updateStorageTimeout ) { + clearTimeout( updateStorageTimeout ); + } + updateStorageTimeout = setTimeout( storageChanged, 1000, true); + } + else { +// console.log("Update storage", updateStorageTimeout, Date.now()); + updateStorage(); + updateStorageTimeout = null; + } + } + + function updateStorage() { + var json = JSON.stringify( storage ) + if ( config.storage ) { + sessionStorage.setItem( config.storage, json ) + } + return json; + } + + function recordEvent( event ) { +//console.log(event); + event.time = Date.now() - slideStart; + if ( mode == 1 ) event.board = board; + var slideData = getSlideData(); + var i = slideData.events.length; + while ( i > 0 && event.time < slideData.events[ i - 1 ].time ) { + i--; + } + slideData.events.splice( i, 0, event ); + slideData.duration = Math.max( slideData.duration, Date.now() - slideStart ) + 1; + + storageChanged(); + } + + /** + * Get data as json string. + */ + function getData() { + // cleanup slide data without events + for ( var id = 0; id < 2; id++ ) { + for ( var i = storage[ id ].data.length - 1; i >= 0; i-- ) { + if ( storage[ id ].data[ i ].events.length == 0 ) { + storage[ id ].data.splice( i, 1 ); + } + } + } + + return updateStorage(); + } + + /** + * Download data. + */ + function downloadData() { + var a = document.createElement( 'a' ); + document.body.appendChild( a ); + try { + a.download = 'chalkboard.json'; + var blob = new Blob( [ getData() ], { + type: 'application/json' + } ); + a.href = window.URL.createObjectURL( blob ); + } catch ( error ) { + a.innerHTML += ' (' + error + ')'; + } + a.click(); + document.body.removeChild( a ); + } + + /** + * Returns data object for the slide with the given indices. + */ + function getSlideData( indices, id ) { + if ( id == undefined ) id = mode; + if ( !indices ) indices = slideIndices; + var data; + for ( var i = 0; i < storage[ id ].data.length; i++ ) { + if ( storage[ id ].data[ i ].slide.h === indices.h && storage[ id ].data[ i ].slide.v === indices.v && storage[ id ].data[ i ].slide.f === indices.f ) { + data = storage[ id ].data[ i ]; + return data; + } + } + var page = Number( Reveal.getCurrentSlide().getAttribute('data-pdf-page-number') ); +//console.log( indices, Reveal.getCurrentSlide() ); + storage[ id ].data.push( { + slide: indices, + page, + events: [], + duration: 0 + } ); + data = storage[ id ].data[ storage[ id ].data.length - 1 ]; + return data; + } + + /** + * Returns maximum duration of slide playback for both modes + */ + function getSlideDuration( indices ) { + if ( !indices ) indices = slideIndices; + var duration = 0; + for ( var id = 0; id < 2; id++ ) { + for ( var i = 0; i < storage[ id ].data.length; i++ ) { + if ( storage[ id ].data[ i ].slide.h === indices.h && storage[ id ].data[ i ].slide.v === indices.v && storage[ id ].data[ i ].slide.f === indices.f ) { + duration = Math.max( duration, storage[ id ].data[ i ].duration ); + break; + } + } + } +//console.log( duration ); + return duration; + } + +/***************************************************************** + ** Print + ******************************************************************/ + var printMode = ( /print-pdf/gi ).test( window.location.search ); +//console.log("createPrintout" + printMode) + + function addPageNumbers() { + // determine page number for printouts with fragments serialised + var slides = Reveal.getSlides(); + var page = 0; + for ( var i=0; i < slides.length; i++) { + slides[i].setAttribute('data-pdf-page-number',page.toString()); + // add number of fragments without fragment indices + var count = slides[i].querySelectorAll('.fragment:not([data-fragment-index])').length; + var fragments = slides[i].querySelectorAll('.fragment[data-fragment-index]'); + for ( var j=0; j < fragments.length; j++) { + // increasenumber of fragments by highest fragment index (which start at 0) + if ( Number(fragments[j].getAttribute('data-fragment-index')) + 1 > count ) { + count = Number(fragments[j].getAttribute('data-fragment-index')) + 1; + } + } +//console.log(count,fragments.length,( slides[i].querySelector('h1,h2,h3,h4')||{}).innerHTML, page); + page += count + 1; + } + } + + function createPrintout() { + //console.warn(Reveal.getTotalSlides(),Reveal.getSlidesElement()); + if ( storage[ 1 ].data.length == 0 ) return; + console.log( 'Create printout(s) for ' + storage[ 1 ].data.length + " slides" ); + drawingCanvas[ 0 ].container.style.opacity = 0; // do not print notes canvas + drawingCanvas[ 0 ].container.style.visibility = 'hidden'; + + var patImg = new Image(); + patImg.onload = function () { + var slides = Reveal.getSlides(); +//console.log(slides); + for ( var i = storage[ 1 ].data.length - 1; i >= 0; i-- ) { + console.log( 'Create printout for slide ' + storage[ 1 ].data[ i ].slide.h + '.' + storage[ 1 ].data[ i ].slide.v ); + var slideData = getSlideData( storage[ 1 ].data[ i ].slide, 1 ); + var drawings = createDrawings( slideData, patImg ); +//console.log("Page:", storage[ 1 ].data[ i ].page ); +//console.log("Slide:", slides[storage[ 1 ].data[ i ].page] ); + addDrawings( slides[storage[ 1 ].data[ i ].page], drawings ); + + } +// Reveal.sync(); + }; + patImg.src = background[ 1 ]; + } + + + function cloneCanvas( oldCanvas ) { + //create a new canvas + var newCanvas = document.createElement( 'canvas' ); + var context = newCanvas.getContext( '2d' ); + //set dimensions + newCanvas.width = oldCanvas.width; + newCanvas.height = oldCanvas.height; + //apply the old canvas to the new one + context.drawImage( oldCanvas, 0, 0 ); + //return the new canvas + return newCanvas; + } + + function getCanvas( template, container, board ) { + var idx = container.findIndex( element => element.board === board ); + if ( idx === -1 ) { + var canvas = cloneCanvas( template ); + if ( !container.length ) { + idx = 0; + container.push( { + board, + canvas + } ); + } else if ( board < container[ 0 ].board ) { + idx = 0; + container.unshift( { + board, + canvas + } ); + } else if ( board > container[ container.length - 1 ].board ) { + idx = container.length; + container.push( { + board, + canvas + } ); + } + } + + return container[ idx ].canvas; + } + + function createDrawings( slideData, patImg ) { + var width = Reveal.getConfig().width; + var height = Reveal.getConfig().height; + var scale = 1; + var xOffset = 0; + var yOffset = 0; + if ( width != storage[ 1 ].width || height != storage[ 1 ].height ) { + scale = Math.min( width / storage[ 1 ].width, height / storage[ 1 ].height ); + xOffset = ( width - storage[ 1 ].width * scale ) / 2; + yOffset = ( height - storage[ 1 ].height * scale ) / 2; + } + mode = 1; + board = 0; +// console.log( 'Create printout(s) for slide ', slideData ); + + var drawings = []; + var template = document.createElement( 'canvas' ); + template.width = width; + template.height = height; + + var imgCtx = template.getContext( '2d' ); + imgCtx.fillStyle = imgCtx.createPattern( patImg, 'repeat' ); + imgCtx.rect( 0, 0, width, height ); + imgCtx.fill(); + + for ( var j = 0; j < slideData.events.length; j++ ) { + switch ( slideData.events[ j ].type ) { + case 'draw': + draw[ 1 ]( getCanvas( template, drawings, board ).getContext( '2d' ), + xOffset + slideData.events[ j ].x1 * scale, + yOffset + slideData.events[ j ].y1 * scale, + xOffset + slideData.events[ j ].x2 * scale, + yOffset + slideData.events[ j ].y2 * scale, + yOffset + slideData.events[ j ].color + ); + break; + case 'erase': + eraseWithSponge( getCanvas( template, drawings, board ).getContext( '2d' ), + xOffset + slideData.events[ j ].x * scale, + yOffset + slideData.events[ j ].y * scale + ); + break; + case 'selectboard': + selectBoard( slideData.events[ j ].board ); + break; + case 'clear': + getCanvas( template, drawings, board ).getContext( '2d' ).clearRect( 0, 0, width, height ); + getCanvas( template, drawings, board ).getContext( '2d' ).fill(); + break; + default: + break; + } + } + + drawings = drawings.sort( ( a, b ) => a.board > b.board && 1 || -1 ); + + mode = 0; + + return drawings; + } + + function addDrawings( slide, drawings ) { + var parent = slide.parentElement.parentElement; + var nextSlide = slide.parentElement.nextElementSibling; + + for ( var i = 0; i < drawings.length; i++ ) { + var newPDFPage = document.createElement( 'div' ); + newPDFPage.classList.add( 'pdf-page' ); + newPDFPage.style.height = Reveal.getConfig().height; + newPDFPage.append( drawings[ i ].canvas ); +//console.log("Add drawing", newPDFPage); + if ( nextSlide != null ) { + parent.insertBefore( newPDFPage, nextSlide ); + } else { + parent.append( newPDFPage ); + } + } + } + + /***************************************************************** + ** Drawings + ******************************************************************/ + + function drawWithBoardmarker( context, fromX, fromY, toX, toY, colorIdx ) { + if ( colorIdx == undefined ) colorIdx = color[ mode ]; + context.lineWidth = boardmarkerWidth; + context.lineCap = 'round'; + context.strokeStyle = boardmarkers[ colorIdx ].color; + context.beginPath(); + context.moveTo( fromX, fromY ); + context.lineTo( toX, toY ); + context.stroke(); + } + + function drawWithChalk( context, fromX, fromY, toX, toY, colorIdx ) { + if ( colorIdx == undefined ) colorIdx = color[ mode ]; + var brushDiameter = chalkWidth; + context.lineWidth = brushDiameter; + context.lineCap = 'round'; + context.fillStyle = chalks[ colorIdx ].color; // 'rgba(255,255,255,0.5)'; + context.strokeStyle = chalks[ colorIdx ].color; + /*var opacity = Math.min(0.8, Math.max(0,color[1].replace(/^.*,(.+)\)/,'$1') - 0.1)) + Math.random()*0.2;*/ + var opacity = 1.0; + context.strokeStyle = context.strokeStyle.replace( /[\d\.]+\)$/g, opacity + ')' ); + context.beginPath(); + context.moveTo( fromX, fromY ); + context.lineTo( toX, toY ); + context.stroke(); + // Chalk Effect + var length = Math.round( Math.sqrt( Math.pow( toX - fromX, 2 ) + Math.pow( toY - fromY, 2 ) ) / ( 5 / brushDiameter ) ); + var xUnit = ( toX - fromX ) / length; + var yUnit = ( toY - fromY ) / length; + for ( var i = 0; i < length; i++ ) { + if ( chalkEffect > ( Math.random() * 0.9 ) ) { + var xCurrent = fromX + ( i * xUnit ); + var yCurrent = fromY + ( i * yUnit ); + var xRandom = xCurrent + ( Math.random() - 0.5 ) * brushDiameter * 1.2; + var yRandom = yCurrent + ( Math.random() - 0.5 ) * brushDiameter * 1.2; + context.clearRect( xRandom, yRandom, Math.random() * 2 + 2, Math.random() + 1 ); + } + } + } + + function eraseWithSponge( context, x, y ) { + context.save(); + context.beginPath(); + context.arc( x, y, eraser.radius, 0, 2 * Math.PI, false ); + context.clip(); + context.clearRect( x - eraser.radius - 1, y - eraser.radius - 1, eraser.radius * 2 + 2, eraser.radius * 2 + 2 ); + context.restore(); + if ( mode == 1 && grid ) { + redrawGrid( x, y, eraser.radius ); + } + } + + + /** + * Show an overlay for the chalkboard. + */ + function showChalkboard() { +//console.log("showChalkboard"); + clearTimeout( touchTimeout ); + touchTimeout = null; + drawingCanvas[ 0 ].sponge.style.visibility = 'hidden'; // make sure that the sponge from touch events is hidden + drawingCanvas[ 1 ].sponge.style.visibility = 'hidden'; // make sure that the sponge from touch events is hidden + drawingCanvas[ 1 ].container.style.opacity = 1; + drawingCanvas[ 1 ].container.style.visibility = 'visible'; + mode = 1; + } + + + /** + * Closes open chalkboard. + */ + function closeChalkboard() { + clearTimeout( touchTimeout ); + touchTimeout = null; + drawingCanvas[ 0 ].sponge.style.visibility = 'hidden'; // make sure that the sponge from touch events is hidden + drawingCanvas[ 1 ].sponge.style.visibility = 'hidden'; // make sure that the sponge from touch events is hidden + drawingCanvas[ 1 ].container.style.opacity = 0; + drawingCanvas[ 1 ].container.style.visibility = 'hidden'; + lastX = null; + lastY = null; + mode = 0; + } + + /** + * Clear current canvas. + */ + function clearCanvas( id ) { + if ( id == 0 ) clearTimeout( slidechangeTimeout ); + drawingCanvas[ id ].context.clearRect( 0, 0, drawingCanvas[ id ].width, drawingCanvas[ id ].height ); + if ( id == 1 && grid ) drawGrid(); + } + + /** + * Draw grid on background + */ + function drawGrid() { + var context = drawingCanvas[ 1 ].context; + + drawingCanvas[ 1 ].scale = Math.min( drawingCanvas[ 1 ].width / storage[ 1 ].width, drawingCanvas[ 1 ].height / storage[ 1 ].height ); + drawingCanvas[ 1 ].xOffset = ( drawingCanvas[ 1 ].width - storage[ 1 ].width * drawingCanvas[ 1 ].scale ) / 2; + drawingCanvas[ 1 ].yOffset = ( drawingCanvas[ 1 ].height - storage[ 1 ].height * drawingCanvas[ 1 ].scale ) / 2; + + var scale = drawingCanvas[ 1 ].scale; + var xOffset = drawingCanvas[ 1 ].xOffset; + var yOffset = drawingCanvas[ 1 ].yOffset; + + var distance = grid.distance * scale; + + var fromX = drawingCanvas[ 1 ].width / 2 - distance / 2 - Math.floor( ( drawingCanvas[ 1 ].width - distance ) / 2 / distance ) * distance; + for ( var x = fromX; x < drawingCanvas[ 1 ].width; x += distance ) { + context.beginPath(); + context.lineWidth = grid.width * scale; + context.lineCap = 'round'; + context.fillStyle = grid.color; + context.strokeStyle = grid.color; + context.moveTo( x, 0 ); + context.lineTo( x, drawingCanvas[ 1 ].height ); + context.stroke(); + } + var fromY = drawingCanvas[ 1 ].height / 2 - distance / 2 - Math.floor( ( drawingCanvas[ 1 ].height - distance ) / 2 / distance ) * distance; + + for ( var y = fromY; y < drawingCanvas[ 1 ].height; y += distance ) { + context.beginPath(); + context.lineWidth = grid.width * scale; + context.lineCap = 'round'; + context.fillStyle = grid.color; + context.strokeStyle = grid.color; + context.moveTo( 0, y ); + context.lineTo( drawingCanvas[ 1 ].width, y ); + context.stroke(); + } + } + + function redrawGrid( centerX, centerY, diameter ) { + var context = drawingCanvas[ 1 ].context; + + drawingCanvas[ 1 ].scale = Math.min( drawingCanvas[ 1 ].width / storage[ 1 ].width, drawingCanvas[ 1 ].height / storage[ 1 ].height ); + drawingCanvas[ 1 ].xOffset = ( drawingCanvas[ 1 ].width - storage[ 1 ].width * drawingCanvas[ 1 ].scale ) / 2; + drawingCanvas[ 1 ].yOffset = ( drawingCanvas[ 1 ].height - storage[ 1 ].height * drawingCanvas[ 1 ].scale ) / 2; + + var scale = drawingCanvas[ 1 ].scale; + var xOffset = drawingCanvas[ 1 ].xOffset; + var yOffset = drawingCanvas[ 1 ].yOffset; + + var distance = grid.distance * scale; + + var fromX = drawingCanvas[ 1 ].width / 2 - distance / 2 - Math.floor( ( drawingCanvas[ 1 ].width - distance ) / 2 / distance ) * distance; + + for ( var x = fromX + distance * Math.ceil( ( centerX - diameter - fromX ) / distance ); x <= fromX + distance * Math.floor( ( centerX + diameter - fromX ) / distance ); x += distance ) { + context.beginPath(); + context.lineWidth = grid.width * scale; + context.lineCap = 'round'; + context.fillStyle = grid.color; + context.strokeStyle = grid.color; + context.moveTo( x, centerY - Math.sqrt( diameter * diameter - ( centerX - x ) * ( centerX - x ) ) ); + context.lineTo( x, centerY + Math.sqrt( diameter * diameter - ( centerX - x ) * ( centerX - x ) ) ); + context.stroke(); + } + var fromY = drawingCanvas[ 1 ].height / 2 - distance / 2 - Math.floor( ( drawingCanvas[ 1 ].height - distance ) / 2 / distance ) * distance; + for ( var y = fromY + distance * Math.ceil( ( centerY - diameter - fromY ) / distance ); y <= fromY + distance * Math.floor( ( centerY + diameter - fromY ) / distance ); y += distance ) { + context.beginPath(); + context.lineWidth = grid.width * scale; + context.lineCap = 'round'; + context.fillStyle = grid.color; + context.strokeStyle = grid.color; + context.moveTo( centerX - Math.sqrt( diameter * diameter - ( centerY - y ) * ( centerY - y ) ), y ); + context.lineTo( centerX + Math.sqrt( diameter * diameter - ( centerY - y ) * ( centerY - y ) ), y ); + context.stroke(); + } + } + + /** + * Set the color + */ + function setColor( index, record ) { + // protect against out of bounds (this could happen when + // replaying events recorded with different color settings). + if ( index >= pens[ mode ].length ) index = 0; + color[ mode ] = index; + drawingCanvas[ mode ].canvas.style.cursor = pens[ mode ][ color[ mode ] ].cursor; + } + + /** + * Set the board + */ + function selectBoard( boardIdx, record ) { +//console.log("Set board",boardIdx); + if ( board == boardIdx ) return; + + board = boardIdx; + redrawChalkboard( boardIdx ); + if ( record ) { + recordEvent( { type: 'selectboard' } ); + } + } + + function redrawChalkboard( boardIdx ) { + clearCanvas( 1 ); + var slideData = getSlideData( slideIndices, 1 ); + var index = 0; + var play = ( boardIdx == 0 ); + while ( index < slideData.events.length && slideData.events[ index ].time < Date.now() - slideStart ) { + if ( boardIdx == slideData.events[ index ].board ) { + playEvent( 1, slideData.events[ index ], Date.now() - slideStart ); + } + + index++; + } + } + + + /** + * Forward cycle color + */ + function cycleColorNext() { + color[ mode ] = ( color[ mode ] + 1 ) % pens[ mode ].length; + return color[ mode ]; + } + + /** + * Backward cycle color + */ + function cycleColorPrev() { + color[ mode ] = ( color[ mode ] + ( pens[ mode ].length - 1 ) ) % pens[ mode ].length; + return color[ mode ]; + } + +/***************************************************************** + ** Broadcast + ******************************************************************/ + + var eventQueue = []; + + document.addEventListener( 'received', function ( message ) { + if ( message.content && message.content.sender == 'chalkboard-plugin' ) { + // add message to queue + eventQueue.push( message ); + console.log( JSON.stringify( message ) ); + } + if ( eventQueue.length == 1 ) processQueue(); + } ); + + function processQueue() { + // take first message from queue + var message = eventQueue.shift(); + + // synchronize time with seminar host + slideStart = Date.now() - message.content.timestamp; + // set status + if ( mode < message.content.mode ) { + // open chalkboard + showChalkboard(); + } else if ( mode > message.content.mode ) { + // close chalkboard + closeChalkboard(); + } + if ( board != message.content.board ) { + board = message.content.board; + redrawChalkboard( board ); + }; + + switch ( message.content.type ) { + case 'showChalkboard': + showChalkboard(); + break; + case 'closeChalkboard': + closeChalkboard(); + break; + case 'erase': + erasePoint( message.content.x, message.content.y ); + break; + case 'draw': + drawSegment( message.content.fromX, message.content.fromY, message.content.toX, message.content.toY, message.content.color ); + break; + case 'clear': + clearSlide(); + break; + case 'selectboard': + selectBoard( message.content.board, true ); + break; + case 'resetSlide': + resetSlideDrawings(); + break; + case 'init': + storage = message.content.storage; + for ( var id = 0; id < 2; id++ ) { + drawingCanvas[ id ].scale = Math.min( drawingCanvas[ id ].width / storage[ id ].width, drawingCanvas[ id ].height / storage[ id ].height ); + drawingCanvas[ id ].xOffset = ( drawingCanvas[ id ].width - storage[ id ].width * drawingCanvas[ id ].scale ) / 2; + drawingCanvas[ id ].yOffset = ( drawingCanvas[ id ].height - storage[ id ].height * drawingCanvas[ id ].scale ) / 2; + } + clearCanvas( 0 ); + clearCanvas( 1 ); + if ( !playback ) { + slidechangeTimeout = setTimeout( startPlayback, transition, getSlideDuration(), 0 ); + } + if ( mode == 1 && message.content.mode == 0 ) { + setTimeout( closeChalkboard, transition + 50 ); + } + if ( mode == 0 && message.content.mode == 1 ) { + setTimeout( showChalkboard, transition + 50 ); + } + mode = message.content.mode; + board = message.content.board; + break; + default: + break; + } + + // continue with next message if queued + if ( eventQueue.length > 0 ) { + processQueue(); + } else { + storageChanged(); + } + } + + document.addEventListener( 'welcome', function ( user ) { + // broadcast storage + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + recipient: user.id, + type: 'init', + timestamp: Date.now() - slideStart, + storage: storage, + mode, + board + }; + document.dispatchEvent( message ); + } ); + + /***************************************************************** + ** Playback + ******************************************************************/ + + document.addEventListener( 'seekplayback', function ( event ) { +//console.log('event seekplayback ' + event.timestamp); + stopPlayback(); + if ( !playback || event.timestamp == 0 ) { + // in other cases startplayback fires after seeked + startPlayback( event.timestamp ); + } + //console.log('seeked'); + } ); + + + document.addEventListener( 'startplayback', function ( event ) { +//console.log('event startplayback ' + event.timestamp); + stopPlayback(); + playback = true; + startPlayback( event.timestamp ); + } ); + + document.addEventListener( 'stopplayback', function ( event ) { +//console.log('event stopplayback ' + (Date.now() - slideStart) ); + playback = false; + stopPlayback(); + } ); + + document.addEventListener( 'startrecording', function ( event ) { +//console.log('event startrecording ' + event.timestamp); + startRecording(); + } ); + + + function startRecording() { + resetSlide( true ); + slideStart = Date.now(); + } + + function startPlayback( timestamp, finalMode ) { +//console.log("playback " + timestamp ); + slideStart = Date.now() - timestamp; + closeChalkboard(); + mode = 0; + board = 0; + for ( var id = 0; id < 2; id++ ) { + clearCanvas( id ); + var slideData = getSlideData( slideIndices, id ); +//console.log( timestamp +" / " + JSON.stringify(slideData)); + var index = 0; + while ( index < slideData.events.length && slideData.events[ index ].time < ( Date.now() - slideStart ) ) { + playEvent( id, slideData.events[ index ], timestamp ); + index++; + } + + while ( playback && index < slideData.events.length ) { + timeouts[ id ].push( setTimeout( playEvent, slideData.events[ index ].time - ( Date.now() - slideStart ), id, slideData.events[ index ], timestamp ) ); + index++; + } + } +//console.log("Mode: " + finalMode + "/" + mode ); + if ( finalMode != undefined ) { + mode = finalMode; + } + if ( mode == 1 ) showChalkboard(); +//console.log("playback (ok)"); + + }; + + function stopPlayback() { +//console.log("stopPlayback"); +//console.log("Timeouts: " + timeouts[0].length + "/"+ timeouts[1].length); + for ( var id = 0; id < 2; id++ ) { + for ( var i = 0; i < timeouts[ id ].length; i++ ) { + clearTimeout( timeouts[ id ][ i ] ); + } + timeouts[ id ] = []; + } + }; + + function playEvent( id, event, timestamp ) { +//console.log( timestamp +" / " + JSON.stringify(event)); +//console.log( id + ": " + timestamp +" / " + event.time +" / " + event.type +" / " + mode ); + switch ( event.type ) { + case 'open': + if ( timestamp <= event.time ) { + showChalkboard(); + } else { + mode = 1; + } + + break; + case 'close': + if ( timestamp < event.time ) { + closeChalkboard(); + } else { + mode = 0; + } + break; + case 'clear': + clearCanvas( id ); + break; + case 'selectboard': + selectBoard( event.board ); + break; + case 'draw': + drawLine( id, event, timestamp ); + break; + case 'erase': + eraseCircle( id, event, timestamp ); + break; + } + }; + + function drawLine( id, event, timestamp ) { + var ctx = drawingCanvas[ id ].context; + var scale = drawingCanvas[ id ].scale; + var xOffset = drawingCanvas[ id ].xOffset; + var yOffset = drawingCanvas[ id ].yOffset; + draw[ id ]( ctx, xOffset + event.x1 * scale, yOffset + event.y1 * scale, xOffset + event.x2 * scale, yOffset + event.y2 * scale, event.color ); + }; + + function eraseCircle( id, event, timestamp ) { + var ctx = drawingCanvas[ id ].context; + var scale = drawingCanvas[ id ].scale; + var xOffset = drawingCanvas[ id ].xOffset; + var yOffset = drawingCanvas[ id ].yOffset; + + eraseWithSponge( ctx, xOffset + event.x * scale, yOffset + event.y * scale ); + }; + + function startErasing( x, y ) { + drawing = false; + erasing = true; + drawingCanvas[ mode ].sponge.style.visibility = 'visible'; + erasePoint( x, y ); + } + + function erasePoint( x, y ) { + var ctx = drawingCanvas[ mode ].context; + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + // move sponge image + drawingCanvas[ mode ].sponge.style.left = ( x * scale + xOffset - eraser.radius ) + 'px'; + drawingCanvas[ mode ].sponge.style.top = ( y * scale + yOffset - 2 * eraser.radius ) + 'px'; + + recordEvent( { + type: 'erase', + x, + y + } ); + + if ( + x * scale + xOffset > 0 && + y * scale + yOffset > 0 && + x * scale + xOffset < drawingCanvas[ mode ].width && + y * scale + yOffset < drawingCanvas[ mode ].height + ) { + eraseWithSponge( ctx, x * scale + xOffset, y * scale + yOffset ); + } + } + + function stopErasing() { + erasing = false; + // hide sponge + drawingCanvas[ mode ].sponge.style.visibility = 'hidden'; + } + + function startDrawing( x, y ) { + drawing = true; + + var ctx = drawingCanvas[ mode ].context; + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + lastX = x * scale + xOffset; + lastY = y * scale + yOffset; + } + + function drawSegment( fromX, fromY, toX, toY, colorIdx ) { + var ctx = drawingCanvas[ mode ].context; + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + recordEvent( { + type: 'draw', + color: colorIdx, + x1: fromX, + y1: fromY, + x2: toX, + y2: toY + } ); + + if ( + fromX * scale + xOffset > 0 && + fromY * scale + yOffset > 0 && + fromX * scale + xOffset < drawingCanvas[ mode ].width && + fromY * scale + yOffset < drawingCanvas[ mode ].height && + toX * scale + xOffset > 0 && + toY * scale + yOffset > 0 && + toX * scale + xOffset < drawingCanvas[ mode ].width && + toY * scale + yOffset < drawingCanvas[ mode ].height + ) { + draw[ mode ]( ctx, fromX * scale + xOffset, fromY * scale + yOffset, toX * scale + xOffset, toY * scale + yOffset, colorIdx ); + } + } + + function stopDrawing() { + drawing = false; + } + + +/***************************************************************** + ** User interface + ******************************************************************/ + + function setupCanvasEvents( canvas ) { +// TODO: check all touchevents + canvas.addEventListener( 'touchstart', function ( evt ) { + evt.preventDefault(); +//console.log("Touch start"); + if ( !readOnly && evt.target.getAttribute( 'data-chalkboard' ) == mode ) { + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + var touch = evt.touches[ 0 ]; + mouseX = touch.pageX; + mouseY = touch.pageY; + startDrawing( ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + touchTimeout = setTimeout( startErasing, 500, ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + } + }, passiveSupported ? { + passive: false + } : false ); + + canvas.addEventListener( 'touchmove', function ( evt ) { + evt.preventDefault(); +//console.log("Touch move"); + clearTimeout( touchTimeout ); + touchTimeout = null; + if ( drawing || erasing ) { + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + var touch = evt.touches[ 0 ]; + mouseX = touch.pageX; + mouseY = touch.pageY; + if ( mouseY < drawingCanvas[ mode ].height && mouseX < drawingCanvas[ mode ].width ) { + // move sponge + if ( event.type == 'erase' ) { + drawingCanvas[ mode ].sponge.style.left = ( mouseX - eraser.radius ) + 'px'; + drawingCanvas[ mode ].sponge.style.top = ( mouseY - eraser.radius ) + 'px'; + } + } + + if ( drawing ) { + drawSegment( ( lastX - xOffset ) / scale, ( lastY - yOffset ) / scale, ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale, color[ mode ] ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'draw', + timestamp: Date.now() - slideStart, + mode, + board, + fromX: ( lastX - xOffset ) / scale, + fromY: ( lastY - yOffset ) / scale, + toX: ( mouseX - xOffset ) / scale, + toY: ( mouseY - yOffset ) / scale, + color: color[ mode ] + }; + document.dispatchEvent( message ); + + lastX = mouseX; + lastY = mouseY; + } else { + erasePoint( ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'erase', + timestamp: Date.now() - slideStart, + mode, + board, + x: ( mouseX - xOffset ) / scale, + y: ( mouseY - yOffset ) / scale + }; + document.dispatchEvent( message ); + } + + } + }, false ); + + + canvas.addEventListener( 'touchend', function ( evt ) { + evt.preventDefault(); + clearTimeout( touchTimeout ); + touchTimeout = null; + // hide sponge image + drawingCanvas[ mode ].sponge.style.visibility = 'hidden'; + stopDrawing(); + }, false ); + + canvas.addEventListener( 'mousedown', function ( evt ) { + evt.preventDefault(); + if ( !readOnly && evt.target.getAttribute( 'data-chalkboard' ) == mode ) { +//console.log( "mousedown: " + evt.button ); + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + mouseX = evt.pageX; + mouseY = evt.pageY; + + if ( evt.button == 2 || evt.button == 1 ) { + startErasing( ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'erase', + timestamp: Date.now() - slideStart, + mode, + board, + x: ( mouseX - xOffset ) / scale, + y: ( mouseY - yOffset ) / scale + }; + document.dispatchEvent( message ); + } else { + startDrawing( ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + } + } + } ); + + canvas.addEventListener( 'mousemove', function ( evt ) { + evt.preventDefault(); +//console.log("Mouse move"); + if ( drawing || erasing ) { + var scale = drawingCanvas[ mode ].scale; + var xOffset = drawingCanvas[ mode ].xOffset; + var yOffset = drawingCanvas[ mode ].yOffset; + + mouseX = evt.pageX; + mouseY = evt.pageY; + + if ( drawing ) { + drawSegment( ( lastX - xOffset ) / scale, ( lastY - yOffset ) / scale, ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale, color[ mode ] ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'draw', + timestamp: Date.now() - slideStart, + mode, + board, + fromX: ( lastX - xOffset ) / scale, + fromY: ( lastY - yOffset ) / scale, + toX: ( mouseX - xOffset ) / scale, + toY: ( mouseY - yOffset ) / scale, + color: color[ mode ] + }; + document.dispatchEvent( message ); + + lastX = mouseX; + lastY = mouseY; + } else { + erasePoint( ( mouseX - xOffset ) / scale, ( mouseY - yOffset ) / scale ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'erase', + timestamp: Date.now() - slideStart, + mode, + board, + x: ( mouseX - xOffset ) / scale, + y: ( mouseY - yOffset ) / scale + }; + document.dispatchEvent( message ); + } + + } + } ); + + + canvas.addEventListener( 'mouseup', function ( evt ) { + evt.preventDefault(); + drawingCanvas[ mode ].canvas.style.cursor = pens[ mode ][ color[ mode ] ].cursor; + if ( drawing || erasing ) { + stopDrawing(); + stopErasing(); + } + } ); + } + + function resize() { +//console.log("resize"); + // Resize the canvas and draw everything again + var timestamp = Date.now() - slideStart; + if ( !playback ) { + timestamp = getSlideDuration(); + } + +//console.log( drawingCanvas[0].scale + "/" + drawingCanvas[0].xOffset + "/" +drawingCanvas[0].yOffset ); + for ( var id = 0; id < 2; id++ ) { + drawingCanvas[ id ].width = window.innerWidth; + drawingCanvas[ id ].height = window.innerHeight; + drawingCanvas[ id ].canvas.width = drawingCanvas[ id ].width; + drawingCanvas[ id ].canvas.height = drawingCanvas[ id ].height; + drawingCanvas[ id ].context.canvas.width = drawingCanvas[ id ].width; + drawingCanvas[ id ].context.canvas.height = drawingCanvas[ id ].height; + + drawingCanvas[ id ].scale = Math.min( drawingCanvas[ id ].width / storage[ id ].width, drawingCanvas[ id ].height / storage[ id ].height ); + drawingCanvas[ id ].xOffset = ( drawingCanvas[ id ].width - storage[ id ].width * drawingCanvas[ id ].scale ) / 2; + drawingCanvas[ id ].yOffset = ( drawingCanvas[ id ].height - storage[ id ].height * drawingCanvas[ id ].scale ) / 2; +//console.log( drawingCanvas[id].scale + "/" + drawingCanvas[id].xOffset + "/" +drawingCanvas[id].yOffset ); + } +//console.log( window.innerWidth + "/" + window.innerHeight); + startPlayback( timestamp, mode, true ); + } + + Reveal.addEventListener( 'pdf-ready', function ( evt ) { +// console.log( "Create printouts when ready" ); + whenLoaded( createPrintout ); + }); + + Reveal.addEventListener( 'ready', function ( evt ) { +//console.log('ready'); + if ( !printMode ) { + window.addEventListener( 'resize', resize ); + + slideStart = Date.now() - getSlideDuration(); + slideIndices = Reveal.getIndices(); + if ( !playback ) { + startPlayback( getSlideDuration(), 0 ); + } + if ( Reveal.isAutoSliding() ) { + var event = new CustomEvent( 'startplayback' ); + event.timestamp = 0; + document.dispatchEvent( event ); + } + updateStorage(); + whenReady( addPageNumbers ); + } + } ); + Reveal.addEventListener( 'slidechanged', function ( evt ) { +// clearTimeout( slidechangeTimeout ); +//console.log('slidechanged'); + if ( !printMode ) { + slideStart = Date.now() - getSlideDuration(); + slideIndices = Reveal.getIndices(); + closeChalkboard(); + board = 0; + clearCanvas( 0 ); + clearCanvas( 1 ); + if ( !playback ) { + slidechangeTimeout = setTimeout( startPlayback, transition, getSlideDuration(), 0 ); + } + if ( Reveal.isAutoSliding() ) { + var event = new CustomEvent( 'startplayback' ); + event.timestamp = 0; + document.dispatchEvent( event ); + } + } + } ); + Reveal.addEventListener( 'fragmentshown', function ( evt ) { +// clearTimeout( slidechangeTimeout ); +//console.log('fragmentshown'); + if ( !printMode ) { + slideStart = Date.now() - getSlideDuration(); + slideIndices = Reveal.getIndices(); + closeChalkboard(); + board = 0; + clearCanvas( 0 ); + clearCanvas( 1 ); + if ( Reveal.isAutoSliding() ) { + var event = new CustomEvent( 'startplayback' ); + event.timestamp = 0; + document.dispatchEvent( event ); + } else if ( !playback ) { + startPlayback( getSlideDuration(), 0 ); +// closeChalkboard(); + } + } + } ); + Reveal.addEventListener( 'fragmenthidden', function ( evt ) { +// clearTimeout( slidechangeTimeout ); +//console.log('fragmenthidden'); + if ( !printMode ) { + slideStart = Date.now() - getSlideDuration(); + slideIndices = Reveal.getIndices(); + closeChalkboard(); + board = 0; + clearCanvas( 0 ); + clearCanvas( 1 ); + if ( Reveal.isAutoSliding() ) { + document.dispatchEvent( new CustomEvent( 'stopplayback' ) ); + } else if ( !playback ) { + startPlayback( getSlideDuration() ); + closeChalkboard(); + } + } + } ); + + Reveal.addEventListener( 'autoslideresumed', function ( evt ) { +//console.log('autoslideresumed'); + var event = new CustomEvent( 'startplayback' ); + event.timestamp = 0; + document.dispatchEvent( event ); + } ); + Reveal.addEventListener( 'autoslidepaused', function ( evt ) { +//console.log('autoslidepaused'); + document.dispatchEvent( new CustomEvent( 'stopplayback' ) ); + + // advance to end of slide +// closeChalkboard(); + startPlayback( getSlideDuration(), 0 ); + } ); + + function toggleNotesCanvas() { + if ( !readOnly ) { + if ( mode == 1 ) { + toggleChalkboard(); + notescanvas.style.background = background[ 0 ]; //'rgba(255,0,0,0.5)'; + notescanvas.style.pointerEvents = 'auto'; + } + else { + if ( notescanvas.style.pointerEvents != 'none' ) { + // hide notes canvas + if ( colorButtons ) { + notescanvas.querySelector( '.palette' ).style.visibility = 'hidden'; + } + notescanvas.style.background = 'rgba(0,0,0,0)'; + notescanvas.style.pointerEvents = 'none'; + } + else { + // show notes canvas + if ( colorButtons ) { + notescanvas.querySelector( '.palette' ).style.visibility = 'visible'; + } + notescanvas.style.background = background[ 0 ]; //'rgba(255,0,0,0.5)'; + notescanvas.style.pointerEvents = 'auto'; + + var idx = 0; + if ( color[ mode ] ) { + idx = color[ mode ]; + } + + setColor( idx, true ); + } + } + } + }; + + function toggleChalkboard() { +//console.log("toggleChalkboard " + mode); + if ( mode == 1 ) { + if ( !readOnly ) { + recordEvent( { type: 'close' } ); + } + closeChalkboard(); + + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'closeChalkboard', + timestamp: Date.now() - slideStart, + mode: 0, + board + }; + document.dispatchEvent( message ); + + + } else { + showChalkboard(); + if ( !readOnly ) { + recordEvent( { type: 'open' } ); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'showChalkboard', + timestamp: Date.now() - slideStart, + mode: 1, + board + }; + document.dispatchEvent( message ); + + var idx = 0; + + if ( rememberColor[ mode ] ) { + idx = color[ mode ]; + } + + setColor( idx, true ); + } + } + }; + + function clearSlide() { + recordEvent( { type: 'clear' } ); + clearCanvas( mode ); + } + + function clear() { + if ( !readOnly ) { + clearSlide(); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'clear', + timestamp: Date.now() - slideStart, + mode, + board + }; + document.dispatchEvent( message ); + } + }; + + function colorIndex( idx ) { + if ( !readOnly ) { + setColor( idx, true ); + } + } + + function colorNext() { + if ( !readOnly ) { + let idx = cycleColorNext(); + setColor( idx, true ); + } + } + + function colorPrev() { + if ( !readOnly ) { + let idx = cycleColorPrev(); + setColor( idx, true ); + } + } + + function resetSlideDrawings() { + slideStart = Date.now(); + closeChalkboard(); + + clearCanvas( 0 ); + clearCanvas( 1 ); + + mode = 1; + var slideData = getSlideData(); + slideData.duration = 0; + slideData.events = []; + mode = 0; + var slideData = getSlideData(); + slideData.duration = 0; + slideData.events = []; + + updateStorage(); + } + + function resetSlide( force ) { + var ok = force || confirm( "Please confirm to delete chalkboard drawings on this slide!" ); + if ( ok ) { +//console.log("resetSlide "); + stopPlayback(); + resetSlideDrawings(); + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'resetSlide', + timestamp: Date.now() - slideStart, + mode, + board + }; + document.dispatchEvent( message ); + } + }; + + function resetStorage( force ) { + var ok = force || confirm( "Please confirm to delete all chalkboard drawings!" ); + if ( ok ) { + stopPlayback(); + slideStart = Date.now(); + clearCanvas( 0 ); + clearCanvas( 1 ); + if ( mode == 1 ) { + closeChalkboard(); + } + + storage = [ { + width: Reveal.getConfig().width, + height: Reveal.getConfig().height, + data: [] + }, + { + width: Reveal.getConfig().width, + height: Reveal.getConfig().height, + data: [] + } + ]; + + if ( config.storage ) { + sessionStorage.setItem( config.storage, null ) + } + // broadcast + var message = new CustomEvent( messageType ); + message.content = { + sender: 'chalkboard-plugin', + type: 'init', + timestamp: Date.now() - slideStart, + storage, + mode, + board + }; + document.dispatchEvent( message ); + } + }; + + this.toggleNotesCanvas = toggleNotesCanvas; + this.toggleChalkboard = toggleChalkboard; + this.colorIndex = colorIndex; + this.colorNext = colorNext; + this.colorPrev = colorPrev; + this.clear = clear; + this.reset = resetSlide; + this.resetAll = resetStorage; + this.download = downloadData; + this.updateStorage = updateStorage; + this.getData = getData; + this.configure = configure; + + + for ( var key in keyBindings ) { + if ( keyBindings[ key ] ) { + Reveal.addKeyBinding( keyBindings[ key ], RevealChalkboard[ key ] ); + } + }; + + return this; +}; diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.yml b/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.yml new file mode 100644 index 0000000..b0568c2 --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/plugin.yml @@ -0,0 +1,7 @@ +name: RevealChalkboard +script: plugin.js +stylesheet: ["font-awesome/css/all.css", "style.css"] +self-contained: false +config: + chalkboard: + buttons: true diff --git a/english/site_libs/revealjs/plugin/reveal-chalkboard/style.css b/english/site_libs/revealjs/plugin/reveal-chalkboard/style.css new file mode 100644 index 0000000..08765e7 --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-chalkboard/style.css @@ -0,0 +1,44 @@ +div.palette, div.boardhandle { + position: absolute; +/* + height: 260px; + margin: -130px 0 0 0px; +*/ + top: 50%; + transform: translateY(-50%); + font-size: 24px; + border-radius: 10px; + border-top: 4px solid #222; + border-right: 4px solid #222; + border-bottom: 4px solid #222; + background: black; + transition: transform 0.3s; +} + +div.palette { + left: -10px; + padding-left:10px; +} + +div.boardhandle { + right: -10px; + padding-right:10px; +} + +div.palette > ul, +div.boardhandle > ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +div.palette > ul > li, +div.boardhandle > ul > li { + margin: 10px; +} + +@media print { + div.palette, div.boardhandle, .chalkboard-button { + display: none!important; + } +} diff --git a/english/site_libs/revealjs/plugin/reveal-menu/menu.css b/english/site_libs/revealjs/plugin/reveal-menu/menu.css new file mode 100644 index 0000000..5a300fd --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-menu/menu.css @@ -0,0 +1,346 @@ +.slide-menu-wrapper { + font-family: 'Source Sans Pro', Helvetica, sans-serif; +} + +.slide-menu-wrapper .slide-menu { + background-color: #333; + z-index: 200; + position: fixed; + top: 0; + width: 300px; + height: 100%; + /*overflow-y: scroll;*/ + transition: transform 0.3s; + font-size: 16px; + font-weight: normal; +} + +.slide-menu-wrapper .slide-menu.slide-menu--wide { + width: 500px; +} + +.slide-menu-wrapper .slide-menu.slide-menu--third { + width: 33%; +} + +.slide-menu-wrapper .slide-menu.slide-menu--half { + width: 50%; +} + +.slide-menu-wrapper .slide-menu.slide-menu--full { + width: 95%; +} + +/* + * Slides menu + */ + +.slide-menu-wrapper .slide-menu-items { + margin: 0; + padding: 0; + width: 100%; + border-bottom: solid 1px #555; +} + +.slide-menu-wrapper .slide-menu-item, +.slide-menu-wrapper .slide-menu-item-vertical { + display: block; + text-align: left; + padding: 10px 18px; + color: #aaa; + cursor: pointer; +} + +.slide-menu-wrapper .slide-menu-item-vertical { + padding-left: 30px; +} + +.slide-menu-wrapper .slide-menu--wide .slide-menu-item-vertical, +.slide-menu-wrapper .slide-menu--third .slide-menu-item-vertical, +.slide-menu-wrapper .slide-menu--half .slide-menu-item-vertical, +.slide-menu-wrapper .slide-menu--full .slide-menu-item-vertical, +.slide-menu-wrapper .slide-menu--custom .slide-menu-item-vertical { + padding-left: 50px; +} + +.slide-menu-wrapper .slide-menu-item { + border-top: solid 1px #555; +} + +.slide-menu-wrapper .active-menu-panel li.selected { + background-color: #222; + color: white; +} + +.slide-menu-wrapper .active-menu-panel li.active { + color: #eee; +} + +.slide-menu-wrapper .slide-menu-item.no-title .slide-menu-item-title, +.slide-menu-wrapper .slide-menu-item-vertical.no-title .slide-menu-item-title { + font-style: italic; +} + +.slide-menu-wrapper .slide-menu-item-number { + color: #999; + padding-right: 6px; +} + +.slide-menu-wrapper .slide-menu-item i.far, +.slide-menu-wrapper .slide-menu-item i.fas, +.slide-menu-wrapper .slide-menu-item-vertical i.far, +.slide-menu-wrapper .slide-menu-item-vertical i.fas, +.slide-menu-wrapper .slide-menu-item svg.svg-inline--fa, +.slide-menu-wrapper .slide-menu-item-vertical svg.svg-inline--fa { + padding-right: 12px; + display: none; +} + +.slide-menu-wrapper .slide-menu-item.past i.fas.past, +.slide-menu-wrapper .slide-menu-item-vertical.past i.fas.past, +.slide-menu-wrapper .slide-menu-item.active i.fas.active, +.slide-menu-wrapper .slide-menu-item-vertical.active i.fas.active, +.slide-menu-wrapper .slide-menu-item.future i.far.future, +.slide-menu-wrapper .slide-menu-item-vertical.future i.far.future, +.slide-menu-wrapper .slide-menu-item.past svg.svg-inline--fa.past, +.slide-menu-wrapper .slide-menu-item-vertical.past svg.svg-inline--fa.past, +.slide-menu-wrapper .slide-menu-item.active svg.svg-inline--fa.active, +.slide-menu-wrapper .slide-menu-item-vertical.active svg.svg-inline--fa.active, +.slide-menu-wrapper .slide-menu-item.future svg.svg-inline--fa.future, +.slide-menu-wrapper .slide-menu-item-vertical.future svg.svg-inline--fa.future { + display: inline-block; +} + +.slide-menu-wrapper .slide-menu-item.past i.fas.past, +.slide-menu-wrapper .slide-menu-item-vertical.past i.fas.past, +.slide-menu-wrapper .slide-menu-item.future i.far.future, +.slide-menu-wrapper .slide-menu-item-vertical.future i.far.future, +.slide-menu-wrapper .slide-menu-item.past svg.svg-inline--fa.past, +.slide-menu-wrapper .slide-menu-item-vertical.past svg.svg-inline--fa.past, +.slide-menu-wrapper .slide-menu-item.future svg.svg-inline--fa.future, +.slide-menu-wrapper .slide-menu-item-vertical.future svg.svg-inline--fa.future { + opacity: 0.4; +} + +.slide-menu-wrapper .slide-menu-item.active i.fas.active, +.slide-menu-wrapper .slide-menu-item-vertical.active i.fas.active, +.slide-menu-wrapper .slide-menu-item.active svg.svg-inline--fa.active, +.slide-menu-wrapper .slide-menu-item-vertical.active svg.svg-inline--fa.active { + opacity: 0.8; +} + +.slide-menu-wrapper .slide-menu--left { + left: 0; + -webkit-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); +} + +.slide-menu-wrapper .slide-menu--left.active { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); +} + +.slide-menu-wrapper .slide-menu--right { + right: 0; + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); +} + +.slide-menu-wrapper .slide-menu--right.active { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); +} + +.slide-menu-wrapper { + transition: transform 0.3s; +} + +/* + * Toolbar + */ +.slide-menu-wrapper .slide-menu-toolbar { + height: 60px; + width: 100%; + font-size: 12px; + display: table; + table-layout: fixed; /* ensures equal width */ + margin: 0; + padding: 0; + border-bottom: solid 2px #666; +} + +.slide-menu-wrapper .slide-menu-toolbar > li { + display: table-cell; + line-height: 150%; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #aaa; + border-radius: 3px; +} + +.slide-menu-wrapper .slide-menu-toolbar > li.toolbar-panel-button i, +.slide-menu-wrapper + .slide-menu-toolbar + > li.toolbar-panel-button + svg.svg-inline--fa { + font-size: 1.7em; +} + +.slide-menu-wrapper .slide-menu-toolbar > li.active-toolbar-button { + color: white; + text-shadow: 0 1px black; + text-decoration: underline; +} + +.slide-menu-toolbar > li.toolbar-panel-button:hover { + color: white; +} + +.slide-menu-toolbar + > li.toolbar-panel-button:hover + span.slide-menu-toolbar-label, +.slide-menu-wrapper + .slide-menu-toolbar + > li.active-toolbar-button + span.slide-menu-toolbar-label { + visibility: visible; +} + +/* + * Panels + */ +.slide-menu-wrapper .slide-menu-panel { + position: absolute; + width: 100%; + visibility: hidden; + height: calc(100% - 60px); + overflow-x: hidden; + overflow-y: auto; + color: #aaa; +} + +.slide-menu-wrapper .slide-menu-panel.active-menu-panel { + visibility: visible; +} + +.slide-menu-wrapper .slide-menu-panel h1, +.slide-menu-wrapper .slide-menu-panel h2, +.slide-menu-wrapper .slide-menu-panel h3, +.slide-menu-wrapper .slide-menu-panel h4, +.slide-menu-wrapper .slide-menu-panel h5, +.slide-menu-wrapper .slide-menu-panel h6 { + margin: 20px 0 10px 0; + color: #fff; + line-height: 1.2; + letter-spacing: normal; + text-shadow: none; +} + +.slide-menu-wrapper .slide-menu-panel h1 { + font-size: 1.6em; +} +.slide-menu-wrapper .slide-menu-panel h2 { + font-size: 1.4em; +} +.slide-menu-wrapper .slide-menu-panel h3 { + font-size: 1.3em; +} +.slide-menu-wrapper .slide-menu-panel h4 { + font-size: 1.1em; +} +.slide-menu-wrapper .slide-menu-panel h5 { + font-size: 1em; +} +.slide-menu-wrapper .slide-menu-panel h6 { + font-size: 0.9em; +} + +.slide-menu-wrapper .slide-menu-panel p { + margin: 10px 0 5px 0; +} + +.slide-menu-wrapper .slide-menu-panel a { + color: #ccc; + text-decoration: underline; +} + +.slide-menu-wrapper .slide-menu-panel a:hover { + color: white; +} + +.slide-menu-wrapper .slide-menu-item a { + text-decoration: none; +} + +.slide-menu-wrapper .slide-menu-custom-panel { + width: calc(100% - 20px); + padding-left: 10px; + padding-right: 10px; +} + +.slide-menu-wrapper .slide-menu-custom-panel .slide-menu-items { + width: calc(100% + 20px); + margin-left: -10px; + margin-right: 10px; +} + +/* + * Theme and Transitions buttons + */ + +.slide-menu-wrapper div[data-panel='Themes'] li, +.slide-menu-wrapper div[data-panel='Transitions'] li { + display: block; + text-align: left; + cursor: pointer; + color: #848484; +} + +/* + * Menu controls + */ +.reveal .slide-menu-button { + position: fixed; + left: 30px; + bottom: 30px; + z-index: 30; + font-size: 24px; +} + +/* + * Menu overlay + */ + +.slide-menu-wrapper .slide-menu-overlay { + position: fixed; + z-index: 199; + top: 0; + left: 0; + overflow: hidden; + width: 0; + height: 0; + background-color: #000; + opacity: 0; + transition: opacity 0.3s, width 0s 0.3s, height 0s 0.3s; +} + +.slide-menu-wrapper .slide-menu-overlay.active { + width: 100%; + height: 100%; + opacity: 0.7; + transition: opacity 0.3s; +} + +/* + * Hide menu for pdf printing + */ +body.print-pdf .slide-menu-wrapper .slide-menu, +body.print-pdf .reveal .slide-menu-button, +body.print-pdf .slide-menu-wrapper .slide-menu-overlay { + display: none; +} diff --git a/english/site_libs/revealjs/plugin/reveal-menu/menu.js b/english/site_libs/revealjs/plugin/reveal-menu/menu.js new file mode 100644 index 0000000..5369df3 --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-menu/menu.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealMenu=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var n=function(e){return e&&e.Math==Math&&e},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,l={f:s&&!o.call({1:2},1)?function(e){var t=s(this,e);return!!t&&t.enumerable}:o},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},u={}.toString,f=function(e){return u.call(e).slice(8,-1)},d="".split,p=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==f(e)?d.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},m=function(e){return p(h(e))},v=function(e){return"object"==typeof e?null!==e:"function"==typeof e},g=function(e,t){if(!v(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!v(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},y={}.hasOwnProperty,b=function(e,t){return y.call(e,t)},S=r.document,E=v(S)&&v(S.createElement),x=!a&&!i((function(){return 7!=Object.defineProperty((e="div",E?S.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),w=Object.getOwnPropertyDescriptor,L={f:a?w:function(e,t){if(e=m(e),t=g(t,!0),x)try{return w(e,t)}catch(e){}if(b(e,t))return c(!l.f.call(e,t),e[t])}},T=function(e){if(!v(e))throw TypeError(String(e)+" is not an object");return e},C=Object.defineProperty,O={f:a?C:function(e,t,n){if(T(e),t=g(t,!0),T(n),x)try{return C(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},A=a?function(e,t,n){return O.f(e,t,c(1,n))}:function(e,t,n){return e[t]=n,e},k=function(e,t){try{A(r,e,t)}catch(n){r[e]=t}return t},I=r["__core-js_shared__"]||k("__core-js_shared__",{}),P=Function.toString;"function"!=typeof I.inspectSource&&(I.inspectSource=function(e){return P.call(e)});var M,R,j,N,_=I.inspectSource,F=r.WeakMap,W="function"==typeof F&&/native code/.test(_(F)),H=t((function(e){(e.exports=function(e,t){return I[e]||(I[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),U=0,$=Math.random(),D=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++U+$).toString(36)},q=H("keys"),B={},G=r.WeakMap;if(W){var V=new G,K=V.get,z=V.has,X=V.set;M=function(e,t){return X.call(V,e,t),t},R=function(e){return K.call(V,e)||{}},j=function(e){return z.call(V,e)}}else{var Y=q[N="state"]||(q[N]=D(N));B[Y]=!0,M=function(e,t){return A(e,Y,t),t},R=function(e){return b(e,Y)?e[Y]:{}},j=function(e){return b(e,Y)}}var J={set:M,get:R,has:j,enforce:function(e){return j(e)?R(e):M(e,{})},getterFor:function(e){return function(t){var n;if(!v(t)||(n=R(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Z=t((function(e){var t=J.get,n=J.enforce,i=String(String).split("String");(e.exports=function(e,t,a,o){var s=!!o&&!!o.unsafe,l=!!o&&!!o.enumerable,c=!!o&&!!o.noTargetGet;"function"==typeof a&&("string"!=typeof t||b(a,"name")||A(a,"name",t),n(a).source=i.join("string"==typeof t?t:"")),e!==r?(s?!c&&e[t]&&(l=!0):delete e[t],l?e[t]=a:A(e,t,a)):l?e[t]=a:k(t,a)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||_(this)}))})),Q=r,ee=function(e){return"function"==typeof e?e:void 0},te=function(e,t){return arguments.length<2?ee(Q[e])||ee(r[e]):Q[e]&&Q[e][t]||r[e]&&r[e][t]},ne=Math.ceil,re=Math.floor,ie=function(e){return isNaN(e=+e)?0:(e>0?re:ne)(e)},ae=Math.min,oe=function(e){return e>0?ae(ie(e),9007199254740991):0},se=Math.max,le=Math.min,ce=function(e,t){var n=ie(e);return n<0?se(n+t,0):le(n,t)},ue=function(e){return function(t,n,r){var i,a=m(t),o=oe(a.length),s=ce(r,o);if(e&&n!=n){for(;o>s;)if((i=a[s++])!=i)return!0}else for(;o>s;s++)if((e||s in a)&&a[s]===n)return e||s||0;return!e&&-1}},fe={includes:ue(!0),indexOf:ue(!1)},de=fe.indexOf,pe=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),he={f:Object.getOwnPropertyNames||function(e){return function(e,t){var n,r=m(e),i=0,a=[];for(n in r)!b(B,n)&&b(r,n)&&a.push(n);for(;t.length>i;)b(r,n=t[i++])&&(~de(a,n)||a.push(n));return a}(e,pe)}},me={f:Object.getOwnPropertySymbols},ve=te("Reflect","ownKeys")||function(e){var t=he.f(T(e)),n=me.f;return n?t.concat(n(e)):t},ge=function(e,t){for(var n=ve(t),r=O.f,i=L.f,a=0;ay;y++)if((o||y in m)&&(d=v(f=m[y],y,h),e))if(t)S[y]=d;else if(d)switch(e){case 3:return!0;case 5:return f;case 6:return y;case 2:We.call(S,f)}else if(i)return!1;return a?-1:r||i?i:S}},Ue={forEach:He(0),map:He(1),filter:He(2),some:He(3),every:He(4),find:He(5),findIndex:He(6)},$e=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){throw 1},1)}))},De=Object.defineProperty,qe={},Be=function(e){throw e},Ge=function(e,t){if(b(qe,e))return qe[e];t||(t={});var n=[][e],r=!!b(t,"ACCESSORS")&&t.ACCESSORS,o=b(t,0)?t[0]:Be,s=b(t,1)?t[1]:void 0;return qe[e]=!!n&&!i((function(){if(r&&!a)return!0;var e={length:-1};r?De(e,1,{enumerable:!0,get:Be}):e[1]=1,n.call(e,o,s)}))},Ve=Ue.every,Ke=$e("every"),ze=Ge("every");Ce({target:"Array",proto:!0,forced:!Ke||!ze},{every:function(e){return Ve(this,e,arguments.length>1?arguments[1]:void 0)}});var Xe,Ye,Je=te("navigator","userAgent")||"",Ze=r.process,Qe=Ze&&Ze.versions,et=Qe&&Qe.v8;et?Ye=(Xe=et.split("."))[0]+Xe[1]:Je&&(!(Xe=Je.match(/Edge\/(\d+)/))||Xe[1]>=74)&&(Xe=Je.match(/Chrome\/(\d+)/))&&(Ye=Xe[1]);var tt=Ye&&+Ye,nt=Ne("species"),rt=function(e){return tt>=51||!i((function(){var t=[];return(t.constructor={})[nt]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},it=Ue.filter,at=rt("filter"),ot=Ge("filter");Ce({target:"Array",proto:!0,forced:!at||!ot},{filter:function(e){return it(this,e,arguments.length>1?arguments[1]:void 0)}});var st=Ue.forEach,lt=$e("forEach"),ct=Ge("forEach"),ut=lt&&ct?[].forEach:function(e){return st(this,e,arguments.length>1?arguments[1]:void 0)};Ce({target:"Array",proto:!0,forced:[].forEach!=ut},{forEach:ut});var ft=fe.indexOf,dt=[].indexOf,pt=!!dt&&1/[1].indexOf(1,-0)<0,ht=$e("indexOf"),mt=Ge("indexOf",{ACCESSORS:!0,1:0});Ce({target:"Array",proto:!0,forced:pt||!ht||!mt},{indexOf:function(e){return pt?dt.apply(this,arguments)||0:ft(this,e,arguments.length>1?arguments[1]:void 0)}}),Ce({target:"Array",stat:!0},{isArray:ke});var vt=[].join,gt=p!=Object,yt=$e("join",",");Ce({target:"Array",proto:!0,forced:gt||!yt},{join:function(e){return vt.call(m(this),void 0===e?",":e)}});var bt=Math.min,St=[].lastIndexOf,Et=!!St&&1/[1].lastIndexOf(1,-0)<0,xt=$e("lastIndexOf"),wt=Ge("indexOf",{ACCESSORS:!0,1:0}),Lt=Et||!xt||!wt?function(e){if(Et)return St.apply(this,arguments)||0;var t=m(this),n=oe(t.length),r=n-1;for(arguments.length>1&&(r=bt(r,ie(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:St;Ce({target:"Array",proto:!0,forced:Lt!==[].lastIndexOf},{lastIndexOf:Lt});var Tt=Ue.map,Ct=rt("map"),Ot=Ge("map");Ce({target:"Array",proto:!0,forced:!Ct||!Ot},{map:function(e){return Tt(this,e,arguments.length>1?arguments[1]:void 0)}});var At=function(e,t,n){var r=g(t);r in e?O.f(e,r,c(0,n)):e[r]=n},kt=rt("slice"),It=Ge("slice",{ACCESSORS:!0,0:0,1:2}),Pt=Ne("species"),Mt=[].slice,Rt=Math.max;Ce({target:"Array",proto:!0,forced:!kt||!It},{slice:function(e,t){var n,r,i,a=m(this),o=oe(a.length),s=ce(e,o),l=ce(void 0===t?o:t,o);if(ke(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!ke(n.prototype)?v(n)&&null===(n=n[Pt])&&(n=void 0):n=void 0,n===Array||void 0===n))return Mt.call(a,s,l);for(r=new(void 0===n?Array:n)(Rt(l-s,0)),i=0;s>>0||(Qt.test(n)?16:10))}:Zt;Ce({global:!0,forced:parseInt!=en},{parseInt:en});var tn=function(){var e=T(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t};function nn(e,t){return RegExp(e,t)}var rn,an,on={UNSUPPORTED_Y:i((function(){var e=nn("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),BROKEN_CARET:i((function(){var e=nn("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},sn=RegExp.prototype.exec,ln=String.prototype.replace,cn=sn,un=(rn=/a/,an=/b*/g,sn.call(rn,"a"),sn.call(an,"a"),0!==rn.lastIndex||0!==an.lastIndex),fn=on.UNSUPPORTED_Y||on.BROKEN_CARET,dn=void 0!==/()??/.exec("")[1];(un||dn||fn)&&(cn=function(e){var t,n,r,i,a=this,o=fn&&a.sticky,s=tn.call(a),l=a.source,c=0,u=e;return o&&(-1===(s=s.replace("y","")).indexOf("g")&&(s+="g"),u=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(l="(?: "+l+")",u=" "+u,c++),n=new RegExp("^(?:"+l+")",s)),dn&&(n=new RegExp("^"+l+"$(?!\\s)",s)),un&&(t=a.lastIndex),r=sn.call(o?n:a,u),o?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:un&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),dn&&r&&r.length>1&&ln.call(r[0],n,(function(){for(i=1;i1?arguments[1]:void 0,r=oe(t.length),i=void 0===n?r:xn(oe(n),r),a=String(e);return En?En.call(t,a,i):t.slice(i-a.length,i)===a}});var Ln=Ne("species"),Tn=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),Cn="$0"==="a".replace(/./,"$0"),On=Ne("replace"),An=!!/./[On]&&""===/./[On]("a","$0"),kn=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),In=function(e,t,n,r){var a=Ne(e),o=!i((function(){var t={};return t[a]=function(){return 7},7!=""[e](t)})),s=o&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Ln]=function(){return n},n.flags="",n[a]=/./[a]),n.exec=function(){return t=!0,null},n[a](""),!t}));if(!o||!s||"replace"===e&&(!Tn||!Cn||An)||"split"===e&&!kn){var l=/./[a],c=n(a,""[e],(function(e,t,n,r,i){return t.exec===pn?o&&!i?{done:!0,value:l.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Cn,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:An}),u=c[0],f=c[1];Z(String.prototype,e,u),Z(RegExp.prototype,a,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&A(RegExp.prototype[a],"sham",!0)},Pn=function(e){return function(t,n){var r,i,a=String(h(t)),o=ie(n),s=a.length;return o<0||o>=s?e?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===s||(i=a.charCodeAt(o+1))<56320||i>57343?e?a.charAt(o):r:e?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Mn={codeAt:Pn(!1),charAt:Pn(!0)}.charAt,Rn=function(e,t,n){return t+(n?Mn(e,t).length:1)},jn=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==f(e))throw TypeError("RegExp#exec called on incompatible receiver");return pn.call(e,t)},Nn=Math.max,_n=Math.min,Fn=Math.floor,Wn=/\$([$&'`]|\d\d?|<[^>]*>)/g,Hn=/\$([$&'`]|\d\d?)/g;In("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=h(this),a=null==n?void 0:n[e];return void 0!==a?a.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var l=n(t,e,this,r);if(l.done)return l.value}var c=T(e),u=String(this),f="function"==typeof r;f||(r=String(r));var d=c.global;if(d){var p=c.unicode;c.lastIndex=0}for(var h=[];;){var m=jn(c,u);if(null===m)break;if(h.push(m),!d)break;""===String(m[0])&&(c.lastIndex=Rn(u,oe(c.lastIndex),p))}for(var v,g="",y=0,b=0;b=y&&(g+=u.slice(y,E)+O,y=E+S.length)}return g+u.slice(y)}];function s(e,n,r,i,a,o){var s=r+e.length,l=i.length,c=Hn;return void 0!==a&&(a=Ae(a),c=Wn),t.call(o,c,(function(t,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(s);case"<":c=a[o.slice(1,-1)];break;default:var u=+o;if(0===u)return t;if(u>l){var f=Fn(u/10);return 0===f?t:f<=l?void 0===i[f-1]?o.charAt(1):i[f-1]+o.charAt(1):t}c=i[u-1]}return void 0===c?"":c}))}}));var Un=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};In("search",1,(function(e,t,n){return[function(t){var n=h(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=T(e),a=String(this),o=i.lastIndex;Un(o,0)||(i.lastIndex=0);var s=jn(i,a);return Un(i.lastIndex,o)||(i.lastIndex=o),null===s?-1:s.index}]}));var $n=Ne("species"),Dn=[].push,qn=Math.min,Bn=!i((function(){return!RegExp(4294967295,"y")}));In("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(h(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!vn(e))return t.call(r,e,i);for(var a,o,s,l=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),u=0,f=new RegExp(e.source,c+"g");(a=pn.call(f,r))&&!((o=f.lastIndex)>u&&(l.push(r.slice(u,a.index)),a.length>1&&a.index=i));)f.lastIndex===a.index&&f.lastIndex++;return u===r.length?!s&&f.test("")||l.push(""):l.push(r.slice(u)),l.length>i?l.slice(0,i):l}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=h(this),a=null==t?void 0:t[e];return void 0!==a?a.call(t,i,n):r.call(String(i),t,n)},function(e,i){var a=n(r,e,this,i,r!==t);if(a.done)return a.value;var o=T(e),s=String(this),l=function(e,t){var n,r=T(e).constructor;return void 0===r||null==(n=T(r)[$n])?t:Oe(n)}(o,RegExp),c=o.unicode,u=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(Bn?"y":"g"),f=new l(Bn?o:"^(?:"+o.source+")",u),d=void 0===i?4294967295:i>>>0;if(0===d)return[];if(0===s.length)return null===jn(f,s)?[s]:[];for(var p=0,h=0,m=[];h1?arguments[1]:void 0,t.length)),r=String(e);return Vn?Vn.call(t,r,n):t.slice(n,n+r.length)===r}});var Xn,Yn=Kt.trim;Ce({target:"String",proto:!0,forced:(Xn="trim",i((function(){return!!Dt[Xn]()||"​…᠎"!="​…᠎"[Xn]()||Dt[Xn].name!==Xn})))},{trim:function(){return Yn(this)}});for(var Jn in{CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}){var Zn=r[Jn],Qn=Zn&&Zn.prototype;if(Qn&&Qn.forEach!==ut)try{A(Qn,"forEach",ut)}catch(e){Qn.forEach=ut}}var er=[].slice,tr=function(e){return function(t,n){var r=arguments.length>2,i=r?er.call(arguments,2):void 0;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,i)}:t,n)}};Ce({global:!0,bind:!0,forced:/MSIE .\./.test(Je)},{setTimeout:tr(r.setTimeout),setInterval:tr(r.setInterval)});return String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(t||0,e.length)===e}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(void 0===t||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e}),function(){var e,t,n,r,i=(e=/(msie) ([\w.]+)/.exec(window.navigator.userAgent.toLowerCase()))&&"msie"===e[1]?parseFloat(e[2]):null,a=!1;function o(e){(r=e.menu||{}).path=r.path||function(){var e;if(document.querySelector('script[src$="menu.js"]')){var t=document.querySelector('script[src$="menu.js"]');t&&(e=t.src.slice(0,-7))}else e=("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("menu.js",document.baseURI).href).slice(0,("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("menu.js",document.baseURI).href).lastIndexOf("/")+1);return e}()||"plugin/menu/",r.path.endsWith("/")||(r.path+="/"),void 0===r.side&&(r.side="left"),void 0===r.numbers&&(r.numbers=!1),"string"!=typeof r.titleSelector&&(r.titleSelector="h1, h2, h3, h4, h5"),void 0===r.hideMissingTitles&&(r.hideMissingTitles=!1),void 0===r.useTextContentForMissingTitles&&(r.useTextContentForMissingTitles=!1),void 0===r.markers&&(r.markers=!0),"string"!=typeof r.themesPath&&(r.themesPath="dist/theme/"),r.themesPath.endsWith("/")||(r.themesPath+="/"),O("link#theme")||(r.themes=!1),!0===r.themes?r.themes=[{name:"Black",theme:r.themesPath+"black.css"},{name:"White",theme:r.themesPath+"white.css"},{name:"League",theme:r.themesPath+"league.css"},{name:"Sky",theme:r.themesPath+"sky.css"},{name:"Beige",theme:r.themesPath+"beige.css"},{name:"Simple",theme:r.themesPath+"simple.css"},{name:"Serif",theme:r.themesPath+"serif.css"},{name:"Blood",theme:r.themesPath+"blood.css"},{name:"Night",theme:r.themesPath+"night.css"},{name:"Moon",theme:r.themesPath+"moon.css"},{name:"Solarized",theme:r.themesPath+"solarized.css"}]:Array.isArray(r.themes)||(r.themes=!1),void 0===r.transitions&&(r.transitions=!1),!0===r.transitions?r.transitions=["None","Fade","Slide","Convex","Concave","Zoom"]:!1===r.transitions||Array.isArray(r.transitions)&&r.transitions.every((function(e){return"string"==typeof e}))||(console.error("reveal.js-menu error: transitions config value must be 'true' or an array of strings, eg ['None', 'Fade', 'Slide')"),r.transitions=!1),i&&i<=9&&(r.transitions=!1),void 0===r.openButton&&(r.openButton=!0),void 0===r.openSlideNumber&&(r.openSlideNumber=!1),void 0===r.keyboard&&(r.keyboard=!0),void 0===r.sticky&&(r.sticky=!1),void 0===r.autoOpen&&(r.autoOpen=!0),void 0===r.delayInit&&(r.delayInit=!1),void 0===r.openOnInit&&(r.openOnInit=!1)}var s=!0;function l(){s=!1}function c(){O("nav.slide-menu").addEventListener("mousemove",(function e(t){O("nav.slide-menu").removeEventListener("mousemove",e),s=!0}))}function u(e){var t=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-e.scrollLeft,n+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{top:n,left:t}}(e).top-e.offsetParent.offsetTop;if(t<0)return-t;var n=e.offsetParent.offsetHeight-(e.offsetTop-e.offsetParent.scrollTop+e.offsetHeight);return n<0?n:0}function f(e){var t=u(e);t&&(l(),e.scrollIntoView(t>0),c())}function d(e){l(),e.offsetParent.scrollTop=e.offsetTop,c()}function p(e){l(),e.offsetParent.scrollTop=e.offsetTop-e.offsetParent.offsetHeight+e.offsetHeight,c()}function h(e){e.classList.add("selected"),f(e),r.sticky&&r.autoOpen&&E(e)}function m(e){if(b())switch(e.stopImmediatePropagation(),e.keyCode){case 72:case 37:!function(){var e=parseInt(O(".active-toolbar-button").getAttribute("data-button"))-1;e<0&&(e=T-1);S(null,O('.toolbar-panel-button[data-button="'+e+'"]').getAttribute("data-panel"))}();break;case 76:case 39:l=(parseInt(O(".active-toolbar-button").getAttribute("data-button"))+1)%T,S(null,O('.toolbar-panel-button[data-button="'+l+'"]').getAttribute("data-panel"));break;case 75:case 38:if(s=O(".active-menu-panel .slide-menu-items li.selected")||O(".active-menu-panel .slide-menu-items li.active"))A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(O('.active-menu-panel .slide-menu-items li[data-item="'+(parseInt(s.getAttribute("data-item"))-1)+'"]')||s);else(o=O(".active-menu-panel .slide-menu-items li.slide-menu-item"))&&h(o);break;case 74:case 40:if(s=O(".active-menu-panel .slide-menu-items li.selected")||O(".active-menu-panel .slide-menu-items li.active"))A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(O('.active-menu-panel .slide-menu-items li[data-item="'+(parseInt(s.getAttribute("data-item"))+1)+'"]')||s);else(o=O(".active-menu-panel .slide-menu-items li.slide-menu-item"))&&h(o);break;case 33:case 85:var t=A(".active-menu-panel .slide-menu-items li").filter((function(e){return u(e)>0})),n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})),r=t.length>0&&Math.abs(u(t[t.length-1]))0&&(p(r),r=(n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})))[0]==r?t[t.length-1]:n[0]),A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(r),d(r));break;case 34:case 68:n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)}));var i=A(".active-menu-panel .slide-menu-items li").filter((function(e){return u(e)<0})),a=i.length>0&&Math.abs(u(i[0]))0&&(d(a),a=(n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})))[n.length-1]==a?i[0]:n[n.length-1]),A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(a),p(a));break;case 36:A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),(o=O(".active-menu-panel .slide-menu-items li:first-of-type"))&&(o.classList.add("selected"),f(o));break;case 35:var o;A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),(o=O(".active-menu-panel .slide-menu-items:last-of-type li:last-of-type"))&&(o.classList.add("selected"),f(o));break;case 32:case 13:var s;(s=O(".active-menu-panel .slide-menu-items li.selected"))&&E(s,!0);break;case 27:g(null,!0)}var l}function v(e){(e&&e.preventDefault(),b())||(O("body").classList.add("slide-menu-active"),O(".reveal").classList.add("has-"+r.effect+"-"+r.side),O(".slide-menu").classList.add("active"),O(".slide-menu-overlay").classList.add("active"),r.themes&&(A('div[data-panel="Themes"] li').forEach((function(e){e.classList.remove("active")})),A('li[data-theme="'+O("link#theme").getAttribute("href")+'"]').forEach((function(e){e.classList.add("active")}))),r.transitions&&(A('div[data-panel="Transitions"] li').forEach((function(e){e.classList.remove("active")})),A('li[data-transition="'+n.transition+'"]').forEach((function(e){e.classList.add("active")}))),A(".slide-menu-panel li.active").forEach((function(e){e.classList.add("selected"),f(e)})))}function g(e,t){e&&e.preventDefault(),r.sticky&&!t||(O("body").classList.remove("slide-menu-active"),O(".reveal").classList.remove("has-"+r.effect+"-"+r.side),O(".slide-menu").classList.remove("active"),O(".slide-menu-overlay").classList.remove("active"),A(".slide-menu-panel li.selected").forEach((function(e){e.classList.remove("selected")})))}function y(e){b()?g(e,!0):v(e)}function b(){return O("body").classList.contains("slide-menu-active")}function S(e,t){v(e);var n=t;"string"!=typeof t&&(n=e.currentTarget.getAttribute("data-panel")),O(".slide-menu-toolbar > li.active-toolbar-button").classList.remove("active-toolbar-button"),O('li[data-panel="'+n+'"]').classList.add("active-toolbar-button"),O(".slide-menu-panel.active-menu-panel").classList.remove("active-menu-panel"),O('div[data-panel="'+n+'"]').classList.add("active-menu-panel")}function E(e,n){var i=parseInt(e.getAttribute("data-slide-h")),a=parseInt(e.getAttribute("data-slide-v")),o=e.getAttribute("data-theme"),s=e.getAttribute("data-highlight-theme"),l=e.getAttribute("data-transition");isNaN(i)||isNaN(a)||t.slide(i,a),o&&I("theme",o),s&&I("highlight-theme",s),l&&t.configure({transition:l});var c=O("a",e);c&&(n||!r.sticky||r.autoOpen&&c.href.startsWith("#")||c.href.startsWith(window.location.origin+window.location.pathname+"#"))&&c.click(),g()}function x(e){"A"!==e.target.nodeName&&e.preventDefault(),E(e.currentTarget)}function w(){var e=t.getState();A("li.slide-menu-item, li.slide-menu-item-vertical").forEach((function(t){t.classList.remove("past"),t.classList.remove("active"),t.classList.remove("future");var n=parseInt(t.getAttribute("data-slide-h")),r=parseInt(t.getAttribute("data-slide-v"));n",s.appendChild(k("br"),O("i",s)),s.appendChild(k("span",{class:"slide-menu-toolbar-label"},e),O("i",s)),s.onclick=i,d.appendChild(s),s},i=function(e,i,a,o,s){function l(e,t){if(""===e)return null;var n=t?O(e,i):O(e);return n?n.textContent:null}var c=i.getAttribute("data-menu-title")||l(".menu-title",i)||l(r.titleSelector,i);if(!c&&r.useTextContentForMissingTitles&&(c=i.textContent.trim())&&(c=c.split("\n").map((function(e){return e.trim()})).join(" ").trim().replace(/^(.{16}[^\s]*).*/,"$1").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")+"..."),!c){if(r.hideMissingTitles)return"";e+=" no-title",c="Slide "+(a+1)}var u=k("li",{class:e,"data-item":a,"data-slide-h":o,"data-slide-v":void 0===s?0:s});if(r.markers&&(u.appendChild(k("i",{class:"fas fa-check-circle fa-fw past"})),u.appendChild(k("i",{class:"fas fa-arrow-alt-circle-right fa-fw active"})),u.appendChild(k("i",{class:"far fa-circle fa-fw future"}))),r.numbers){var f=[],d="h.v";switch("string"==typeof r.numbers?d=r.numbers:"string"==typeof n.slideNumber&&(d=n.slideNumber),d){case"c":f.push(a+1);break;case"c/t":f.push(a+1,"/",t.getTotalSlides());break;case"h/v":f.push(o+1),"number"!=typeof s||isNaN(s)||f.push("/",s+1);break;default:f.push(o+1),"number"!=typeof s||isNaN(s)||f.push(".",s+1)}u.appendChild(k("span",{class:"slide-menu-item-number"},f.join("")+". "))}return u.appendChild(k("span",{class:"slide-menu-item-title"},c)),u},o=function(e){s&&(A(".active-menu-panel .slide-menu-items li.selected").forEach((function(e){e.classList.remove("selected")})),e.currentTarget.classList.add("selected"))},l=O(".reveal").parentElement,c=k("div",{class:"slide-menu-wrapper"});l.appendChild(c);var u=k("nav",{class:"slide-menu slide-menu--"+r.side});"string"==typeof r.width&&(-1!=["normal","wide","third","half","full"].indexOf(r.width)?u.classList.add("slide-menu--"+r.width):(u.classList.add("slide-menu--custom"),u.style.width=r.width)),c.appendChild(u),L();var f=k("div",{class:"slide-menu-overlay"});c.appendChild(f),f.onclick=function(){g(null,!0)};var d=k("ol",{class:"slide-menu-toolbar"});O(".slide-menu").appendChild(d),e("Slides","Slides","fa-images","fas",S,!0),r.custom&&r.custom.forEach((function(t,n,r){e(t.title,"Custom"+n,t.icon,null,S)})),r.themes&&e("Themes","Themes","fa-adjust","fas",S),r.transitions&&e("Transitions","Transitions","fa-sticky-note","fas",S);var p=k("li",{id:"close",class:"toolbar-panel-button"});if(p.appendChild(k("i",{class:"fas fa-times"})),p.appendChild(k("br")),p.appendChild(k("span",{class:"slide-menu-toolbar-label"},"Close")),p.onclick=function(){g(null,!0)},d.appendChild(p),function e(){if(document.querySelector("section[data-markdown]:not([data-markdown-parsed])"))setTimeout(e,100);else{var t=k("div",{"data-panel":"Slides",class:"slide-menu-panel active-menu-panel"});t.appendChild(k("ul",{class:"slide-menu-items"})),u.appendChild(t);var n=O('.slide-menu-panel[data-panel="Slides"] > .slide-menu-items'),r=0;A(".slides > section").forEach((function(e,t){var a=A("section",e);if(a.length>0)a.forEach((function(e,a){var o=i(0===a?"slide-menu-item":"slide-menu-item-vertical",e,r,t,a);o&&n.appendChild(o),r++}));else{var o=i("slide-menu-item",e,r,t);o&&n.appendChild(o),r++}})),A(".slide-menu-item, .slide-menu-item-vertical").forEach((function(e){e.onclick=x})),w()}}(),t.addEventListener("slidechanged",w),r.custom){var h=function(){this.status>=200&&this.status<300?(this.panel.innerHTML=this.responseText,C(this.panel)):I(this)},E=function(){I(this)},C=function(e){A("ul.slide-menu-items li.slide-menu-item",e).forEach((function(e,t){e.setAttribute("data-item",t+1),e.onclick=x,e.addEventListener("mouseenter",o)}))},I=function(e){var t="

    ERROR: The attempt to fetch "+e.responseURL+" failed with HTTP status "+e.status+" ("+e.statusText+").

    Remember that you need to serve the presentation HTML from a HTTP server.

    ";e.panel.innerHTML=t};r.custom.forEach((function(e,t,n){var r=k("div",{"data-panel":"Custom"+t,class:"slide-menu-panel slide-menu-custom-panel"});e.content?(r.innerHTML=e.content,C(r)):e.src&&function(e,t){var n=new XMLHttpRequest;n.panel=e,n.arguments=Array.prototype.slice.call(arguments,2),n.onload=h,n.onerror=E,n.open("get",t,!0),n.send(null)}(r,e.src),u.appendChild(r)}))}if(r.themes){var P=k("div",{class:"slide-menu-panel","data-panel":"Themes"});u.appendChild(P);var M=k("ul",{class:"slide-menu-items"});P.appendChild(M),r.themes.forEach((function(e,t){var n={class:"slide-menu-item","data-item":""+(t+1)};e.theme&&(n["data-theme"]=e.theme),e.highlightTheme&&(n["data-highlight-theme"]=e.highlightTheme);var r=k("li",n,e.name);M.appendChild(r),r.onclick=x}))}if(r.transitions){P=k("div",{class:"slide-menu-panel","data-panel":"Transitions"});u.appendChild(P);M=k("ul",{class:"slide-menu-items"});P.appendChild(M),r.transitions.forEach((function(e,t){var n=k("li",{class:"slide-menu-item","data-transition":e.toLowerCase(),"data-item":""+(t+1)},e);M.appendChild(n),n.onclick=x}))}if(r.openButton){var R=k("div",{class:"slide-menu-button"}),j=k("a",{href:"#"});j.appendChild(k("i",{class:"fas fa-bars"})),R.appendChild(j),O(".reveal").appendChild(R),R.onclick=v}if(r.openSlideNumber)O("div.slide-number").onclick=v;A(".slide-menu-panel .slide-menu-items li").forEach((function(e){e.addEventListener("mouseenter",o)}))}if(r.keyboard){if(document.addEventListener("keydown",m,!1),window.addEventListener("message",(function(e){var t;try{t=JSON.parse(e.data)}catch(e){}t&&"triggerKey"===t.method&&m({keyCode:t.args[0],stopImmediatePropagation:function(){}})})),n.keyboardCondition&&"function"==typeof n.keyboardCondition){var N=n.keyboardCondition;n.keyboardCondition=function(e){return N(e)&&(!b()||77==e.keyCode)}}else n.keyboardCondition=function(e){return!b()||77==e.keyCode};t.addKeyBinding({keyCode:77,key:"M",description:"Toggle menu"},y)}r.openOnInit&&v(),a=!0}function O(e,t){return t||(t=document),t.querySelector(e)}function A(e,t){return t||(t=document),Array.prototype.slice.call(t.querySelectorAll(e))}function k(e,t,n){var r=document.createElement(e);return t&&Object.getOwnPropertyNames(t).forEach((function(e){r.setAttribute(e,t[e])})),n&&(r.innerHTML=n),r}function I(e,t){var n=O("link#"+e),r=n.parentElement,i=n.nextElementSibling;n.remove();var a=n.cloneNode();a.setAttribute("href",t),a.onload=function(){L()},r.insertBefore(a,i)}function P(e,t,n){n.call()}function M(){var e,a,o,s=!i||i>=9;t.isSpeakerNotes()&&window.location.search.endsWith("controls=false")&&(s=!1),s&&(r.delayInit||C(),e="menu-ready",(o=document.createEvent("HTMLEvents",1,2)).initEvent(e,!0,!0),function(e,t){for(var n in t)e[n]=t[n]}(o,a),document.querySelector(".reveal").dispatchEvent(o),n.postMessageEvents&&window.parent!==window.self&&window.parent.postMessage(JSON.stringify({namespace:"reveal",eventName:e,state:t.getState()}),"*"))}return{id:"menu",init:function(e){o(n=(t=e).getConfig()),P(r.path+"menu.css","stylesheet",(function(){void 0===r.loadIcons||r.loadIcons?P(r.path+"font-awesome/css/all.css","stylesheet",M):M()}))},toggle:y,openMenu:v,closeMenu:g,openPanel:S,isOpen:b,initialiseMenu:C,isMenuInitialised:function(){return a}}}})); diff --git a/english/site_libs/revealjs/plugin/reveal-menu/plugin.yml b/english/site_libs/revealjs/plugin/reveal-menu/plugin.yml new file mode 100644 index 0000000..3f4b90a --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-menu/plugin.yml @@ -0,0 +1,9 @@ +name: RevealMenu +script: [menu.js, quarto-menu.js] +stylesheet: [menu.css, quarto-menu.css] +config: + menu: + side: "left" + useTextContentForMissingTitles: true + markers: false + loadIcons: false diff --git a/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.css b/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.css new file mode 100644 index 0000000..eec145c --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.css @@ -0,0 +1,68 @@ +.slide-menu-wrapper .slide-tool-item { + display: block; + text-align: left; + padding: 10px 18px; + color: #aaa; + cursor: pointer; + border-top: solid 1px #555; +} + +.slide-menu-wrapper .slide-tool-item a { + text-decoration: none; +} + +.slide-menu-wrapper .slide-tool-item kbd { + font-family: monospace; + margin-right: 10px; + padding: 3px 8px; + color: inherit; + border: 1px solid; + border-radius: 5px; + border-color: #555; +} + +.slide-menu-wrapper .slide-menu-toolbar > li.active-toolbar-button { + text-decoration: none; +} + +.reveal .slide-menu-button { + left: 8px; + bottom: 8px; +} + +.reveal .slide-menu-button .fas::before, +.reveal .slide-chalkboard-buttons .fas::before, +.slide-menu-wrapper .slide-menu-toolbar .fas::before { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + content: ""; + vertical-align: -0.125em; + background-repeat: no-repeat; + background-size: 2.2rem 2.2rem; +} + +.reveal .slide-chalkboard-buttons .fas::before { + height: 1.45rem; + width: 1.45rem; + background-size: 1.45rem 1.45rem; + vertical-align: 0.1em; +} + +.slide-menu-wrapper .slide-menu-toolbar .fas::before { + height: 1.8rem; + width: 1.8rem; + background-size: 1.8rem 1.8rem; +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-images::before { + background-image: url('data:image/svg+xml,'); +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-gear::before { + background-image: url('data:image/svg+xml,'); +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-times::before { + background-image: url('data:image/svg+xml,'); +} diff --git a/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.js b/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.js new file mode 100644 index 0000000..1245b0d --- /dev/null +++ b/english/site_libs/revealjs/plugin/reveal-menu/quarto-menu.js @@ -0,0 +1,40 @@ +window.revealMenuToolHandler = function (handler) { + return function (event) { + event.preventDefault(); + handler(); + Reveal.getPlugin("menu").closeMenu(); + }; +}; + +window.RevealMenuToolHandlers = { + fullscreen: revealMenuToolHandler(function () { + const element = document.documentElement; + const requestMethod = + element.requestFullscreen || + element.webkitRequestFullscreen || + element.webkitRequestFullScreen || + element.mozRequestFullScreen || + element.msRequestFullscreen; + if (requestMethod) { + requestMethod.apply(element); + } + }), + speakerMode: revealMenuToolHandler(function () { + Reveal.getPlugin("notes").open(); + }), + keyboardHelp: revealMenuToolHandler(function () { + Reveal.toggleHelp(true); + }), + overview: revealMenuToolHandler(function () { + Reveal.toggleOverview(true); + }), + toggleChalkboard: revealMenuToolHandler(function () { + RevealChalkboard.toggleChalkboard(); + }), + toggleNotesCanvas: revealMenuToolHandler(function () { + RevealChalkboard.toggleNotesCanvas(); + }), + downloadDrawings: revealMenuToolHandler(function () { + RevealChalkboard.download(); + }), +}; diff --git a/english/site_libs/revealjs/plugin/search/plugin.js b/english/site_libs/revealjs/plugin/search/plugin.js new file mode 100644 index 0000000..5d09ce6 --- /dev/null +++ b/english/site_libs/revealjs/plugin/search/plugin.js @@ -0,0 +1,243 @@ +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */ + +const Plugin = () => { + + // The reveal.js instance this plugin is attached to + let deck; + + let searchElement; + let searchButton; + let searchInput; + + let matchedSlides; + let currentMatchedIndex; + let searchboxDirty; + let hilitor; + + function render() { + + searchElement = document.createElement( 'div' ); + searchElement.classList.add( 'searchbox' ); + searchElement.style.position = 'absolute'; + searchElement.style.top = '10px'; + searchElement.style.right = '10px'; + searchElement.style.zIndex = 10; + + //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/: + searchElement.innerHTML = ` +
    `; + + searchInput = searchElement.querySelector( '.searchinput' ); + searchInput.style.width = '240px'; + searchInput.style.fontSize = '14px'; + searchInput.style.padding = '4px 6px'; + searchInput.style.color = '#000'; + searchInput.style.background = '#fff'; + searchInput.style.borderRadius = '2px'; + searchInput.style.border = '0'; + searchInput.style.outline = '0'; + searchInput.style.boxShadow = '0 2px 18px rgba(0, 0, 0, 0.2)'; + searchInput.style['-webkit-appearance'] = 'none'; + + deck.getRevealElement().appendChild( searchElement ); + + // searchButton.addEventListener( 'click', function(event) { + // doSearch(); + // }, false ); + + searchInput.addEventListener( 'keyup', function( event ) { + switch (event.keyCode) { + case 13: + event.preventDefault(); + doSearch(); + searchboxDirty = false; + break; + default: + searchboxDirty = true; + } + }, false ); + + closeSearch(); + + } + + function openSearch() { + if( !searchElement ) render(); + + searchElement.style.display = 'inline'; + searchInput.focus(); + searchInput.select(); + } + + function closeSearch() { + if( !searchElement ) render(); + + searchElement.style.display = 'none'; + if(hilitor) hilitor.remove(); + } + + function toggleSearch() { + if( !searchElement ) render(); + + if (searchElement.style.display !== 'inline') { + openSearch(); + } + else { + closeSearch(); + } + } + + function doSearch() { + //if there's been a change in the search term, perform a new search: + if (searchboxDirty) { + var searchstring = searchInput.value; + + if (searchstring === '') { + if(hilitor) hilitor.remove(); + matchedSlides = null; + } + else { + //find the keyword amongst the slides + hilitor = new Hilitor("slidecontent"); + matchedSlides = hilitor.apply(searchstring); + currentMatchedIndex = 0; + } + } + + if (matchedSlides) { + //navigate to the next slide that has the keyword, wrapping to the first if necessary + if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { + currentMatchedIndex = 0; + } + if (matchedSlides.length > currentMatchedIndex) { + deck.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v); + currentMatchedIndex++; + } + } + } + + // Original JavaScript code by Chirp Internet: www.chirp.com.au + // Please acknowledge use of this code by including this header. + // 2/2013 jon: modified regex to display any match, not restricted to word boundaries. + function Hilitor(id, tag) { + + var targetNode = document.getElementById(id) || document.body; + var hiliteTag = tag || "EM"; + var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM)$"); + var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"]; + var wordColor = []; + var colorIdx = 0; + var matchRegex = ""; + var matchingSlides = []; + + this.setRegex = function(input) + { + input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|"); + matchRegex = new RegExp("(" + input + ")","i"); + } + + this.getRegex = function() + { + return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " "); + } + + // recursively apply word highlighting + this.hiliteWords = function(node) + { + if(node == undefined || !node) return; + if(!matchRegex) return; + if(skipTags.test(node.nodeName)) return; + + if(node.hasChildNodes()) { + for(var i=0; i < node.childNodes.length; i++) + this.hiliteWords(node.childNodes[i]); + } + if(node.nodeType == 3) { // NODE_TEXT + var nv, regs; + if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) { + //find the slide's section element and save it in our list of matching slides + var secnode = node; + while (secnode != null && secnode.nodeName != 'SECTION') { + secnode = secnode.parentNode; + } + + var slideIndex = deck.getIndices(secnode); + var slidelen = matchingSlides.length; + var alreadyAdded = false; + for (var i=0; i < slidelen; i++) { + if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) { + alreadyAdded = true; + } + } + if (! alreadyAdded) { + matchingSlides.push(slideIndex); + } + + if(!wordColor[regs[0].toLowerCase()]) { + wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length]; + } + + var match = document.createElement(hiliteTag); + match.appendChild(document.createTextNode(regs[0])); + match.style.backgroundColor = wordColor[regs[0].toLowerCase()]; + match.style.fontStyle = "inherit"; + match.style.color = "#000"; + + var after = node.splitText(regs.index); + after.nodeValue = after.nodeValue.substring(regs[0].length); + node.parentNode.insertBefore(match, after); + } + } + }; + + // remove highlighting + this.remove = function() + { + var arr = document.getElementsByTagName(hiliteTag); + var el; + while(arr.length && (el = arr[0])) { + el.parentNode.replaceChild(el.firstChild, el); + } + }; + + // start highlighting at target node + this.apply = function(input) + { + if(input == undefined || !input) return; + this.remove(); + this.setRegex(input); + this.hiliteWords(targetNode); + return matchingSlides; + }; + + } + + return { + + id: 'search', + + init: reveal => { + + deck = reveal; + deck.registerKeyboardShortcut( 'CTRL + Shift + F', 'Search' ); + + document.addEventListener( 'keydown', function( event ) { + if( event.key == "F" && (event.ctrlKey || event.metaKey) ) { //Control+Shift+f + event.preventDefault(); + toggleSearch(); + } + }, false ); + + }, + + open: openSearch + + } +}; + +export default Plugin; \ No newline at end of file diff --git a/english/site_libs/revealjs/plugin/search/search.esm.js b/english/site_libs/revealjs/plugin/search/search.esm.js new file mode 100644 index 0000000..b401a70 --- /dev/null +++ b/english/site_libs/revealjs/plugin/search/search.esm.js @@ -0,0 +1,7 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=function(e){try{return!!e()}catch(e){return!0}},n=!t((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),r=function(e){return e&&e.Math==Math&&e},o=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i=t,c=/#|\.prototype\./,a=function(e,t){var n=l[u(e)];return n==s||n!=f&&("function"==typeof t?i(t):!!t)},u=a.normalize=function(e){return String(e).replace(c,".").toLowerCase()},l=a.data={},f=a.NATIVE="N",s=a.POLYFILL="P",p=a,g=function(e){return"object"==typeof e?null!==e:"function"==typeof e},d=g,h=function(e){if(!d(e))throw TypeError(String(e)+" is not an object");return e},y=g,v=h,x=function(e){if(!y(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},b=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return v(n),x(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),E=g,m=b,S={},w=g,O=o.document,R=w(O)&&w(O.createElement),T=function(e){return R?O.createElement(e):{}},_=!n&&!t((function(){return 7!=Object.defineProperty(T("div"),"a",{get:function(){return 7}}).a})),j=g,P=function(e,t){if(!j(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!j(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!j(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!j(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},I=n,C=_,N=h,A=P,k=Object.defineProperty;S.f=I?k:function(e,t,n){if(N(e),t=A(t,!0),N(n),C)try{return k(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var $={},L=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},M=L,U=function(e){return Object(M(e))},D=U,F={}.hasOwnProperty,z=function(e,t){return F.call(D(e),t)},K={}.toString,B=function(e){return K.call(e).slice(8,-1)},W=B,G="".split,V=t((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==W(e)?G.call(e,""):Object(e)}:Object,Y=L,q=function(e){return V(Y(e))},X=Math.ceil,H=Math.floor,J=function(e){return isNaN(e=+e)?0:(e>0?H:X)(e)},Q=J,Z=Math.min,ee=function(e){return e>0?Z(Q(e),9007199254740991):0},te=J,ne=Math.max,re=Math.min,oe=q,ie=ee,ce=function(e,t){var n=te(e);return n<0?ne(n+t,0):re(n,t)},ae=function(e){return function(t,n,r){var o,i=oe(t),c=ie(i.length),a=ce(r,c);if(e&&n!=n){for(;c>a;)if((o=i[a++])!=o)return!0}else for(;c>a;a++)if((e||a in i)&&i[a]===n)return e||a||0;return!e&&-1}},ue={includes:ae(!0),indexOf:ae(!1)},le={},fe=z,se=q,pe=ue.indexOf,ge=le,de=function(e,t){var n,r=se(e),o=0,i=[];for(n in r)!fe(ge,n)&&fe(r,n)&&i.push(n);for(;t.length>o;)fe(r,n=t[o++])&&(~pe(i,n)||i.push(n));return i},he=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");$.f=Object.getOwnPropertyNames||function(e){return de(e,he)};var ye={exports:{}},ve=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},xe=S,be=ve,Ee=n?function(e,t,n){return xe.f(e,t,be(1,n))}:function(e,t,n){return e[t]=n,e},me=o,Se=Ee,we=function(e,t){try{Se(me,e,t)}catch(n){me[e]=t}return t},Oe=we,Re=o["__core-js_shared__"]||Oe("__core-js_shared__",{}),Te=Re;(ye.exports=function(e,t){return Te[e]||(Te[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var _e,je,Pe=0,Ie=Math.random(),Ce=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Pe+Ie).toString(36)},Ne=o,Ae=o,ke=function(e){return"function"==typeof e?e:void 0},$e=function(e,t){return arguments.length<2?ke(Ne[e])||ke(Ae[e]):Ne[e]&&Ne[e][t]||Ae[e]&&Ae[e][t]},Le=$e("navigator","userAgent")||"",Me=o.process,Ue=Me&&Me.versions,De=Ue&&Ue.v8;De?je=(_e=De.split("."))[0]<4?1:_e[0]+_e[1]:Le&&(!(_e=Le.match(/Edge\/(\d+)/))||_e[1]>=74)&&(_e=Le.match(/Chrome\/(\d+)/))&&(je=_e[1]);var Fe=je&&+je,ze=t,Ke=!!Object.getOwnPropertySymbols&&!ze((function(){return!String(Symbol())||!Symbol.sham&&Fe&&Fe<41})),Be=Ke&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,We=o,Ge=ye.exports,Ve=z,Ye=Ce,qe=Ke,Xe=Be,He=Ge("wks"),Je=We.Symbol,Qe=Xe?Je:Je&&Je.withoutSetter||Ye,Ze=function(e){return Ve(He,e)&&(qe||"string"==typeof He[e])||(qe&&Ve(Je,e)?He[e]=Je[e]:He[e]=Qe("Symbol."+e)),He[e]},et=g,tt=B,nt=Ze("match"),rt=h,ot=function(){var e=rt(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},it={},ct=t;function at(e,t){return RegExp(e,t)}it.UNSUPPORTED_Y=ct((function(){var e=at("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),it.BROKEN_CARET=ct((function(){var e=at("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var ut={exports:{}},lt=Re,ft=Function.toString;"function"!=typeof lt.inspectSource&&(lt.inspectSource=function(e){return ft.call(e)});var st,pt,gt,dt=lt.inspectSource,ht=dt,yt=o.WeakMap,vt="function"==typeof yt&&/native code/.test(ht(yt)),xt=ye.exports,bt=Ce,Et=xt("keys"),mt=vt,St=g,wt=Ee,Ot=z,Rt=Re,Tt=function(e){return Et[e]||(Et[e]=bt(e))},_t=le,jt=o.WeakMap;if(mt||Rt.state){var Pt=Rt.state||(Rt.state=new jt),It=Pt.get,Ct=Pt.has,Nt=Pt.set;st=function(e,t){if(Ct.call(Pt,e))throw new TypeError("Object already initialized");return t.facade=e,Nt.call(Pt,e,t),t},pt=function(e){return It.call(Pt,e)||{}},gt=function(e){return Ct.call(Pt,e)}}else{var At=Tt("state");_t[At]=!0,st=function(e,t){if(Ot(e,At))throw new TypeError("Object already initialized");return t.facade=e,wt(e,At,t),t},pt=function(e){return Ot(e,At)?e[At]:{}},gt=function(e){return Ot(e,At)}}var kt={set:st,get:pt,has:gt,enforce:function(e){return gt(e)?pt(e):st(e,{})},getterFor:function(e){return function(t){var n;if(!St(t)||(n=pt(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},$t=o,Lt=Ee,Mt=z,Ut=we,Dt=dt,Ft=kt.get,zt=kt.enforce,Kt=String(String).split("String");(ut.exports=function(e,t,n,r){var o,i=!!r&&!!r.unsafe,c=!!r&&!!r.enumerable,a=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Mt(n,"name")||Lt(n,"name",t),(o=zt(n)).source||(o.source=Kt.join("string"==typeof t?t:""))),e!==$t?(i?!a&&e[t]&&(c=!0):delete e[t],c?e[t]=n:Lt(e,t,n)):c?e[t]=n:Ut(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ft(this).source||Dt(this)}));var Bt=$e,Wt=S,Gt=n,Vt=Ze("species"),Yt=n,qt=o,Xt=p,Ht=function(e,t,n){var r,o;return m&&"function"==typeof(r=t.constructor)&&r!==n&&E(o=r.prototype)&&o!==n.prototype&&m(e,o),e},Jt=S.f,Qt=$.f,Zt=function(e){var t;return et(e)&&(void 0!==(t=e[nt])?!!t:"RegExp"==tt(e))},en=ot,tn=it,nn=ut.exports,rn=t,on=kt.enforce,cn=function(e){var t=Bt(e),n=Wt.f;Gt&&t&&!t[Vt]&&n(t,Vt,{configurable:!0,get:function(){return this}})},an=Ze("match"),un=qt.RegExp,ln=un.prototype,fn=/a/g,sn=/a/g,pn=new un(fn)!==fn,gn=tn.UNSUPPORTED_Y;if(Yt&&Xt("RegExp",!pn||gn||rn((function(){return sn[an]=!1,un(fn)!=fn||un(sn)==sn||"/a/i"!=un(fn,"i")})))){for(var dn=function(e,t){var n,r=this instanceof dn,o=Zt(e),i=void 0===t;if(!r&&o&&e.constructor===dn&&i)return e;pn?o&&!i&&(e=e.source):e instanceof dn&&(i&&(t=en.call(e)),e=e.source),gn&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=Ht(pn?new un(e,t):un(e,t),r?this:ln,dn);gn&&n&&(on(c).sticky=!0);return c},hn=function(e){e in dn||Jt(dn,e,{configurable:!0,get:function(){return un[e]},set:function(t){un[e]=t}})},yn=Qt(un),vn=0;yn.length>vn;)hn(yn[vn++]);ln.constructor=dn,dn.prototype=ln,nn(qt,"RegExp",dn)}cn("RegExp");var xn={},bn={},En={}.propertyIsEnumerable,mn=Object.getOwnPropertyDescriptor,Sn=mn&&!En.call({1:2},1);bn.f=Sn?function(e){var t=mn(this,e);return!!t&&t.enumerable}:En;var wn=n,On=bn,Rn=ve,Tn=q,_n=P,jn=z,Pn=_,In=Object.getOwnPropertyDescriptor;xn.f=wn?In:function(e,t){if(e=Tn(e),t=_n(t,!0),Pn)try{return In(e,t)}catch(e){}if(jn(e,t))return Rn(!On.f.call(e,t),e[t])};var Cn={};Cn.f=Object.getOwnPropertySymbols;var Nn=$,An=Cn,kn=h,$n=$e("Reflect","ownKeys")||function(e){var t=Nn.f(kn(e)),n=An.f;return n?t.concat(n(e)):t},Ln=z,Mn=$n,Un=xn,Dn=S,Fn=o,zn=xn.f,Kn=Ee,Bn=ut.exports,Wn=we,Gn=function(e,t){for(var n=Mn(t),r=Dn.f,o=Un.f,i=0;i0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(u="(?: "+u+")",f=" "+f,l++),n=new RegExp("^(?:"+u+")",a)),tr&&(n=new RegExp("^"+u+"$(?!\\s)",a)),Zn&&(t=i.lastIndex),r=Hn.call(c?n:i,f),c?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:Zn&&r&&(i.lastIndex=i.global?r.index+r[0].length:t),tr&&r&&r.length>1&&Jn.call(r[0],n,(function(){for(o=1;o")})),br="$0"==="a".replace(/./,"$0"),Er=dr("replace"),mr=!!/./[Er]&&""===/./[Er]("a","$0"),Sr=!gr((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),wr=J,Or=L,Rr=function(e){return function(t,n){var r,o,i=String(Or(t)),c=wr(n),a=i.length;return c<0||c>=a?e?"":void 0:(r=i.charCodeAt(c))<55296||r>56319||c+1===a||(o=i.charCodeAt(c+1))<56320||o>57343?e?i.charAt(c):r:e?i.slice(c,c+2):o-56320+(r-55296<<10)+65536}},Tr={codeAt:Rr(!1),charAt:Rr(!0)}.charAt,_r=U,jr=Math.floor,Pr="".replace,Ir=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Cr=/\$([$&'`]|\d{1,2})/g,Nr=B,Ar=nr,kr=function(e,t,n,r){var o=dr(e),i=!gr((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),c=i&&!gr((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[yr]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!i||!c||"replace"===e&&(!xr||!br||mr)||"split"===e&&!Sr){var a=/./[o],u=n(o,""[e],(function(e,t,n,r,o){var c=t.exec;return c===pr||c===vr.exec?i&&!o?{done:!0,value:a.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:br,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:mr}),l=u[0],f=u[1];sr(String.prototype,e,l),sr(vr,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&hr(vr[o],"sham",!0)},$r=h,Lr=ee,Mr=J,Ur=L,Dr=function(e,t,n){return t+(n?Tr(e,t).length:1)},Fr=function(e,t,n,r,o,i){var c=n+e.length,a=r.length,u=Cr;return void 0!==o&&(o=_r(o),u=Ir),Pr.call(i,u,(function(i,u){var l;switch(u.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(c);case"<":l=o[u.slice(1,-1)];break;default:var f=+u;if(0===f)return i;if(f>a){var s=jr(f/10);return 0===s?i:s<=a?void 0===r[s-1]?u.charAt(1):r[s-1]+u.charAt(1):i}l=r[f-1]}return void 0===l?"":l}))},zr=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==Nr(e))throw TypeError("RegExp#exec called on incompatible receiver");return Ar.call(e,t)},Kr=Math.max,Br=Math.min;kr("replace",2,(function(e,t,n,r){var o=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,c=o?"$":"$0";return[function(n,r){var o=Ur(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!o&&i||"string"==typeof r&&-1===r.indexOf(c)){var a=n(t,e,this,r);if(a.done)return a.value}var u=$r(e),l=String(this),f="function"==typeof r;f||(r=String(r));var s=u.global;if(s){var p=u.unicode;u.lastIndex=0}for(var g=[];;){var d=zr(u,l);if(null===d)break;if(g.push(d),!s)break;""===String(d[0])&&(u.lastIndex=Dr(l,Lr(u.lastIndex),p))}for(var h,y="",v=0,x=0;x=v&&(y+=l.slice(v,E)+R,v=E+b.length)}return y+l.slice(v)}]}));var Wr={};Wr[Ze("toStringTag")]="z";var Gr="[object z]"===String(Wr),Vr=Gr,Yr=B,qr=Ze("toStringTag"),Xr="Arguments"==Yr(function(){return arguments}()),Hr=Vr?Yr:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),qr))?n:Xr?Yr(t):"Object"==(r=Yr(t))&&"function"==typeof t.callee?"Arguments":r},Jr=Gr?{}.toString:function(){return"[object "+Hr(this)+"]"},Qr=Gr,Zr=ut.exports,eo=Jr;Qr||Zr(Object.prototype,"toString",eo,{unsafe:!0}) +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */;export default function(){var e,t,n,r,o,i,c;function a(){(t=document.createElement("div")).classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',(n=t.querySelector(".searchinput")).style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){switch(t.keyCode){case 13:t.preventDefault(),function(){if(i){var t=n.value;""===t?(c&&c.remove(),r=null):(c=new f("slidecontent"),r=c.apply(t),o=0)}r&&(r.length&&r.length<=o&&(o=0),r.length>o&&(e.slide(r[o].h,r[o].v),o++))}(),i=!1;break;default:i=!0}}),!1),l()}function u(){t||a(),t.style.display="inline",n.focus(),n.select()}function l(){t||a(),t.style.display="none",c&&c.remove()}function f(t,n){var r=document.getElementById(t)||document.body,o=n||"EM",i=new RegExp("^(?:"+o+"|SCRIPT|FORM)$"),c=["#ff6","#a0ffff","#9f9","#f99","#f6f"],a=[],u=0,l="",f=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),l=new RegExp("("+e+")","i")},this.getRegex=function(){return l.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&l&&!i.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n0?H:X)(e)},Q=J,Z=Math.min,ee=function(e){return e>0?Z(Q(e),9007199254740991):0},te=J,ne=Math.max,re=Math.min,oe=q,ie=ee,ce=function(e,t){var n=te(e);return n<0?ne(n+t,0):re(n,t)},ae=function(e){return function(t,n,r){var o,i=oe(t),c=ie(i.length),a=ce(r,c);if(e&&n!=n){for(;c>a;)if((o=i[a++])!=o)return!0}else for(;c>a;a++)if((e||a in i)&&i[a]===n)return e||a||0;return!e&&-1}},ue={includes:ae(!0),indexOf:ae(!1)},le={},fe=z,se=q,pe=ue.indexOf,de=le,ge=function(e,t){var n,r=se(e),o=0,i=[];for(n in r)!fe(de,n)&&fe(r,n)&&i.push(n);for(;t.length>o;)fe(r,n=t[o++])&&(~pe(i,n)||i.push(n));return i},he=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");$.f=Object.getOwnPropertyNames||function(e){return ge(e,he)};var ye={exports:{}},ve=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},xe=S,be=ve,me=n?function(e,t,n){return xe.f(e,t,be(1,n))}:function(e,t,n){return e[t]=n,e},Ee=o,Se=me,we=function(e,t){try{Se(Ee,e,t)}catch(n){Ee[e]=t}return t},Oe=we,Re="__core-js_shared__",Te=o[Re]||Oe(Re,{}),_e=Te;(ye.exports=function(e,t){return _e[e]||(_e[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var je,Pe,Ie=0,Ce=Math.random(),Ne=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Ie+Ce).toString(36)},Ae=o,ke=o,$e=function(e){return"function"==typeof e?e:void 0},Le=function(e,t){return arguments.length<2?$e(Ae[e])||$e(ke[e]):Ae[e]&&Ae[e][t]||ke[e]&&ke[e][t]},Me=Le("navigator","userAgent")||"",Ue=o.process,De=Ue&&Ue.versions,Fe=De&&De.v8;Fe?Pe=(je=Fe.split("."))[0]<4?1:je[0]+je[1]:Me&&(!(je=Me.match(/Edge\/(\d+)/))||je[1]>=74)&&(je=Me.match(/Chrome\/(\d+)/))&&(Pe=je[1]);var ze=Pe&&+Pe,Ke=t,Be=!!Object.getOwnPropertySymbols&&!Ke((function(){return!String(Symbol())||!Symbol.sham&&ze&&ze<41})),We=Be&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ge=o,Ve=ye.exports,Ye=z,qe=Ne,Xe=Be,He=We,Je=Ve("wks"),Qe=Ge.Symbol,Ze=He?Qe:Qe&&Qe.withoutSetter||qe,et=function(e){return Ye(Je,e)&&(Xe||"string"==typeof Je[e])||(Xe&&Ye(Qe,e)?Je[e]=Qe[e]:Je[e]=Ze("Symbol."+e)),Je[e]},tt=d,nt=B,rt=et("match"),ot=h,it=function(){var e=ot(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},ct={},at=t;function ut(e,t){return RegExp(e,t)}ct.UNSUPPORTED_Y=at((function(){var e=ut("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),ct.BROKEN_CARET=at((function(){var e=ut("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var lt={exports:{}},ft=Te,st=Function.toString;"function"!=typeof ft.inspectSource&&(ft.inspectSource=function(e){return st.call(e)});var pt,dt,gt,ht=ft.inspectSource,yt=ht,vt=o.WeakMap,xt="function"==typeof vt&&/native code/.test(yt(vt)),bt=ye.exports,mt=Ne,Et=bt("keys"),St=xt,wt=d,Ot=me,Rt=z,Tt=Te,_t=function(e){return Et[e]||(Et[e]=mt(e))},jt=le,Pt="Object already initialized",It=o.WeakMap;if(St||Tt.state){var Ct=Tt.state||(Tt.state=new It),Nt=Ct.get,At=Ct.has,kt=Ct.set;pt=function(e,t){if(At.call(Ct,e))throw new TypeError(Pt);return t.facade=e,kt.call(Ct,e,t),t},dt=function(e){return Nt.call(Ct,e)||{}},gt=function(e){return At.call(Ct,e)}}else{var $t=_t("state");jt[$t]=!0,pt=function(e,t){if(Rt(e,$t))throw new TypeError(Pt);return t.facade=e,Ot(e,$t,t),t},dt=function(e){return Rt(e,$t)?e[$t]:{}},gt=function(e){return Rt(e,$t)}}var Lt={set:pt,get:dt,has:gt,enforce:function(e){return gt(e)?dt(e):pt(e,{})},getterFor:function(e){return function(t){var n;if(!wt(t)||(n=dt(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Mt=o,Ut=me,Dt=z,Ft=we,zt=ht,Kt=Lt.get,Bt=Lt.enforce,Wt=String(String).split("String");(lt.exports=function(e,t,n,r){var o,i=!!r&&!!r.unsafe,c=!!r&&!!r.enumerable,a=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Dt(n,"name")||Ut(n,"name",t),(o=Bt(n)).source||(o.source=Wt.join("string"==typeof t?t:""))),e!==Mt?(i?!a&&e[t]&&(c=!0):delete e[t],c?e[t]=n:Ut(e,t,n)):c?e[t]=n:Ft(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Kt(this).source||zt(this)}));var Gt=Le,Vt=S,Yt=n,qt=et("species"),Xt=n,Ht=o,Jt=p,Qt=function(e,t,n){var r,o;return E&&"function"==typeof(r=t.constructor)&&r!==n&&m(o=r.prototype)&&o!==n.prototype&&E(e,o),e},Zt=S.f,en=$.f,tn=function(e){var t;return tt(e)&&(void 0!==(t=e[rt])?!!t:"RegExp"==nt(e))},nn=it,rn=ct,on=lt.exports,cn=t,an=Lt.enforce,un=function(e){var t=Gt(e),n=Vt.f;Yt&&t&&!t[qt]&&n(t,qt,{configurable:!0,get:function(){return this}})},ln=et("match"),fn=Ht.RegExp,sn=fn.prototype,pn=/a/g,dn=/a/g,gn=new fn(pn)!==pn,hn=rn.UNSUPPORTED_Y;if(Xt&&Jt("RegExp",!gn||hn||cn((function(){return dn[ln]=!1,fn(pn)!=pn||fn(dn)==dn||"/a/i"!=fn(pn,"i")})))){for(var yn=function(e,t){var n,r=this instanceof yn,o=tn(e),i=void 0===t;if(!r&&o&&e.constructor===yn&&i)return e;gn?o&&!i&&(e=e.source):e instanceof yn&&(i&&(t=nn.call(e)),e=e.source),hn&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=Qt(gn?new fn(e,t):fn(e,t),r?this:sn,yn);hn&&n&&(an(c).sticky=!0);return c},vn=function(e){e in yn||Zt(yn,e,{configurable:!0,get:function(){return fn[e]},set:function(t){fn[e]=t}})},xn=en(fn),bn=0;xn.length>bn;)vn(xn[bn++]);sn.constructor=yn,yn.prototype=sn,on(Ht,"RegExp",yn)}un("RegExp");var mn={},En={},Sn={}.propertyIsEnumerable,wn=Object.getOwnPropertyDescriptor,On=wn&&!Sn.call({1:2},1);En.f=On?function(e){var t=wn(this,e);return!!t&&t.enumerable}:Sn;var Rn=n,Tn=En,_n=ve,jn=q,Pn=P,In=z,Cn=_,Nn=Object.getOwnPropertyDescriptor;mn.f=Rn?Nn:function(e,t){if(e=jn(e),t=Pn(t,!0),Cn)try{return Nn(e,t)}catch(e){}if(In(e,t))return _n(!Tn.f.call(e,t),e[t])};var An={};An.f=Object.getOwnPropertySymbols;var kn=$,$n=An,Ln=h,Mn=Le("Reflect","ownKeys")||function(e){var t=kn.f(Ln(e)),n=$n.f;return n?t.concat(n(e)):t},Un=z,Dn=Mn,Fn=mn,zn=S,Kn=o,Bn=mn.f,Wn=me,Gn=lt.exports,Vn=we,Yn=function(e,t){for(var n=Dn(t),r=zn.f,o=Fn.f,i=0;i0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(u="(?: "+u+")",f=" "+f,l++),n=new RegExp("^(?:"+u+")",a)),rr&&(n=new RegExp("^"+u+"$(?!\\s)",a)),tr&&(t=i.lastIndex),r=Qn.call(c?n:i,f),c?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:tr&&r&&(i.lastIndex=i.global?r.index+r[0].length:t),rr&&r&&r.length>1&&Zn.call(r[0],n,(function(){for(o=1;o")})),Sr="$0"==="a".replace(/./,"$0"),wr=vr("replace"),Or=!!/./[wr]&&""===/./[wr]("a","$0"),Rr=!yr((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),Tr=J,_r=L,jr=function(e){return function(t,n){var r,o,i=String(_r(t)),c=Tr(n),a=i.length;return c<0||c>=a?e?"":void 0:(r=i.charCodeAt(c))<55296||r>56319||c+1===a||(o=i.charCodeAt(c+1))<56320||o>57343?e?i.charAt(c):r:e?i.slice(c,c+2):o-56320+(r-55296<<10)+65536}},Pr={codeAt:jr(!1),charAt:jr(!0)}.charAt,Ir=U,Cr=Math.floor,Nr="".replace,Ar=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,kr=/\$([$&'`]|\d{1,2})/g,$r=B,Lr=or,Mr=function(e,t,n,r){var o=vr(e),i=!yr((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),c=i&&!yr((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[br]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!i||!c||"replace"===e&&(!Er||!Sr||Or)||"split"===e&&!Rr){var a=/./[o],u=n(o,""[e],(function(e,t,n,r,o){var c=t.exec;return c===hr||c===mr.exec?i&&!o?{done:!0,value:a.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Sr,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Or}),l=u[0],f=u[1];gr(String.prototype,e,l),gr(mr,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&xr(mr[o],"sham",!0)},Ur=h,Dr=ee,Fr=J,zr=L,Kr=function(e,t,n){return t+(n?Pr(e,t).length:1)},Br=function(e,t,n,r,o,i){var c=n+e.length,a=r.length,u=kr;return void 0!==o&&(o=Ir(o),u=Ar),Nr.call(i,u,(function(i,u){var l;switch(u.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(c);case"<":l=o[u.slice(1,-1)];break;default:var f=+u;if(0===f)return i;if(f>a){var s=Cr(f/10);return 0===s?i:s<=a?void 0===r[s-1]?u.charAt(1):r[s-1]+u.charAt(1):i}l=r[f-1]}return void 0===l?"":l}))},Wr=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==$r(e))throw TypeError("RegExp#exec called on incompatible receiver");return Lr.call(e,t)},Gr=Math.max,Vr=Math.min;Mr("replace",2,(function(e,t,n,r){var o=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,c=o?"$":"$0";return[function(n,r){var o=zr(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!o&&i||"string"==typeof r&&-1===r.indexOf(c)){var a=n(t,e,this,r);if(a.done)return a.value}var u=Ur(e),l=String(this),f="function"==typeof r;f||(r=String(r));var s=u.global;if(s){var p=u.unicode;u.lastIndex=0}for(var d=[];;){var g=Wr(u,l);if(null===g)break;if(d.push(g),!s)break;""===String(g[0])&&(u.lastIndex=Kr(l,Dr(u.lastIndex),p))}for(var h,y="",v=0,x=0;x=v&&(y+=l.slice(v,m)+R,v=m+b.length)}return y+l.slice(v)}]}));var Yr={};Yr[et("toStringTag")]="z";var qr="[object z]"===String(Yr),Xr=qr,Hr=B,Jr=et("toStringTag"),Qr="Arguments"==Hr(function(){return arguments}()),Zr=Xr?Hr:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),Jr))?n:Qr?Hr(t):"Object"==(r=Hr(t))&&"function"==typeof t.callee?"Arguments":r},eo=qr?{}.toString:function(){return"[object "+Zr(this)+"]"},to=qr,no=lt.exports,ro=eo;to||no(Object.prototype,"toString",ro,{unsafe:!0}) +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */;return function(){var e,t,n,r,o,i,c;function a(){(t=document.createElement("div")).classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',(n=t.querySelector(".searchinput")).style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){switch(t.keyCode){case 13:t.preventDefault(),function(){if(i){var t=n.value;""===t?(c&&c.remove(),r=null):(c=new f("slidecontent"),r=c.apply(t),o=0)}r&&(r.length&&r.length<=o&&(o=0),r.length>o&&(e.slide(r[o].h,r[o].v),o++))}(),i=!1;break;default:i=!0}}),!1),l()}function u(){t||a(),t.style.display="inline",n.focus(),n.select()}function l(){t||a(),t.style.display="none",c&&c.remove()}function f(t,n){var r=document.getElementById(t)||document.body,o=n||"EM",i=new RegExp("^(?:"+o+"|SCRIPT|FORM)$"),c=["#ff6","#a0ffff","#9f9","#f99","#f6f"],a=[],u=0,l="",f=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),l=new RegExp("("+e+")","i")},this.getRegex=function(){return l.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&l&&!i.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n Plugin; + +/*! + * zoom.js 0.3 (modified for use with reveal.js) + * http://lab.hakim.se/zoom-js + * MIT licensed + * + * Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se + */ +var zoom = (function(){ + + // The current zoom level (scale) + var level = 1; + + // The current mouse position, used for panning + var mouseX = 0, + mouseY = 0; + + // Timeout before pan is activated + var panEngageTimeout = -1, + panUpdateInterval = -1; + + // Check for transform support so that we can fallback otherwise + var supportsTransforms = 'WebkitTransform' in document.body.style || + 'MozTransform' in document.body.style || + 'msTransform' in document.body.style || + 'OTransform' in document.body.style || + 'transform' in document.body.style; + + if( supportsTransforms ) { + // The easing that will be applied when we zoom in/out + document.body.style.transition = 'transform 0.8s ease'; + document.body.style.OTransition = '-o-transform 0.8s ease'; + document.body.style.msTransition = '-ms-transform 0.8s ease'; + document.body.style.MozTransition = '-moz-transform 0.8s ease'; + document.body.style.WebkitTransition = '-webkit-transform 0.8s ease'; + } + + // Zoom out if the user hits escape + document.addEventListener( 'keyup', function( event ) { + if( level !== 1 && event.keyCode === 27 ) { + zoom.out(); + } + } ); + + // Monitor mouse movement for panning + document.addEventListener( 'mousemove', function( event ) { + if( level !== 1 ) { + mouseX = event.clientX; + mouseY = event.clientY; + } + } ); + + /** + * Applies the CSS required to zoom in, prefers the use of CSS3 + * transforms but falls back on zoom for IE. + * + * @param {Object} rect + * @param {Number} scale + */ + function magnify( rect, scale ) { + + var scrollOffset = getScrollOffset(); + + // Ensure a width/height is set + rect.width = rect.width || 1; + rect.height = rect.height || 1; + + // Center the rect within the zoomed viewport + rect.x -= ( window.innerWidth - ( rect.width * scale ) ) / 2; + rect.y -= ( window.innerHeight - ( rect.height * scale ) ) / 2; + + if( supportsTransforms ) { + // Reset + if( scale === 1 ) { + document.body.style.transform = ''; + document.body.style.OTransform = ''; + document.body.style.msTransform = ''; + document.body.style.MozTransform = ''; + document.body.style.WebkitTransform = ''; + } + // Scale + else { + var origin = scrollOffset.x +'px '+ scrollOffset.y +'px', + transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')'; + + document.body.style.transformOrigin = origin; + document.body.style.OTransformOrigin = origin; + document.body.style.msTransformOrigin = origin; + document.body.style.MozTransformOrigin = origin; + document.body.style.WebkitTransformOrigin = origin; + + document.body.style.transform = transform; + document.body.style.OTransform = transform; + document.body.style.msTransform = transform; + document.body.style.MozTransform = transform; + document.body.style.WebkitTransform = transform; + } + } + else { + // Reset + if( scale === 1 ) { + document.body.style.position = ''; + document.body.style.left = ''; + document.body.style.top = ''; + document.body.style.width = ''; + document.body.style.height = ''; + document.body.style.zoom = ''; + } + // Scale + else { + document.body.style.position = 'relative'; + document.body.style.left = ( - ( scrollOffset.x + rect.x ) / scale ) + 'px'; + document.body.style.top = ( - ( scrollOffset.y + rect.y ) / scale ) + 'px'; + document.body.style.width = ( scale * 100 ) + '%'; + document.body.style.height = ( scale * 100 ) + '%'; + document.body.style.zoom = scale; + } + } + + level = scale; + + if( document.documentElement.classList ) { + if( level !== 1 ) { + document.documentElement.classList.add( 'zoomed' ); + } + else { + document.documentElement.classList.remove( 'zoomed' ); + } + } + } + + /** + * Pan the document when the mosue cursor approaches the edges + * of the window. + */ + function pan() { + var range = 0.12, + rangeX = window.innerWidth * range, + rangeY = window.innerHeight * range, + scrollOffset = getScrollOffset(); + + // Up + if( mouseY < rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) ); + } + // Down + else if( mouseY > window.innerHeight - rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) ); + } + + // Left + if( mouseX < rangeX ) { + window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y ); + } + // Right + else if( mouseX > window.innerWidth - rangeX ) { + window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y ); + } + } + + function getScrollOffset() { + return { + x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset, + y: window.scrollY !== undefined ? window.scrollY : window.pageYOffset + } + } + + return { + /** + * Zooms in on either a rectangle or HTML element. + * + * @param {Object} options + * - element: HTML element to zoom in on + * OR + * - x/y: coordinates in non-transformed space to zoom in on + * - width/height: the portion of the screen to zoom in on + * - scale: can be used instead of width/height to explicitly set scale + */ + to: function( options ) { + + // Due to an implementation limitation we can't zoom in + // to another element without zooming out first + if( level !== 1 ) { + zoom.out(); + } + else { + options.x = options.x || 0; + options.y = options.y || 0; + + // If an element is set, that takes precedence + if( !!options.element ) { + // Space around the zoomed in element to leave on screen + var padding = 20; + var bounds = options.element.getBoundingClientRect(); + + options.x = bounds.left - padding; + options.y = bounds.top - padding; + options.width = bounds.width + ( padding * 2 ); + options.height = bounds.height + ( padding * 2 ); + } + + // If width/height values are set, calculate scale from those values + if( options.width !== undefined && options.height !== undefined ) { + options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 ); + } + + if( options.scale > 1 ) { + options.x *= options.scale; + options.y *= options.scale; + + magnify( options, options.scale ); + + if( options.pan !== false ) { + + // Wait with engaging panning as it may conflict with the + // zoom transition + panEngageTimeout = setTimeout( function() { + panUpdateInterval = setInterval( pan, 1000 / 60 ); + }, 800 ); + + } + } + } + }, + + /** + * Resets the document zoom state to its default. + */ + out: function() { + clearTimeout( panEngageTimeout ); + clearInterval( panUpdateInterval ); + + magnify( { x: 0, y: 0 }, 1 ); + + level = 1; + }, + + // Alias + magnify: function( options ) { this.to( options ) }, + reset: function() { this.out() }, + + zoomLevel: function() { + return level; + } + } + +})(); diff --git a/english/site_libs/revealjs/plugin/zoom/zoom.esm.js b/english/site_libs/revealjs/plugin/zoom/zoom.esm.js new file mode 100644 index 0000000..27c0921 --- /dev/null +++ b/english/site_libs/revealjs/plugin/zoom/zoom.esm.js @@ -0,0 +1,4 @@ +/*! + * reveal.js Zoom plugin + */ +var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e} diff --git a/english/site_libs/revealjs/plugin/zoom/zoom.js b/english/site_libs/revealjs/plugin/zoom/zoom.js new file mode 100644 index 0000000..686a548 --- /dev/null +++ b/english/site_libs/revealjs/plugin/zoom/zoom.js @@ -0,0 +1,4 @@ +!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=o()}(this,(function(){"use strict"; +/*! + * reveal.js Zoom plugin + */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=l();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=l();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),twindow.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function l(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));