4753 lines
1.5 MiB
HTML
4753 lines
1.5 MiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="da" xml:lang="da"><head>
|
|||
|
|
|||
|
<meta charset="utf-8">
|
|||
|
<meta name="generator" content="quarto-1.3.450">
|
|||
|
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
|||
|
|
|||
|
|
|||
|
<title>Ebbas side</title>
|
|||
|
<style>
|
|||
|
code{white-space: pre-wrap;}
|
|||
|
span.smallcaps{font-variant: small-caps;}
|
|||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|||
|
div.column{flex: auto; overflow-x: auto;}
|
|||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|||
|
ul.task-list{list-style: none;}
|
|||
|
ul.task-list li input[type="checkbox"] {
|
|||
|
width: 0.8em;
|
|||
|
margin: 0 0.8em 0.2em -1em; vertical-align: middle;
|
|||
|
}
|
|||
|
</style>
|
|||
|
|
|||
|
|
|||
|
<script>const headroomChanged = new CustomEvent("quarto-hrChanged", {
|
|||
|
detail: {},
|
|||
|
bubbles: true,
|
|||
|
cancelable: false,
|
|||
|
composed: false,
|
|||
|
});
|
|||
|
|
|||
|
window.document.addEventListener("DOMContentLoaded", function () {
|
|||
|
let init = false;
|
|||
|
|
|||
|
// Manage the back to top button, if one is present.
|
|||
|
let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|||
|
const scrollDownBuffer = 5;
|
|||
|
const scrollUpBuffer = 35;
|
|||
|
const btn = document.getElementById("quarto-back-to-top");
|
|||
|
const hideBackToTop = () => {
|
|||
|
btn.style.display = "none";
|
|||
|
};
|
|||
|
const showBackToTop = () => {
|
|||
|
btn.style.display = "inline-block";
|
|||
|
};
|
|||
|
if (btn) {
|
|||
|
window.document.addEventListener(
|
|||
|
"scroll",
|
|||
|
function () {
|
|||
|
const currentScrollTop =
|
|||
|
window.pageYOffset || document.documentElement.scrollTop;
|
|||
|
|
|||
|
// Shows and hides the button 'intelligently' as the user scrolls
|
|||
|
if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
|
|||
|
hideBackToTop();
|
|||
|
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
|
|||
|
} else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
|
|||
|
showBackToTop();
|
|||
|
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
|
|||
|
}
|
|||
|
|
|||
|
// Show the button at the bottom, hides it at the top
|
|||
|
if (currentScrollTop <= 0) {
|
|||
|
hideBackToTop();
|
|||
|
} else if (
|
|||
|
window.innerHeight + currentScrollTop >=
|
|||
|
document.body.offsetHeight
|
|||
|
) {
|
|||
|
showBackToTop();
|
|||
|
}
|
|||
|
},
|
|||
|
false
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
function throttle(func, wait) {
|
|||
|
var timeout;
|
|||
|
return function () {
|
|||
|
const context = this;
|
|||
|
const args = arguments;
|
|||
|
const later = function () {
|
|||
|
clearTimeout(timeout);
|
|||
|
timeout = null;
|
|||
|
func.apply(context, args);
|
|||
|
};
|
|||
|
|
|||
|
if (!timeout) {
|
|||
|
timeout = setTimeout(later, wait);
|
|||
|
}
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
function headerOffset() {
|
|||
|
// Set an offset if there is are fixed top navbar
|
|||
|
const headerEl = window.document.querySelector("header.fixed-top");
|
|||
|
if (headerEl) {
|
|||
|
return headerEl.clientHeight;
|
|||
|
} else {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function footerOffset() {
|
|||
|
const footerEl = window.document.querySelector("footer.footer");
|
|||
|
if (footerEl) {
|
|||
|
return footerEl.clientHeight;
|
|||
|
} else {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function updateDocumentOffsetWithoutAnimation() {
|
|||
|
updateDocumentOffset(false);
|
|||
|
}
|
|||
|
|
|||
|
function updateDocumentOffset(animated) {
|
|||
|
// set body offset
|
|||
|
const topOffset = headerOffset();
|
|||
|
const bodyOffset = topOffset + footerOffset();
|
|||
|
const bodyEl = window.document.body;
|
|||
|
bodyEl.setAttribute("data-bs-offset", topOffset);
|
|||
|
bodyEl.style.paddingTop = topOffset + "px";
|
|||
|
|
|||
|
// deal with sidebar offsets
|
|||
|
const sidebars = window.document.querySelectorAll(
|
|||
|
".sidebar, .headroom-target"
|
|||
|
);
|
|||
|
sidebars.forEach((sidebar) => {
|
|||
|
if (!animated) {
|
|||
|
sidebar.classList.add("notransition");
|
|||
|
// Remove the no transition class after the animation has time to complete
|
|||
|
setTimeout(function () {
|
|||
|
sidebar.classList.remove("notransition");
|
|||
|
}, 201);
|
|||
|
}
|
|||
|
|
|||
|
if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
|
|||
|
sidebar.style.top = "0";
|
|||
|
sidebar.style.maxHeight = "100vh";
|
|||
|
} else {
|
|||
|
sidebar.style.top = topOffset + "px";
|
|||
|
sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
// allow space for footer
|
|||
|
const mainContainer = window.document.querySelector(".quarto-container");
|
|||
|
if (mainContainer) {
|
|||
|
mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
|
|||
|
}
|
|||
|
|
|||
|
// link offset
|
|||
|
let linkStyle = window.document.querySelector("#quarto-target-style");
|
|||
|
if (!linkStyle) {
|
|||
|
linkStyle = window.document.createElement("style");
|
|||
|
linkStyle.setAttribute("id", "quarto-target-style");
|
|||
|
window.document.head.appendChild(linkStyle);
|
|||
|
}
|
|||
|
while (linkStyle.firstChild) {
|
|||
|
linkStyle.removeChild(linkStyle.firstChild);
|
|||
|
}
|
|||
|
if (topOffset > 0) {
|
|||
|
linkStyle.appendChild(
|
|||
|
window.document.createTextNode(`
|
|||
|
section:target::before {
|
|||
|
content: "";
|
|||
|
display: block;
|
|||
|
height: ${topOffset}px;
|
|||
|
margin: -${topOffset}px 0 0;
|
|||
|
}`)
|
|||
|
);
|
|||
|
}
|
|||
|
if (init) {
|
|||
|
window.dispatchEvent(headroomChanged);
|
|||
|
}
|
|||
|
init = true;
|
|||
|
}
|
|||
|
|
|||
|
// initialize headroom
|
|||
|
var header = window.document.querySelector("#quarto-header");
|
|||
|
if (header && window.Headroom) {
|
|||
|
const headroom = new window.Headroom(header, {
|
|||
|
tolerance: 5,
|
|||
|
onPin: function () {
|
|||
|
const sidebars = window.document.querySelectorAll(
|
|||
|
".sidebar, .headroom-target"
|
|||
|
);
|
|||
|
sidebars.forEach((sidebar) => {
|
|||
|
sidebar.classList.remove("sidebar-unpinned");
|
|||
|
});
|
|||
|
updateDocumentOffset();
|
|||
|
},
|
|||
|
onUnpin: function () {
|
|||
|
const sidebars = window.document.querySelectorAll(
|
|||
|
".sidebar, .headroom-target"
|
|||
|
);
|
|||
|
sidebars.forEach((sidebar) => {
|
|||
|
sidebar.classList.add("sidebar-unpinned");
|
|||
|
});
|
|||
|
updateDocumentOffset();
|
|||
|
},
|
|||
|
});
|
|||
|
headroom.init();
|
|||
|
|
|||
|
let frozen = false;
|
|||
|
window.quartoToggleHeadroom = function () {
|
|||
|
if (frozen) {
|
|||
|
headroom.unfreeze();
|
|||
|
frozen = false;
|
|||
|
} else {
|
|||
|
headroom.freeze();
|
|||
|
frozen = true;
|
|||
|
}
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
window.addEventListener(
|
|||
|
"hashchange",
|
|||
|
function (e) {
|
|||
|
if (
|
|||
|
getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
|
|||
|
) {
|
|||
|
window.scrollTo(0, window.pageYOffset - headerOffset());
|
|||
|
}
|
|||
|
},
|
|||
|
false
|
|||
|
);
|
|||
|
|
|||
|
// Observe size changed for the header
|
|||
|
const headerEl = window.document.querySelector("header.fixed-top");
|
|||
|
if (headerEl && window.ResizeObserver) {
|
|||
|
const observer = new window.ResizeObserver(
|
|||
|
updateDocumentOffsetWithoutAnimation
|
|||
|
);
|
|||
|
observer.observe(headerEl, {
|
|||
|
attributes: true,
|
|||
|
childList: true,
|
|||
|
characterData: true,
|
|||
|
});
|
|||
|
} else {
|
|||
|
window.addEventListener(
|
|||
|
"resize",
|
|||
|
throttle(updateDocumentOffsetWithoutAnimation, 50)
|
|||
|
);
|
|||
|
}
|
|||
|
setTimeout(updateDocumentOffsetWithoutAnimation, 250);
|
|||
|
|
|||
|
// fixup index.html links if we aren't on the filesystem
|
|||
|
if (window.location.protocol !== "file:") {
|
|||
|
const links = window.document.querySelectorAll("a");
|
|||
|
for (let i = 0; i < links.length; i++) {
|
|||
|
if (links[i].href) {
|
|||
|
links[i].href = links[i].href.replace(/\/index\.html/, "/");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Fixup any sharing links that require urls
|
|||
|
// Append url to any sharing urls
|
|||
|
const sharingLinks = window.document.querySelectorAll(
|
|||
|
"a.sidebar-tools-main-item"
|
|||
|
);
|
|||
|
for (let i = 0; i < sharingLinks.length; i++) {
|
|||
|
const sharingLink = sharingLinks[i];
|
|||
|
const href = sharingLink.getAttribute("href");
|
|||
|
if (href) {
|
|||
|
sharingLink.setAttribute(
|
|||
|
"href",
|
|||
|
href.replace("|url|", window.location.href)
|
|||
|
);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Scroll the active navigation item into view, if necessary
|
|||
|
const navSidebar = window.document.querySelector("nav#quarto-sidebar");
|
|||
|
if (navSidebar) {
|
|||
|
// Find the active item
|
|||
|
const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
|
|||
|
if (activeItem) {
|
|||
|
// Wait for the scroll height and height to resolve by observing size changes on the
|
|||
|
// nav element that is scrollable
|
|||
|
const resizeObserver = new ResizeObserver((_entries) => {
|
|||
|
// The bottom of the element
|
|||
|
const elBottom = activeItem.offsetTop;
|
|||
|
const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
|
|||
|
|
|||
|
// The element height and scroll height are the same, then we are still loading
|
|||
|
if (viewBottom !== navSidebar.scrollHeight) {
|
|||
|
// Determine if the item isn't visible and scroll to it
|
|||
|
if (elBottom >= viewBottom) {
|
|||
|
navSidebar.scrollTop = elBottom;
|
|||
|
}
|
|||
|
|
|||
|
// stop observing now since we've completed the scroll
|
|||
|
resizeObserver.unobserve(navSidebar);
|
|||
|
}
|
|||
|
});
|
|||
|
resizeObserver.observe(navSidebar);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
</script>
|
|||
|
<script>/*!
|
|||
|
* headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
|
|||
|
* Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
|
|||
|
* License: MIT
|
|||
|
*/
|
|||
|
|
|||
|
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"
|
|||
|
</script>
|
|||
|
<script>/*!
|
|||
|
* clipboard.js v2.0.11
|
|||
|
* 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 b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}
|
|||
|
<script>/*! @algolia/autocomplete-js 1.7.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],u=!0,a=!1;try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){return{current:e}}function f(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function d(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var m=0;function v(){return"autocomplete-".concat(m++)}function h(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}function g(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}var y=function(){},b="1.7.3",O=[{segment:"autocomplete-core",version:b}];function _(e,t){var n=t;return{then:function(t,r){return _(e.then(j(t,n,e),j(r,n,e)),n)},catch:function(t){return _(e.catch(j(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),_(e.finally(j(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.
|
|||
|
|
|||
|
</script>
|
|||
|
<script>/**
|
|||
|
* Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
|
|||
|
*
|
|||
|
* Copyright (c) 2022 Kiro Risk (http://kiro.me)
|
|||
|
* All Rights Reserved. Apache Software License 2.0
|
|||
|
*
|
|||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
*/
|
|||
|
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===b(e)}function g(e){return"string"==typeof e}function y(e){return"number"==typeof e}function p(e){return!0===e||!1===e||function(e){return m(e)&&null!==e}(e)&&"[object Boolean]"==b(e)}function m(e){return"object"===n(e)}function k(e){return null!=e}function M(e){return!e.trim().length}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var x=function(e){return"Invalid value for key ".concat(e)},w=function(e){return"Pattern length exceeds max of ".concat(e,".")},L=Object.prototype.hasOwnProperty,S=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);i+=t.weight,n._keys.push(t),n._keyMap[t.i
|
|||
|
<script>const kQueryArg = "q";
|
|||
|
const kResultsArg = "show-results";
|
|||
|
|
|||
|
// If items don't provide a URL, then both the navigator and the onSelect
|
|||
|
// function aren't called (and therefore, the default implementation is used)
|
|||
|
//
|
|||
|
// We're using this sentinel URL to signal to those handlers that this
|
|||
|
// item is a more item (along with the type) and can be handled appropriately
|
|||
|
const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05";
|
|||
|
|
|||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
|||
|
// Ensure that search is available on this page. If it isn't,
|
|||
|
// should return early and not do anything
|
|||
|
var searchEl = window.document.getElementById("quarto-search");
|
|||
|
if (!searchEl) return;
|
|||
|
|
|||
|
const { autocomplete } = window["@algolia/autocomplete-js"];
|
|||
|
|
|||
|
let quartoSearchOptions = {};
|
|||
|
let language = {};
|
|||
|
const searchOptionEl = window.document.getElementById(
|
|||
|
"quarto-search-options"
|
|||
|
);
|
|||
|
if (searchOptionEl) {
|
|||
|
const jsonStr = searchOptionEl.textContent;
|
|||
|
quartoSearchOptions = JSON.parse(jsonStr);
|
|||
|
language = quartoSearchOptions.language;
|
|||
|
}
|
|||
|
|
|||
|
// note the search mode
|
|||
|
if (quartoSearchOptions.type === "overlay") {
|
|||
|
searchEl.classList.add("type-overlay");
|
|||
|
} else {
|
|||
|
searchEl.classList.add("type-textbox");
|
|||
|
}
|
|||
|
|
|||
|
// Used to determine highlighting behavior for this page
|
|||
|
// A `q` query param is expected when the user follows a search
|
|||
|
// to this page
|
|||
|
const currentUrl = new URL(window.location);
|
|||
|
const query = currentUrl.searchParams.get(kQueryArg);
|
|||
|
const showSearchResults = currentUrl.searchParams.get(kResultsArg);
|
|||
|
const mainEl = window.document.querySelector("main");
|
|||
|
|
|||
|
// highlight matches on the page
|
|||
|
if (query !== null && mainEl) {
|
|||
|
// perform any highlighting
|
|||
|
highlight(escapeRegExp(query), mainEl);
|
|||
|
|
|||
|
// fix up the URL to remove the q query param
|
|||
|
const replacementUrl = new URL(window.location);
|
|||
|
replacementUrl.searchParams.delete(kQueryArg);
|
|||
|
window.history.replaceState({}, "", replacementUrl);
|
|||
|
}
|
|||
|
|
|||
|
// function to clear highlighting on the page when the search query changes
|
|||
|
// (e.g. if the user edits the query or clears it)
|
|||
|
let highlighting = true;
|
|||
|
const resetHighlighting = (searchTerm) => {
|
|||
|
if (mainEl && highlighting && query !== null && searchTerm !== query) {
|
|||
|
clearHighlight(query, mainEl);
|
|||
|
highlighting = false;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
// Clear search highlighting when the user scrolls sufficiently
|
|||
|
const resetFn = () => {
|
|||
|
resetHighlighting("");
|
|||
|
window.removeEventListener("quarto-hrChanged", resetFn);
|
|||
|
window.removeEventListener("quarto-sectionChanged", resetFn);
|
|||
|
};
|
|||
|
|
|||
|
// Register this event after the initial scrolling and settling of events
|
|||
|
// on the page
|
|||
|
window.addEventListener("quarto-hrChanged", resetFn);
|
|||
|
window.addEventListener("quarto-sectionChanged", resetFn);
|
|||
|
|
|||
|
// Responsively switch to overlay mode if the search is present on the navbar
|
|||
|
// Note that switching the sidebar to overlay mode requires more coordinate (not just
|
|||
|
// the media query since we generate different HTML for sidebar overlays than we do
|
|||
|
// for sidebar input UI)
|
|||
|
const detachedMediaQuery =
|
|||
|
quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)";
|
|||
|
|
|||
|
// If configured, include the analytics client to send insights
|
|||
|
const plugins = configurePlugins(quartoSearchOptions);
|
|||
|
|
|||
|
let lastState = null;
|
|||
|
const { setIsOpen, setQuery, setCollections } = autocomplete({
|
|||
|
container: searchEl,
|
|||
|
detachedMediaQuery: detachedMediaQuery,
|
|||
|
defaultActiveItemId: 0,
|
|||
|
panelContainer: "#quarto-search-results",
|
|||
|
panelPlacement: quartoSearchOptions["panel-placement"],
|
|||
|
debug: false,
|
|||
|
openOnFocus: true,
|
|||
|
plugins,
|
|||
|
classNames: {
|
|||
|
form: "d-flex",
|
|||
|
},
|
|||
|
translations: {
|
|||
|
clearButtonTitle: language["search-clear-button-title"],
|
|||
|
detachedCancelButtonText: language["search-detached-cancel-button-title"],
|
|||
|
submitButtonTitle: language["search-submit-button-title"],
|
|||
|
},
|
|||
|
initialState: {
|
|||
|
query,
|
|||
|
},
|
|||
|
getItemUrl({ item }) {
|
|||
|
return item.href;
|
|||
|
},
|
|||
|
onStateChange({ state }) {
|
|||
|
// Perhaps reset highlighting
|
|||
|
resetHighlighting(state.query);
|
|||
|
|
|||
|
// If the panel just opened, ensure the panel is positioned properly
|
|||
|
if (state.isOpen) {
|
|||
|
if (lastState && !lastState.isOpen) {
|
|||
|
setTimeout(() => {
|
|||
|
positionPanel(quartoSearchOptions["panel-placement"]);
|
|||
|
}, 150);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Perhaps show the copy link
|
|||
|
showCopyLink(state.query, quartoSearchOptions);
|
|||
|
|
|||
|
lastState = state;
|
|||
|
},
|
|||
|
reshape({ sources, state }) {
|
|||
|
return sources.map((source) => {
|
|||
|
try {
|
|||
|
const items = source.getItems();
|
|||
|
|
|||
|
// Validate the items
|
|||
|
validateItems(items);
|
|||
|
|
|||
|
// group the items by document
|
|||
|
const groupedItems = new Map();
|
|||
|
items.forEach((item) => {
|
|||
|
const hrefParts = item.href.split("#");
|
|||
|
const baseHref = hrefParts[0];
|
|||
|
const isDocumentItem = hrefParts.length === 1;
|
|||
|
|
|||
|
const items = groupedItems.get(baseHref);
|
|||
|
if (!items) {
|
|||
|
groupedItems.set(baseHref, [item]);
|
|||
|
} else {
|
|||
|
// If the href for this item matches the document
|
|||
|
// exactly, place this item first as it is the item that represents
|
|||
|
// the document itself
|
|||
|
if (isDocumentItem) {
|
|||
|
items.unshift(item);
|
|||
|
} else {
|
|||
|
items.push(item);
|
|||
|
}
|
|||
|
groupedItems.set(baseHref, items);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
const reshapedItems = [];
|
|||
|
let count = 1;
|
|||
|
for (const [_key, value] of groupedItems) {
|
|||
|
const firstItem = value[0];
|
|||
|
reshapedItems.push({
|
|||
|
...firstItem,
|
|||
|
type: kItemTypeDoc,
|
|||
|
});
|
|||
|
|
|||
|
const collapseMatches = quartoSearchOptions["collapse-after"];
|
|||
|
const collapseCount =
|
|||
|
typeof collapseMatches === "number" ? collapseMatches : 1;
|
|||
|
|
|||
|
if (value.length > 1) {
|
|||
|
const target = `search-more-${count}`;
|
|||
|
const isExpanded =
|
|||
|
state.context.expanded &&
|
|||
|
state.context.expanded.includes(target);
|
|||
|
|
|||
|
const remainingCount = value.length - collapseCount;
|
|||
|
|
|||
|
for (let i = 1; i < value.length; i++) {
|
|||
|
if (collapseMatches && i === collapseCount) {
|
|||
|
reshapedItems.push({
|
|||
|
target,
|
|||
|
title: isExpanded
|
|||
|
? language["search-hide-matches-text"]
|
|||
|
: remainingCount === 1
|
|||
|
? `${remainingCount} ${language["search-more-match-text"]}`
|
|||
|
: `${remainingCount} ${language["search-more-matches-text"]}`,
|
|||
|
type: kItemTypeMore,
|
|||
|
href: kItemTypeMoreHref,
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (isExpanded || !collapseMatches || i < collapseCount) {
|
|||
|
reshapedItems.push({
|
|||
|
...value[i],
|
|||
|
type: kItemTypeItem,
|
|||
|
target,
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
count += 1;
|
|||
|
}
|
|||
|
|
|||
|
return {
|
|||
|
...source,
|
|||
|
getItems() {
|
|||
|
return reshapedItems;
|
|||
|
},
|
|||
|
};
|
|||
|
} catch (error) {
|
|||
|
// Some form of error occurred
|
|||
|
return {
|
|||
|
...source,
|
|||
|
getItems() {
|
|||
|
return [
|
|||
|
{
|
|||
|
title: error.name || "An Error Occurred While Searching",
|
|||
|
text:
|
|||
|
error.message ||
|
|||
|
"An unknown error occurred while attempting to perform the requested search.",
|
|||
|
type: kItemTypeError,
|
|||
|
},
|
|||
|
];
|
|||
|
},
|
|||
|
};
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
navigator: {
|
|||
|
navigate({ itemUrl }) {
|
|||
|
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
|||
|
window.location.assign(itemUrl);
|
|||
|
}
|
|||
|
},
|
|||
|
navigateNewTab({ itemUrl }) {
|
|||
|
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
|||
|
const windowReference = window.open(itemUrl, "_blank", "noopener");
|
|||
|
if (windowReference) {
|
|||
|
windowReference.focus();
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
navigateNewWindow({ itemUrl }) {
|
|||
|
if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
|
|||
|
window.open(itemUrl, "_blank", "noopener");
|
|||
|
}
|
|||
|
},
|
|||
|
},
|
|||
|
getSources({ state, setContext, setActiveItemId, refresh }) {
|
|||
|
return [
|
|||
|
{
|
|||
|
sourceId: "documents",
|
|||
|
getItemUrl({ item }) {
|
|||
|
if (item.href) {
|
|||
|
return offsetURL(item.href);
|
|||
|
} else {
|
|||
|
return undefined;
|
|||
|
}
|
|||
|
},
|
|||
|
onSelect({
|
|||
|
item,
|
|||
|
state,
|
|||
|
setContext,
|
|||
|
setIsOpen,
|
|||
|
setActiveItemId,
|
|||
|
refresh,
|
|||
|
}) {
|
|||
|
if (item.type === kItemTypeMore) {
|
|||
|
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
|
|||
|
|
|||
|
// Toggle more
|
|||
|
setIsOpen(true);
|
|||
|
}
|
|||
|
},
|
|||
|
getItems({ query }) {
|
|||
|
if (query === null || query === "") {
|
|||
|
return [];
|
|||
|
}
|
|||
|
|
|||
|
const limit = quartoSearchOptions.limit;
|
|||
|
if (quartoSearchOptions.algolia) {
|
|||
|
return algoliaSearch(query, limit, quartoSearchOptions.algolia);
|
|||
|
} else {
|
|||
|
// Fuse search options
|
|||
|
const fuseSearchOptions = {
|
|||
|
isCaseSensitive: false,
|
|||
|
shouldSort: true,
|
|||
|
minMatchCharLength: 2,
|
|||
|
limit: limit,
|
|||
|
};
|
|||
|
|
|||
|
return readSearchData().then(function (fuse) {
|
|||
|
return fuseSearch(query, fuse, fuseSearchOptions);
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
templates: {
|
|||
|
noResults({ createElement }) {
|
|||
|
const hasQuery = lastState.query;
|
|||
|
|
|||
|
return createElement(
|
|||
|
"div",
|
|||
|
{
|
|||
|
class: `quarto-search-no-results${
|
|||
|
hasQuery ? "" : " no-query"
|
|||
|
}`,
|
|||
|
},
|
|||
|
language["search-no-results-text"]
|
|||
|
);
|
|||
|
},
|
|||
|
header({ items, createElement }) {
|
|||
|
// count the documents
|
|||
|
const count = items.filter((item) => {
|
|||
|
return item.type === kItemTypeDoc;
|
|||
|
}).length;
|
|||
|
|
|||
|
if (count > 0) {
|
|||
|
return createElement(
|
|||
|
"div",
|
|||
|
{ class: "search-result-header" },
|
|||
|
`${count} ${language["search-matching-documents-text"]}`
|
|||
|
);
|
|||
|
} else {
|
|||
|
return createElement(
|
|||
|
"div",
|
|||
|
{ class: "search-result-header-no-results" },
|
|||
|
``
|
|||
|
);
|
|||
|
}
|
|||
|
},
|
|||
|
footer({ _items, createElement }) {
|
|||
|
if (
|
|||
|
quartoSearchOptions.algolia &&
|
|||
|
quartoSearchOptions.algolia["show-logo"]
|
|||
|
) {
|
|||
|
const libDir = quartoSearchOptions.algolia["libDir"];
|
|||
|
const logo = createElement("img", {
|
|||
|
src: offsetURL(
|
|||
|
`${libDir}/quarto-search/search-by-algolia.svg`
|
|||
|
),
|
|||
|
class: "algolia-search-logo",
|
|||
|
});
|
|||
|
return createElement(
|
|||
|
"a",
|
|||
|
{ href: "http://www.algolia.com/" },
|
|||
|
logo
|
|||
|
);
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
item({ item, createElement }) {
|
|||
|
return renderItem(
|
|||
|
item,
|
|||
|
createElement,
|
|||
|
state,
|
|||
|
setActiveItemId,
|
|||
|
setContext,
|
|||
|
refresh
|
|||
|
);
|
|||
|
},
|
|||
|
},
|
|||
|
},
|
|||
|
];
|
|||
|
},
|
|||
|
});
|
|||
|
|
|||
|
window.quartoOpenSearch = () => {
|
|||
|
setIsOpen(false);
|
|||
|
setIsOpen(true);
|
|||
|
focusSearchInput();
|
|||
|
};
|
|||
|
|
|||
|
// Remove the labeleledby attribute since it is pointing
|
|||
|
// to a non-existent label
|
|||
|
if (quartoSearchOptions.type === "overlay") {
|
|||
|
const inputEl = window.document.querySelector(
|
|||
|
"#quarto-search .aa-Autocomplete"
|
|||
|
);
|
|||
|
if (inputEl) {
|
|||
|
inputEl.removeAttribute("aria-labelledby");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// If the main document scrolls dismiss the search results
|
|||
|
// (otherwise, since they're floating in the document they can scroll with the document)
|
|||
|
window.document.body.onscroll = () => {
|
|||
|
setIsOpen(false);
|
|||
|
};
|
|||
|
|
|||
|
if (showSearchResults) {
|
|||
|
setIsOpen(true);
|
|||
|
focusSearchInput();
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
function configurePlugins(quartoSearchOptions) {
|
|||
|
const autocompletePlugins = [];
|
|||
|
const algoliaOptions = quartoSearchOptions.algolia;
|
|||
|
if (
|
|||
|
algoliaOptions &&
|
|||
|
algoliaOptions["analytics-events"] &&
|
|||
|
algoliaOptions["search-only-api-key"] &&
|
|||
|
algoliaOptions["application-id"]
|
|||
|
) {
|
|||
|
const apiKey = algoliaOptions["search-only-api-key"];
|
|||
|
const appId = algoliaOptions["application-id"];
|
|||
|
|
|||
|
// Aloglia insights may not be loaded because they require cookie consent
|
|||
|
// Use deferred loading so events will start being recorded when/if consent
|
|||
|
// is granted.
|
|||
|
const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => {
|
|||
|
if (
|
|||
|
window.aa &&
|
|||
|
window["@algolia/autocomplete-plugin-algolia-insights"]
|
|||
|
) {
|
|||
|
window.aa("init", {
|
|||
|
appId,
|
|||
|
apiKey,
|
|||
|
useCookie: true,
|
|||
|
});
|
|||
|
|
|||
|
const { createAlgoliaInsightsPlugin } =
|
|||
|
window["@algolia/autocomplete-plugin-algolia-insights"];
|
|||
|
// Register the insights client
|
|||
|
const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
|
|||
|
insightsClient: window.aa,
|
|||
|
onItemsChange({ insights, insightsEvents }) {
|
|||
|
const events = insightsEvents.map((event) => {
|
|||
|
const maxEvents = event.objectIDs.slice(0, 20);
|
|||
|
return {
|
|||
|
...event,
|
|||
|
objectIDs: maxEvents,
|
|||
|
};
|
|||
|
});
|
|||
|
|
|||
|
insights.viewedObjectIDs(...events);
|
|||
|
},
|
|||
|
});
|
|||
|
return algoliaInsightsPlugin;
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
// Add the plugin
|
|||
|
autocompletePlugins.push(algoliaInsightsDeferredPlugin);
|
|||
|
return autocompletePlugins;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// For plugins that may not load immediately, create a wrapper
|
|||
|
// plugin and forward events and plugin data once the plugin
|
|||
|
// is initialized. This is useful for cases like cookie consent
|
|||
|
// which may prevent the analytics insights event plugin from initializing
|
|||
|
// immediately.
|
|||
|
function deferredLoadPlugin(createPlugin) {
|
|||
|
let plugin = undefined;
|
|||
|
let subscribeObj = undefined;
|
|||
|
const wrappedPlugin = () => {
|
|||
|
if (!plugin && subscribeObj) {
|
|||
|
plugin = createPlugin();
|
|||
|
if (plugin && plugin.subscribe) {
|
|||
|
plugin.subscribe(subscribeObj);
|
|||
|
}
|
|||
|
}
|
|||
|
return plugin;
|
|||
|
};
|
|||
|
|
|||
|
return {
|
|||
|
subscribe: (obj) => {
|
|||
|
subscribeObj = obj;
|
|||
|
},
|
|||
|
onStateChange: (obj) => {
|
|||
|
const plugin = wrappedPlugin();
|
|||
|
if (plugin && plugin.onStateChange) {
|
|||
|
plugin.onStateChange(obj);
|
|||
|
}
|
|||
|
},
|
|||
|
onSubmit: (obj) => {
|
|||
|
const plugin = wrappedPlugin();
|
|||
|
if (plugin && plugin.onSubmit) {
|
|||
|
plugin.onSubmit(obj);
|
|||
|
}
|
|||
|
},
|
|||
|
onReset: (obj) => {
|
|||
|
const plugin = wrappedPlugin();
|
|||
|
if (plugin && plugin.onReset) {
|
|||
|
plugin.onReset(obj);
|
|||
|
}
|
|||
|
},
|
|||
|
getSources: (obj) => {
|
|||
|
const plugin = wrappedPlugin();
|
|||
|
if (plugin && plugin.getSources) {
|
|||
|
return plugin.getSources(obj);
|
|||
|
} else {
|
|||
|
return Promise.resolve([]);
|
|||
|
}
|
|||
|
},
|
|||
|
data: (obj) => {
|
|||
|
const plugin = wrappedPlugin();
|
|||
|
if (plugin && plugin.data) {
|
|||
|
plugin.data(obj);
|
|||
|
}
|
|||
|
},
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
function validateItems(items) {
|
|||
|
// Validate the first item
|
|||
|
if (items.length > 0) {
|
|||
|
const item = items[0];
|
|||
|
const missingFields = [];
|
|||
|
if (item.href == undefined) {
|
|||
|
missingFields.push("href");
|
|||
|
}
|
|||
|
if (!item.title == undefined) {
|
|||
|
missingFields.push("title");
|
|||
|
}
|
|||
|
if (!item.text == undefined) {
|
|||
|
missingFields.push("text");
|
|||
|
}
|
|||
|
|
|||
|
if (missingFields.length === 1) {
|
|||
|
throw {
|
|||
|
name: `Error: Search index is missing the <code>${missingFields[0]}</code> field.`,
|
|||
|
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the <code>${missingFields[0]}</code> field or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
|
|||
|
};
|
|||
|
} else if (missingFields.length > 1) {
|
|||
|
const missingFieldList = missingFields
|
|||
|
.map((field) => {
|
|||
|
return `<code>${field}</code>`;
|
|||
|
})
|
|||
|
.join(", ");
|
|||
|
|
|||
|
throw {
|
|||
|
name: `Error: Search index is missing the following fields: ${missingFieldList}.`,
|
|||
|
message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let lastQuery = null;
|
|||
|
function showCopyLink(query, options) {
|
|||
|
const language = options.language;
|
|||
|
lastQuery = query;
|
|||
|
// Insert share icon
|
|||
|
const inputSuffixEl = window.document.body.querySelector(
|
|||
|
".aa-Form .aa-InputWrapperSuffix"
|
|||
|
);
|
|||
|
|
|||
|
if (inputSuffixEl) {
|
|||
|
let copyButtonEl = window.document.body.querySelector(
|
|||
|
".aa-Form .aa-InputWrapperSuffix .aa-CopyButton"
|
|||
|
);
|
|||
|
|
|||
|
if (copyButtonEl === null) {
|
|||
|
copyButtonEl = window.document.createElement("button");
|
|||
|
copyButtonEl.setAttribute("class", "aa-CopyButton");
|
|||
|
copyButtonEl.setAttribute("type", "button");
|
|||
|
copyButtonEl.setAttribute("title", language["search-copy-link-title"]);
|
|||
|
copyButtonEl.onmousedown = (e) => {
|
|||
|
e.preventDefault();
|
|||
|
e.stopPropagation();
|
|||
|
};
|
|||
|
|
|||
|
const linkIcon = "bi-clipboard";
|
|||
|
const checkIcon = "bi-check2";
|
|||
|
|
|||
|
const shareIconEl = window.document.createElement("i");
|
|||
|
shareIconEl.setAttribute("class", `bi ${linkIcon}`);
|
|||
|
copyButtonEl.appendChild(shareIconEl);
|
|||
|
inputSuffixEl.prepend(copyButtonEl);
|
|||
|
|
|||
|
const clipboard = new window.ClipboardJS(".aa-CopyButton", {
|
|||
|
text: function (_trigger) {
|
|||
|
const copyUrl = new URL(window.location);
|
|||
|
copyUrl.searchParams.set(kQueryArg, lastQuery);
|
|||
|
copyUrl.searchParams.set(kResultsArg, "1");
|
|||
|
return copyUrl.toString();
|
|||
|
},
|
|||
|
});
|
|||
|
clipboard.on("success", function (e) {
|
|||
|
// Focus the input
|
|||
|
|
|||
|
// button target
|
|||
|
const button = e.trigger;
|
|||
|
const icon = button.querySelector("i.bi");
|
|||
|
|
|||
|
// flash "checked"
|
|||
|
icon.classList.add(checkIcon);
|
|||
|
icon.classList.remove(linkIcon);
|
|||
|
setTimeout(function () {
|
|||
|
icon.classList.remove(checkIcon);
|
|||
|
icon.classList.add(linkIcon);
|
|||
|
}, 1000);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
// If there is a query, show the link icon
|
|||
|
if (copyButtonEl) {
|
|||
|
if (lastQuery && options["copy-button"]) {
|
|||
|
copyButtonEl.style.display = "flex";
|
|||
|
} else {
|
|||
|
copyButtonEl.style.display = "none";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/* Search Index Handling */
|
|||
|
// create the index
|
|||
|
var fuseIndex = undefined;
|
|||
|
async function readSearchData() {
|
|||
|
// Initialize the search index on demand
|
|||
|
if (fuseIndex === undefined) {
|
|||
|
// create fuse index
|
|||
|
const options = {
|
|||
|
keys: [
|
|||
|
{ name: "title", weight: 20 },
|
|||
|
{ name: "section", weight: 20 },
|
|||
|
{ name: "text", weight: 10 },
|
|||
|
],
|
|||
|
ignoreLocation: true,
|
|||
|
threshold: 0.1,
|
|||
|
};
|
|||
|
const fuse = new window.Fuse([], options);
|
|||
|
|
|||
|
// fetch the main search.json
|
|||
|
const response = await fetch(offsetURL("search.json"));
|
|||
|
if (response.status == 200) {
|
|||
|
return response.json().then(function (searchDocs) {
|
|||
|
searchDocs.forEach(function (searchDoc) {
|
|||
|
fuse.add(searchDoc);
|
|||
|
});
|
|||
|
fuseIndex = fuse;
|
|||
|
return fuseIndex;
|
|||
|
});
|
|||
|
} else {
|
|||
|
return Promise.reject(
|
|||
|
new Error(
|
|||
|
"Unexpected status from search index request: " + response.status
|
|||
|
)
|
|||
|
);
|
|||
|
}
|
|||
|
}
|
|||
|
return fuseIndex;
|
|||
|
}
|
|||
|
|
|||
|
function inputElement() {
|
|||
|
return window.document.body.querySelector(".aa-Form .aa-Input");
|
|||
|
}
|
|||
|
|
|||
|
function focusSearchInput() {
|
|||
|
setTimeout(() => {
|
|||
|
const inputEl = inputElement();
|
|||
|
if (inputEl) {
|
|||
|
inputEl.focus();
|
|||
|
}
|
|||
|
}, 50);
|
|||
|
}
|
|||
|
|
|||
|
/* Panels */
|
|||
|
const kItemTypeDoc = "document";
|
|||
|
const kItemTypeMore = "document-more";
|
|||
|
const kItemTypeItem = "document-item";
|
|||
|
const kItemTypeError = "error";
|
|||
|
|
|||
|
function renderItem(
|
|||
|
item,
|
|||
|
createElement,
|
|||
|
state,
|
|||
|
setActiveItemId,
|
|||
|
setContext,
|
|||
|
refresh
|
|||
|
) {
|
|||
|
switch (item.type) {
|
|||
|
case kItemTypeDoc:
|
|||
|
return createDocumentCard(
|
|||
|
createElement,
|
|||
|
"file-richtext",
|
|||
|
item.title,
|
|||
|
item.section,
|
|||
|
item.text,
|
|||
|
item.href
|
|||
|
);
|
|||
|
case kItemTypeMore:
|
|||
|
return createMoreCard(
|
|||
|
createElement,
|
|||
|
item,
|
|||
|
state,
|
|||
|
setActiveItemId,
|
|||
|
setContext,
|
|||
|
refresh
|
|||
|
);
|
|||
|
case kItemTypeItem:
|
|||
|
return createSectionCard(
|
|||
|
createElement,
|
|||
|
item.section,
|
|||
|
item.text,
|
|||
|
item.href
|
|||
|
);
|
|||
|
case kItemTypeError:
|
|||
|
return createErrorCard(createElement, item.title, item.text);
|
|||
|
default:
|
|||
|
return undefined;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function createDocumentCard(createElement, icon, title, section, text, href) {
|
|||
|
const iconEl = createElement("i", {
|
|||
|
class: `bi bi-${icon} search-result-icon`,
|
|||
|
});
|
|||
|
const titleEl = createElement("p", { class: "search-result-title" }, title);
|
|||
|
const titleContainerEl = createElement(
|
|||
|
"div",
|
|||
|
{ class: "search-result-title-container" },
|
|||
|
[iconEl, titleEl]
|
|||
|
);
|
|||
|
|
|||
|
const textEls = [];
|
|||
|
if (section) {
|
|||
|
const sectionEl = createElement(
|
|||
|
"p",
|
|||
|
{ class: "search-result-section" },
|
|||
|
section
|
|||
|
);
|
|||
|
textEls.push(sectionEl);
|
|||
|
}
|
|||
|
const descEl = createElement("p", {
|
|||
|
class: "search-result-text",
|
|||
|
dangerouslySetInnerHTML: {
|
|||
|
__html: text,
|
|||
|
},
|
|||
|
});
|
|||
|
textEls.push(descEl);
|
|||
|
|
|||
|
const textContainerEl = createElement(
|
|||
|
"div",
|
|||
|
{ class: "search-result-text-container" },
|
|||
|
textEls
|
|||
|
);
|
|||
|
|
|||
|
const containerEl = createElement(
|
|||
|
"div",
|
|||
|
{
|
|||
|
class: "search-result-container",
|
|||
|
},
|
|||
|
[titleContainerEl, textContainerEl]
|
|||
|
);
|
|||
|
|
|||
|
const linkEl = createElement(
|
|||
|
"a",
|
|||
|
{
|
|||
|
href: offsetURL(href),
|
|||
|
class: "search-result-link",
|
|||
|
},
|
|||
|
containerEl
|
|||
|
);
|
|||
|
|
|||
|
const classes = ["search-result-doc", "search-item"];
|
|||
|
if (!section) {
|
|||
|
classes.push("document-selectable");
|
|||
|
}
|
|||
|
|
|||
|
return createElement(
|
|||
|
"div",
|
|||
|
{
|
|||
|
class: classes.join(" "),
|
|||
|
},
|
|||
|
linkEl
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
function createMoreCard(
|
|||
|
createElement,
|
|||
|
item,
|
|||
|
state,
|
|||
|
setActiveItemId,
|
|||
|
setContext,
|
|||
|
refresh
|
|||
|
) {
|
|||
|
const moreCardEl = createElement(
|
|||
|
"div",
|
|||
|
{
|
|||
|
class: "search-result-more search-item",
|
|||
|
onClick: (e) => {
|
|||
|
// Handle expanding the sections by adding the expanded
|
|||
|
// section to the list of expanded sections
|
|||
|
toggleExpanded(item, state, setContext, setActiveItemId, refresh);
|
|||
|
e.stopPropagation();
|
|||
|
},
|
|||
|
},
|
|||
|
item.title
|
|||
|
);
|
|||
|
|
|||
|
return moreCardEl;
|
|||
|
}
|
|||
|
|
|||
|
function toggleExpanded(item, state, setContext, setActiveItemId, refresh) {
|
|||
|
const expanded = state.context.expanded || [];
|
|||
|
if (expanded.includes(item.target)) {
|
|||
|
setContext({
|
|||
|
expanded: expanded.filter((target) => target !== item.target),
|
|||
|
});
|
|||
|
} else {
|
|||
|
setContext({ expanded: [...expanded, item.target] });
|
|||
|
}
|
|||
|
|
|||
|
refresh();
|
|||
|
setActiveItemId(item.__autocomplete_id);
|
|||
|
}
|
|||
|
|
|||
|
function createSectionCard(createElement, section, text, href) {
|
|||
|
const sectionEl = createSection(createElement, section, text, href);
|
|||
|
return createElement(
|
|||
|
"div",
|
|||
|
{
|
|||
|
class: "search-result-doc-section search-item",
|
|||
|
},
|
|||
|
sectionEl
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
function createSection(createElement, title, text, href) {
|
|||
|
const descEl = createElement("p", {
|
|||
|
class: "search-result-text",
|
|||
|
dangerouslySetInnerHTML: {
|
|||
|
__html: text,
|
|||
|
},
|
|||
|
});
|
|||
|
|
|||
|
const titleEl = createElement("p", { class: "search-result-section" }, title);
|
|||
|
const linkEl = createElement(
|
|||
|
"a",
|
|||
|
{
|
|||
|
href: offsetURL(href),
|
|||
|
class: "search-result-link",
|
|||
|
},
|
|||
|
[titleEl, descEl]
|
|||
|
);
|
|||
|
return linkEl;
|
|||
|
}
|
|||
|
|
|||
|
function createErrorCard(createElement, title, text) {
|
|||
|
const descEl = createElement("p", {
|
|||
|
class: "search-error-text",
|
|||
|
dangerouslySetInnerHTML: {
|
|||
|
__html: text,
|
|||
|
},
|
|||
|
});
|
|||
|
|
|||
|
const titleEl = createElement("p", {
|
|||
|
class: "search-error-title",
|
|||
|
dangerouslySetInnerHTML: {
|
|||
|
__html: `<i class="bi bi-exclamation-circle search-error-icon"></i> ${title}`,
|
|||
|
},
|
|||
|
});
|
|||
|
const errorEl = createElement("div", { class: "search-error" }, [
|
|||
|
titleEl,
|
|||
|
descEl,
|
|||
|
]);
|
|||
|
return errorEl;
|
|||
|
}
|
|||
|
|
|||
|
function positionPanel(pos) {
|
|||
|
const panelEl = window.document.querySelector(
|
|||
|
"#quarto-search-results .aa-Panel"
|
|||
|
);
|
|||
|
const inputEl = window.document.querySelector(
|
|||
|
"#quarto-search .aa-Autocomplete"
|
|||
|
);
|
|||
|
|
|||
|
if (panelEl && inputEl) {
|
|||
|
panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`;
|
|||
|
if (pos === "start") {
|
|||
|
panelEl.style.left = `${Math.round(inputEl.left)}px`;
|
|||
|
} else {
|
|||
|
panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/* Highlighting */
|
|||
|
// highlighting functions
|
|||
|
function highlightMatch(query, text) {
|
|||
|
if (text) {
|
|||
|
const start = text.toLowerCase().indexOf(query.toLowerCase());
|
|||
|
if (start !== -1) {
|
|||
|
const startMark = "<mark class='search-match'>";
|
|||
|
const endMark = "</mark>";
|
|||
|
|
|||
|
const end = start + query.length;
|
|||
|
text =
|
|||
|
text.slice(0, start) +
|
|||
|
startMark +
|
|||
|
text.slice(start, end) +
|
|||
|
endMark +
|
|||
|
text.slice(end);
|
|||
|
const startInfo = clipStart(text, start);
|
|||
|
const endInfo = clipEnd(
|
|||
|
text,
|
|||
|
startInfo.position + startMark.length + endMark.length
|
|||
|
);
|
|||
|
text =
|
|||
|
startInfo.prefix +
|
|||
|
text.slice(startInfo.position, endInfo.position) +
|
|||
|
endInfo.suffix;
|
|||
|
|
|||
|
return text;
|
|||
|
} else {
|
|||
|
return text;
|
|||
|
}
|
|||
|
} else {
|
|||
|
return text;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function clipStart(text, pos) {
|
|||
|
const clipStart = pos - 50;
|
|||
|
if (clipStart < 0) {
|
|||
|
// This will just return the start of the string
|
|||
|
return {
|
|||
|
position: 0,
|
|||
|
prefix: "",
|
|||
|
};
|
|||
|
} else {
|
|||
|
// We're clipping before the start of the string, walk backwards to the first space.
|
|||
|
const spacePos = findSpace(text, pos, -1);
|
|||
|
return {
|
|||
|
position: spacePos.position,
|
|||
|
prefix: "",
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function clipEnd(text, pos) {
|
|||
|
const clipEnd = pos + 200;
|
|||
|
if (clipEnd > text.length) {
|
|||
|
return {
|
|||
|
position: text.length,
|
|||
|
suffix: "",
|
|||
|
};
|
|||
|
} else {
|
|||
|
const spacePos = findSpace(text, clipEnd, 1);
|
|||
|
return {
|
|||
|
position: spacePos.position,
|
|||
|
suffix: spacePos.clipped ? "…" : "",
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function findSpace(text, start, step) {
|
|||
|
let stepPos = start;
|
|||
|
while (stepPos > -1 && stepPos < text.length) {
|
|||
|
const char = text[stepPos];
|
|||
|
if (char === " " || char === "," || char === ":") {
|
|||
|
return {
|
|||
|
position: step === 1 ? stepPos : stepPos - step,
|
|||
|
clipped: stepPos > 1 && stepPos < text.length,
|
|||
|
};
|
|||
|
}
|
|||
|
stepPos = stepPos + step;
|
|||
|
}
|
|||
|
|
|||
|
return {
|
|||
|
position: stepPos - step,
|
|||
|
clipped: false,
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
// removes highlighting as implemented by the mark tag
|
|||
|
function clearHighlight(searchterm, el) {
|
|||
|
const childNodes = el.childNodes;
|
|||
|
for (let i = childNodes.length - 1; i >= 0; i--) {
|
|||
|
const node = childNodes[i];
|
|||
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|||
|
if (
|
|||
|
node.tagName === "MARK" &&
|
|||
|
node.innerText.toLowerCase() === searchterm.toLowerCase()
|
|||
|
) {
|
|||
|
el.replaceChild(document.createTextNode(node.innerText), node);
|
|||
|
} else {
|
|||
|
clearHighlight(searchterm, node);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function escapeRegExp(string) {
|
|||
|
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
|||
|
}
|
|||
|
|
|||
|
// highlight matches
|
|||
|
function highlight(term, el) {
|
|||
|
const termRegex = new RegExp(term, "ig");
|
|||
|
const childNodes = el.childNodes;
|
|||
|
|
|||
|
// walk back to front avoid mutating elements in front of us
|
|||
|
for (let i = childNodes.length - 1; i >= 0; i--) {
|
|||
|
const node = childNodes[i];
|
|||
|
|
|||
|
if (node.nodeType === Node.TEXT_NODE) {
|
|||
|
// Search text nodes for text to highlight
|
|||
|
const text = node.nodeValue;
|
|||
|
|
|||
|
let startIndex = 0;
|
|||
|
let matchIndex = text.search(termRegex);
|
|||
|
if (matchIndex > -1) {
|
|||
|
const markFragment = document.createDocumentFragment();
|
|||
|
while (matchIndex > -1) {
|
|||
|
const prefix = text.slice(startIndex, matchIndex);
|
|||
|
markFragment.appendChild(document.createTextNode(prefix));
|
|||
|
|
|||
|
const mark = document.createElement("mark");
|
|||
|
mark.appendChild(
|
|||
|
document.createTextNode(
|
|||
|
text.slice(matchIndex, matchIndex + term.length)
|
|||
|
)
|
|||
|
);
|
|||
|
markFragment.appendChild(mark);
|
|||
|
|
|||
|
startIndex = matchIndex + term.length;
|
|||
|
matchIndex = text.slice(startIndex).search(new RegExp(term, "ig"));
|
|||
|
if (matchIndex > -1) {
|
|||
|
matchIndex = startIndex + matchIndex;
|
|||
|
}
|
|||
|
}
|
|||
|
if (startIndex < text.length) {
|
|||
|
markFragment.appendChild(
|
|||
|
document.createTextNode(text.slice(startIndex, text.length))
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
el.replaceChild(markFragment, node);
|
|||
|
}
|
|||
|
} else if (node.nodeType === Node.ELEMENT_NODE) {
|
|||
|
// recurse through elements
|
|||
|
highlight(term, node);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/* Link Handling */
|
|||
|
// get the offset from this page for a given site root relative url
|
|||
|
function offsetURL(url) {
|
|||
|
var offset = getMeta("quarto:offset");
|
|||
|
return offset ? offset + url : url;
|
|||
|
}
|
|||
|
|
|||
|
// read a meta tag value
|
|||
|
function getMeta(metaName) {
|
|||
|
var metas = window.document.getElementsByTagName("meta");
|
|||
|
for (let i = 0; i < metas.length; i++) {
|
|||
|
if (metas[i].getAttribute("name") === metaName) {
|
|||
|
return metas[i].getAttribute("content");
|
|||
|
}
|
|||
|
}
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
function algoliaSearch(query, limit, algoliaOptions) {
|
|||
|
const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"];
|
|||
|
|
|||
|
const applicationId = algoliaOptions["application-id"];
|
|||
|
const searchOnlyApiKey = algoliaOptions["search-only-api-key"];
|
|||
|
const indexName = algoliaOptions["index-name"];
|
|||
|
const indexFields = algoliaOptions["index-fields"];
|
|||
|
const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey);
|
|||
|
const searchParams = algoliaOptions["params"];
|
|||
|
const searchAnalytics = !!algoliaOptions["analytics-events"];
|
|||
|
|
|||
|
return getAlgoliaResults({
|
|||
|
searchClient,
|
|||
|
queries: [
|
|||
|
{
|
|||
|
indexName: indexName,
|
|||
|
query,
|
|||
|
params: {
|
|||
|
hitsPerPage: limit,
|
|||
|
clickAnalytics: searchAnalytics,
|
|||
|
...searchParams,
|
|||
|
},
|
|||
|
},
|
|||
|
],
|
|||
|
transformResponse: (response) => {
|
|||
|
if (!indexFields) {
|
|||
|
return response.hits.map((hit) => {
|
|||
|
return hit.map((item) => {
|
|||
|
return {
|
|||
|
...item,
|
|||
|
text: highlightMatch(query, item.text),
|
|||
|
};
|
|||
|
});
|
|||
|
});
|
|||
|
} else {
|
|||
|
const remappedHits = response.hits.map((hit) => {
|
|||
|
return hit.map((item) => {
|
|||
|
const newItem = { ...item };
|
|||
|
["href", "section", "title", "text"].forEach((keyName) => {
|
|||
|
const mappedName = indexFields[keyName];
|
|||
|
if (
|
|||
|
mappedName &&
|
|||
|
item[mappedName] !== undefined &&
|
|||
|
mappedName !== keyName
|
|||
|
) {
|
|||
|
newItem[keyName] = item[mappedName];
|
|||
|
delete newItem[mappedName];
|
|||
|
}
|
|||
|
});
|
|||
|
newItem.text = highlightMatch(query, newItem.text);
|
|||
|
return newItem;
|
|||
|
});
|
|||
|
});
|
|||
|
return remappedHits;
|
|||
|
}
|
|||
|
},
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
function fuseSearch(query, fuse, fuseOptions) {
|
|||
|
return fuse.search(query, fuseOptions).map((result) => {
|
|||
|
const addParam = (url, name, value) => {
|
|||
|
const anchorParts = url.split("#");
|
|||
|
const baseUrl = anchorParts[0];
|
|||
|
const sep = baseUrl.search("\\?") > 0 ? "&" : "?";
|
|||
|
anchorParts[0] = baseUrl + sep + name + "=" + value;
|
|||
|
return anchorParts.join("#");
|
|||
|
};
|
|||
|
|
|||
|
return {
|
|||
|
title: result.item.title,
|
|||
|
section: result.item.section,
|
|||
|
href: addParam(result.item.href, kQueryArg, query),
|
|||
|
text: highlightMatch(query, result.item.text),
|
|||
|
};
|
|||
|
});
|
|||
|
}
|
|||
|
</script>
|
|||
|
<meta name="quarto:offset" content="./">
|
|||
|
<link href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAAD8CAYAAABTq8lnAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAAHW0lEQVR42u3dzY9ddR3H8c/v0kJr2hhMhAjEojGRjVHctgsqDUyfxrgoK5S4IrrSRGNc0S0hQXdK3Gnigiaa1k4HagFN6hqfEmUhD1IghCggFSl27s8FNCFSHZrC/d2539frHzifmdx3z7m3555JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAxt9IDL1U/svSGTK29Kn+5I+kfS22T0JhbKWlpeTvrT6WtPtH2rZ0YPuhwbLvj+2C2b8sa225J2KD1fSMvHR2+ilGfS82iSIzm75WS748ja6EGXYsME348ub89V+Vr69BtJ+9joPZDk+fR8L1u3/LDtPnJ29Jj3Yu6D7z0tqwe+nNbuS3LN6D1wEX9Pz3ez9xc/ai199Jj/Z66D7w9/6ZpMz/8kyW2jt8C6WlYzPX9X27f60ugp/3vinOor+z6XyRUrSa4bvQXeu3Ymyf6299jvRy+56LrRAy6mrx7YleR40j48egtcspZX0vvBtvf46dFT3j1tzvSVL34mk+mvk1w9egtchn+kt1vavmOPjx7yTnMV/Nvv2R+Py3gWQjuT/u/Pz9N7+rm5SaX3tLc/oBM7C6LfkLbpx73Pz4l1boLP6vJX49N4Fs9SHj545+gRF8zFvzz96PL2XNn/kuSjo7fA+67nxWzd8ql5uDlnPs7wm/vXI3YWVcu1OXfu7tEz3poy2Nv3xv/V7bIsuOfy2pYdo++9H3+Gf+uLMGJn0V2fbf+6dfSI8cGnHRq9AGaitTtGT5iD4LN79ACYkT2jBwwNvp/Ye0OSHaN/CTAjO/rJ5aH3mYw9w0+uvGno8WHWpvn0yMOPDX669omhx4dZ6/2TIw8/+D28b8NRTR/6mh/9od2HBh8fZqu3bSMPPzb45gmzFDP4NS84KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChkE2jBxT2m7ScHj1iiJ5dSXaOnlGR4Idpp9rSscOjV4zQV5cPJ13wA7ikh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeCvFMuwXSVw/sSm8b4Flx051JGz2iJMEvlMmetH7P6BXrE/soLumhEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCPNNukbR2Oun3jp6xrp5dSTbAwzYXj+AXSFs6eirJqdE71tNXlw8nXfADuKSHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgoRPBQieChE8FCI4KEQwUMhgodCBA+FCB4K8Uy7BdJXD+xKbxvgWXHTnUkbPaIkwS+UyZ60fs/oFesT+ygu6aEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0I8026RtHY66feOnrGunl1JNsDDNheP4BdIWzp6Ksmp0TvW01eXDydd8AO4pIdCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyGCh0IED4UIHgrxTLthpjv7iYPfGb1i1M+etNEjShL8MG1PWvaMXjHoZx89oCyX9FCI4KEQwUMhgodCBA+FCB4KETwUIngoRPBQiOChEMFDIYKHQgQPhQgeChE8FCJ4KETwUIjgoRDBQyFjg+99OvoXADM1+DU/+gz/+uDjw2y1fnbk4QcH318de3yYtTb0NT82+MkVTw09Psxaa0+OPPzY4Kdv/nno8WHWJnli7OEHavtWzyR5ZuQGmKEn223Hnh85YPSHdknPo6MnwIwMf62PDz45MnoAzMSkPTh8wugB2fraL5MMvcyBGXgur17lDN92/+p80r8/egd8sPr97Y4ja6NXDA8+SbJl6w/S8+LoGfDB6C9k8uYDo1ckcxJ8233kbFor+rfSWXgt32q3n/zn6BlvTZkTvafloYMnkiyN3gLvn76SpeMHW0sfvSSZkzN8krSWnn7+K0k7M3oLvE+ezebNd81L7MkcBZ8kbd/qS5ms7U3y8ugtcHn6q5muLbc9P//b6CXvNFfBJ0m7feWPSV/2xRo2rJZX0if72/4Tvx095d3T5lR/6MBn09tKkutHb4FL8Gymk/1t/9E/jB5yMXN3hr+gLR3/Xfr5m9OyOnoLvDd9JZs33TyvsSdzfIa/oPe0PHzwzkxzX1quHb0H3q2/kJ5vZ+/xn87TB3QXM/fBX9AfO7Qt587dnd6/GZf5zIfnkn5/Jm8+MC//z76eDRP8Bf3BQ1dk++t7ksmhJLcmuXH0Jkp5Kskj6f1Izm59ZB5ul70UGy74/9ZPLl+X8/2mpN2YSa5Oz/a0vmX0LhZAb2+k5bVM83LSn85k85/a0s9eGD0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYf4DiQFQ3IL/BQcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTAtMTJUMTM6MTM6NDErMDA6MDBv7JYhAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTEwLTEyVDEzOjEzOjQxKzAwOjAwHrEunQAAAABJRU5ErkJggg==" rel="icon" type="image/png">
|
|||
|
<script>const sectionChanged = new CustomEvent("quarto-sectionChanged", {
|
|||
|
detail: {},
|
|||
|
bubbles: true,
|
|||
|
cancelable: false,
|
|||
|
composed: false,
|
|||
|
});
|
|||
|
|
|||
|
const layoutMarginEls = () => {
|
|||
|
// Find any conflicting margin elements and add margins to the
|
|||
|
// top to prevent overlap
|
|||
|
const marginChildren = window.document.querySelectorAll(
|
|||
|
".column-margin.column-container > * "
|
|||
|
);
|
|||
|
|
|||
|
let lastBottom = 0;
|
|||
|
for (const marginChild of marginChildren) {
|
|||
|
if (marginChild.offsetParent !== null) {
|
|||
|
// clear the top margin so we recompute it
|
|||
|
marginChild.style.marginTop = null;
|
|||
|
const top = marginChild.getBoundingClientRect().top + window.scrollY;
|
|||
|
console.log({
|
|||
|
childtop: marginChild.getBoundingClientRect().top,
|
|||
|
scroll: window.scrollY,
|
|||
|
top,
|
|||
|
lastBottom,
|
|||
|
});
|
|||
|
if (top < lastBottom) {
|
|||
|
const margin = lastBottom - top;
|
|||
|
marginChild.style.marginTop = `${margin}px`;
|
|||
|
}
|
|||
|
const styles = window.getComputedStyle(marginChild);
|
|||
|
const marginTop = parseFloat(styles["marginTop"]);
|
|||
|
|
|||
|
console.log({
|
|||
|
top,
|
|||
|
height: marginChild.getBoundingClientRect().height,
|
|||
|
marginTop,
|
|||
|
total: top + marginChild.getBoundingClientRect().height + marginTop,
|
|||
|
});
|
|||
|
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
|||
|
// Recompute the position of margin elements anytime the body size changes
|
|||
|
if (window.ResizeObserver) {
|
|||
|
const resizeObserver = new window.ResizeObserver(
|
|||
|
throttle(layoutMarginEls, 50)
|
|||
|
);
|
|||
|
resizeObserver.observe(window.document.body);
|
|||
|
}
|
|||
|
|
|||
|
const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
|
|||
|
const sidebarEl = window.document.getElementById("quarto-sidebar");
|
|||
|
const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
|
|||
|
const marginSidebarEl = window.document.getElementById(
|
|||
|
"quarto-margin-sidebar"
|
|||
|
);
|
|||
|
// function to determine whether the element has a previous sibling that is active
|
|||
|
const prevSiblingIsActiveLink = (el) => {
|
|||
|
const sibling = el.previousElementSibling;
|
|||
|
if (sibling && sibling.tagName === "A") {
|
|||
|
return sibling.classList.contains("active");
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
|
|||
|
function fireSlideEnter(e) {
|
|||
|
const event = window.document.createEvent("Event");
|
|||
|
event.initEvent("slideenter", true, true);
|
|||
|
window.document.dispatchEvent(event);
|
|||
|
}
|
|||
|
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
|
|||
|
tabs.forEach((tab) => {
|
|||
|
tab.addEventListener("shown.bs.tab", fireSlideEnter);
|
|||
|
});
|
|||
|
|
|||
|
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
|
|||
|
document.addEventListener("tabby", fireSlideEnter, false);
|
|||
|
|
|||
|
// Track scrolling and mark TOC links as active
|
|||
|
// get table of contents and sidebar (bail if we don't have at least one)
|
|||
|
const tocLinks = tocEl
|
|||
|
? [...tocEl.querySelectorAll("a[data-scroll-target]")]
|
|||
|
: [];
|
|||
|
const makeActive = (link) => tocLinks[link].classList.add("active");
|
|||
|
const removeActive = (link) => tocLinks[link].classList.remove("active");
|
|||
|
const removeAllActive = () =>
|
|||
|
[...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
|
|||
|
|
|||
|
// activate the anchor for a section associated with this TOC entry
|
|||
|
tocLinks.forEach((link) => {
|
|||
|
link.addEventListener("click", () => {
|
|||
|
if (link.href.indexOf("#") !== -1) {
|
|||
|
const anchor = link.href.split("#")[1];
|
|||
|
const heading = window.document.querySelector(
|
|||
|
`[data-anchor-id=${anchor}]`
|
|||
|
);
|
|||
|
if (heading) {
|
|||
|
// Add the class
|
|||
|
heading.classList.add("reveal-anchorjs-link");
|
|||
|
|
|||
|
// function to show the anchor
|
|||
|
const handleMouseout = () => {
|
|||
|
heading.classList.remove("reveal-anchorjs-link");
|
|||
|
heading.removeEventListener("mouseout", handleMouseout);
|
|||
|
};
|
|||
|
|
|||
|
// add a function to clear the anchor when the user mouses out of it
|
|||
|
heading.addEventListener("mouseout", handleMouseout);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
const sections = tocLinks.map((link) => {
|
|||
|
const target = link.getAttribute("data-scroll-target");
|
|||
|
if (target.startsWith("#")) {
|
|||
|
return window.document.getElementById(decodeURI(`${target.slice(1)}`));
|
|||
|
} else {
|
|||
|
return window.document.querySelector(decodeURI(`${target}`));
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
const sectionMargin = 200;
|
|||
|
let currentActive = 0;
|
|||
|
// track whether we've initialized state the first time
|
|||
|
let init = false;
|
|||
|
|
|||
|
const updateActiveLink = () => {
|
|||
|
// The index from bottom to top (e.g. reversed list)
|
|||
|
let sectionIndex = -1;
|
|||
|
if (
|
|||
|
window.innerHeight + window.pageYOffset >=
|
|||
|
window.document.body.offsetHeight
|
|||
|
) {
|
|||
|
sectionIndex = 0;
|
|||
|
} else {
|
|||
|
sectionIndex = [...sections].reverse().findIndex((section) => {
|
|||
|
if (section) {
|
|||
|
return window.pageYOffset >= section.offsetTop - sectionMargin;
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
if (sectionIndex > -1) {
|
|||
|
const current = sections.length - sectionIndex - 1;
|
|||
|
if (current !== currentActive) {
|
|||
|
removeAllActive();
|
|||
|
currentActive = current;
|
|||
|
makeActive(current);
|
|||
|
if (init) {
|
|||
|
window.dispatchEvent(sectionChanged);
|
|||
|
}
|
|||
|
init = true;
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
const inHiddenRegion = (top, bottom, hiddenRegions) => {
|
|||
|
for (const region of hiddenRegions) {
|
|||
|
if (top <= region.bottom && bottom >= region.top) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
};
|
|||
|
|
|||
|
const categorySelector = "header.quarto-title-block .quarto-category";
|
|||
|
const activateCategories = (href) => {
|
|||
|
// Find any categories
|
|||
|
// Surround them with a link pointing back to:
|
|||
|
// #category=Authoring
|
|||
|
try {
|
|||
|
const categoryEls = window.document.querySelectorAll(categorySelector);
|
|||
|
for (const categoryEl of categoryEls) {
|
|||
|
const categoryText = categoryEl.textContent;
|
|||
|
if (categoryText) {
|
|||
|
const link = `${href}#category=${encodeURIComponent(categoryText)}`;
|
|||
|
const linkEl = window.document.createElement("a");
|
|||
|
linkEl.setAttribute("href", link);
|
|||
|
for (const child of categoryEl.childNodes) {
|
|||
|
linkEl.append(child);
|
|||
|
}
|
|||
|
categoryEl.appendChild(linkEl);
|
|||
|
}
|
|||
|
}
|
|||
|
} catch {
|
|||
|
// Ignore errors
|
|||
|
}
|
|||
|
};
|
|||
|
function hasTitleCategories() {
|
|||
|
return window.document.querySelector(categorySelector) !== null;
|
|||
|
}
|
|||
|
|
|||
|
function offsetRelativeUrl(url) {
|
|||
|
const offset = getMeta("quarto:offset");
|
|||
|
return offset ? offset + url : url;
|
|||
|
}
|
|||
|
|
|||
|
function offsetAbsoluteUrl(url) {
|
|||
|
const offset = getMeta("quarto:offset");
|
|||
|
const baseUrl = new URL(offset, window.location);
|
|||
|
|
|||
|
const projRelativeUrl = url.replace(baseUrl, "");
|
|||
|
if (projRelativeUrl.startsWith("/")) {
|
|||
|
return projRelativeUrl;
|
|||
|
} else {
|
|||
|
return "/" + projRelativeUrl;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// read a meta tag value
|
|||
|
function getMeta(metaName) {
|
|||
|
const metas = window.document.getElementsByTagName("meta");
|
|||
|
for (let i = 0; i < metas.length; i++) {
|
|||
|
if (metas[i].getAttribute("name") === metaName) {
|
|||
|
return metas[i].getAttribute("content");
|
|||
|
}
|
|||
|
}
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
async function findAndActivateCategories() {
|
|||
|
const currentPagePath = offsetAbsoluteUrl(window.location.href);
|
|||
|
const response = await fetch(offsetRelativeUrl("listings.json"));
|
|||
|
if (response.status == 200) {
|
|||
|
return response.json().then(function (listingPaths) {
|
|||
|
const listingHrefs = [];
|
|||
|
for (const listingPath of listingPaths) {
|
|||
|
const pathWithoutLeadingSlash = listingPath.listing.substring(1);
|
|||
|
for (const item of listingPath.items) {
|
|||
|
if (
|
|||
|
item === currentPagePath ||
|
|||
|
item === currentPagePath + "index.html"
|
|||
|
) {
|
|||
|
// Resolve this path against the offset to be sure
|
|||
|
// we already are using the correct path to the listing
|
|||
|
// (this adjusts the listing urls to be rooted against
|
|||
|
// whatever root the page is actually running against)
|
|||
|
const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
|
|||
|
const baseUrl = window.location;
|
|||
|
const resolvedPath = new URL(relative, baseUrl);
|
|||
|
listingHrefs.push(resolvedPath.pathname);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Look up the tree for a nearby linting and use that if we find one
|
|||
|
const nearestListing = findNearestParentListing(
|
|||
|
offsetAbsoluteUrl(window.location.pathname),
|
|||
|
listingHrefs
|
|||
|
);
|
|||
|
if (nearestListing) {
|
|||
|
activateCategories(nearestListing);
|
|||
|
} else {
|
|||
|
// See if the referrer is a listing page for this item
|
|||
|
const referredRelativePath = offsetAbsoluteUrl(document.referrer);
|
|||
|
const referrerListing = listingHrefs.find((listingHref) => {
|
|||
|
const isListingReferrer =
|
|||
|
listingHref === referredRelativePath ||
|
|||
|
listingHref === referredRelativePath + "index.html";
|
|||
|
return isListingReferrer;
|
|||
|
});
|
|||
|
|
|||
|
if (referrerListing) {
|
|||
|
// Try to use the referrer if possible
|
|||
|
activateCategories(referrerListing);
|
|||
|
} else if (listingHrefs.length > 0) {
|
|||
|
// Otherwise, just fall back to the first listing
|
|||
|
activateCategories(listingHrefs[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
if (hasTitleCategories()) {
|
|||
|
findAndActivateCategories();
|
|||
|
}
|
|||
|
|
|||
|
const findNearestParentListing = (href, listingHrefs) => {
|
|||
|
if (!href || !listingHrefs) {
|
|||
|
return undefined;
|
|||
|
}
|
|||
|
// Look up the tree for a nearby linting and use that if we find one
|
|||
|
const relativeParts = href.substring(1).split("/");
|
|||
|
while (relativeParts.length > 0) {
|
|||
|
const path = relativeParts.join("/");
|
|||
|
for (const listingHref of listingHrefs) {
|
|||
|
if (listingHref.startsWith(path)) {
|
|||
|
return listingHref;
|
|||
|
}
|
|||
|
}
|
|||
|
relativeParts.pop();
|
|||
|
}
|
|||
|
|
|||
|
return undefined;
|
|||
|
};
|
|||
|
|
|||
|
const manageSidebarVisiblity = (el, placeholderDescriptor) => {
|
|||
|
let isVisible = true;
|
|||
|
let elRect;
|
|||
|
|
|||
|
return (hiddenRegions) => {
|
|||
|
if (el === null) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// Find the last element of the TOC
|
|||
|
const lastChildEl = el.lastElementChild;
|
|||
|
|
|||
|
if (lastChildEl) {
|
|||
|
// Converts the sidebar to a menu
|
|||
|
const convertToMenu = () => {
|
|||
|
for (const child of el.children) {
|
|||
|
child.style.opacity = 0;
|
|||
|
child.style.overflow = "hidden";
|
|||
|
}
|
|||
|
|
|||
|
nexttick(() => {
|
|||
|
const toggleContainer = window.document.createElement("div");
|
|||
|
toggleContainer.style.width = "100%";
|
|||
|
toggleContainer.classList.add("zindex-over-content");
|
|||
|
toggleContainer.classList.add("quarto-sidebar-toggle");
|
|||
|
toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
|
|||
|
toggleContainer.id = placeholderDescriptor.id;
|
|||
|
toggleContainer.style.position = "fixed";
|
|||
|
|
|||
|
const toggleIcon = window.document.createElement("i");
|
|||
|
toggleIcon.classList.add("quarto-sidebar-toggle-icon");
|
|||
|
toggleIcon.classList.add("bi");
|
|||
|
toggleIcon.classList.add("bi-caret-down-fill");
|
|||
|
|
|||
|
const toggleTitle = window.document.createElement("div");
|
|||
|
const titleEl = window.document.body.querySelector(
|
|||
|
placeholderDescriptor.titleSelector
|
|||
|
);
|
|||
|
if (titleEl) {
|
|||
|
toggleTitle.append(
|
|||
|
titleEl.textContent || titleEl.innerText,
|
|||
|
toggleIcon
|
|||
|
);
|
|||
|
}
|
|||
|
toggleTitle.classList.add("zindex-over-content");
|
|||
|
toggleTitle.classList.add("quarto-sidebar-toggle-title");
|
|||
|
toggleContainer.append(toggleTitle);
|
|||
|
|
|||
|
const toggleContents = window.document.createElement("div");
|
|||
|
toggleContents.classList = el.classList;
|
|||
|
toggleContents.classList.add("zindex-over-content");
|
|||
|
toggleContents.classList.add("quarto-sidebar-toggle-contents");
|
|||
|
for (const child of el.children) {
|
|||
|
if (child.id === "toc-title") {
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
const clone = child.cloneNode(true);
|
|||
|
clone.style.opacity = 1;
|
|||
|
clone.style.display = null;
|
|||
|
toggleContents.append(clone);
|
|||
|
}
|
|||
|
toggleContents.style.height = "0px";
|
|||
|
const positionToggle = () => {
|
|||
|
// position the element (top left of parent, same width as parent)
|
|||
|
if (!elRect) {
|
|||
|
elRect = el.getBoundingClientRect();
|
|||
|
}
|
|||
|
toggleContainer.style.left = `${elRect.left}px`;
|
|||
|
toggleContainer.style.top = `${elRect.top}px`;
|
|||
|
toggleContainer.style.width = `${elRect.width}px`;
|
|||
|
};
|
|||
|
positionToggle();
|
|||
|
|
|||
|
toggleContainer.append(toggleContents);
|
|||
|
el.parentElement.prepend(toggleContainer);
|
|||
|
|
|||
|
// Process clicks
|
|||
|
let tocShowing = false;
|
|||
|
// Allow the caller to control whether this is dismissed
|
|||
|
// when it is clicked (e.g. sidebar navigation supports
|
|||
|
// opening and closing the nav tree, so don't dismiss on click)
|
|||
|
const clickEl = placeholderDescriptor.dismissOnClick
|
|||
|
? toggleContainer
|
|||
|
: toggleTitle;
|
|||
|
|
|||
|
const closeToggle = () => {
|
|||
|
if (tocShowing) {
|
|||
|
toggleContainer.classList.remove("expanded");
|
|||
|
toggleContents.style.height = "0px";
|
|||
|
tocShowing = false;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
// Get rid of any expanded toggle if the user scrolls
|
|||
|
window.document.addEventListener(
|
|||
|
"scroll",
|
|||
|
throttle(() => {
|
|||
|
closeToggle();
|
|||
|
}, 50)
|
|||
|
);
|
|||
|
|
|||
|
// Handle positioning of the toggle
|
|||
|
window.addEventListener(
|
|||
|
"resize",
|
|||
|
throttle(() => {
|
|||
|
elRect = undefined;
|
|||
|
positionToggle();
|
|||
|
}, 50)
|
|||
|
);
|
|||
|
|
|||
|
window.addEventListener("quarto-hrChanged", () => {
|
|||
|
elRect = undefined;
|
|||
|
});
|
|||
|
|
|||
|
// Process the click
|
|||
|
clickEl.onclick = () => {
|
|||
|
if (!tocShowing) {
|
|||
|
toggleContainer.classList.add("expanded");
|
|||
|
toggleContents.style.height = null;
|
|||
|
tocShowing = true;
|
|||
|
} else {
|
|||
|
closeToggle();
|
|||
|
}
|
|||
|
};
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
// Converts a sidebar from a menu back to a sidebar
|
|||
|
const convertToSidebar = () => {
|
|||
|
for (const child of el.children) {
|
|||
|
child.style.opacity = 1;
|
|||
|
child.style.overflow = null;
|
|||
|
}
|
|||
|
|
|||
|
const placeholderEl = window.document.getElementById(
|
|||
|
placeholderDescriptor.id
|
|||
|
);
|
|||
|
if (placeholderEl) {
|
|||
|
placeholderEl.remove();
|
|||
|
}
|
|||
|
|
|||
|
el.classList.remove("rollup");
|
|||
|
};
|
|||
|
|
|||
|
if (isReaderMode()) {
|
|||
|
convertToMenu();
|
|||
|
isVisible = false;
|
|||
|
} else {
|
|||
|
// Find the top and bottom o the element that is being managed
|
|||
|
const elTop = el.offsetTop;
|
|||
|
const elBottom =
|
|||
|
elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
|
|||
|
|
|||
|
if (!isVisible) {
|
|||
|
// If the element is current not visible reveal if there are
|
|||
|
// no conflicts with overlay regions
|
|||
|
if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
|
|||
|
convertToSidebar();
|
|||
|
isVisible = true;
|
|||
|
}
|
|||
|
} else {
|
|||
|
// If the element is visible, hide it if it conflicts with overlay regions
|
|||
|
// and insert a placeholder toggle (or if we're in reader mode)
|
|||
|
if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
|
|||
|
convertToMenu();
|
|||
|
isVisible = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
};
|
|||
|
|
|||
|
const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
|
|||
|
for (const tabEl of tabEls) {
|
|||
|
const id = tabEl.getAttribute("data-bs-target");
|
|||
|
if (id) {
|
|||
|
const columnEl = document.querySelector(
|
|||
|
`${id} .column-margin, .tabset-margin-content`
|
|||
|
);
|
|||
|
if (columnEl)
|
|||
|
tabEl.addEventListener("shown.bs.tab", function (event) {
|
|||
|
const el = event.srcElement;
|
|||
|
if (el) {
|
|||
|
const visibleCls = `${el.id}-margin-content`;
|
|||
|
// walk up until we find a parent tabset
|
|||
|
let panelTabsetEl = el.parentElement;
|
|||
|
while (panelTabsetEl) {
|
|||
|
if (panelTabsetEl.classList.contains("panel-tabset")) {
|
|||
|
break;
|
|||
|
}
|
|||
|
panelTabsetEl = panelTabsetEl.parentElement;
|
|||
|
}
|
|||
|
|
|||
|
if (panelTabsetEl) {
|
|||
|
const prevSib = panelTabsetEl.previousElementSibling;
|
|||
|
if (
|
|||
|
prevSib &&
|
|||
|
prevSib.classList.contains("tabset-margin-container")
|
|||
|
) {
|
|||
|
const childNodes = prevSib.querySelectorAll(
|
|||
|
".tabset-margin-content"
|
|||
|
);
|
|||
|
for (const childEl of childNodes) {
|
|||
|
if (childEl.classList.contains(visibleCls)) {
|
|||
|
childEl.classList.remove("collapse");
|
|||
|
} else {
|
|||
|
childEl.classList.add("collapse");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
layoutMarginEls();
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Manage the visibility of the toc and the sidebar
|
|||
|
const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
|
|||
|
id: "quarto-toc-toggle",
|
|||
|
titleSelector: "#toc-title",
|
|||
|
dismissOnClick: true,
|
|||
|
});
|
|||
|
const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
|
|||
|
id: "quarto-sidebarnav-toggle",
|
|||
|
titleSelector: ".title",
|
|||
|
dismissOnClick: false,
|
|||
|
});
|
|||
|
let tocLeftScrollVisibility;
|
|||
|
if (leftTocEl) {
|
|||
|
tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
|
|||
|
id: "quarto-lefttoc-toggle",
|
|||
|
titleSelector: "#toc-title",
|
|||
|
dismissOnClick: true,
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
// Find the first element that uses formatting in special columns
|
|||
|
const conflictingEls = window.document.body.querySelectorAll(
|
|||
|
'[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
|
|||
|
);
|
|||
|
|
|||
|
// Filter all the possibly conflicting elements into ones
|
|||
|
// the do conflict on the left or ride side
|
|||
|
const arrConflictingEls = Array.from(conflictingEls);
|
|||
|
const leftSideConflictEls = arrConflictingEls.filter((el) => {
|
|||
|
if (el.tagName === "ASIDE") {
|
|||
|
return false;
|
|||
|
}
|
|||
|
return Array.from(el.classList).find((className) => {
|
|||
|
return (
|
|||
|
className !== "column-body" &&
|
|||
|
className.startsWith("column-") &&
|
|||
|
!className.endsWith("right") &&
|
|||
|
!className.endsWith("container") &&
|
|||
|
className !== "column-margin"
|
|||
|
);
|
|||
|
});
|
|||
|
});
|
|||
|
const rightSideConflictEls = arrConflictingEls.filter((el) => {
|
|||
|
if (el.tagName === "ASIDE") {
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
const hasMarginCaption = Array.from(el.classList).find((className) => {
|
|||
|
return className == "margin-caption";
|
|||
|
});
|
|||
|
if (hasMarginCaption) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
return Array.from(el.classList).find((className) => {
|
|||
|
return (
|
|||
|
className !== "column-body" &&
|
|||
|
!className.endsWith("container") &&
|
|||
|
className.startsWith("column-") &&
|
|||
|
!className.endsWith("left")
|
|||
|
);
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
const kOverlapPaddingSize = 10;
|
|||
|
function toRegions(els) {
|
|||
|
return els.map((el) => {
|
|||
|
const boundRect = el.getBoundingClientRect();
|
|||
|
const top =
|
|||
|
boundRect.top +
|
|||
|
document.documentElement.scrollTop -
|
|||
|
kOverlapPaddingSize;
|
|||
|
return {
|
|||
|
top,
|
|||
|
bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
|
|||
|
};
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
let hasObserved = false;
|
|||
|
const visibleItemObserver = (els) => {
|
|||
|
let visibleElements = [...els];
|
|||
|
const intersectionObserver = new IntersectionObserver(
|
|||
|
(entries, _observer) => {
|
|||
|
entries.forEach((entry) => {
|
|||
|
if (entry.isIntersecting) {
|
|||
|
if (visibleElements.indexOf(entry.target) === -1) {
|
|||
|
visibleElements.push(entry.target);
|
|||
|
}
|
|||
|
} else {
|
|||
|
visibleElements = visibleElements.filter((visibleEntry) => {
|
|||
|
return visibleEntry !== entry;
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
if (!hasObserved) {
|
|||
|
hideOverlappedSidebars();
|
|||
|
}
|
|||
|
hasObserved = true;
|
|||
|
},
|
|||
|
{}
|
|||
|
);
|
|||
|
els.forEach((el) => {
|
|||
|
intersectionObserver.observe(el);
|
|||
|
});
|
|||
|
|
|||
|
return {
|
|||
|
getVisibleEntries: () => {
|
|||
|
return visibleElements;
|
|||
|
},
|
|||
|
};
|
|||
|
};
|
|||
|
|
|||
|
const rightElementObserver = visibleItemObserver(rightSideConflictEls);
|
|||
|
const leftElementObserver = visibleItemObserver(leftSideConflictEls);
|
|||
|
|
|||
|
const hideOverlappedSidebars = () => {
|
|||
|
marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
|
|||
|
sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
|
|||
|
if (tocLeftScrollVisibility) {
|
|||
|
tocLeftScrollVisibility(
|
|||
|
toRegions(leftElementObserver.getVisibleEntries())
|
|||
|
);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
window.quartoToggleReader = () => {
|
|||
|
// Applies a slow class (or removes it)
|
|||
|
// to update the transition speed
|
|||
|
const slowTransition = (slow) => {
|
|||
|
const manageTransition = (id, slow) => {
|
|||
|
const el = document.getElementById(id);
|
|||
|
if (el) {
|
|||
|
if (slow) {
|
|||
|
el.classList.add("slow");
|
|||
|
} else {
|
|||
|
el.classList.remove("slow");
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
manageTransition("TOC", slow);
|
|||
|
manageTransition("quarto-sidebar", slow);
|
|||
|
};
|
|||
|
const readerMode = !isReaderMode();
|
|||
|
setReaderModeValue(readerMode);
|
|||
|
|
|||
|
// If we're entering reader mode, slow the transition
|
|||
|
if (readerMode) {
|
|||
|
slowTransition(readerMode);
|
|||
|
}
|
|||
|
highlightReaderToggle(readerMode);
|
|||
|
hideOverlappedSidebars();
|
|||
|
|
|||
|
// If we're exiting reader mode, restore the non-slow transition
|
|||
|
if (!readerMode) {
|
|||
|
slowTransition(!readerMode);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
const highlightReaderToggle = (readerMode) => {
|
|||
|
const els = document.querySelectorAll(".quarto-reader-toggle");
|
|||
|
if (els) {
|
|||
|
els.forEach((el) => {
|
|||
|
if (readerMode) {
|
|||
|
el.classList.add("reader");
|
|||
|
} else {
|
|||
|
el.classList.remove("reader");
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
const setReaderModeValue = (val) => {
|
|||
|
if (window.location.protocol !== "file:") {
|
|||
|
window.localStorage.setItem("quarto-reader-mode", val);
|
|||
|
} else {
|
|||
|
localReaderMode = val;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
const isReaderMode = () => {
|
|||
|
if (window.location.protocol !== "file:") {
|
|||
|
return window.localStorage.getItem("quarto-reader-mode") === "true";
|
|||
|
} else {
|
|||
|
return localReaderMode;
|
|||
|
}
|
|||
|
};
|
|||
|
let localReaderMode = null;
|
|||
|
|
|||
|
const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
|
|||
|
const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
|
|||
|
|
|||
|
// Walk the TOC and collapse/expand nodes
|
|||
|
// Nodes are expanded if:
|
|||
|
// - they are top level
|
|||
|
// - they have children that are 'active' links
|
|||
|
// - they are directly below an link that is 'active'
|
|||
|
const walk = (el, depth) => {
|
|||
|
// Tick depth when we enter a UL
|
|||
|
if (el.tagName === "UL") {
|
|||
|
depth = depth + 1;
|
|||
|
}
|
|||
|
|
|||
|
// It this is active link
|
|||
|
let isActiveNode = false;
|
|||
|
if (el.tagName === "A" && el.classList.contains("active")) {
|
|||
|
isActiveNode = true;
|
|||
|
}
|
|||
|
|
|||
|
// See if there is an active child to this element
|
|||
|
let hasActiveChild = false;
|
|||
|
for (child of el.children) {
|
|||
|
hasActiveChild = walk(child, depth) || hasActiveChild;
|
|||
|
}
|
|||
|
|
|||
|
// Process the collapse state if this is an UL
|
|||
|
if (el.tagName === "UL") {
|
|||
|
if (tocOpenDepth === -1 && depth > 1) {
|
|||
|
el.classList.add("collapse");
|
|||
|
} else if (
|
|||
|
depth <= tocOpenDepth ||
|
|||
|
hasActiveChild ||
|
|||
|
prevSiblingIsActiveLink(el)
|
|||
|
) {
|
|||
|
el.classList.remove("collapse");
|
|||
|
} else {
|
|||
|
el.classList.add("collapse");
|
|||
|
}
|
|||
|
|
|||
|
// untick depth when we leave a UL
|
|||
|
depth = depth - 1;
|
|||
|
}
|
|||
|
return hasActiveChild || isActiveNode;
|
|||
|
};
|
|||
|
|
|||
|
// walk the TOC and expand / collapse any items that should be shown
|
|||
|
|
|||
|
if (tocEl) {
|
|||
|
walk(tocEl, 0);
|
|||
|
updateActiveLink();
|
|||
|
}
|
|||
|
|
|||
|
// Throttle the scroll event and walk peridiocally
|
|||
|
window.document.addEventListener(
|
|||
|
"scroll",
|
|||
|
throttle(() => {
|
|||
|
if (tocEl) {
|
|||
|
updateActiveLink();
|
|||
|
walk(tocEl, 0);
|
|||
|
}
|
|||
|
if (!isReaderMode()) {
|
|||
|
hideOverlappedSidebars();
|
|||
|
}
|
|||
|
}, 5)
|
|||
|
);
|
|||
|
window.addEventListener(
|
|||
|
"resize",
|
|||
|
throttle(() => {
|
|||
|
if (!isReaderMode()) {
|
|||
|
hideOverlappedSidebars();
|
|||
|
}
|
|||
|
}, 10)
|
|||
|
);
|
|||
|
hideOverlappedSidebars();
|
|||
|
highlightReaderToggle(isReaderMode());
|
|||
|
});
|
|||
|
|
|||
|
// grouped tabsets
|
|||
|
window.addEventListener("pageshow", (_event) => {
|
|||
|
function getTabSettings() {
|
|||
|
const data = localStorage.getItem("quarto-persistent-tabsets-data");
|
|||
|
if (!data) {
|
|||
|
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
|
|||
|
return {};
|
|||
|
}
|
|||
|
if (data) {
|
|||
|
return JSON.parse(data);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function setTabSettings(data) {
|
|||
|
localStorage.setItem(
|
|||
|
"quarto-persistent-tabsets-data",
|
|||
|
JSON.stringify(data)
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
function setTabState(groupName, groupValue) {
|
|||
|
const data = getTabSettings();
|
|||
|
data[groupName] = groupValue;
|
|||
|
setTabSettings(data);
|
|||
|
}
|
|||
|
|
|||
|
function toggleTab(tab, active) {
|
|||
|
const tabPanelId = tab.getAttribute("aria-controls");
|
|||
|
const tabPanel = document.getElementById(tabPanelId);
|
|||
|
if (active) {
|
|||
|
tab.classList.add("active");
|
|||
|
tabPanel.classList.add("active");
|
|||
|
} else {
|
|||
|
tab.classList.remove("active");
|
|||
|
tabPanel.classList.remove("active");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function toggleAll(selectedGroup, selectorsToSync) {
|
|||
|
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
|
|||
|
const active = selectedGroup === thisGroup;
|
|||
|
for (const tab of tabs) {
|
|||
|
toggleTab(tab, active);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function findSelectorsToSyncByLanguage() {
|
|||
|
const result = {};
|
|||
|
const tabs = Array.from(
|
|||
|
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
|
|||
|
);
|
|||
|
for (const item of tabs) {
|
|||
|
const div = item.parentElement.parentElement.parentElement;
|
|||
|
const group = div.getAttribute("data-group");
|
|||
|
if (!result[group]) {
|
|||
|
result[group] = {};
|
|||
|
}
|
|||
|
const selectorsToSync = result[group];
|
|||
|
const value = item.innerHTML;
|
|||
|
if (!selectorsToSync[value]) {
|
|||
|
selectorsToSync[value] = [];
|
|||
|
}
|
|||
|
selectorsToSync[value].push(item);
|
|||
|
}
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
function setupSelectorSync() {
|
|||
|
const selectorsToSync = findSelectorsToSyncByLanguage();
|
|||
|
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
|
|||
|
Object.entries(tabSetsByValue).forEach(([value, items]) => {
|
|||
|
items.forEach((item) => {
|
|||
|
item.addEventListener("click", (_event) => {
|
|||
|
setTabState(group, value);
|
|||
|
toggleAll(value, selectorsToSync[group]);
|
|||
|
});
|
|||
|
});
|
|||
|
});
|
|||
|
});
|
|||
|
return selectorsToSync;
|
|||
|
}
|
|||
|
|
|||
|
const selectorsToSync = setupSelectorSync();
|
|||
|
for (const [group, selectedName] of Object.entries(getTabSettings())) {
|
|||
|
const selectors = selectorsToSync[group];
|
|||
|
// it's possible that stale state gives us empty selections, so we explicitly check here.
|
|||
|
if (selectors) {
|
|||
|
toggleAll(selectedName, selectors);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
function throttle(func, wait) {
|
|||
|
let waiting = false;
|
|||
|
return function () {
|
|||
|
if (!waiting) {
|
|||
|
func.apply(this, arguments);
|
|||
|
waiting = true;
|
|||
|
setTimeout(function () {
|
|||
|
waiting = false;
|
|||
|
}, wait);
|
|||
|
}
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
function nexttick(func) {
|
|||
|
return setTimeout(func, 0);
|
|||
|
}
|
|||
|
</script>
|
|||
|
<script>/**
|
|||
|
* @popperjs/core v2.11.4 - MIT License
|
|||
|
*/
|
|||
|
|
|||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNo
|
|||
|
|
|||
|
</script>
|
|||
|
<script>!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.con
|
|||
|
|
|||
|
</script>
|
|||
|
<style type="text/css">.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}</style>
|
|||
|
<link href="data:text/css,%0A%3Aroot%20%7B%0A%2D%2Dquarto%2Dhl%2Dot%2Dcolor%3A%20%23003B4F%3B%0A%2D%2Dquarto%2Dhl%2Dat%2Dcolor%3A%20%23657422%3B%0A%2D%2Dquarto%2Dhl%2Dss%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dan%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dfu%2Dcolor%3A%20%234758AB%3B%0A%2D%2Dquarto%2Dhl%2Dst%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dcf%2Dcolor%3A%20%23003B4F%3B%0A%2D%2Dquarto%2Dhl%2Dop%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Der%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dbn%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dal%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dva%2Dcolor%3A%20%23111111%3B%0A%2D%2Dquarto%2Dhl%2Dbu%2Dcolor%3A%20inherit%3B%0A%2D%2Dquarto%2Dhl%2Dex%2Dcolor%3A%20inherit%3B%0A%2D%2Dquarto%2Dhl%2Dpp%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Din%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dvs%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Dwa%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Ddo%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dim%2Dcolor%3A%20%2300769E%3B%0A%2D%2Dquarto%2Dhl%2Dch%2Dcolor%3A%20%2320794D%3B%0A%2D%2Dquarto%2Dhl%2Ddt%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dfl%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dco%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dcv%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Dcn%2Dcolor%3A%20%238f5902%3B%0A%2D%2Dquarto%2Dhl%2Dsc%2Dcolor%3A%20%235E5E5E%3B%0A%2D%2Dquarto%2Dhl%2Ddv%2Dcolor%3A%20%23AD0000%3B%0A%2D%2Dquarto%2Dhl%2Dkw%2Dcolor%3A%20%23003B4F%3B%0A%7D%0A%0A%3Aroot%20%7B%0A%2D%2Dquarto%2Dfont%2Dmonospace%3A%20SFMono%2DRegular%2C%20Menlo%2C%20Monaco%2C%20Consolas%2C%20%22Liberation%20Mono%22%2C%20%22Courier%20New%22%2C%20monospace%3B%0A%7D%0Apre%20%3E%20code%2EsourceCode%20%3E%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%2EsourceCode%20%3E%20span%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Adiv%2EsourceCode%2C%0Adiv%2EsourceCode%20pre%2EsourceCode%20%7B%0Acolor%3A%20%23003B4F%3B%0A%7D%0Acode%20span%2Eot%20%7B%0Acolor%3A%20%23003B4F%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eat%20%7B%0Acolor%3A%20%23657422%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ess%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ean%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Efu%20%7B%0Acolor%3A%20%234758AB%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Est%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ecf%20%7B%0Acolor%3A%20%23003B4F%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eop%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eer%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ebn%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eal%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eva%20%7B%0Acolor%3A%20%23111111%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ebu%20%7B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eex%20%7B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Epp%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ein%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Evs%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ewa%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Acode%20span%2Edo%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Acode%20span%2Eim%20%7B%0Acolor%3A%20%2300769E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ech%20%7B%0Acolor%3A%20%2320794D%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Edt%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Efl%20%7B%0Acolor%3A%20%23AD0000%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Eco%20%7B%0Acolor%3A%20%235E5E5E%3B%0Afont%2Dstyle%3A%20inherit%3B%0A%7D%0Acode%20span%2Ecv%
|
|||
|
<script>/*!
|
|||
|
* 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;s<o;s++){const o=t[n[s]];if(o.originalHandler===e&&o.delegationSelector===i)return o}return null}function S(t,e,i){const n="string"==typeof e,s=n?i:e;let o=P(t);return k.has(o)||(o=t),[n,s,o]}function N(t,e,i,n,s){if("string"!=typeof e||!t)return;if(i||(i=n,n=null),C.test(e)){const t=t=>function(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]
|
|||
|
//# sourceMappingURL=bootstrap.bundle.min.js.map</script>
|
|||
|
<style type="text/css">@font-face {
|
|||
|
font-display: block;
|
|||
|
font-family: "bootstrap-icons";
|
|||
|
src: url(data:font/woff;base64,d09GRgABAAAAAoFIAAsAAAAG6rAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAQQAAAGA+ClL5Y21hcAAAAYgAADHsAABtCEjCuURnbHlmAAAzdAACCDcABcVMsH/r82hlYWQAAjusAAAAMgAAADZYrKBAaGhlYQACO+AAAAAfAAAAJAJwCLBobXR4AAI8AAAAAWwAAB6A70/+dWxvY2EAAj1sAAAT0QAAHoQV9JogbWF4cAACUUAAAAAfAAAAIAjXATFuYW1lAAJRYAAAAT0AAAJqdjSTuXBvc3QAAlKgAAAupwAAdv21bFWGeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGHUYZzAwMrAwLCP4RKQ1ILSExj4GHwZGJgYWJkZsIKANNcUhgMfGX+cYdQBcqUZ3RlkgTQjiiImAD0sCowAAAB4nN3d9d9V1bYG8NlTBRRssbCwUJAGBenulm4QUDoF6UYQQUJBDFQUCwtFURBFVOzuxhbZ74pt3/H4/Afnx3s+93vHOa6z2GvPNed4xqviUUp5pZQVlYRTqtwopeXfqbJD5Y/q//64VUf898dd2bryn+uqCvLfK1/YnC3OlmUrstXZ2uy27LFsd/Z59nPeIx+er8rX55vyO/Ot+bZ8e74z35O/n3+d50VdLFXc/++/Sh3ShbuypdnybGW2Jlufbc62Z3uyL7ODec98RL4m35Dfnm/JH8gfzXfku/K9+Uf5gfyPoiseiXv/x39pVdfOKtWsVItSrUp1KNWp1MBS80qtK/VGqQOlnyj9TpmKZSqVqVqmdpn6ZZqUaVWmQ5luZaaUWVLmvjI7yuyTeyurKqqqqqaqqxqqpqql6qh6qr5qoBqqRqqxaqKaqmaquWqhWqpWqrVqo9qqdqq96qA6qk6qs+qiuqpuqrvqoa5QPVUv1Vv1UX1VP9VfDVAD1SA1WA1RQ9UwNVxdqUaokWqUGq3GqLFqnBqvJqiJapKarKaoqWqaukZNVzPUtWqmmqVmqzlqrpqn5qsFaqFapBarJWqpWqauU8vVCnW9WqluUKvUanWjWqPWqnVqvbpJ3aw2qI3qVnWbul3doTarO9Vd6m61Rd2j7lVb1X3qQfWQ2qYeVo+op9VO9Yx6Vu1Su9Vzao96Xr2g9qoX1T71knpZ7VevqzfUm+ot9bZ6R72r3lMfqo/Ux+oT9an6TH2uvlBfqq/U1+ob9a06oL5T36sf1I/qJ/WzOqh+U4dUQZWoRKUqU7kqqt/VH+pP9Zf6W/2j/tVKa2201U57HXTUh+nD9RG6lC6ty+gj9VH6aH2MLq9P1qfoU/Vp+nRdQZ+hz9Rn6bP1ObqiPldX0hfpi3VlXUVfopvrVrqj7qQ76y66q+6mu+se+grdU/fSfXU/3V8P0AP1ID1YD9FD9TA9XF+pR+iRepS+Sl+tR+sxeqwep8frSXqynqKn6mn6Gj1dz9DX6pl6lp6t5+i5ep6erxfohXqRXqyX6KV6mb5OL9cr9PV6pb5Br9Kr9Y16jV6r1+n1+ha9Sd+qb9O36zv0Zn2nvkvfrbfoe/S9equ+T9+vH9AP6of0Nv2wfkQ/qh/Tj+vt+gn9pN6hn9JP6536Gf2s3q2f0y/ol/Urer9+Xb+h39Tv6Hf1e/p9/YH+UH+kP9af6E/1F/pL/ZX+Wn+jv9UH9Hf6R/2T/ln/on/VB/VvWg6fLtGJznSui/p3/Yf+U/+l/9b/6H+NMtoYY40z3gQTzWHmcHOEKWVKmzLmSHOUKWvKmaPNMeZYc7w50ZxqTjdnmrNMdVPD1DS1TG1Tx9Q1l5rLTD1T31xuGpiGppFpbJqYpqaZaW5amJamlWlj2pp2pr3pYDqaTqaz6WK6mm6mu+lhrjA9TS/T2/QxfU0/098MMAPNIDPYDDFDzTAz3FxpRpiR5ipztRltxpixZpwZbyaYiWaSmWymmKlmmrnGTDczzLVmppllZps5Zr5ZYJabFeZ6s9LcYFaZG80as9asM4+YR81j5nGz3TxhnjQ7zFPmabPTPGOeNbvMbvOc2WOeNy+YveZFs8+8ZF42r5rXzOvmDfOmecu8bd4xH5qPzMfmM/O5+cJ8aw6Y78z35gfzo/nJ/Gx+Mb+ag+Y3c8gUTInJTG6K5nfzh/nT/GX+Nv+Yf62y2h5hy9iy9mR7ij3Vnm3PsRXtufZ8e4G90FayF9mLbWVbxVaz1W0NW9PWsrVtHdvQNrKNbRPb1DazzW0L29K2sq1tG9vWtrPtbQfb0XaynW0X29V2s91tD3uF7Wl72d62j+1r+9n+doAdaAfZwXaIHWqH2eH2SjvCjrSj7FX2ajvajrFj7Tg73k6yk+0UO9VOs9fY6XaGvdbOtLPsbDvHzrXz7Hy7wC60i+xiu8QutcvsdXa5XWGvtyvtDXaVXW1vtGvsWrvOrrc32ZvtBrvR3mI32VvtbfZ2e4e9y95tt9h77L12q73P3m8fsA/ah+w2+7B9xD5qH7OP2+32Cfuk3WGfsk/bnfYZ+6zdZXfb52xiU5vZ3Bbt7/YP+6f9x/7rlNPOOOuc8y646A5zh7sjXClX2pVxR7qjXFl3nDveneBOdCe58u5kd4o71Z3pznJnu3NcRXeuO99d7Cq7S1x1V9PVcrVdHVfXXeouc/VcfXe5a+AaukauuWvhWrpWrrVr49q6dq696+A6uk6us+viurpurrvr4a5wPV0f188NcAPdEHelG+FGulHuKne1G+vGufFugrvGTXez3XK30t3gVrsb3Rq31q1z691N7ma3yd3qbnd3uM3uTneXu9ttcfe4e91Wd5+73z3gHnQPuW3uYfeIe9Q95h53290T7km3wz3lnnY73TPuWbfL7XbPuT3uefeC2+tedPvcS+5l94rb7151r7nX3RvuTfeWe9u9495177n33QfuQ/eR+9h94j51n7nP3ZfuK/e1+8Z95753P7gf3U/uZ/eL+9UlLnWZy13R/e7+cH+7f7zy2htvvfPeBx/9Eb6UL+3L+LK+nD/WH+eP9yf4E/2p/jR/uq/gz/Bn+rP82f4cX9Gf68/zF/gLfSV/kb/YV/aX+Kq+mq/pa/nLfD1f31/uG/iGvolv6pv55r6Fb+lb+da+jW/r2/n2voPv6Dv5zr6n7+V7+z6+r+/n+/sBfqAf5Af7IX6oH+6v9CP8SD/KX+Wv9qP9dD/Lz/Fz/QK/3K/w1/uVfpVf7W/0a/xav86v9xv8Rn+Lv83f4Tf7O/1d/m6/xd/j7/X3+fv9g/4hv80/6h/zj/vtfpff45/3L/p9/hW/37/qX/Nv+Df9W/5t/47/xH/qP/Of+y/8l/4r/7X/xn/rD/jv/Pf+B/+j/8kf8gVf4pNggg0uHB6OCKVC6VAmHBWODceFs8M5oWI4N5wXzg8XhAtDpXBRuDhUDlXCJaFqqBaqhxqhZqgVaoc6oW64NFwWBochYWgYFoaHK8OIMDJcFa4Oo8OYMDaMC+PDhDAxTAqTw5QwNUwL14TpYUa4NswMs8LsMCfMDfPCgrAwLApLwtKwLFwXrg83hFVhdbgxrAlrw7qwPtwUbg4bwsZwS9gUbg23hdvDHWFzuDPcFbaEe8K94b5wf3ggPBgeCg+HR8Kj4bHweNgenghPhh3hqfB02BmeCc+qpWFPeD68EPaGF8O+8FJ4Obyizwr7w6vhtfB6eCO8Fd4O74R3w3vh/fBB+DB8FD4On4TPwxfhy/BV+Dp8E74NB8J34fvwQ/gx/BR+Dr+E30IS0pCFPBTD7+GP8Ff4O/wT/o0q6miijS76GGLZWC4eHY+Jx8bj4vHxhHh6rBDPiGfGc2LFeF48P14QL4yV4kXx4nhJrBqrxeqxRqwZa8XasU6sGy+Nl8V6sX5sEBvGRrFxbBKbxuaxdWwT28Z2sX3sF/vHAXFQHByHxeHxyjgijoyj4lXx6jg6jolj47g4Pk6IE+PUOC1eE6fHGXFmnBPnx8VxRbw+row3xFXxxrgmro3r4vq4Md4SN6kd
|
|||
|
}
|
|||
|
.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"; }
|
|||
|
</style>
|
|||
|
<link href="data:text/css,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Montserrat%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Afont%2Ddisplay%3A%20swap%3B%0Asrc%3A%20url%28data%3Afont%2Fttf%3Bbase64%2CAAEAAAAQAQAABAAAR0RFRt2q2%2FUAAASYAAAClEdQT1PceehkAABfuAAAg4ZHU1VCIs0kIAAAEAwAAAnUT1MvMnbpXi0AAAHgAAAAYFNUQVTniMwXAAABmAAAAEhjbWFwCEosFwAAGeAAAArqZ2FzcAAAABAAAAEUAAAACGdseWYqRGTSAADjQAAAxaJoZWFkGD%2By%2BgAAAWAAAAA2aGhlYQlEBo8AAAE8AAAAJGhtdHjzCipWAAAkzAAAEbxsb2NhGiVJcgAABywAAAjgbWF4cASDALUAAAEcAAAAIG5hbWU0JVw3AAACQAAAAlhwb3N0QXRheQAANogAACkwcHJlcGgGjIUAAAEMAAAAB7gB%2F4WwBI0AAAEAAf%2F%2FAA8AAQAABG8AWQAHAFgACQABAAAAAAAAAAAAAAAAAAMAAwABAAADyP8FAAAGUf9I%2FMkGMQABAAAAAAAAAAAAAAAAAAAEbwABAAAACAAApuvpf18PPPUAAwPoAAAAANYL%2FkYAAAAA3ZxwxP9I%2FvoGMQQTAAAABgACAAAAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQAAAGl0YWwBEwABABQABAADAAEAAgEUAAAAAAABAAAAAwAAAAIBBAGQAAACvAAAAAQCcgGQAAUAAAKKAlgAAABLAooCWAAAAV4AMgE2AAAAAAAAAAAAAAAAoAAC%2F0AAIHsAAAAAAAAAAFVMQQAAwAAA%2BwIDyP8FAAAEVQEOIAABlwAAAAACBQK8AAAAIAADAAAADACWAAMAAQQJAAAAsAESAAMAAQQJAAEAFAD%2BAAMAAQQJAAIADgDwAAMAAQQJAAMAOAC4AAMAAQQJAAQAJACUAAMAAQQJAAUAGgB6AAMAAQQJAAYAJABWAAMAAQQJAA4ANAAiAAMAAQQJAQAADAAWAAMAAQQJAQQADgDwAAMAAQQJARMADAAKAAMAAQQJARQACgAAAFIAbwBtAGEAbgBJAHQAYQBsAGkAYwBXAGUAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwATQBvAG4AdABzAGUAcgByAGEAdAAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADgALgAwADAAMABNAG8AbgB0AHMAZQByAHIAYQB0ACAAUgBlAGcAdQBsAGEAcgA4AC4AMAAwADAAOwBVAEwAQQA7AE0AbwBuAHQAcwBlAHIAcgBhAHQALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATQBvAG4AdABzAGUAcgByAGEAdABDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAxADEAIABUAGgAZQAgAE0AbwBuAHQAcwBlAHIAcgBhAHQAIABQAHIAbwBqAGUAYwB0ACAAQQB1AHQAaABvAHIAcwAgACgAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBKAHUAbABpAGUAdABhAFUAbABhAC8ATQBvAG4AdABzAGUAcgByAGEAdAApAAEAAgBKAAAAAAAAABIAAAAAAAEAAgAAACgAAAAMAAIABAPnA%2FIAAAP0BAUADAQfBDkAHgRYBGcAOQABAAYEBwQIBAkECgQMBA0AAgBhAAEAJQABACYAJgACACcAKwABACwALAACAC0ARQABAEcAagABAGsAawACAGwAcAABAHEAcQACAHIAdgABAHcAdwACAHgAfAABAH4AfgACAH8AowABAKYAsQABALMAugABALwA1wABANkA2wABAN0A4QABAOMA8QABAPMBDgABARABFwABARkBHAABAR0BHQACAR4BNwABATkBPwABAUEBUwABAVQBVAACAVUBZAABAWUBZQACAWYBcAABAXIBcgACAXMBpQABAacBrgABAbEB1gABAdgB5gABAegB6QABAewB7AABAe4B8AABAfMCAgABAgQCBwABAgkCCgABAgwCDQABAg8CDwABAhECEgABAhQCGQABAh4CHgABAiACIAABAiICIgABAiQCJgABAigCKgABAisCKwACAiwCLAABAi4COwABAj4CPgABAkACSAABAkoCVgABAlsCWwABAl0CXQABAmACYAABAmQCaAABAmoCbAABAm8CgwABAoUChgABAogCiQABAosCiwABAo0CjgABApAClgABApwCnAABAp4CngABAqACoAABAqICogABAqQCpgABAqcCpwACAqgCqAABAqoCrgABArACsgABArQCtwABArkCuQABArsCuwABAr0CxQABAscC0gABAtcC2QABAt0C3QABAuAC4AABAuMC5gABAugC7gABAvMC9QABAvcC%2BgABAv8DAAABA1cDWAADA40DjQACA%2BcD8gADA%2FQEEQADBB8EPAADBFgEZwADBG0EbQABAAAAFAAwADsARgBRAF8AagB1AIAAiwCWAKEArwC6AMUA0ADbAOYA8QD8AQcBEgEdASkBNQFBAUwBdwGDAbYB6QH0Af8CCgIYAiMCLgJSAl4CaQJ0AnwChwKSAp4CuALDAs4C2QLnAvIC%2FQMLAxYDIQMsAzcDQgNNA1gDYwNuA3kDhAOPA5oDpgOxA7kDxAPbBBUEIAQrBDYEQQRMBFcElwSyBL0EyATTBN4E6QT1BRsFJwUzBT8FSwVXBWMFbwV7BYcFkwWfBasFtwXDBeEF7AYOBhkGJAYzBj8GSwZXBmIGbgZ5BoUGkAabBroGxgbeBuoG9QcABwsHFgchB0oHVgdhB2wHpgexB7wHxwfSB%2BAH6wf2CAEIDAgXCCIILQg4CEMITgigCKsItgjBCMwI1wjiCO0I%2BAkDCQ4JaAlzCX4JiQmUCZ8JqgnfCgYKLAp7CqoKtQrACssK1grhCuwK9ws4C0MLTgtcC2cLcgt9C4gLkwueC6kLtwwBDEEMUgxdDGgMcwx%2BDIkMlAyyDL0MyAzTDN4M6Qz0DP8NCg0VDSENLA03DUINTQ1YDWMNbg15DYQNww3PDdoN5Q37DhsOJw4zDj8OSw5tDokOlA6fDqoOtQ7ADssO1g7hDuwPBQ8QDxsPJg8xD2QPoQ%2BsD7cPwg%2FQD9sP5g%2FxD%2FwQBxASECAQKxA2EEEQTBBXEGIQbRB4EIMQjhCaEKUQsBC7ESURMRFuEZ0RqBGzEb4RzBHXEeISHhJwEnwSiBKTEp4SqhLkEu8S%2BhMFExMTHhMpEzcTQhNNE1gTYxNuE3kThBOPE5oTpROwE7sTxhQfFCoUZBRsFHcUnBTnFPIU%2FRUIFRMVHhUpFXsVoRWtFbgVxBXQFdsV5xXzFf8WCxYXFiMWLxY7FkcWUxZfFmsWdxaDFo8WnxarFrcW0hbeFv4XChcVFzUXQRdNF1gXZBdwF3wXiBeUF58X2xfnGA0YGBgjGC4YORhEGE8YgxiPGJoYpRjXGOIY7Rj4GQMZERkcGScZMhk9GUgZUxleGWkZdBl%2FGcwZ1xniGe0Z%2BBpmGnEafBqHGpIanRrvGvobBRsQGxsbJhsxG5Yb0xwQHEwcZxxyHH0ciRyUHKAcqxy3HPUdAB0LHRkdJB0vHTodRR1QHVsdZh10Hbsd3R3%2FHgseFh4hHiweOB5DHk4ecx5%2BHokelB6fHqoetR7AHsse1h7iHu0e%2BB8DHw4fGR8kHy8fOh9FH1EfXB9nH3IfhR%2BkH7AfvB%2FIH9Qf8yAdICggMyA%2BIEkgVCBfIGogdSCAIJkgpCCvILogxSD0IQAhDCFHIXMheyGcIc0h3iHpIfoiJyIvIjoiRSJ%2BIr8i1SLhIuw
|
|||
|
<script id="quarto-search-options" type="application/json">{
|
|||
|
"location": "navbar",
|
|||
|
"copy-button": false,
|
|||
|
"collapse-after": 3,
|
|||
|
"panel-placement": "end",
|
|||
|
"type": "overlay",
|
|||
|
"limit": 20,
|
|||
|
"language": {
|
|||
|
"search-no-results-text": "Ingen resultater",
|
|||
|
"search-matching-documents-text": "Matchende dokumenter",
|
|||
|
"search-copy-link-title": "Kopier link for at søge",
|
|||
|
"search-hide-matches-text": "Skjul yderligere resultater",
|
|||
|
"search-more-match-text": "andet resultat i dette dokument",
|
|||
|
"search-more-matches-text": "andre resultater i dette dokument",
|
|||
|
"search-clear-button-title": "Ryd",
|
|||
|
"search-detached-cancel-button-title": "Fortryd",
|
|||
|
"search-submit-button-title": "Indsend",
|
|||
|
"search-label": "Søg"
|
|||
|
}
|
|||
|
}</script>
|
|||
|
<script>!function(){"use strict";!function(t){var e=t.screen,n=e.width,r=e.height,a=t.navigator.language,i=t.location,o=t.localStorage,u=t.document,c=t.history,f=i.hostname,s=i.pathname,l=i.search,d=u.currentScript;if(d){var m="data-",h=d.getAttribute.bind(d),v=h(m+"website-id"),p=h(m+"host-url"),g="false"!==h(m+"auto-track"),y=h(m+"do-not-track"),b=h(m+"domains")||"",S=b.split(",").map((function(t){return t.trim()})),k=(p?p.replace(/\/$/,""):d.src.split("/").slice(0,-1).join("/"))+"/api/send",w=n+"x"+r,N=/data-umami-event-([\w-_]+)/,T=m+"umami-event",j=300,A=function(t,e,n){var r=t[e];return function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return n.apply(null,e),r.apply(t,e)}},x=function(){return{website:v,hostname:f,screen:w,language:a,title:M,url:I,referrer:J}},E=function(){return o&&o.getItem("umami.disabled")||y&&function(){var e=t.doNotTrack,n=t.navigator,r=t.external,a="msTrackingProtectionEnabled",i=e||n.doNotTrack||n.msDoNotTrack||r&&a in r&&r[a]();return"1"==i||"yes"===i}()||b&&!S.includes(f)},O=function(t,e,n){n&&(J=I,(I=function(t){try{return new URL(t).pathname}catch(e){return t}}(n.toString()))!==J&&setTimeout(D,j))},L=function(t,e){if(void 0===e&&(e="event"),!E()){var n={"Content-Type":"application/json"};return void 0!==K&&(n["x-umami-cache"]=K),fetch(k,{method:"POST",body:JSON.stringify({type:e,payload:t}),headers:n}).then((function(t){return t.text()})).then((function(t){return K=t})).catch((function(){}))}},D=function(t,e){return L("string"==typeof t?Object.assign({},x(),{name:t,data:"object"==typeof e?e:void 0}):"object"==typeof t?t:"function"==typeof t?t(x()):x())};t.umami||(t.umami={track:D,identify:function(t){return L(Object.assign({},x(),{data:t}),"identify")}});var K,P,_,q,C,I=""+s+l,J=u.referrer,M=u.title;if(g&&!E()){c.pushState=A(c,"pushState",O),c.replaceState=A(c,"replaceState",O),C=function(t){var e=t.getAttribute.bind(t),n=e(T);if(n){var r={};return t.getAttributeNames().forEach((function(t){var n=t.match(N);n&&(r[n[1]]=e(t))})),D(n,r)}return Promise.resolve()},u.addEventListener("click",(function(t){var e=t.target,n="A"===e.tagName?e:function(t,e){for(var n=t,r=0;r<e;r++){if("A"===n.tagName)return n;if(!(n=n.parentElement))return null}return null}(e,10);if(n){var r=n.href,a="_blank"===n.target||t.ctrlKey||t.shiftKey||t.metaKey||t.button&&1===t.button;if(n.getAttribute(T)&&r)return a||t.preventDefault(),C(n).then((function(){a||(i.href=r)}))}else C(e)}),!0),_=new MutationObserver((function(t){var e=t[0];M=e&&e.target?e.target.text:void 0})),(q=u.querySelector("head > title"))&&_.observe(q,{subtree:!0,characterData:!0,childList:!0});var R=function(){"complete"!==u.readyState||P||(D(),P=!0)};u.addEventListener("readystatechange",R,!0),R()}}}(window)}();
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
</head>
|
|||
|
|
|||
|
<body class="nav-fixed fullcontent">
|
|||
|
|
|||
|
<div id="quarto-search-results"></div>
|
|||
|
<header id="quarto-header" class="headroom fixed-top">
|
|||
|
<nav class="navbar navbar-expand-lg navbar-dark ">
|
|||
|
<div class="navbar-container container-fluid">
|
|||
|
<div class="navbar-brand-container">
|
|||
|
<a class="navbar-brand" href="./index.html">
|
|||
|
<span class="navbar-title">Ebbas side</span>
|
|||
|
</a>
|
|||
|
</div>
|
|||
|
<div id="quarto-search" class title="Søg"></div>
|
|||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Skift navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
|||
|
<span class="navbar-toggler-icon"></span>
|
|||
|
</button>
|
|||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
|||
|
<ul class="navbar-nav navbar-nav-scroll me-auto">
|
|||
|
<li class="nav-item">
|
|||
|
<a class="nav-link" href="./docs/fødevareallergi.html" rel target>
|
|||
|
<span class="menu-text">Fødevareallergi</span></a>
|
|||
|
</li>
|
|||
|
<li class="nav-item">
|
|||
|
<a class="nav-link" href="./docs/pelsallergi.html" rel target>
|
|||
|
<span class="menu-text">Pelsallergi</span></a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
|||
|
<li class="nav-item">
|
|||
|
<a class="nav-link" href="tel:2992202035" rel target>
|
|||
|
<span class="menu-text">Ring til mor</span></a>
|
|||
|
</li>
|
|||
|
<li class="nav-item">
|
|||
|
<a class="nav-link" href="tel:24903612" rel target>
|
|||
|
<span class="menu-text">Ring til far</span></a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<div class="quarto-navbar-tools">
|
|||
|
</div>
|
|||
|
</div> <!-- /navcollapse -->
|
|||
|
</div> <!-- /container-fluid -->
|
|||
|
</nav>
|
|||
|
</header>
|
|||
|
<!-- content -->
|
|||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
|||
|
<!-- sidebar -->
|
|||
|
<!-- margin-sidebar -->
|
|||
|
|
|||
|
<!-- main -->
|
|||
|
<div class="quarto-about-jolla">
|
|||
|
<header id="title-block-header" class="quarto-title-block default">
|
|||
|
<div class="quarto-title">
|
|||
|
<h1 class="title">Ebbas side</h1>
|
|||
|
</div>
|
|||
|
<div class="quarto-title-meta">
|
|||
|
</div>
|
|||
|
</header><main class="content" id="quarto-document-content">
|
|||
|
<p>Ebba er glad og nysgerrig og har blandt andet <a href="https://ebba.gdamsbo.dk/docs/f%C3%B8devareallergi.html#peanuts">allergi for jordnødder/peanuts</a>.</p>
|
|||
|
<section id="kontakt" class="level1">
|
|||
|
<h1>Kontakt</h1>
|
|||
|
<p>Mor <strong>Caroline</strong>: <a href="tel:2992202035">2992 2035</a></p>
|
|||
|
<p>Far <strong>Andreas</strong>: <a href="tel:2490203612">2490 3612</a></p>
|
|||
|
|
|||
|
|
|||
|
</section>
|
|||
|
</main>
|
|||
|
</div>
|
|||
|
<!-- /main -->
|
|||
|
<script id="quarto-html-after-body" type="application/javascript">
|
|||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
|||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
|||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
|||
|
const bodyEl = window.document.querySelector("body");
|
|||
|
if (mode === "dark") {
|
|||
|
bodyEl.classList.add("quarto-dark");
|
|||
|
bodyEl.classList.remove("quarto-light");
|
|||
|
} else {
|
|||
|
bodyEl.classList.add("quarto-light");
|
|||
|
bodyEl.classList.remove("quarto-dark");
|
|||
|
}
|
|||
|
}
|
|||
|
const toggleBodyColorPrimary = () => {
|
|||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
|||
|
if (bsSheetEl) {
|
|||
|
toggleBodyColorMode(bsSheetEl);
|
|||
|
}
|
|||
|
}
|
|||
|
toggleBodyColorPrimary();
|
|||
|
const isCodeAnnotation = (el) => {
|
|||
|
for (const clz of el.classList) {
|
|||
|
if (clz.startsWith('code-annotation-')) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
|||
|
text: function(trigger) {
|
|||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
|||
|
for (const childEl of codeEl.children) {
|
|||
|
if (isCodeAnnotation(childEl)) {
|
|||
|
childEl.remove();
|
|||
|
}
|
|||
|
}
|
|||
|
return codeEl.innerText;
|
|||
|
}
|
|||
|
});
|
|||
|
clipboard.on('success', function(e) {
|
|||
|
// button target
|
|||
|
const button = e.trigger;
|
|||
|
// don't keep focus
|
|||
|
button.blur();
|
|||
|
// flash "checked"
|
|||
|
button.classList.add('code-copy-button-checked');
|
|||
|
var currentTitle = button.getAttribute("title");
|
|||
|
button.setAttribute("title", "Kopieret!");
|
|||
|
let tooltip;
|
|||
|
if (window.bootstrap) {
|
|||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
|||
|
button.setAttribute("data-bs-placement", "left");
|
|||
|
button.setAttribute("data-bs-title", "Kopieret!");
|
|||
|
tooltip = new bootstrap.Tooltip(button,
|
|||
|
{ trigger: "manual",
|
|||
|
customClass: "code-copy-button-tooltip",
|
|||
|
offset: [0, -8]});
|
|||
|
tooltip.show();
|
|||
|
}
|
|||
|
setTimeout(function() {
|
|||
|
if (tooltip) {
|
|||
|
tooltip.hide();
|
|||
|
button.removeAttribute("data-bs-title");
|
|||
|
button.removeAttribute("data-bs-toggle");
|
|||
|
button.removeAttribute("data-bs-placement");
|
|||
|
}
|
|||
|
button.setAttribute("title", currentTitle);
|
|||
|
button.classList.remove('code-copy-button-checked');
|
|||
|
}, 1000);
|
|||
|
// clear code selection
|
|||
|
e.clearSelection();
|
|||
|
});
|
|||
|
function tippyHover(el, contentFn) {
|
|||
|
const config = {
|
|||
|
allowHTML: true,
|
|||
|
content: contentFn,
|
|||
|
maxWidth: 500,
|
|||
|
delay: 100,
|
|||
|
arrow: false,
|
|||
|
appendTo: function(el) {
|
|||
|
return el.parentElement;
|
|||
|
},
|
|||
|
interactive: true,
|
|||
|
interactiveBorder: 10,
|
|||
|
theme: 'quarto',
|
|||
|
placement: 'bottom-start'
|
|||
|
};
|
|||
|
window.tippy(el, config);
|
|||
|
}
|
|||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
|||
|
for (var i=0; i<noterefs.length; i++) {
|
|||
|
const ref = noterefs[i];
|
|||
|
tippyHover(ref, function() {
|
|||
|
// use id or data attribute instead here
|
|||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
|||
|
try { href = new URL(href).hash; } catch {}
|
|||
|
const id = href.replace(/^#\/?/, "");
|
|||
|
const note = window.document.getElementById(id);
|
|||
|
return note.innerHTML;
|
|||
|
});
|
|||
|
}
|
|||
|
let selectedAnnoteEl;
|
|||
|
const selectorForAnnotation = ( cell, annotation) => {
|
|||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
|||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
|||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
|||
|
return selector;
|
|||
|
}
|
|||
|
const selectCodeLines = (annoteEl) => {
|
|||
|
const doc = window.document;
|
|||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
|||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
|||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
|||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
|||
|
const lineIds = lines.map((line) => {
|
|||
|
return targetCell + "-" + line;
|
|||
|
})
|
|||
|
let top = null;
|
|||
|
let height = null;
|
|||
|
let parent = null;
|
|||
|
if (lineIds.length > 0) {
|
|||
|
//compute the position of the single el (top and bottom and make a div)
|
|||
|
const el = window.document.getElementById(lineIds[0]);
|
|||
|
top = el.offsetTop;
|
|||
|
height = el.offsetHeight;
|
|||
|
parent = el.parentElement.parentElement;
|
|||
|
if (lineIds.length > 1) {
|
|||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
|||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
|||
|
height = bottom - top;
|
|||
|
}
|
|||
|
if (top !== null && height !== null && parent !== null) {
|
|||
|
// cook up a div (if necessary) and position it
|
|||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
|||
|
if (div === null) {
|
|||
|
div = window.document.createElement("div");
|
|||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
|||
|
div.style.position = 'absolute';
|
|||
|
parent.appendChild(div);
|
|||
|
}
|
|||
|
div.style.top = top - 2 + "px";
|
|||
|
div.style.height = height + 4 + "px";
|
|||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
|||
|
if (gutterDiv === null) {
|
|||
|
gutterDiv = window.document.createElement("div");
|
|||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
|||
|
gutterDiv.style.position = 'absolute';
|
|||
|
const codeCell = window.document.getElementById(targetCell);
|
|||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
|||
|
gutter.appendChild(gutterDiv);
|
|||
|
}
|
|||
|
gutterDiv.style.top = top - 2 + "px";
|
|||
|
gutterDiv.style.height = height + 4 + "px";
|
|||
|
}
|
|||
|
selectedAnnoteEl = annoteEl;
|
|||
|
}
|
|||
|
};
|
|||
|
const unselectCodeLines = () => {
|
|||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
|||
|
elementsIds.forEach((elId) => {
|
|||
|
const div = window.document.getElementById(elId);
|
|||
|
if (div) {
|
|||
|
div.remove();
|
|||
|
}
|
|||
|
});
|
|||
|
selectedAnnoteEl = undefined;
|
|||
|
};
|
|||
|
// Attach click handler to the DT
|
|||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
|||
|
for (const annoteDlNode of annoteDls) {
|
|||
|
annoteDlNode.addEventListener('click', (event) => {
|
|||
|
const clickedEl = event.target;
|
|||
|
if (clickedEl !== selectedAnnoteEl) {
|
|||
|
unselectCodeLines();
|
|||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
|||
|
if (activeEl) {
|
|||
|
activeEl.classList.remove('code-annotation-active');
|
|||
|
}
|
|||
|
selectCodeLines(clickedEl);
|
|||
|
clickedEl.classList.add('code-annotation-active');
|
|||
|
} else {
|
|||
|
// Unselect the line
|
|||
|
unselectCodeLines();
|
|||
|
clickedEl.classList.remove('code-annotation-active');
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
const findCites = (el) => {
|
|||
|
const parentEl = el.parentElement;
|
|||
|
if (parentEl) {
|
|||
|
const cites = parentEl.dataset.cites;
|
|||
|
if (cites) {
|
|||
|
return {
|
|||
|
el,
|
|||
|
cites: cites.split(' ')
|
|||
|
};
|
|||
|
} else {
|
|||
|
return findCites(el.parentElement)
|
|||
|
}
|
|||
|
} else {
|
|||
|
return undefined;
|
|||
|
}
|
|||
|
};
|
|||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
|||
|
for (var i=0; i<bibliorefs.length; i++) {
|
|||
|
const ref = bibliorefs[i];
|
|||
|
const citeInfo = findCites(ref);
|
|||
|
if (citeInfo) {
|
|||
|
tippyHover(citeInfo.el, function() {
|
|||
|
var popup = window.document.createElement('div');
|
|||
|
citeInfo.cites.forEach(function(cite) {
|
|||
|
var citeDiv = window.document.createElement('div');
|
|||
|
citeDiv.classList.add('hanging-indent');
|
|||
|
citeDiv.classList.add('csl-entry');
|
|||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
|||
|
if (biblioDiv) {
|
|||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
|||
|
}
|
|||
|
popup.appendChild(citeDiv);
|
|||
|
});
|
|||
|
return popup.innerHTML;
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div> <!-- /content -->
|
|||
|
<footer class="footer">
|
|||
|
<div class="nav-footer">
|
|||
|
<div class="nav-footer-left">
|
|||
|
|
|||
|
</div>
|
|||
|
<div class="nav-footer-center">
|
|||
|
<ul class="footer-items list-unstyled">
|
|||
|
<li class="nav-item">
|
|||
|
<a class="nav-link" href="./LICENSE.html">Licens: CC-BY 4.0</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="nav-footer-right">
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</footer>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</body></html>
|