.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n background-color: @list-group-disabled-bg;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n color: @list-group-link-hover-color;\n text-decoration: none;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors\n\n//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-right: @panel-body-padding;\n padding-left: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n border-bottom-left-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n margin-bottom: 0;\n border: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, .15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","// stylelint-disable property-no-vendor-prefix\n\n//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0); }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n background-clip: padding-box;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n margin-left: 5px;\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top {\n padding: @tooltip-arrow-width 0;\n margin-top: -3px;\n }\n &.right {\n padding: 0 @tooltip-arrow-width;\n margin-left: 3px;\n }\n &.bottom {\n padding: @tooltip-arrow-width 0;\n margin-top: 3px;\n }\n &.left {\n padding: 0 @tooltip-arrow-width;\n margin-left: -3px;\n }\n\n // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n right: @tooltip-arrow-width;\n bottom: 0;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: 400;\n line-height: @line-height-base;\n line-break: auto;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n\n // Arrows\n // .arrow is outer, .arrow:after is inner\n > .arrow {\n border-width: @popover-arrow-outer-width;\n\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n\n &:after {\n content: \"\";\n border-width: @popover-arrow-width;\n }\n }\n\n &.top > .arrow {\n bottom: -@popover-arrow-outer-width;\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n border-bottom-width: 0;\n &:after {\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n content: \" \";\n border-top-color: @popover-arrow-color;\n border-bottom-width: 0;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n border-left-width: 0;\n &:after {\n bottom: -@popover-arrow-width;\n left: 1px;\n content: \" \";\n border-right-color: @popover-arrow-color;\n border-left-width: 0;\n }\n }\n &.bottom > .arrow {\n top: -@popover-arrow-outer-width;\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n &:after {\n top: 1px;\n margin-left: -@popover-arrow-width;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n right: 1px;\n bottom: -@popover-arrow-width;\n content: \" \";\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n }\n }\n}\n\n.popover-title {\n padding: 8px 14px;\n margin: 0; // reset heading margin\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n","// stylelint-disable media-feature-name-no-unknown\n\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n\n > .item {\n position: relative;\n display: none;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~\"0.6s ease-in-out\");\n .backface-visibility(~\"hidden\");\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: @carousel-control-width;\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n .opacity(@carousel-control-opacity);\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001));\n }\n &.right {\n right: 0;\n left: auto;\n #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n color: @carousel-control-color;\n text-decoration: none;\n outline: 0;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n }\n\n .icon-prev {\n &:before {\n content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0, 0, 0, 0); // IE9\n\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n }\n\n .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n display: table; // 2\n content: \" \"; // 1\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n","// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword\n\n// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix\n\n//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// stylelint-disable declaration-no-important\n\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/adminapi/www/apidoc/assets/favicon-16x16.png b/adminapi/www/apidoc/assets/favicon-16x16.png
new file mode 100644
index 0000000..8d7a6dc
Binary files /dev/null and b/adminapi/www/apidoc/assets/favicon-16x16.png differ
diff --git a/adminapi/www/apidoc/assets/favicon-32x32.png b/adminapi/www/apidoc/assets/favicon-32x32.png
new file mode 100644
index 0000000..361d8bc
Binary files /dev/null and b/adminapi/www/apidoc/assets/favicon-32x32.png differ
diff --git a/adminapi/www/apidoc/assets/favicon.ico b/adminapi/www/apidoc/assets/favicon.ico
new file mode 100644
index 0000000..8cc49dd
Binary files /dev/null and b/adminapi/www/apidoc/assets/favicon.ico differ
diff --git a/adminapi/www/apidoc/assets/glyphicons-halflings-regular.eot b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..b93a495
Binary files /dev/null and b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.eot differ
diff --git a/adminapi/www/apidoc/assets/glyphicons-halflings-regular.svg b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..187805a
--- /dev/null
+++ b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
diff --git a/adminapi/www/apidoc/assets/glyphicons-halflings-regular.ttf b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..1413fc6
Binary files /dev/null and b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.ttf differ
diff --git a/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
Binary files /dev/null and b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff differ
diff --git a/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff2 b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
Binary files /dev/null and b/adminapi/www/apidoc/assets/glyphicons-halflings-regular.woff2 differ
diff --git a/adminapi/www/apidoc/assets/main.bundle.js b/adminapi/www/apidoc/assets/main.bundle.js
new file mode 100644
index 0000000..71fae9a
--- /dev/null
+++ b/adminapi/www/apidoc/assets/main.bundle.js
@@ -0,0 +1,305 @@
+(()=>{var Za={8325:(b,m,s)=>{const d=Symbol("SemVer ANY");class r{static get ANY(){return d}constructor(v,c){if(c=n(c),v instanceof r){if(v.loose===!!c.loose)return v;v=v.value}o("comparator",v,c),this.options=c,this.loose=!!c.loose,this.parse(v),this.semver===d?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(v){const c=this.options.loose?u[p.COMPARATORLOOSE]:u[p.COMPARATOR],h=v.match(c);if(!h)throw new TypeError(`Invalid comparator: ${v}`);this.operator=h[1]!==void 0?h[1]:"",this.operator==="="&&(this.operator=""),h[2]?this.semver=new f(h[2],this.options.loose):this.semver=d}toString(){return this.value}test(v){if(o("Comparator.test",v,this.options.loose),this.semver===d||v===d)return!0;if(typeof v=="string")try{v=new f(v,this.options)}catch(c){return!1}return l(v,this.operator,this.semver,this.options)}intersects(v,c){if(!(v instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new g(v.value,c).test(this.value):v.operator===""?v.value===""?!0:new g(this.value,c).test(v.semver):(c=n(c),c.includePrerelease&&(this.value==="<0.0.0-0"||v.value==="<0.0.0-0")||!c.includePrerelease&&(this.value.startsWith("<0.0.0")||v.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&v.operator.startsWith(">")||this.operator.startsWith("<")&&v.operator.startsWith("<")||this.semver.version===v.semver.version&&this.operator.includes("=")&&v.operator.includes("=")||l(this.semver,"<",v.semver,c)&&this.operator.startsWith(">")&&v.operator.startsWith("<")||l(this.semver,">",v.semver,c)&&this.operator.startsWith("<")&&v.operator.startsWith(">")))}}b.exports=r;const n=s(349),{re:u,t:p}=s(3259),l=s(5609),o=s(4903),f=s(1630),g=s(1459)},1459:(b,m,s)=>{class d{constructor(H,$){if($=u($),H instanceof d)return H.loose===!!$.loose&&H.includePrerelease===!!$.includePrerelease?H:new d(H.raw,$);if(H instanceof p)return this.raw=H.value,this.set=[[H]],this.format(),this;if(this.options=$,this.loose=!!$.loose,this.includePrerelease=!!$.includePrerelease,this.raw=H,this.set=H.split("||").map(V=>this.parseRange(V.trim())).filter(V=>V.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${H}`);if(this.set.length>1){const V=this.set[0];if(this.set=this.set.filter(K=>!E(K[0])),this.set.length===0)this.set=[V];else if(this.set.length>1){for(const K of this.set)if(K.length===1&&x(K[0])){this.set=[K];break}}}this.format()}format(){return this.range=this.set.map(H=>H.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(H){H=H.trim();const V=((this.options.includePrerelease&&h)|(this.options.loose&&y))+":"+H,K=n.get(V);if(K)return K;const Q=this.options.loose,ie=Q?f[g.HYPHENRANGELOOSE]:f[g.HYPHENRANGE];H=H.replace(ie,W(this.options.includePrerelease)),l("hyphen replace",H),H=H.replace(f[g.COMPARATORTRIM],i),l("comparator trim",H),H=H.replace(f[g.TILDETRIM],v),H=H.replace(f[g.CARETTRIM],c),H=H.split(/\s+/).join(" ");let fe=H.split(" ").map(Te=>A(Te,this.options)).join(" ").split(/\s+/).map(Te=>k(Te,this.options));Q&&(fe=fe.filter(Te=>(l("loose invalid filter",Te,this.options),!!Te.match(f[g.COMPARATORLOOSE])))),l("range list",fe);const J=new Map,Ee=fe.map(Te=>new p(Te,this.options));for(const Te of Ee){if(E(Te))return[Te];J.set(Te.value,Te)}J.size>1&&J.has("")&&J.delete("");const xe=[...J.values()];return n.set(V,xe),xe}intersects(H,$){if(!(H instanceof d))throw new TypeError("a Range is required");return this.set.some(V=>T(V,$)&&H.set.some(K=>T(K,$)&&V.every(Q=>K.every(ie=>Q.intersects(ie,$)))))}test(H){if(!H)return!1;if(typeof H=="string")try{H=new o(H,this.options)}catch($){return!1}for(let $=0;$
F.value==="<0.0.0-0",x=F=>F.value==="",T=(F,H)=>{let $=!0;const V=F.slice();let K=V.pop();for(;$&&V.length;)$=V.every(Q=>K.intersects(Q,H)),K=V.pop();return $},A=(F,H)=>(l("comp",F,H),F=O(F,H),l("caret",F),F=_(F,H),l("tildes",F),F=R(F,H),l("xrange",F),F=N(F,H),l("stars",F),F),w=F=>!F||F.toLowerCase()==="x"||F==="*",_=(F,H)=>F.trim().split(/\s+/).map($=>C($,H)).join(" "),C=(F,H)=>{const $=H.loose?f[g.TILDELOOSE]:f[g.TILDE];return F.replace($,(V,K,Q,ie,fe)=>{l("tilde",F,V,K,Q,ie,fe);let J;return w(K)?J="":w(Q)?J=`>=${K}.0.0 <${+K+1}.0.0-0`:w(ie)?J=`>=${K}.${Q}.0 <${K}.${+Q+1}.0-0`:fe?(l("replaceTilde pr",fe),J=`>=${K}.${Q}.${ie}-${fe} <${K}.${+Q+1}.0-0`):J=`>=${K}.${Q}.${ie} <${K}.${+Q+1}.0-0`,l("tilde return",J),J})},O=(F,H)=>F.trim().split(/\s+/).map($=>I($,H)).join(" "),I=(F,H)=>{l("caret",F,H);const $=H.loose?f[g.CARETLOOSE]:f[g.CARET],V=H.includePrerelease?"-0":"";return F.replace($,(K,Q,ie,fe,J)=>{l("caret",F,K,Q,ie,fe,J);let Ee;return w(Q)?Ee="":w(ie)?Ee=`>=${Q}.0.0${V} <${+Q+1}.0.0-0`:w(fe)?Q==="0"?Ee=`>=${Q}.${ie}.0${V} <${Q}.${+ie+1}.0-0`:Ee=`>=${Q}.${ie}.0${V} <${+Q+1}.0.0-0`:J?(l("replaceCaret pr",J),Q==="0"?ie==="0"?Ee=`>=${Q}.${ie}.${fe}-${J} <${Q}.${ie}.${+fe+1}-0`:Ee=`>=${Q}.${ie}.${fe}-${J} <${Q}.${+ie+1}.0-0`:Ee=`>=${Q}.${ie}.${fe}-${J} <${+Q+1}.0.0-0`):(l("no pr"),Q==="0"?ie==="0"?Ee=`>=${Q}.${ie}.${fe}${V} <${Q}.${ie}.${+fe+1}-0`:Ee=`>=${Q}.${ie}.${fe}${V} <${Q}.${+ie+1}.0-0`:Ee=`>=${Q}.${ie}.${fe} <${+Q+1}.0.0-0`),l("caret return",Ee),Ee})},R=(F,H)=>(l("replaceXRanges",F,H),F.split(/\s+/).map($=>D($,H)).join(" ")),D=(F,H)=>{F=F.trim();const $=H.loose?f[g.XRANGELOOSE]:f[g.XRANGE];return F.replace($,(V,K,Q,ie,fe,J)=>{l("xRange",F,V,K,Q,ie,fe,J);const Ee=w(Q),xe=Ee||w(ie),Te=xe||w(fe),je=Te;return K==="="&&je&&(K=""),J=H.includePrerelease?"-0":"",Ee?K===">"||K==="<"?V="<0.0.0-0":V="*":K&&je?(xe&&(ie=0),fe=0,K===">"?(K=">=",xe?(Q=+Q+1,ie=0,fe=0):(ie=+ie+1,fe=0)):K==="<="&&(K="<",xe?Q=+Q+1:ie=+ie+1),K==="<"&&(J="-0"),V=`${K+Q}.${ie}.${fe}${J}`):xe?V=`>=${Q}.0.0${J} <${+Q+1}.0.0-0`:Te&&(V=`>=${Q}.${ie}.0${J} <${Q}.${+ie+1}.0-0`),l("xRange return",V),V})},N=(F,H)=>(l("replaceStars",F,H),F.trim().replace(f[g.STAR],"")),k=(F,H)=>(l("replaceGTE0",F,H),F.trim().replace(f[H.includePrerelease?g.GTE0PRE:g.GTE0],"")),W=F=>(H,$,V,K,Q,ie,fe,J,Ee,xe,Te,je,dt)=>(w(V)?$="":w(K)?$=`>=${V}.0.0${F?"-0":""}`:w(Q)?$=`>=${V}.${K}.0${F?"-0":""}`:ie?$=`>=${$}`:$=`>=${$}${F?"-0":""}`,w(Ee)?J="":w(xe)?J=`<${+Ee+1}.0.0-0`:w(Te)?J=`<${Ee}.${+xe+1}.0-0`:je?J=`<=${Ee}.${xe}.${Te}-${je}`:F?J=`<${Ee}.${xe}.${+Te+1}-0`:J=`<=${J}`,`${$} ${J}`.trim()),Y=(F,H,$)=>{for(let V=0;V0){const K=F[V].semver;if(K.major===H.major&&K.minor===H.minor&&K.patch===H.patch)return!0}return!1}return!0}},1630:(b,m,s)=>{const d=s(4903),{MAX_LENGTH:r,MAX_SAFE_INTEGER:n}=s(3325),{re:u,t:p}=s(3259),l=s(349),{compareIdentifiers:o}=s(7342);class f{constructor(i,v){if(v=l(v),i instanceof f){if(i.loose===!!v.loose&&i.includePrerelease===!!v.includePrerelease)return i;i=i.version}else if(typeof i!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof i}".`);if(i.length>r)throw new TypeError(`version is longer than ${r} characters`);d("SemVer",i,v),this.options=v,this.loose=!!v.loose,this.includePrerelease=!!v.includePrerelease;const c=i.trim().match(v.loose?u[p.LOOSE]:u[p.FULL]);if(!c)throw new TypeError(`Invalid Version: ${i}`);if(this.raw=i,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map(h=>{if(/^[0-9]+$/.test(h)){const y=+h;if(y>=0&&y=0;)typeof this.prerelease[y]=="number"&&(this.prerelease[y]++,y=-2);if(y===-1){if(v===this.prerelease.join(".")&&c===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(h)}}if(v){let y=[v,h];c===!1&&(y=[v]),o(this.prerelease[0],v)===0?isNaN(this.prerelease[1])&&(this.prerelease=y):this.prerelease=y}break}default:throw new Error(`invalid increment argument: ${i}`)}return this.format(),this.raw=this.version,this}}b.exports=f},7200:(b,m,s)=>{const d=s(8216),r=(n,u)=>{const p=d(n.trim().replace(/^[=v]+/,""),u);return p?p.version:null};b.exports=r},5609:(b,m,s)=>{const d=s(4594),r=s(3228),n=s(145),u=s(9778),p=s(5429),l=s(7888),o=(f,g,i,v)=>{switch(g){case"===":return typeof f=="object"&&(f=f.version),typeof i=="object"&&(i=i.version),f===i;case"!==":return typeof f=="object"&&(f=f.version),typeof i=="object"&&(i=i.version),f!==i;case"":case"=":case"==":return d(f,i,v);case"!=":return r(f,i,v);case">":return n(f,i,v);case">=":return u(f,i,v);case"<":return p(f,i,v);case"<=":return l(f,i,v);default:throw new TypeError(`Invalid operator: ${g}`)}};b.exports=o},9485:(b,m,s)=>{const d=s(1630),r=s(8216),{re:n,t:u}=s(3259),p=(l,o)=>{if(l instanceof d)return l;if(typeof l=="number"&&(l=String(l)),typeof l!="string")return null;o=o||{};let f=null;if(!o.rtl)f=l.match(n[u.COERCE]);else{let g;for(;(g=n[u.COERCERTL].exec(l))&&(!f||f.index+f[0].length!==l.length);)(!f||g.index+g[0].length!==f.index+f[0].length)&&(f=g),n[u.COERCERTL].lastIndex=g.index+g[1].length+g[2].length;n[u.COERCERTL].lastIndex=-1}return f===null?null:r(`${f[2]}.${f[3]||"0"}.${f[4]||"0"}`,o)};b.exports=p},7548:(b,m,s)=>{const d=s(1630),r=(n,u,p)=>{const l=new d(n,p),o=new d(u,p);return l.compare(o)||l.compareBuild(o)};b.exports=r},7317:(b,m,s)=>{const d=s(9123),r=(n,u)=>d(n,u,!0);b.exports=r},9123:(b,m,s)=>{const d=s(1630),r=(n,u,p)=>new d(n,p).compare(new d(u,p));b.exports=r},3444:(b,m,s)=>{const d=s(8216),r=(n,u)=>{const p=d(n,null,!0),l=d(u,null,!0),o=p.compare(l);if(o===0)return null;const f=o>0,g=f?p:l,i=f?l:p,v=!!g.prerelease.length,c=v?"pre":"";return p.major!==l.major?c+"major":p.minor!==l.minor?c+"minor":p.patch!==l.patch?c+"patch":v?"prerelease":i.patch?"patch":i.minor?"minor":"major"};b.exports=r},4594:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)===0;b.exports=r},145:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)>0;b.exports=r},9778:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)>=0;b.exports=r},288:(b,m,s)=>{const d=s(1630),r=(n,u,p,l,o)=>{typeof p=="string"&&(o=l,l=p,p=void 0);try{return new d(n instanceof d?n.version:n,p).inc(u,l,o).version}catch(f){return null}};b.exports=r},5429:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)<0;b.exports=r},7888:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)<=0;b.exports=r},5254:(b,m,s)=>{const d=s(1630),r=(n,u)=>new d(n,u).major;b.exports=r},9887:(b,m,s)=>{const d=s(1630),r=(n,u)=>new d(n,u).minor;b.exports=r},3228:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(n,u,p)!==0;b.exports=r},8216:(b,m,s)=>{const d=s(1630),r=(n,u,p=!1)=>{if(n instanceof d)return n;try{return new d(n,u)}catch(l){if(!p)return null;throw l}};b.exports=r},8571:(b,m,s)=>{const d=s(1630),r=(n,u)=>new d(n,u).patch;b.exports=r},2115:(b,m,s)=>{const d=s(8216),r=(n,u)=>{const p=d(n,u);return p&&p.prerelease.length?p.prerelease:null};b.exports=r},6822:(b,m,s)=>{const d=s(9123),r=(n,u,p)=>d(u,n,p);b.exports=r},2490:(b,m,s)=>{const d=s(7548),r=(n,u)=>n.sort((p,l)=>d(l,p,u));b.exports=r},5374:(b,m,s)=>{const d=s(1459),r=(n,u,p)=>{try{u=new d(u,p)}catch(l){return!1}return u.test(n)};b.exports=r},6401:(b,m,s)=>{const d=s(7548),r=(n,u)=>n.sort((p,l)=>d(p,l,u));b.exports=r},5665:(b,m,s)=>{const d=s(8216),r=(n,u)=>{const p=d(n,u);return p?p.version:null};b.exports=r},7154:(b,m,s)=>{const d=s(3259),r=s(3325),n=s(1630),u=s(7342),p=s(8216),l=s(5665),o=s(7200),f=s(288),g=s(3444),i=s(5254),v=s(9887),c=s(8571),h=s(2115),y=s(9123),E=s(6822),x=s(7317),T=s(7548),A=s(6401),w=s(2490),_=s(145),C=s(5429),O=s(4594),I=s(3228),R=s(9778),D=s(7888),N=s(5609),k=s(9485),W=s(8325),Y=s(1459),F=s(5374),H=s(6607),$=s(7530),V=s(7527),K=s(1346),Q=s(3478),ie=s(841),fe=s(8951),J=s(4666),Ee=s(6024),xe=s(2277),Te=s(8784);b.exports={parse:p,valid:l,clean:o,inc:f,diff:g,major:i,minor:v,patch:c,prerelease:h,compare:y,rcompare:E,compareLoose:x,compareBuild:T,sort:A,rsort:w,gt:_,lt:C,eq:O,neq:I,gte:R,lte:D,cmp:N,coerce:k,Comparator:W,Range:Y,satisfies:F,toComparators:H,maxSatisfying:$,minSatisfying:V,minVersion:K,validRange:Q,outside:ie,gtr:fe,ltr:J,intersects:Ee,simplifyRange:xe,subset:Te,SemVer:n,re:d.re,src:d.src,tokens:d.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:u.compareIdentifiers,rcompareIdentifiers:u.rcompareIdentifiers}},3325:b=>{const m="2.0.0",d=Number.MAX_SAFE_INTEGER||9007199254740991,r=16,n=["major","premajor","minor","preminor","patch","prepatch","prerelease"];b.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_INTEGER:d,RELEASE_TYPES:n,SEMVER_SPEC_VERSION:m,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},4903:b=>{const m=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...s)=>console.error("SEMVER",...s):()=>{};b.exports=m},7342:b=>{const m=/^[0-9]+$/,s=(r,n)=>{const u=m.test(r),p=m.test(n);return u&&p&&(r=+r,n=+n),r===n?0:u&&!p?-1:p&&!u?1:rs(n,r);b.exports={compareIdentifiers:s,rcompareIdentifiers:d}},349:b=>{const m=Object.freeze({loose:!0}),s=Object.freeze({}),d=r=>r?typeof r!="object"?m:r:s;b.exports=d},3259:(b,m,s)=>{const{MAX_SAFE_COMPONENT_LENGTH:d}=s(3325),r=s(4903);m=b.exports={};const n=m.re=[],u=m.src=[],p=m.t={};let l=0;const o=(f,g,i)=>{const v=l++;r(f,v,g),p[f]=v,u[v]=g,n[v]=new RegExp(g,i?"g":void 0)};o("NUMERICIDENTIFIER","0|[1-9]\\d*"),o("NUMERICIDENTIFIERLOOSE","[0-9]+"),o("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),o("MAINVERSION",`(${u[p.NUMERICIDENTIFIER]})\\.(${u[p.NUMERICIDENTIFIER]})\\.(${u[p.NUMERICIDENTIFIER]})`),o("MAINVERSIONLOOSE",`(${u[p.NUMERICIDENTIFIERLOOSE]})\\.(${u[p.NUMERICIDENTIFIERLOOSE]})\\.(${u[p.NUMERICIDENTIFIERLOOSE]})`),o("PRERELEASEIDENTIFIER",`(?:${u[p.NUMERICIDENTIFIER]}|${u[p.NONNUMERICIDENTIFIER]})`),o("PRERELEASEIDENTIFIERLOOSE",`(?:${u[p.NUMERICIDENTIFIERLOOSE]}|${u[p.NONNUMERICIDENTIFIER]})`),o("PRERELEASE",`(?:-(${u[p.PRERELEASEIDENTIFIER]}(?:\\.${u[p.PRERELEASEIDENTIFIER]})*))`),o("PRERELEASELOOSE",`(?:-?(${u[p.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[p.PRERELEASEIDENTIFIERLOOSE]})*))`),o("BUILDIDENTIFIER","[0-9A-Za-z-]+"),o("BUILD",`(?:\\+(${u[p.BUILDIDENTIFIER]}(?:\\.${u[p.BUILDIDENTIFIER]})*))`),o("FULLPLAIN",`v?${u[p.MAINVERSION]}${u[p.PRERELEASE]}?${u[p.BUILD]}?`),o("FULL",`^${u[p.FULLPLAIN]}$`),o("LOOSEPLAIN",`[v=\\s]*${u[p.MAINVERSIONLOOSE]}${u[p.PRERELEASELOOSE]}?${u[p.BUILD]}?`),o("LOOSE",`^${u[p.LOOSEPLAIN]}$`),o("GTLT","((?:<|>)?=?)"),o("XRANGEIDENTIFIERLOOSE",`${u[p.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),o("XRANGEIDENTIFIER",`${u[p.NUMERICIDENTIFIER]}|x|X|\\*`),o("XRANGEPLAIN",`[v=\\s]*(${u[p.XRANGEIDENTIFIER]})(?:\\.(${u[p.XRANGEIDENTIFIER]})(?:\\.(${u[p.XRANGEIDENTIFIER]})(?:${u[p.PRERELEASE]})?${u[p.BUILD]}?)?)?`),o("XRANGEPLAINLOOSE",`[v=\\s]*(${u[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[p.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[p.XRANGEIDENTIFIERLOOSE]})(?:${u[p.PRERELEASELOOSE]})?${u[p.BUILD]}?)?)?`),o("XRANGE",`^${u[p.GTLT]}\\s*${u[p.XRANGEPLAIN]}$`),o("XRANGELOOSE",`^${u[p.GTLT]}\\s*${u[p.XRANGEPLAINLOOSE]}$`),o("COERCE",`(^|[^\\d])(\\d{1,${d}})(?:\\.(\\d{1,${d}}))?(?:\\.(\\d{1,${d}}))?(?:$|[^\\d])`),o("COERCERTL",u[p.COERCE],!0),o("LONETILDE","(?:~>?)"),o("TILDETRIM",`(\\s*)${u[p.LONETILDE]}\\s+`,!0),m.tildeTrimReplace="$1~",o("TILDE",`^${u[p.LONETILDE]}${u[p.XRANGEPLAIN]}$`),o("TILDELOOSE",`^${u[p.LONETILDE]}${u[p.XRANGEPLAINLOOSE]}$`),o("LONECARET","(?:\\^)"),o("CARETTRIM",`(\\s*)${u[p.LONECARET]}\\s+`,!0),m.caretTrimReplace="$1^",o("CARET",`^${u[p.LONECARET]}${u[p.XRANGEPLAIN]}$`),o("CARETLOOSE",`^${u[p.LONECARET]}${u[p.XRANGEPLAINLOOSE]}$`),o("COMPARATORLOOSE",`^${u[p.GTLT]}\\s*(${u[p.LOOSEPLAIN]})$|^$`),o("COMPARATOR",`^${u[p.GTLT]}\\s*(${u[p.FULLPLAIN]})$|^$`),o("COMPARATORTRIM",`(\\s*)${u[p.GTLT]}\\s*(${u[p.LOOSEPLAIN]}|${u[p.XRANGEPLAIN]})`,!0),m.comparatorTrimReplace="$1$2$3",o("HYPHENRANGE",`^\\s*(${u[p.XRANGEPLAIN]})\\s+-\\s+(${u[p.XRANGEPLAIN]})\\s*$`),o("HYPHENRANGELOOSE",`^\\s*(${u[p.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[p.XRANGEPLAINLOOSE]})\\s*$`),o("STAR","(<|>)?=?\\s*\\*"),o("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),o("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},8951:(b,m,s)=>{const d=s(841),r=(n,u,p)=>d(n,u,">",p);b.exports=r},6024:(b,m,s)=>{const d=s(1459),r=(n,u,p)=>(n=new d(n,p),u=new d(u,p),n.intersects(u,p));b.exports=r},4666:(b,m,s)=>{const d=s(841),r=(n,u,p)=>d(n,u,"<",p);b.exports=r},7530:(b,m,s)=>{const d=s(1630),r=s(1459),n=(u,p,l)=>{let o=null,f=null,g=null;try{g=new r(p,l)}catch(i){return null}return u.forEach(i=>{g.test(i)&&(!o||f.compare(i)===-1)&&(o=i,f=new d(o,l))}),o};b.exports=n},7527:(b,m,s)=>{const d=s(1630),r=s(1459),n=(u,p,l)=>{let o=null,f=null,g=null;try{g=new r(p,l)}catch(i){return null}return u.forEach(i=>{g.test(i)&&(!o||f.compare(i)===1)&&(o=i,f=new d(o,l))}),o};b.exports=n},1346:(b,m,s)=>{const d=s(1630),r=s(1459),n=s(145),u=(p,l)=>{p=new r(p,l);let o=new d("0.0.0");if(p.test(o)||(o=new d("0.0.0-0"),p.test(o)))return o;o=null;for(let f=0;f{const c=new d(v.semver.version);switch(v.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!i||n(c,i))&&(i=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${v.operator}`)}}),i&&(!o||n(o,i))&&(o=i)}return o&&p.test(o)?o:null};b.exports=u},841:(b,m,s)=>{const d=s(1630),r=s(8325),{ANY:n}=r,u=s(1459),p=s(5374),l=s(145),o=s(5429),f=s(7888),g=s(9778),i=(v,c,h,y)=>{v=new d(v,y),c=new u(c,y);let E,x,T,A,w;switch(h){case">":E=l,x=f,T=o,A=">",w=">=";break;case"<":E=o,x=g,T=l,A="<",w="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(p(v,c,y))return!1;for(let _=0;_{R.semver===n&&(R=new r(">=0.0.0")),O=O||R,I=I||R,E(R.semver,O.semver,y)?O=R:T(R.semver,I.semver,y)&&(I=R)}),O.operator===A||O.operator===w||(!I.operator||I.operator===A)&&x(v,I.semver))return!1;if(I.operator===w&&T(v,I.semver))return!1}return!0};b.exports=i},2277:(b,m,s)=>{const d=s(5374),r=s(9123);b.exports=(n,u,p)=>{const l=[];let o=null,f=null;const g=n.sort((h,y)=>r(h,y,p));for(const h of g)d(h,u,p)?(f=h,o||(o=h)):(f&&l.push([o,f]),f=null,o=null);o&&l.push([o,null]);const i=[];for(const[h,y]of l)h===y?i.push(h):!y&&h===g[0]?i.push("*"):y?h===g[0]?i.push(`<=${y}`):i.push(`${h} - ${y}`):i.push(`>=${h}`);const v=i.join(" || "),c=typeof u.raw=="string"?u.raw:String(u);return v.length{const d=s(1459),r=s(8325),{ANY:n}=r,u=s(5374),p=s(9123),l=(c,h,y={})=>{if(c===h)return!0;c=new d(c,y),h=new d(h,y);let E=!1;e:for(const x of c.set){for(const T of h.set){const A=g(x,T,y);if(E=E||A!==null,A)continue e}if(E)return!1}return!0},o=[new r(">=0.0.0-0")],f=[new r(">=0.0.0")],g=(c,h,y)=>{if(c===h)return!0;if(c.length===1&&c[0].semver===n){if(h.length===1&&h[0].semver===n)return!0;y.includePrerelease?c=o:c=f}if(h.length===1&&h[0].semver===n){if(y.includePrerelease)return!0;h=f}const E=new Set;let x,T;for(const D of c)D.operator===">"||D.operator===">="?x=i(x,D,y):D.operator==="<"||D.operator==="<="?T=v(T,D,y):E.add(D.semver);if(E.size>1)return null;let A;if(x&&T){if(A=p(x.semver,T.semver,y),A>0)return null;if(A===0&&(x.operator!==">="||T.operator!=="<="))return null}for(const D of E){if(x&&!u(D,String(x),y)||T&&!u(D,String(T),y))return null;for(const N of h)if(!u(D,String(N),y))return!1;return!0}let w,_,C,O,I=T&&!y.includePrerelease&&T.semver.prerelease.length?T.semver:!1,R=x&&!y.includePrerelease&&x.semver.prerelease.length?x.semver:!1;I&&I.prerelease.length===1&&T.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(const D of h){if(O=O||D.operator===">"||D.operator===">=",C=C||D.operator==="<"||D.operator==="<=",x){if(R&&D.semver.prerelease&&D.semver.prerelease.length&&D.semver.major===R.major&&D.semver.minor===R.minor&&D.semver.patch===R.patch&&(R=!1),D.operator===">"||D.operator===">="){if(w=i(x,D,y),w===D&&w!==x)return!1}else if(x.operator===">="&&!u(x.semver,String(D),y))return!1}if(T){if(I&&D.semver.prerelease&&D.semver.prerelease.length&&D.semver.major===I.major&&D.semver.minor===I.minor&&D.semver.patch===I.patch&&(I=!1),D.operator==="<"||D.operator==="<="){if(_=v(T,D,y),_===D&&_!==T)return!1}else if(T.operator==="<="&&!u(T.semver,String(D),y))return!1}if(!D.operator&&(T||x)&&A!==0)return!1}return!(x&&C&&!T&&A!==0||T&&O&&!x&&A!==0||R||I)},i=(c,h,y)=>{if(!c)return h;const E=p(c.semver,h.semver,y);return E>0?c:E<0||h.operator===">"&&c.operator===">="?h:c},v=(c,h,y)=>{if(!c)return h;const E=p(c.semver,h.semver,y);return E<0?c:E>0||h.operator==="<"&&c.operator==="<="?h:c};b.exports=l},6607:(b,m,s)=>{const d=s(1459),r=(n,u)=>new d(n,u).set.map(p=>p.map(l=>l.value).join(" ").trim().split(" "));b.exports=r},3478:(b,m,s)=>{const d=s(1459),r=(n,u)=>{try{return new d(n,u).range||"*"}catch(p){return null}};b.exports=r},9737:()=>{+function(b){"use strict";var m=".dropdown-backdrop",s='[data-toggle="dropdown"]',d=function(l){b(l).on("click.bs.dropdown",this.toggle)};d.VERSION="3.4.1";function r(l){var o=l.attr("data-target");o||(o=l.attr("href"),o=o&&/#[A-Za-z]/.test(o)&&o.replace(/.*(?=#[^\s]*$)/,""));var f=o!=="#"?b(document).find(o):null;return f&&f.length?f:l.parent()}function n(l){l&&l.which===3||(b(m).remove(),b(s).each(function(){var o=b(this),f=r(o),g={relatedTarget:this};f.hasClass("open")&&(l&&l.type=="click"&&/input|textarea/i.test(l.target.tagName)&&b.contains(f[0],l.target)||(f.trigger(l=b.Event("hide.bs.dropdown",g)),!l.isDefaultPrevented()&&(o.attr("aria-expanded","false"),f.removeClass("open").trigger(b.Event("hidden.bs.dropdown",g)))))}))}d.prototype.toggle=function(l){var o=b(this);if(!o.is(".disabled, :disabled")){var f=r(o),g=f.hasClass("open");if(n(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&b(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(b(this)).on("click",n);var i={relatedTarget:this};if(f.trigger(l=b.Event("show.bs.dropdown",i)),l.isDefaultPrevented())return;o.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(b.Event("shown.bs.dropdown",i))}return!1}},d.prototype.keydown=function(l){if(!(!/(38|40|27|32)/.test(l.which)||/input|textarea/i.test(l.target.tagName))){var o=b(this);if(l.preventDefault(),l.stopPropagation(),!o.is(".disabled, :disabled")){var f=r(o),g=f.hasClass("open");if(!g&&l.which!=27||g&&l.which==27)return l.which==27&&f.find(s).trigger("focus"),o.trigger("click");var i=" li:not(.disabled):visible a",v=f.find(".dropdown-menu"+i);if(v.length){var c=v.index(l.target);l.which==38&&c>0&&c--,l.which==40&&c{+function(b){"use strict";var m=function(r,n){this.init("popover",r,n)};if(!b.fn.tooltip)throw new Error("Popover requires tooltip.js");m.VERSION="3.4.1",m.DEFAULTS=b.extend({},b.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),m.prototype=b.extend({},b.fn.tooltip.Constructor.prototype),m.prototype.constructor=m,m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.setContent=function(){var r=this.tip(),n=this.getTitle(),u=this.getContent();if(this.options.html){var p=typeof u;this.options.sanitize&&(n=this.sanitizeHtml(n),p==="string"&&(u=this.sanitizeHtml(u))),r.find(".popover-title").html(n),r.find(".popover-content").children().detach().end()[p==="string"?"html":"append"](u)}else r.find(".popover-title").text(n),r.find(".popover-content").children().detach().end().text(u);r.removeClass("fade top bottom left right in"),r.find(".popover-title").html()||r.find(".popover-title").hide()},m.prototype.hasContent=function(){return this.getTitle()||this.getContent()},m.prototype.getContent=function(){var r=this.$element,n=this.options;return r.attr("data-content")||(typeof n.content=="function"?n.content.call(r[0]):n.content)},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};function s(r){return this.each(function(){var n=b(this),u=n.data("bs.popover"),p=typeof r=="object"&&r;!u&&/destroy|hide/.test(r)||(u||n.data("bs.popover",u=new m(this,p)),typeof r=="string"&&u[r]())})}var d=b.fn.popover;b.fn.popover=s,b.fn.popover.Constructor=m,b.fn.popover.noConflict=function(){return b.fn.popover=d,this}}(jQuery)},3497:()=>{+function(b){"use strict";function m(r,n){this.$body=b(document.body),this.$scrollElement=b(r).is(document.body)?b(window):b(r),this.options=b.extend({},m.DEFAULTS,n),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",b.proxy(this.process,this)),this.refresh(),this.process()}m.VERSION="3.4.1",m.DEFAULTS={offset:10},m.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},m.prototype.refresh=function(){var r=this,n="offset",u=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),b.isWindow(this.$scrollElement[0])||(n="position",u=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var p=b(this),l=p.data("target")||p.attr("href"),o=/^#./.test(l)&&b(l);return o&&o.length&&o.is(":visible")&&[[o[n]().top+u,l]]||null}).sort(function(p,l){return p[0]-l[0]}).each(function(){r.offsets.push(this[0]),r.targets.push(this[1])})},m.prototype.process=function(){var r=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),u=this.options.offset+n-this.$scrollElement.height(),p=this.offsets,l=this.targets,o=this.activeTarget,f;if(this.scrollHeight!=n&&this.refresh(),r>=u)return o!=(f=l[l.length-1])&&this.activate(f);if(o&&r=p[f]&&(p[f+1]===void 0||r
{+function(b){"use strict";var m=function(n){this.element=b(n)};m.VERSION="3.4.1",m.TRANSITION_DURATION=150,m.prototype.show=function(){var n=this.element,u=n.closest("ul:not(.dropdown-menu)"),p=n.data("target");if(p||(p=n.attr("href"),p=p&&p.replace(/.*(?=#[^\s]*$)/,"")),!n.parent("li").hasClass("active")){var l=u.find(".active:last a"),o=b.Event("hide.bs.tab",{relatedTarget:n[0]}),f=b.Event("show.bs.tab",{relatedTarget:l[0]});if(l.trigger(o),n.trigger(f),!(f.isDefaultPrevented()||o.isDefaultPrevented())){var g=b(document).find(p);this.activate(n.closest("li"),u),this.activate(g,g.parent(),function(){l.trigger({type:"hidden.bs.tab",relatedTarget:n[0]}),n.trigger({type:"shown.bs.tab",relatedTarget:l[0]})})}}},m.prototype.activate=function(n,u,p){var l=u.find("> .active"),o=p&&b.support.transition&&(l.length&&l.hasClass("fade")||!!u.find("> .fade").length);function f(){l.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),o?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),p&&p()}l.length&&o?l.one("bsTransitionEnd",f).emulateTransitionEnd(m.TRANSITION_DURATION):f(),l.removeClass("in")};function s(n){return this.each(function(){var u=b(this),p=u.data("bs.tab");p||u.data("bs.tab",p=new m(this)),typeof n=="string"&&p[n]()})}var d=b.fn.tab;b.fn.tab=s,b.fn.tab.Constructor=m,b.fn.tab.noConflict=function(){return b.fn.tab=d,this};var r=function(n){n.preventDefault(),s.call(b(this),"show")};b(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery)},6278:()=>{+function(b){"use strict";var m=["sanitize","whiteList","sanitizeFn"],s=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],d=/^aria-[\w-]*$/i,r={"*":["class","dir","id","lang","role",d],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},n=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,u=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function p(i,v){var c=i.nodeName.toLowerCase();if(b.inArray(c,v)!==-1)return b.inArray(c,s)!==-1?Boolean(i.nodeValue.match(n)||i.nodeValue.match(u)):!0;for(var h=b(v).filter(function(x,T){return T instanceof RegExp}),y=0,E=h.length;y
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:r},o.prototype.init=function(i,v,c){if(this.enabled=!0,this.type=i,this.$element=b(v),this.options=this.getOptions(c),this.$viewport=this.options.viewport&&b(document).find(b.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var h=this.options.trigger.split(" "),y=h.length;y--;){var E=h[y];if(E=="click")this.$element.on("click."+this.type,this.options.selector,b.proxy(this.toggle,this));else if(E!="manual"){var x=E=="hover"?"mouseenter":"focusin",T=E=="hover"?"mouseleave":"focusout";this.$element.on(x+"."+this.type,this.options.selector,b.proxy(this.enter,this)),this.$element.on(T+"."+this.type,this.options.selector,b.proxy(this.leave,this))}}this.options.selector?this._options=b.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},o.prototype.getDefaults=function(){return o.DEFAULTS},o.prototype.getOptions=function(i){var v=this.$element.data();for(var c in v)v.hasOwnProperty(c)&&b.inArray(c,m)!==-1&&delete v[c];return i=b.extend({},this.getDefaults(),v,i),i.delay&&typeof i.delay=="number"&&(i.delay={show:i.delay,hide:i.delay}),i.sanitize&&(i.template=l(i.template,i.whiteList,i.sanitizeFn)),i},o.prototype.getDelegateOptions=function(){var i={},v=this.getDefaults();return this._options&&b.each(this._options,function(c,h){v[c]!=h&&(i[c]=h)}),i},o.prototype.enter=function(i){var v=i instanceof this.constructor?i:b(i.currentTarget).data("bs."+this.type);if(v||(v=new this.constructor(i.currentTarget,this.getDelegateOptions()),b(i.currentTarget).data("bs."+this.type,v)),i instanceof b.Event&&(v.inState[i.type=="focusin"?"focus":"hover"]=!0),v.tip().hasClass("in")||v.hoverState=="in"){v.hoverState="in";return}if(clearTimeout(v.timeout),v.hoverState="in",!v.options.delay||!v.options.delay.show)return v.show();v.timeout=setTimeout(function(){v.hoverState=="in"&&v.show()},v.options.delay.show)},o.prototype.isInStateTrue=function(){for(var i in this.inState)if(this.inState[i])return!0;return!1},o.prototype.leave=function(i){var v=i instanceof this.constructor?i:b(i.currentTarget).data("bs."+this.type);if(v||(v=new this.constructor(i.currentTarget,this.getDelegateOptions()),b(i.currentTarget).data("bs."+this.type,v)),i instanceof b.Event&&(v.inState[i.type=="focusout"?"focus":"hover"]=!1),!v.isInStateTrue()){if(clearTimeout(v.timeout),v.hoverState="out",!v.options.delay||!v.options.delay.hide)return v.hide();v.timeout=setTimeout(function(){v.hoverState=="out"&&v.hide()},v.options.delay.hide)}},o.prototype.show=function(){var i=b.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(i);var v=b.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(i.isDefaultPrevented()||!v)return;var c=this,h=this.tip(),y=this.getUID(this.type);this.setContent(),h.attr("id",y),this.$element.attr("aria-describedby",y),this.options.animation&&h.addClass("fade");var E=typeof this.options.placement=="function"?this.options.placement.call(this,h[0],this.$element[0]):this.options.placement,x=/\s?auto?\s?/i,T=x.test(E);T&&(E=E.replace(x,"")||"top"),h.detach().css({top:0,left:0,display:"block"}).addClass(E).data("bs."+this.type,this),this.options.container?h.appendTo(b(document).find(this.options.container)):h.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var A=this.getPosition(),w=h[0].offsetWidth,_=h[0].offsetHeight;if(T){var C=E,O=this.getPosition(this.$viewport);E=E=="bottom"&&A.bottom+_>O.bottom?"top":E=="top"&&A.top-_