diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..2e6e4c13 --- /dev/null +++ b/404.html @@ -0,0 +1,112 @@ + + + + + + BUTR.CrashReportViewer + + + + + + + + + + + + + + + + +
+
+
+
+

Loading...

+
+
+
+
+ Downloading file list +
+
+
+
+
+
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BUTR.Site.NexusMods.Client.styles.css b/BUTR.Site.NexusMods.Client.styles.css new file mode 100644 index 00000000..3af64704 --- /dev/null +++ b/BUTR.Site.NexusMods.Client.styles.css @@ -0,0 +1,49 @@ +/* /Components/Diff.razor.rz.scp.css */ +ins[b-jivarn9zam] { + text-decoration: none; + background-color: #d4fcbc; +} + +del[b-jivarn9zam] { + text-decoration: none; + background-color: #fbb6c2; + color: #555; +} +/* /Components/Spinner.razor.rz.scp.css */ +.loading[b-5x07ub1hz8] { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #fff; +} + +.loader[b-5x07ub1hz8] { + left: 50%; + margin-left: -4em; + font-size: 10px; + border: .8em solid rgba(218, 219, 223, 1); + border-left: .8em solid rgba(58, 166, 165, 1); + animation: spin-b-5x07ub1hz8 1.1s infinite linear; +} + +.loader[b-5x07ub1hz8], .loader[b-5x07ub1hz8]:after { + border-radius: 50%; + width: 8em; + height: 8em; + display: block; + position: absolute; + top: 50%; + margin-top: -4.05em; +} + +@keyframes spin-b-5x07ub1hz8 { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} diff --git a/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.css b/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.css new file mode 100755 index 00000000..aaea34e2 --- /dev/null +++ b/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.css @@ -0,0 +1,3205 @@ +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + 0% { + opacity: 0; + } +} +@keyframes slideIn { + 0% { + transform: translateY(1rem); + opacity: 0; + } + 100% { + transform: translateY(0rem); + opacity: 1; + } + 0% { + transform: translateY(1rem); + opacity: 0; + } +} +.badge-close { + cursor: pointer; +} +.badge-close::before { + height: 2px; + width: 50%; +} +.badge-close::after { + height: 50%; + width: 2px; +} +.badge-close:hover, .badge-close:focus { + background-color: rgba(10, 10, 10, 0.3); +} +.badge-close:active { + background-color: rgba(10, 10, 10, 0.4); +} + +.navbar-nav .nav-item:hover { + cursor: pointer; +} + +.navbar-nav .nav-link:hover { + cursor: pointer; +} + +.nav .nav-link:hover { + cursor: pointer; +} + +.nav-item { + position: relative; +} + +.b-bar-horizontal .nav-item.dropdown .dropdown-menu > .dropdown > .dropdown-item { + width: 100%; +} +.b-bar-horizontal .nav-item.dropdown .dropdown-menu > .dropdown > .dropdown-item::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.b-bar-horizontal .nav-item.dropdown .dropdown-menu > .dropdown > .dropdown-item:empty::after { + margin-left: 0; +} +.b-bar-horizontal .nav-item.dropdown .dropdown-menu > .dropdown > .dropdown-item::after { + transform: rotate(-90deg); + position: absolute; + right: 10%; + top: 45%; +} +.b-bar-horizontal .nav-item.dropdown .dropdown-menu > .dropdown > .dropdown-menu { + top: 0; + left: 100%; + margin-left: 0rem; + margin-right: 0.1rem; +} + +.btn-group > .b-tooltip:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .b-tooltip:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group.btn-group-toggle .btn.active.disabled { + opacity: 1; +} + +.btn-group-vertical > .b-tooltip:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .b-tooltip:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-xs, .btn-group-xs > .btn { + padding: 0.15rem 0.5rem; + font-size: 0.75rem; + line-height: 1.5; + border-radius: 0.15rem; +} + +.btn-md, .btn-group-md > .btn { + padding: 0.47rem 1rem; + font-size: 1.125rem; + line-height: 1.5; + border-radius: 0.25rem; +} + +.btn-xl, .btn-group-xl > .btn { + padding: 0.5rem 1rem; + font-size: 1.5rem; + line-height: 1.5; + border-radius: 0.4rem; +} + +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type=submit].btn-block, +input[type=reset].btn-block, +input[type=button].btn-block { + width: 100%; +} + +.card-deck .card { + height: 100%; +} + +.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible { + z-index: 11; +} + +.dropdown-menu-position-strategy { + width: max-content; + top: 0; + left: 0; +} + +.dropdown-menu-position-strategy-absolute { + position: absolute; +} + +.dropdown-menu-position-strategy-fixed { + position: fixed; +} + +.dropdown-toggle.dropdown-toggle-hidden::after { + content: none !important; +} + +.dropdown-toggle.dropdown-toggle-hidden::before { + content: none !important; +} + +.dropdown-menu.show { + animation-duration: 0.3s; + animation-fill-mode: both; + animation-name: fadeIn; +} + +.dropdown-menu a:not([href]).dropdown-item:not(.disabled) { + cursor: pointer; +} + +.dropdown-menu.dropdown-menu-scrollable { + max-height: var(--dropdown-list-menu-max-height, 200px); + overflow-y: scroll; +} + +.b-is-autocomplete .dropdown-menu { + width: 100%; + max-height: var(--autocomplete-menu-max-height, 200px); + overflow-y: scroll; +} +.b-is-autocomplete .dropdown-menu .dropdown-item.focus { + color: #1e2125 !important; + background-color: #e9ecef; +} + +.b-is-autocomplete.b-is-autocomplete-multipleselection { + display: flex; + align-items: center; + flex-wrap: wrap; + padding-top: 0.25rem; + max-width: 100%; + width: 100%; + cursor: text; + min-height: calc(1.5em + 0.75rem + 2px); + height: auto; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.b-is-autocomplete.b-is-autocomplete-multipleselection > input.form-control { + display: inline-block; + border: none; + box-shadow: none; + outline: none; + background-color: transparent; + max-width: inherit; + width: auto; + flex-grow: 1; +} +.b-is-autocomplete.b-is-autocomplete-multipleselection > .badge { + margin-bottom: 0.25rem; + line-height: 1.5; + flex-grow: initial; +} +.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu { + top: 100%; +} +.b-is-autocomplete.b-is-autocomplete-multipleselection.focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.dropdown.btn-group > .btn.dropdown-toggle-split + .dropdown-menu.show { + top: 100%; +} + +.dropdown { + position: relative; +} +.dropdown.dropdown-disabled.b-is-autocomplete { + background-color: var(--b-theme-light, #e9ecef); +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) { + position: relative; +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) > .dropdown-toggle { + width: 100%; +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) > .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) > .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) > .dropdown-toggle::after { + position: absolute; + right: 10%; + top: 45%; +} +.dropdown > .dropdown-menu > .dropdown:not(.dropup, .dropstart, .dropend) > .dropdown-menu { + top: auto; + left: auto; + bottom: auto; + right: auto; +} +.dropdown > .dropdown-menu > .dropdown.dropup .dropdown-toggle::after, .dropdown > .dropdown-menu > .dropdown.dropend .dropdown-toggle::after { + vertical-align: 0; + position: absolute; + right: 10%; + top: 45%; +} +.dropdown > .dropdown-menu > .dropdown.dropstart .dropdown-toggle::after { + vertical-align: 0; +} +.dropdown.dropup > .dropdown-menu { + top: auto; + bottom: auto; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropdown.dropup > .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropdown.dropup > .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown.dropend > .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropdown.dropend > .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropdown.dropend > .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown.dropend > .dropdown-toggle::after { + vertical-align: 0; +} +.dropdown.dropstart > .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropdown.dropstart > .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropdown.dropstart > .dropdown-toggle::after { + display: none; +} +.dropdown.dropstart > .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropdown.dropstart > .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown.dropstart > .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu-start { + right: auto; + left: 0; +} + +.dropdown-menu-end { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + right: 0; + left: auto; + } +} +hr.divider.divider-text { + position: unset; +} +hr.divider.divider-text::before { + top: unset; +} + +.snackbar-stack { + z-index: 1059 !important; +} + +.snackbar { + z-index: 1060 !important; +} + +.figure.figure-is-16x16 { + height: 16px; + width: 16px; +} +.figure.figure-is-24x24 { + height: 24px; + width: 24px; +} +.figure.figure-is-32x32 { + height: 32px; + width: 32px; +} +.figure.figure-is-48x48 { + height: 48px; + width: 48px; +} +.figure.figure-is-64x64 { + height: 64px; + width: 64px; +} +.figure.figure-is-96x96 { + height: 96px; + width: 96px; +} +.figure.figure-is-128x128 { + height: 128px; + width: 128px; +} +.figure.figure-is-256x256 { + height: 256px; + width: 256px; +} +.figure.figure-is-512x512 { + height: 512px; + width: 512px; +} + +.form-check > .form-check-input.form-check-input-pointer, +.form-check > .form-check-label.form-check-label-pointer, +.form-switch > .form-check-input.form-check-input-pointer, +.form-switch > .form-check-label.form-check-label-pointer { + cursor: pointer; +} + +.form-control-plaintext.form-control-xs, .form-control-plaintext.form-control-md, .form-control-plaintext.form-control-xl { + padding-right: 0; + padding-left: 0; +} + +.form-control-xs { + height: calc(1.5em + 0.3rem + 2px); + padding: 0.15rem 0.5rem; + font-size: 0.75rem; + line-height: 1.5; + border-radius: 0.15rem; +} + +.form-control-md { + height: calc(1.5em + 0.94rem + 2px); + padding: 0.47rem 1rem; + font-size: 1.125rem; + line-height: 1.5; + border-radius: 0.25rem; +} + +.form-control-xl { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.5rem; + line-height: 1.5; + border-radius: 0.4rem; +} + +.form-select-xs { + height: calc(1.5em + 0.3rem + 2px); + padding-top: 0.15rem; + padding-bottom: 0.15rem; + padding-left: 0.5rem; + font-size: 0.75rem; +} + +.form-select-md { + height: calc(1.5em + 0.94rem + 2px); + padding-top: 0.47rem; + padding-bottom: 0.47rem; + padding-left: 1rem; + font-size: 1.125rem; +} + +.form-select-xl { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.5rem; +} + +.input-group > .b-numeric:not(:last-child) > input, +.input-group > div.flatpickr-wrapper:not(:last-child) > input { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .b-numeric:not(:first-child) > input, +.input-group > div.flatpickr-wrapper:not(:first-child) > input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-xs > .form-control:not(textarea), +.input-group-xs > .form-select, +.input-group-xs > .b-numeric > input { + height: calc(1.5em + 0.3rem + 2px); +} + +.input-group-xs > .form-control, +.input-group-xs > .form-select, +.input-group-xs > .input-group-text, +.input-group-xs > .btn, +.input-group-xs > .b-numeric > input { + padding: 0.15rem 0.5rem; + font-size: 0.75rem; + line-height: 1.5; + border-radius: 0.15rem; +} + +.input-group-sm > .b-numeric > input { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .b-numeric > input { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-md > .form-control:not(textarea), +.input-group-md > .form-select, +.input-group-md > .b-numeric > input { + height: calc(1.5em + 0.94rem + 2px); +} + +.input-group-md > .form-control, +.input-group-md > .form-select, +.input-group-md > .input-group-text, +.input-group-md > .btn, +.input-group-md > .b-numeric > input { + padding: 0.47rem 1rem; + font-size: 1.125rem; + line-height: 1.5; + border-radius: 0.25rem; +} + +.input-group-lg > .b-numeric > input { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .b-numeric > input { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-xl > .form-control:not(textarea), +.input-group-xl > .form-select, +.input-group-xl > .b-numeric > input { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-xl > .form-control, +.input-group-xl > .form-select, +.input-group-xl > .input-group-text, +.input-group-xl > .btn, +.input-group-xl > .b-numeric > input { + padding: 0.5rem 1rem; + font-size: 1.5rem; + line-height: 1.5; + border-radius: 0.4rem; +} + +.input-group-xs > .form-select, +.input-group-md > .form-select, +.input-group-xl > .form-select { + padding-right: 1.75rem; +} + +.input-group:not(.has-validation) > .dropdown:first-child > .btn:not(:last-child).dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group.has-validation > .dropdown > .btn:not(:last-child).dropdown-toggle, +.input-group.has-validation > .dropdown > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > div.flatpickr-wrapper > .form-control { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} + +.form-check > .form-check-input.form-check-input-xs { + width: 0.7rem; + height: 0.7rem; +} +.form-check > .form-check-input.form-check-input-xs + .form-check-label { + line-height: "normal"; + padding-left: 0px; +} + +.form-check > .form-check-input.form-check-input-sm { + width: 0.8rem; + height: 0.8rem; +} +.form-check > .form-check-input.form-check-input-sm + .form-check-label { + line-height: "normal"; + padding-left: 0px; +} + +.form-check > .form-check-input.form-check-input-md { + width: 1.25rem; + height: 1.25rem; +} +.form-check > .form-check-input.form-check-input-md + .form-check-label { + line-height: 1.7rem; + padding-left: 3px; +} + +.form-check > .form-check-input.form-check-input-lg { + width: 1.55rem; + height: 1.55rem; +} +.form-check > .form-check-input.form-check-input-lg + .form-check-label { + line-height: 2rem; + padding-left: 6px; +} + +.form-check > .form-check-input.form-check-input-xl { + width: 1.85rem; + height: 1.85rem; +} +.form-check > .form-check-input.form-check-input-xl + .form-check-label { + line-height: 2.5rem; + padding-left: 10px; +} + +select[readonly] { + pointer-events: none; +} +select[readonly] option, +select[readonly] optgroup { + display: none; +} + +.b-numeric { + position: relative; + width: 100%; +} +.b-numeric:hover > .b-numeric-handler-wrap { + opacity: 1; +} +.b-numeric input:disabled + .b-numeric-handler-wrap, .b-numeric input:read-only + .b-numeric-handler-wrap { + display: none; +} + +.b-numeric-handler-wrap { + position: absolute; + top: 0; + right: 0; + width: 22px; + height: 100%; + background: #fff; + border: 1px solid #d9d9d9; + opacity: 0; +} + +.input-group .b-numeric { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; +} + +.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down { + border-top: 1px solid #d9d9d9; +} + +.b-numeric-handler { + position: relative; + display: flex; + width: 100%; + height: 50%; + overflow: hidden; + color: rgba(0, 0, 0, 0.45); + font-weight: 700; + line-height: 0; + align-items: center; + justify-content: center; +} +.b-numeric-handler.btn { + padding: 0; +} + +.form-control + .b-numeric-handler-wrap { + font-size: 1rem; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.form-control-xs + .b-numeric-handler-wrap { + font-size: 0.75rem; + border-top-right-radius: 0.15rem; + border-bottom-right-radius: 0.15rem; +} +.form-control-xs + .b-numeric-handler-wrap > .b-numeric-handler.btn { + font-size: 0.75rem; +} + +.form-control-sm + .b-numeric-handler-wrap { + font-size: 0.875rem; + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} +.form-control-sm + .b-numeric-handler-wrap > .b-numeric-handler.btn { + font-size: 0.875rem; +} + +.form-control-md + .b-numeric-handler-wrap { + font-size: 1.125rem; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.form-control-md + .b-numeric-handler-wrap > .b-numeric-handler.btn { + font-size: 1.125rem; +} + +.form-control-lg + .b-numeric-handler-wrap { + font-size: 1.25rem; + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} +.form-control-lg + .b-numeric-handler-wrap > .b-numeric-handler.btn { + font-size: 1.25rem; +} + +.form-control-xl + .b-numeric-handler-wrap { + font-size: 1.5rem; + border-top-right-radius: 0.4rem; + border-bottom-right-radius: 0.4rem; +} +.form-control-xl + .b-numeric-handler-wrap > .b-numeric-handler.btn { + font-size: 1.5rem; +} + +.custom-file-label { + overflow: hidden; +} + +input[readonly][type=range], +input[readonly=readonly][type=range] { + pointer-events: none; +} +input[readonly][type=range]::-webkit-slider-thumb, +input[readonly=readonly][type=range]::-webkit-slider-thumb { + pointer-events: none; +} +input[readonly][type=range]::-moz-range-thumb, +input[readonly=readonly][type=range]::-moz-range-thumb { + pointer-events: none; +} +input[readonly][type=range]::-ms-thumb, +input[readonly=readonly][type=range]::-ms-thumb { + pointer-events: none; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} +.form-inline .form-check { + width: 100%; +} +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .form-select { + align-items: center; + justify-content: center; + } + .form-inline .form-check-label { + margin-bottom: 0; + } +} + +.b-input-color-picker { + padding: 0.5rem 0.6rem; +} +.b-input-color-picker > .b-input-color-picker-preview { + height: 0.55rem; +} + +.focus-trap { + display: contents; +} + +.form-file input[type=file] { + margin-left: -2px !important; +} + +.form-file input[type=file]::-webkit-file-upload-button { + display: none; +} + +.form-file input[type=file]::file-selector-button { + display: none; +} + +.form-label-required:after { + content: " *"; + color: var(--b-theme-danger, #dc3545); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.jumbotron.jumbotron-primary { + background-color: #007bff; + color: #fff; +} +.jumbotron.jumbotron-secondary { + background-color: #6c757d; + color: #fff; +} +.jumbotron.jumbotron-success { + background-color: #28a745; + color: #fff; +} +.jumbotron.jumbotron-info { + background-color: #17a2b8; + color: #fff; +} +.jumbotron.jumbotron-warning { + background-color: #ffc107; + color: #212529; +} +.jumbotron.jumbotron-danger { + background-color: #dc3545; + color: #fff; +} +.jumbotron.jumbotron-light { + background-color: #f8f9fa; + color: #212529; +} +.jumbotron.jumbotron-dark { + background-color: #343a40; + color: #fff; +} +.jumbotron.jumbotron-link { + background-color: #3273dc; + color: #fff; +} + +.b-layout-header-fixed { + z-index: 1030; +} + +.b-layout-footer-fixed { + z-index: 1030; +} + +.b-layout-sider-content { + z-index: 1031; +} + +li.list-group-item-action { + cursor: pointer; +} + +.list-group-scrollable { + overflow-y: scroll; +} + +.media { + display: flex; + align-items: flex-start; +} + +.media-body { + flex: 1; +} + +.modal.fade { + transition: opacity var(--modal-animation-duration, 300ms) linear; +} +.modal.fade .modal-dialog { + transition: -webkit-transform var(--modal-animation-duration, 300ms) ease-out; + transition: transform var(--modal-animation-duration, 300ms) ease-out; +} + +.offcanvas-footer { + position: sticky; + bottom: 0; + top: auto; + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} + +.page-item:not(.disabled) .page-link { + cursor: pointer; +} + +.pagination-xs .page-link { + padding: 0.125rem 0.25rem; + font-size: 0.75rem; + line-height: 1.5; +} +.pagination-xs .page-item:first-child .page-link { + border-top-left-radius: 0.15rem; + border-bottom-left-radius: 0.15rem; +} +.pagination-xs .page-item:last-child .page-link { + border-top-right-radius: 0.15rem; + border-bottom-right-radius: 0.15rem; +} + +.pagination-md .page-link { + padding: 0.625rem 1.25rem; + font-size: 1.125rem; + line-height: 1.5; +} +.pagination-md .page-item:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.pagination-md .page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.pagination-xl .page-link { + padding: 1rem 2rem; + font-size: 1.5rem; + line-height: 1.5; +} +.pagination-xl .page-item:first-child .page-link { + border-top-left-radius: 0.4rem; + border-bottom-left-radius: 0.4rem; +} +.pagination-xl .page-item:last-child .page-link { + border-top-right-radius: 0.4rem; + border-bottom-right-radius: 0.4rem; +} + +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary { + background-color: #007bff; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary { + background-color: #6c757d; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success { + background-color: #28a745; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info { + background-color: #17a2b8; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning { + background-color: #ffc107; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger { + background-color: #dc3545; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light { + background-color: #f8f9fa; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark { + background-color: #343a40; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link { + background-color: #3273dc; +} + +.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item { + cursor: pointer; +} +.rating.rating-disabled { + opacity: 0.65; +} +.rating .rating-item.rating-item-primary { + color: #007bff; +} +.rating .rating-item.rating-item-secondary { + color: #6c757d; +} +.rating .rating-item.rating-item-success { + color: #28a745; +} +.rating .rating-item.rating-item-info { + color: #17a2b8; +} +.rating .rating-item.rating-item-warning { + color: #ffc107; +} +.rating .rating-item.rating-item-danger { + color: #dc3545; +} +.rating .rating-item.rating-item-light { + color: #f8f9fa; +} +.rating .rating-item.rating-item-dark { + color: #343a40; +} +.rating .rating-item.rating-item-link { + color: #3273dc; +} +.rating .rating-item.rating-item-hover { + opacity: 0.7; +} + +.gap-y-0 { + row-gap: 0 !important; +} + +.gap-x-0 { + column-gap: 0 !important; +} + +.gap-y-1 { + row-gap: 0.25rem !important; +} + +.gap-x-1 { + column-gap: 0.25rem !important; +} + +.gap-y-2 { + row-gap: 0.5rem !important; +} + +.gap-x-2 { + column-gap: 0.5rem !important; +} + +.gap-y-3 { + row-gap: 1rem !important; +} + +.gap-x-3 { + column-gap: 1rem !important; +} + +.gap-y-4 { + row-gap: 1.5rem !important; +} + +.gap-x-4 { + column-gap: 1.5rem !important; +} + +.gap-y-5 { + row-gap: 3rem !important; +} + +.gap-x-5 { + column-gap: 3rem !important; +} + +.steps { + padding: 0; + margin: 0; + list-style: none; + display: flex; + overflow-x: auto; +} +.steps .step:first-child { + margin-left: auto; +} +.steps .step:last-child { + margin-right: auto; +} + +.step:first-of-type .step-circle::before { + display: none; +} +.step:last-of-type .step-container { + padding-right: 0; +} + +.step-container { + box-sizing: content-box; + display: flex; + align-items: center; + flex-direction: column; + width: 5rem; + min-width: 5rem; + max-width: 5rem; + padding-top: 0.5rem; + padding-right: 1rem; +} + +.step-circle { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 1.5rem; + height: 1.5rem; + color: #adb5bd; + border: 2px solid #adb5bd; + border-radius: 100%; + background-color: #fff; +} +.step-circle::before { + content: ""; + display: block; + position: absolute; + top: 50%; + left: -2px; + width: calc(5rem + 1rem - 1.5rem); + height: 2px; + transform: translate(-100%, -50%); + color: #adb5bd; + background-color: currentColor; +} + +.step-text { + color: #adb5bd; + word-break: keep-all; + text-align: center; + margin-top: 0.25em; +} + +.step-completed .step-circle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.step-completed .step-circle::before { + color: #28a745; +} +.step-completed .step-text { + color: #28a745; +} + +.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-active .step-circle::before { + color: #007bff; +} +.step-active .step-text { + color: #007bff; +} + +.step-primary .step-circle { + color: #007bff; + border-color: #007bff; +} +.step-primary.step-completed .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-primary.step-completed .step-circle::before { + color: #007bff; +} +.step-primary.step-completed .step-text { + color: #007bff; +} +.step-primary.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-primary.step-active::before { + color: #007bff; +} +.step-primary.step-active .step-text { + color: #007bff; +} + +.step-secondary .step-circle { + color: #6c757d; + border-color: #6c757d; +} +.step-secondary.step-completed .step-circle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.step-secondary.step-completed .step-circle::before { + color: #6c757d; +} +.step-secondary.step-completed .step-text { + color: #6c757d; +} +.step-secondary.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-secondary.step-active::before { + color: #007bff; +} +.step-secondary.step-active .step-text { + color: #007bff; +} + +.step-success .step-circle { + color: #28a745; + border-color: #28a745; +} +.step-success.step-completed .step-circle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.step-success.step-completed .step-circle::before { + color: #28a745; +} +.step-success.step-completed .step-text { + color: #28a745; +} +.step-success.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-success.step-active::before { + color: #007bff; +} +.step-success.step-active .step-text { + color: #007bff; +} + +.step-info .step-circle { + color: #17a2b8; + border-color: #17a2b8; +} +.step-info.step-completed .step-circle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.step-info.step-completed .step-circle::before { + color: #17a2b8; +} +.step-info.step-completed .step-text { + color: #17a2b8; +} +.step-info.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-info.step-active::before { + color: #007bff; +} +.step-info.step-active .step-text { + color: #007bff; +} + +.step-warning .step-circle { + color: #ffc107; + border-color: #ffc107; +} +.step-warning.step-completed .step-circle { + color: #fff; + background-color: #ffc107; + border-color: #ffc107; +} +.step-warning.step-completed .step-circle::before { + color: #ffc107; +} +.step-warning.step-completed .step-text { + color: #ffc107; +} +.step-warning.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-warning.step-active::before { + color: #007bff; +} +.step-warning.step-active .step-text { + color: #007bff; +} + +.step-danger .step-circle { + color: #dc3545; + border-color: #dc3545; +} +.step-danger.step-completed .step-circle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.step-danger.step-completed .step-circle::before { + color: #dc3545; +} +.step-danger.step-completed .step-text { + color: #dc3545; +} +.step-danger.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-danger.step-active::before { + color: #007bff; +} +.step-danger.step-active .step-text { + color: #007bff; +} + +.step-light .step-circle { + color: #f8f9fa; + border-color: #f8f9fa; +} +.step-light.step-completed .step-circle { + color: #fff; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.step-light.step-completed .step-circle::before { + color: #f8f9fa; +} +.step-light.step-completed .step-text { + color: #f8f9fa; +} +.step-light.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-light.step-active::before { + color: #007bff; +} +.step-light.step-active .step-text { + color: #007bff; +} + +.step-dark .step-circle { + color: #343a40; + border-color: #343a40; +} +.step-dark.step-completed .step-circle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.step-dark.step-completed .step-circle::before { + color: #343a40; +} +.step-dark.step-completed .step-text { + color: #343a40; +} +.step-dark.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-dark.step-active::before { + color: #007bff; +} +.step-dark.step-active .step-text { + color: #007bff; +} + +.step-link .step-circle { + color: #3273dc; + border-color: #3273dc; +} +.step-link.step-completed .step-circle { + color: #fff; + background-color: #3273dc; + border-color: #3273dc; +} +.step-link.step-completed .step-circle::before { + color: #3273dc; +} +.step-link.step-completed .step-text { + color: #3273dc; +} +.step-link.step-active .step-circle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.step-link.step-active::before { + color: #007bff; +} +.step-link.step-active .step-text { + color: #007bff; +} + +.steps-content { + margin: 1rem 0; +} +.steps-content > .step-panel { + display: none; +} +.steps-content > .active { + display: block; +} + +.form-check.form-switch .form-check-input.form-check-input-primary:checked { + background-color: #007bff; + border-color: #007bff; +} + +.form-check.form-switch .form-check-input.form-check-input-secondary:checked { + background-color: #6c757d; + border-color: #6c757d; +} + +.form-check.form-switch .form-check-input.form-check-input-success:checked { + background-color: #28a745; + border-color: #28a745; +} + +.form-check.form-switch .form-check-input.form-check-input-info:checked { + background-color: #17a2b8; + border-color: #17a2b8; +} + +.form-check.form-switch .form-check-input.form-check-input-warning:checked { + background-color: #ffc107; + border-color: #ffc107; +} + +.form-check.form-switch .form-check-input.form-check-input-danger:checked { + background-color: #dc3545; + border-color: #dc3545; +} + +.form-check.form-switch .form-check-input.form-check-input-light:checked { + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.form-check.form-switch .form-check-input.form-check-input-dark:checked { + background-color: #343a40; + border-color: #343a40; +} + +.form-check.form-switch .form-check-input.form-check-input-link:checked { + background-color: #3273dc; + border-color: #3273dc; +} + +.form-check.form-switch .form-check-input.form-check-input-xs { + width: calc(0.75rem + (0.5rem / 2)); + height: 0.5rem; + margin-left: -2.5em; +} +.form-check.form-switch .form-check-input.form-check-input-xs + .form-check-label { + line-height: 1rem; + vertical-align: middle; + padding-left: 0; +} +.form-check.form-switch .form-check-input.form-check-input-xs:checked ~ .form-check-label::after { + transform: translateX(calc(0.75rem - (0.5rem / 2))); +} + +.form-check.form-switch .form-check-input.form-check-input-sm { + width: calc(1rem + (0.75rem / 2)); + height: 0.75rem; + margin-left: -2.5em; +} +.form-check.form-switch .form-check-input.form-check-input-sm + .form-check-label { + line-height: 1.25rem; + vertical-align: middle; + padding-left: 0.75rem; +} +.form-check.form-switch .form-check-input.form-check-input-sm:checked ~ .form-check-label::after { + transform: translateX(calc(1rem - (0.75rem / 2))); +} + +.form-check.form-switch .form-check-input.form-check-input-md { + width: calc(2rem + (1.5rem / 2)); + height: 1.5rem; + margin-left: -2.5em; +} +.form-check.form-switch .form-check-input.form-check-input-md + .form-check-label { + line-height: 2rem; + vertical-align: middle; + padding-left: 0.75rem; +} +.form-check.form-switch .form-check-input.form-check-input-md:checked ~ .form-check-label::after { + transform: translateX(calc(2rem - (1.5rem / 2))); +} + +.form-check.form-switch .form-check-input.form-check-input-lg { + width: calc(3rem + (2rem / 2)); + height: 2rem; + margin-left: -2.5em; +} +.form-check.form-switch .form-check-input.form-check-input-lg + .form-check-label { + line-height: 2.5rem; + vertical-align: middle; + padding-left: 0.75rem; +} +.form-check.form-switch .form-check-input.form-check-input-lg:checked ~ .form-check-label::after { + transform: translateX(calc(3rem - (2rem / 2))); +} + +.form-check.form-switch .form-check-input.form-check-input-xl { + width: calc(4rem + (2.5rem / 2)); + height: 2.5rem; + margin-left: -2.5em; +} +.form-check.form-switch .form-check-input.form-check-input-xl + .form-check-label { + line-height: 3rem; + vertical-align: middle; + padding-left: 0.75rem; +} +.form-check.form-switch .form-check-input.form-check-input-xl:checked ~ .form-check-label::after { + transform: translateX(calc(4rem - (2.5rem / 2))); +} + +table.table tbody tr:not(.table-group).selected { + background-color: var(--bs-primary); +} +table.table tbody tr.table-group { + cursor: pointer; + background-color: var(--b-theme-light, var(--bs-light, #f5f5f5)); + font-weight: 700; +} + +tr.table-row-selectable:hover { + cursor: pointer; +} +tr.table-row-selectable:focus[tabindex="0"] { + outline: none; +} + +.table-fixed-header { + overflow-y: auto; +} +.table-fixed-header > .table { + border-collapse: separate; + border-spacing: 0; +} +.table-fixed-header > .table > thead:not(.table-thead-theme) > tr > th { + background: white; +} +.table-fixed-header > .table > thead > tr > th { + border-top: none; + position: sticky; + z-index: 10; +} +.table-fixed-header > .table > thead > tr:nth-child(1) > th { + top: 0; +} +.table-fixed-header > .table-bordered > :not(caption) > * > * { + border-width: 1px 1px; +} + +.overflow-auto-auto { + overflow: auto auto !important; +} + +.overflow-auto-hidden { + overflow: auto hidden !important; +} + +.overflow-auto-visible { + overflow: auto visible !important; +} + +.overflow-auto-scroll { + overflow: auto scroll !important; +} + +.overflow-hidden-auto { + overflow: hidden auto !important; +} + +.overflow-hidden-hidden { + overflow: hidden hidden !important; +} + +.overflow-hidden-visible { + overflow: hidden visible !important; +} + +.overflow-hidden-scroll { + overflow: hidden scroll !important; +} + +.overflow-visible-auto { + overflow: visible auto !important; +} + +.overflow-visible-hidden { + overflow: visible hidden !important; +} + +.overflow-visible-visible { + overflow: visible visible !important; +} + +.overflow-visible-scroll { + overflow: visible scroll !important; +} + +.overflow-scroll-auto { + overflow: scroll auto !important; +} + +.overflow-scroll-hidden { + overflow: scroll hidden !important; +} + +.overflow-scroll-visible { + overflow: scroll visible !important; +} + +.overflow-scroll-scroll { + overflow: scroll scroll !important; +} + +ol.ordered-list-lower-alpha { + list-style-type: lower-alpha; +} +ol.ordered-list-lower-roman { + list-style-type: lower-roman; +} +ol.ordered-list-upper-alpha { + list-style-type: upper-alpha; +} +ol.ordered-list-upper-roman { + list-style-type: upper-roman; +} + +.border-1 { + border: 1px solid #dee2e6 !important; +} +.border-1.border-primary { + border-color: #007bff !important; +} +.border-1.border-secondary { + border-color: #6c757d !important; +} +.border-1.border-success { + border-color: #28a745 !important; +} +.border-1.border-info { + border-color: #17a2b8 !important; +} +.border-1.border-warning { + border-color: #ffc107 !important; +} +.border-1.border-danger { + border-color: #dc3545 !important; +} +.border-1.border-light { + border-color: #f8f9fa !important; +} +.border-1.border-dark { + border-color: #343a40 !important; +} +.border-1.border-link { + border-color: #3273dc !important; +} + +.border-primary-1 { + border: 1px solid #007bff !important; +} + +.border-secondary-1 { + border: 1px solid #6c757d !important; +} + +.border-success-1 { + border: 1px solid #28a745 !important; +} + +.border-info-1 { + border: 1px solid #17a2b8 !important; +} + +.border-warning-1 { + border: 1px solid #ffc107 !important; +} + +.border-danger-1 { + border: 1px solid #dc3545 !important; +} + +.border-light-1 { + border: 1px solid #f8f9fa !important; +} + +.border-dark-1 { + border: 1px solid #343a40 !important; +} + +.border-link-1 { + border: 1px solid #3273dc !important; +} + +.border-top-1 { + border-top: 1px solid #dee2e6 !important; +} + +.border-primary-top-1 { + border-top: 1px solid #007bff !important; +} + +.border-secondary-top-1 { + border-top: 1px solid #6c757d !important; +} + +.border-success-top-1 { + border-top: 1px solid #28a745 !important; +} + +.border-info-top-1 { + border-top: 1px solid #17a2b8 !important; +} + +.border-warning-top-1 { + border-top: 1px solid #ffc107 !important; +} + +.border-danger-top-1 { + border-top: 1px solid #dc3545 !important; +} + +.border-light-top-1 { + border-top: 1px solid #f8f9fa !important; +} + +.border-dark-top-1 { + border-top: 1px solid #343a40 !important; +} + +.border-link-top-1 { + border-top: 1px solid #3273dc !important; +} + +.border-end-1 { + border-right: 1px solid #dee2e6 !important; +} + +.border-primary-end-1 { + border-right: 1px solid #007bff !important; +} + +.border-secondary-end-1 { + border-right: 1px solid #6c757d !important; +} + +.border-success-end-1 { + border-right: 1px solid #28a745 !important; +} + +.border-info-end-1 { + border-right: 1px solid #17a2b8 !important; +} + +.border-warning-end-1 { + border-right: 1px solid #ffc107 !important; +} + +.border-danger-end-1 { + border-right: 1px solid #dc3545 !important; +} + +.border-light-end-1 { + border-right: 1px solid #f8f9fa !important; +} + +.border-dark-end-1 { + border-right: 1px solid #343a40 !important; +} + +.border-link-end-1 { + border-right: 1px solid #3273dc !important; +} + +.border-bottom-1 { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-primary-bottom-1 { + border-bottom: 1px solid #007bff !important; +} + +.border-secondary-bottom-1 { + border-bottom: 1px solid #6c757d !important; +} + +.border-success-bottom-1 { + border-bottom: 1px solid #28a745 !important; +} + +.border-info-bottom-1 { + border-bottom: 1px solid #17a2b8 !important; +} + +.border-warning-bottom-1 { + border-bottom: 1px solid #ffc107 !important; +} + +.border-danger-bottom-1 { + border-bottom: 1px solid #dc3545 !important; +} + +.border-light-bottom-1 { + border-bottom: 1px solid #f8f9fa !important; +} + +.border-dark-bottom-1 { + border-bottom: 1px solid #343a40 !important; +} + +.border-link-bottom-1 { + border-bottom: 1px solid #3273dc !important; +} + +.border-start-1 { + border-left: 1px solid #dee2e6 !important; +} + +.border-primary-start-1 { + border-left: 1px solid #007bff !important; +} + +.border-secondary-start-1 { + border-left: 1px solid #6c757d !important; +} + +.border-success-start-1 { + border-left: 1px solid #28a745 !important; +} + +.border-info-start-1 { + border-left: 1px solid #17a2b8 !important; +} + +.border-warning-start-1 { + border-left: 1px solid #ffc107 !important; +} + +.border-danger-start-1 { + border-left: 1px solid #dc3545 !important; +} + +.border-light-start-1 { + border-left: 1px solid #f8f9fa !important; +} + +.border-dark-start-1 { + border-left: 1px solid #343a40 !important; +} + +.border-link-start-1 { + border-left: 1px solid #3273dc !important; +} + +.border-2 { + border: 2px solid #dee2e6 !important; +} +.border-2.border-primary { + border-color: #007bff !important; +} +.border-2.border-secondary { + border-color: #6c757d !important; +} +.border-2.border-success { + border-color: #28a745 !important; +} +.border-2.border-info { + border-color: #17a2b8 !important; +} +.border-2.border-warning { + border-color: #ffc107 !important; +} +.border-2.border-danger { + border-color: #dc3545 !important; +} +.border-2.border-light { + border-color: #f8f9fa !important; +} +.border-2.border-dark { + border-color: #343a40 !important; +} +.border-2.border-link { + border-color: #3273dc !important; +} + +.border-primary-2 { + border: 2px solid #007bff !important; +} + +.border-secondary-2 { + border: 2px solid #6c757d !important; +} + +.border-success-2 { + border: 2px solid #28a745 !important; +} + +.border-info-2 { + border: 2px solid #17a2b8 !important; +} + +.border-warning-2 { + border: 2px solid #ffc107 !important; +} + +.border-danger-2 { + border: 2px solid #dc3545 !important; +} + +.border-light-2 { + border: 2px solid #f8f9fa !important; +} + +.border-dark-2 { + border: 2px solid #343a40 !important; +} + +.border-link-2 { + border: 2px solid #3273dc !important; +} + +.border-top-2 { + border-top: 2px solid #dee2e6 !important; +} + +.border-primary-top-2 { + border-top: 2px solid #007bff !important; +} + +.border-secondary-top-2 { + border-top: 2px solid #6c757d !important; +} + +.border-success-top-2 { + border-top: 2px solid #28a745 !important; +} + +.border-info-top-2 { + border-top: 2px solid #17a2b8 !important; +} + +.border-warning-top-2 { + border-top: 2px solid #ffc107 !important; +} + +.border-danger-top-2 { + border-top: 2px solid #dc3545 !important; +} + +.border-light-top-2 { + border-top: 2px solid #f8f9fa !important; +} + +.border-dark-top-2 { + border-top: 2px solid #343a40 !important; +} + +.border-link-top-2 { + border-top: 2px solid #3273dc !important; +} + +.border-end-2 { + border-right: 2px solid #dee2e6 !important; +} + +.border-primary-end-2 { + border-right: 2px solid #007bff !important; +} + +.border-secondary-end-2 { + border-right: 2px solid #6c757d !important; +} + +.border-success-end-2 { + border-right: 2px solid #28a745 !important; +} + +.border-info-end-2 { + border-right: 2px solid #17a2b8 !important; +} + +.border-warning-end-2 { + border-right: 2px solid #ffc107 !important; +} + +.border-danger-end-2 { + border-right: 2px solid #dc3545 !important; +} + +.border-light-end-2 { + border-right: 2px solid #f8f9fa !important; +} + +.border-dark-end-2 { + border-right: 2px solid #343a40 !important; +} + +.border-link-end-2 { + border-right: 2px solid #3273dc !important; +} + +.border-bottom-2 { + border-bottom: 2px solid #dee2e6 !important; +} + +.border-primary-bottom-2 { + border-bottom: 2px solid #007bff !important; +} + +.border-secondary-bottom-2 { + border-bottom: 2px solid #6c757d !important; +} + +.border-success-bottom-2 { + border-bottom: 2px solid #28a745 !important; +} + +.border-info-bottom-2 { + border-bottom: 2px solid #17a2b8 !important; +} + +.border-warning-bottom-2 { + border-bottom: 2px solid #ffc107 !important; +} + +.border-danger-bottom-2 { + border-bottom: 2px solid #dc3545 !important; +} + +.border-light-bottom-2 { + border-bottom: 2px solid #f8f9fa !important; +} + +.border-dark-bottom-2 { + border-bottom: 2px solid #343a40 !important; +} + +.border-link-bottom-2 { + border-bottom: 2px solid #3273dc !important; +} + +.border-start-2 { + border-left: 2px solid #dee2e6 !important; +} + +.border-primary-start-2 { + border-left: 2px solid #007bff !important; +} + +.border-secondary-start-2 { + border-left: 2px solid #6c757d !important; +} + +.border-success-start-2 { + border-left: 2px solid #28a745 !important; +} + +.border-info-start-2 { + border-left: 2px solid #17a2b8 !important; +} + +.border-warning-start-2 { + border-left: 2px solid #ffc107 !important; +} + +.border-danger-start-2 { + border-left: 2px solid #dc3545 !important; +} + +.border-light-start-2 { + border-left: 2px solid #f8f9fa !important; +} + +.border-dark-start-2 { + border-left: 2px solid #343a40 !important; +} + +.border-link-start-2 { + border-left: 2px solid #3273dc !important; +} + +.border-3 { + border: 3px solid #dee2e6 !important; +} +.border-3.border-primary { + border-color: #007bff !important; +} +.border-3.border-secondary { + border-color: #6c757d !important; +} +.border-3.border-success { + border-color: #28a745 !important; +} +.border-3.border-info { + border-color: #17a2b8 !important; +} +.border-3.border-warning { + border-color: #ffc107 !important; +} +.border-3.border-danger { + border-color: #dc3545 !important; +} +.border-3.border-light { + border-color: #f8f9fa !important; +} +.border-3.border-dark { + border-color: #343a40 !important; +} +.border-3.border-link { + border-color: #3273dc !important; +} + +.border-primary-3 { + border: 3px solid #007bff !important; +} + +.border-secondary-3 { + border: 3px solid #6c757d !important; +} + +.border-success-3 { + border: 3px solid #28a745 !important; +} + +.border-info-3 { + border: 3px solid #17a2b8 !important; +} + +.border-warning-3 { + border: 3px solid #ffc107 !important; +} + +.border-danger-3 { + border: 3px solid #dc3545 !important; +} + +.border-light-3 { + border: 3px solid #f8f9fa !important; +} + +.border-dark-3 { + border: 3px solid #343a40 !important; +} + +.border-link-3 { + border: 3px solid #3273dc !important; +} + +.border-top-3 { + border-top: 3px solid #dee2e6 !important; +} + +.border-primary-top-3 { + border-top: 3px solid #007bff !important; +} + +.border-secondary-top-3 { + border-top: 3px solid #6c757d !important; +} + +.border-success-top-3 { + border-top: 3px solid #28a745 !important; +} + +.border-info-top-3 { + border-top: 3px solid #17a2b8 !important; +} + +.border-warning-top-3 { + border-top: 3px solid #ffc107 !important; +} + +.border-danger-top-3 { + border-top: 3px solid #dc3545 !important; +} + +.border-light-top-3 { + border-top: 3px solid #f8f9fa !important; +} + +.border-dark-top-3 { + border-top: 3px solid #343a40 !important; +} + +.border-link-top-3 { + border-top: 3px solid #3273dc !important; +} + +.border-end-3 { + border-right: 3px solid #dee2e6 !important; +} + +.border-primary-end-3 { + border-right: 3px solid #007bff !important; +} + +.border-secondary-end-3 { + border-right: 3px solid #6c757d !important; +} + +.border-success-end-3 { + border-right: 3px solid #28a745 !important; +} + +.border-info-end-3 { + border-right: 3px solid #17a2b8 !important; +} + +.border-warning-end-3 { + border-right: 3px solid #ffc107 !important; +} + +.border-danger-end-3 { + border-right: 3px solid #dc3545 !important; +} + +.border-light-end-3 { + border-right: 3px solid #f8f9fa !important; +} + +.border-dark-end-3 { + border-right: 3px solid #343a40 !important; +} + +.border-link-end-3 { + border-right: 3px solid #3273dc !important; +} + +.border-bottom-3 { + border-bottom: 3px solid #dee2e6 !important; +} + +.border-primary-bottom-3 { + border-bottom: 3px solid #007bff !important; +} + +.border-secondary-bottom-3 { + border-bottom: 3px solid #6c757d !important; +} + +.border-success-bottom-3 { + border-bottom: 3px solid #28a745 !important; +} + +.border-info-bottom-3 { + border-bottom: 3px solid #17a2b8 !important; +} + +.border-warning-bottom-3 { + border-bottom: 3px solid #ffc107 !important; +} + +.border-danger-bottom-3 { + border-bottom: 3px solid #dc3545 !important; +} + +.border-light-bottom-3 { + border-bottom: 3px solid #f8f9fa !important; +} + +.border-dark-bottom-3 { + border-bottom: 3px solid #343a40 !important; +} + +.border-link-bottom-3 { + border-bottom: 3px solid #3273dc !important; +} + +.border-start-3 { + border-left: 3px solid #dee2e6 !important; +} + +.border-primary-start-3 { + border-left: 3px solid #007bff !important; +} + +.border-secondary-start-3 { + border-left: 3px solid #6c757d !important; +} + +.border-success-start-3 { + border-left: 3px solid #28a745 !important; +} + +.border-info-start-3 { + border-left: 3px solid #17a2b8 !important; +} + +.border-warning-start-3 { + border-left: 3px solid #ffc107 !important; +} + +.border-danger-start-3 { + border-left: 3px solid #dc3545 !important; +} + +.border-light-start-3 { + border-left: 3px solid #f8f9fa !important; +} + +.border-dark-start-3 { + border-left: 3px solid #343a40 !important; +} + +.border-link-start-3 { + border-left: 3px solid #3273dc !important; +} + +.border-4 { + border: 4px solid #dee2e6 !important; +} +.border-4.border-primary { + border-color: #007bff !important; +} +.border-4.border-secondary { + border-color: #6c757d !important; +} +.border-4.border-success { + border-color: #28a745 !important; +} +.border-4.border-info { + border-color: #17a2b8 !important; +} +.border-4.border-warning { + border-color: #ffc107 !important; +} +.border-4.border-danger { + border-color: #dc3545 !important; +} +.border-4.border-light { + border-color: #f8f9fa !important; +} +.border-4.border-dark { + border-color: #343a40 !important; +} +.border-4.border-link { + border-color: #3273dc !important; +} + +.border-primary-4 { + border: 4px solid #007bff !important; +} + +.border-secondary-4 { + border: 4px solid #6c757d !important; +} + +.border-success-4 { + border: 4px solid #28a745 !important; +} + +.border-info-4 { + border: 4px solid #17a2b8 !important; +} + +.border-warning-4 { + border: 4px solid #ffc107 !important; +} + +.border-danger-4 { + border: 4px solid #dc3545 !important; +} + +.border-light-4 { + border: 4px solid #f8f9fa !important; +} + +.border-dark-4 { + border: 4px solid #343a40 !important; +} + +.border-link-4 { + border: 4px solid #3273dc !important; +} + +.border-top-4 { + border-top: 4px solid #dee2e6 !important; +} + +.border-primary-top-4 { + border-top: 4px solid #007bff !important; +} + +.border-secondary-top-4 { + border-top: 4px solid #6c757d !important; +} + +.border-success-top-4 { + border-top: 4px solid #28a745 !important; +} + +.border-info-top-4 { + border-top: 4px solid #17a2b8 !important; +} + +.border-warning-top-4 { + border-top: 4px solid #ffc107 !important; +} + +.border-danger-top-4 { + border-top: 4px solid #dc3545 !important; +} + +.border-light-top-4 { + border-top: 4px solid #f8f9fa !important; +} + +.border-dark-top-4 { + border-top: 4px solid #343a40 !important; +} + +.border-link-top-4 { + border-top: 4px solid #3273dc !important; +} + +.border-end-4 { + border-right: 4px solid #dee2e6 !important; +} + +.border-primary-end-4 { + border-right: 4px solid #007bff !important; +} + +.border-secondary-end-4 { + border-right: 4px solid #6c757d !important; +} + +.border-success-end-4 { + border-right: 4px solid #28a745 !important; +} + +.border-info-end-4 { + border-right: 4px solid #17a2b8 !important; +} + +.border-warning-end-4 { + border-right: 4px solid #ffc107 !important; +} + +.border-danger-end-4 { + border-right: 4px solid #dc3545 !important; +} + +.border-light-end-4 { + border-right: 4px solid #f8f9fa !important; +} + +.border-dark-end-4 { + border-right: 4px solid #343a40 !important; +} + +.border-link-end-4 { + border-right: 4px solid #3273dc !important; +} + +.border-bottom-4 { + border-bottom: 4px solid #dee2e6 !important; +} + +.border-primary-bottom-4 { + border-bottom: 4px solid #007bff !important; +} + +.border-secondary-bottom-4 { + border-bottom: 4px solid #6c757d !important; +} + +.border-success-bottom-4 { + border-bottom: 4px solid #28a745 !important; +} + +.border-info-bottom-4 { + border-bottom: 4px solid #17a2b8 !important; +} + +.border-warning-bottom-4 { + border-bottom: 4px solid #ffc107 !important; +} + +.border-danger-bottom-4 { + border-bottom: 4px solid #dc3545 !important; +} + +.border-light-bottom-4 { + border-bottom: 4px solid #f8f9fa !important; +} + +.border-dark-bottom-4 { + border-bottom: 4px solid #343a40 !important; +} + +.border-link-bottom-4 { + border-bottom: 4px solid #3273dc !important; +} + +.border-start-4 { + border-left: 4px solid #dee2e6 !important; +} + +.border-primary-start-4 { + border-left: 4px solid #007bff !important; +} + +.border-secondary-start-4 { + border-left: 4px solid #6c757d !important; +} + +.border-success-start-4 { + border-left: 4px solid #28a745 !important; +} + +.border-info-start-4 { + border-left: 4px solid #17a2b8 !important; +} + +.border-warning-start-4 { + border-left: 4px solid #ffc107 !important; +} + +.border-danger-start-4 { + border-left: 4px solid #dc3545 !important; +} + +.border-light-start-4 { + border-left: 4px solid #f8f9fa !important; +} + +.border-dark-start-4 { + border-left: 4px solid #343a40 !important; +} + +.border-link-start-4 { + border-left: 4px solid #3273dc !important; +} + +.border-5 { + border: 5px solid #dee2e6 !important; +} +.border-5.border-primary { + border-color: #007bff !important; +} +.border-5.border-secondary { + border-color: #6c757d !important; +} +.border-5.border-success { + border-color: #28a745 !important; +} +.border-5.border-info { + border-color: #17a2b8 !important; +} +.border-5.border-warning { + border-color: #ffc107 !important; +} +.border-5.border-danger { + border-color: #dc3545 !important; +} +.border-5.border-light { + border-color: #f8f9fa !important; +} +.border-5.border-dark { + border-color: #343a40 !important; +} +.border-5.border-link { + border-color: #3273dc !important; +} + +.border-primary-5 { + border: 5px solid #007bff !important; +} + +.border-secondary-5 { + border: 5px solid #6c757d !important; +} + +.border-success-5 { + border: 5px solid #28a745 !important; +} + +.border-info-5 { + border: 5px solid #17a2b8 !important; +} + +.border-warning-5 { + border: 5px solid #ffc107 !important; +} + +.border-danger-5 { + border: 5px solid #dc3545 !important; +} + +.border-light-5 { + border: 5px solid #f8f9fa !important; +} + +.border-dark-5 { + border: 5px solid #343a40 !important; +} + +.border-link-5 { + border: 5px solid #3273dc !important; +} + +.border-top-5 { + border-top: 5px solid #dee2e6 !important; +} + +.border-primary-top-5 { + border-top: 5px solid #007bff !important; +} + +.border-secondary-top-5 { + border-top: 5px solid #6c757d !important; +} + +.border-success-top-5 { + border-top: 5px solid #28a745 !important; +} + +.border-info-top-5 { + border-top: 5px solid #17a2b8 !important; +} + +.border-warning-top-5 { + border-top: 5px solid #ffc107 !important; +} + +.border-danger-top-5 { + border-top: 5px solid #dc3545 !important; +} + +.border-light-top-5 { + border-top: 5px solid #f8f9fa !important; +} + +.border-dark-top-5 { + border-top: 5px solid #343a40 !important; +} + +.border-link-top-5 { + border-top: 5px solid #3273dc !important; +} + +.border-end-5 { + border-right: 5px solid #dee2e6 !important; +} + +.border-primary-end-5 { + border-right: 5px solid #007bff !important; +} + +.border-secondary-end-5 { + border-right: 5px solid #6c757d !important; +} + +.border-success-end-5 { + border-right: 5px solid #28a745 !important; +} + +.border-info-end-5 { + border-right: 5px solid #17a2b8 !important; +} + +.border-warning-end-5 { + border-right: 5px solid #ffc107 !important; +} + +.border-danger-end-5 { + border-right: 5px solid #dc3545 !important; +} + +.border-light-end-5 { + border-right: 5px solid #f8f9fa !important; +} + +.border-dark-end-5 { + border-right: 5px solid #343a40 !important; +} + +.border-link-end-5 { + border-right: 5px solid #3273dc !important; +} + +.border-bottom-5 { + border-bottom: 5px solid #dee2e6 !important; +} + +.border-primary-bottom-5 { + border-bottom: 5px solid #007bff !important; +} + +.border-secondary-bottom-5 { + border-bottom: 5px solid #6c757d !important; +} + +.border-success-bottom-5 { + border-bottom: 5px solid #28a745 !important; +} + +.border-info-bottom-5 { + border-bottom: 5px solid #17a2b8 !important; +} + +.border-warning-bottom-5 { + border-bottom: 5px solid #ffc107 !important; +} + +.border-danger-bottom-5 { + border-bottom: 5px solid #dc3545 !important; +} + +.border-light-bottom-5 { + border-bottom: 5px solid #f8f9fa !important; +} + +.border-dark-bottom-5 { + border-bottom: 5px solid #343a40 !important; +} + +.border-link-bottom-5 { + border-bottom: 5px solid #3273dc !important; +} + +.border-start-5 { + border-left: 5px solid #dee2e6 !important; +} + +.border-primary-start-5 { + border-left: 5px solid #007bff !important; +} + +.border-secondary-start-5 { + border-left: 5px solid #6c757d !important; +} + +.border-success-start-5 { + border-left: 5px solid #28a745 !important; +} + +.border-info-start-5 { + border-left: 5px solid #17a2b8 !important; +} + +.border-warning-start-5 { + border-left: 5px solid #ffc107 !important; +} + +.border-danger-start-5 { + border-left: 5px solid #dc3545 !important; +} + +.border-light-start-5 { + border-left: 5px solid #f8f9fa !important; +} + +.border-dark-start-5 { + border-left: 5px solid #343a40 !important; +} + +.border-link-start-5 { + border-left: 5px solid #3273dc !important; +} + +.cursor-pointer { + cursor: pointer; +} + +.fs-xs { + font-size: 0.75rem !important; +} +.fs-sm { + font-size: 0.925rem !important; +} +.fs-md { + font-size: 1.125rem !important; +} +.fs-lg { + font-size: 1.25rem !important; +} +.fs-xl { + font-size: 1.5rem !important; +} + +.grid { + display: grid; + grid-template-rows: repeat(1, 1fr); + grid-template-columns: repeat(12, 1fr); + gap: 1.5rem; +} +.grid.g-rows-1 { + grid-template-rows: repeat(1, minmax(0, 1fr)); +} +.grid.g-rows-2 { + grid-template-rows: repeat(2, minmax(0, 1fr)); +} +.grid.g-rows-3 { + grid-template-rows: repeat(3, minmax(0, 1fr)); +} +.grid.g-rows-4 { + grid-template-rows: repeat(4, minmax(0, 1fr)); +} +.grid.g-rows-5 { + grid-template-rows: repeat(5, minmax(0, 1fr)); +} +.grid.g-rows-6 { + grid-template-rows: repeat(6, minmax(0, 1fr)); +} +.grid.g-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} +.grid.g-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.grid.g-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} +.grid.g-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} +.grid.g-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); +} +.grid.g-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); +} +.grid.g-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); +} +.grid.g-cols-8 { + grid-template-columns: repeat(8, minmax(0, 1fr)); +} +.grid.g-cols-9 { + grid-template-columns: repeat(9, minmax(0, 1fr)); +} +.grid.g-cols-10 { + grid-template-columns: repeat(10, minmax(0, 1fr)); +} +.grid.g-cols-11 { + grid-template-columns: repeat(11, minmax(0, 1fr)); +} +.grid.g-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} +.grid .g-col-1 { + grid-column: auto/span 1; +} +.grid .g-col-2 { + grid-column: auto/span 2; +} +.grid .g-col-3 { + grid-column: auto/span 3; +} +.grid .g-col-4 { + grid-column: auto/span 4; +} +.grid .g-col-5 { + grid-column: auto/span 5; +} +.grid .g-col-6 { + grid-column: auto/span 6; +} +.grid .g-col-7 { + grid-column: auto/span 7; +} +.grid .g-col-8 { + grid-column: auto/span 8; +} +.grid .g-col-9 { + grid-column: auto/span 9; +} +.grid .g-col-10 { + grid-column: auto/span 10; +} +.grid .g-col-11 { + grid-column: auto/span 11; +} +.grid .g-col-12 { + grid-column: auto/span 12; +} +@media (min-width: 576px) { + .grid .g-col-sm-1 { + grid-column: auto/span 1; + } + .grid .g-col-sm-2 { + grid-column: auto/span 2; + } + .grid .g-col-sm-3 { + grid-column: auto/span 3; + } + .grid .g-col-sm-4 { + grid-column: auto/span 4; + } + .grid .g-col-sm-5 { + grid-column: auto/span 5; + } + .grid .g-col-sm-6 { + grid-column: auto/span 6; + } + .grid .g-col-sm-7 { + grid-column: auto/span 7; + } + .grid .g-col-sm-8 { + grid-column: auto/span 8; + } + .grid .g-col-sm-9 { + grid-column: auto/span 9; + } + .grid .g-col-sm-10 { + grid-column: auto/span 10; + } + .grid .g-col-sm-11 { + grid-column: auto/span 11; + } + .grid .g-col-sm-12 { + grid-column: auto/span 12; + } +} +@media (min-width: 768px) { + .grid .g-col-md-1 { + grid-column: auto/span 1; + } + .grid .g-col-md-2 { + grid-column: auto/span 2; + } + .grid .g-col-md-3 { + grid-column: auto/span 3; + } + .grid .g-col-md-4 { + grid-column: auto/span 4; + } + .grid .g-col-md-5 { + grid-column: auto/span 5; + } + .grid .g-col-md-6 { + grid-column: auto/span 6; + } + .grid .g-col-md-7 { + grid-column: auto/span 7; + } + .grid .g-col-md-8 { + grid-column: auto/span 8; + } + .grid .g-col-md-9 { + grid-column: auto/span 9; + } + .grid .g-col-md-10 { + grid-column: auto/span 10; + } + .grid .g-col-md-11 { + grid-column: auto/span 11; + } + .grid .g-col-md-12 { + grid-column: auto/span 12; + } +} +@media (min-width: 992px) { + .grid .g-col-lg-1 { + grid-column: auto/span 1; + } + .grid .g-col-lg-2 { + grid-column: auto/span 2; + } + .grid .g-col-lg-3 { + grid-column: auto/span 3; + } + .grid .g-col-lg-4 { + grid-column: auto/span 4; + } + .grid .g-col-lg-5 { + grid-column: auto/span 5; + } + .grid .g-col-lg-6 { + grid-column: auto/span 6; + } + .grid .g-col-lg-7 { + grid-column: auto/span 7; + } + .grid .g-col-lg-8 { + grid-column: auto/span 8; + } + .grid .g-col-lg-9 { + grid-column: auto/span 9; + } + .grid .g-col-lg-10 { + grid-column: auto/span 10; + } + .grid .g-col-lg-11 { + grid-column: auto/span 11; + } + .grid .g-col-lg-12 { + grid-column: auto/span 12; + } +} +@media (min-width: 1200px) { + .grid .g-col-xl-1 { + grid-column: auto/span 1; + } + .grid .g-col-xl-2 { + grid-column: auto/span 2; + } + .grid .g-col-xl-3 { + grid-column: auto/span 3; + } + .grid .g-col-xl-4 { + grid-column: auto/span 4; + } + .grid .g-col-xl-5 { + grid-column: auto/span 5; + } + .grid .g-col-xl-6 { + grid-column: auto/span 6; + } + .grid .g-col-xl-7 { + grid-column: auto/span 7; + } + .grid .g-col-xl-8 { + grid-column: auto/span 8; + } + .grid .g-col-xl-9 { + grid-column: auto/span 9; + } + .grid .g-col-xl-10 { + grid-column: auto/span 10; + } + .grid .g-col-xl-11 { + grid-column: auto/span 11; + } + .grid .g-col-xl-12 { + grid-column: auto/span 12; + } +} + +.flatpickr-months { + margin: 0.5rem 0; +} +.flatpickr-months .flatpickr-month, .flatpickr-months .flatpickr-next-month, .flatpickr-months .flatpickr-prev-month { + height: auto; + position: relative; +} +.flatpickr-months .flatpickr-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg, .flatpickr-months .flatpickr-prev-month:hover svg { + fill: #007bff; +} +.flatpickr-months .flatpickr-month { + color: #212529; +} + +.flatpickr-current-month { + padding: 13px 0 0 0; + font-size: 115%; +} +.flatpickr-current-month span.cur-month { + font-weight: 700; +} +.flatpickr-current-month span.cur-month:hover { + background: rgba(0, 123, 255, 0.15); +} + +.numInputWrapper:hover { + background: rgba(0, 123, 255, 0.15); +} + +.flatpickr-day { + border-radius: 0.25rem; + font-weight: 500; + color: #212529; +} +.flatpickr-day.today { + border-color: #007bff; +} +.flatpickr-day.today:hover { + background: #007bff; + border-color: #007bff; +} +.flatpickr-day:hover { + background: rgba(0, 123, 255, 0.1); + border-color: rgba(0, 0, 0, 0); +} + +span.flatpickr-weekday { + color: #212529; +} + +.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay { + background: #007bff; + border-color: #007bff; +} + +.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) { + box-shadow: -10px 0 0 #007bff; +} + +.flatpickr-day.selected.startRange, .flatpickr-day.startRange.startRange, .flatpickr-day.endRange.startRange { + border-radius: 0.25rem 0 0 0.25rem; +} + +.flatpickr-day.selected.endRange, .flatpickr-day.startRange.endRange, .flatpickr-day.endRange.endRange { + border-radius: 0 0.25rem 0.25rem 0; +} + +.flatpickr-monthSelect-month:hover, +.flatpickr-monthSelect-month:focus { + background: rgba(0, 123, 255, 0.1); +} + +.flatpickr-monthSelect-month.selected { + background-color: #007bff; +} diff --git a/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.min.css b/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.min.css new file mode 100755 index 00000000..54c707db --- /dev/null +++ b/_content/Blazorise.Bootstrap5/blazorise.bootstrap5.min.css @@ -0,0 +1 @@ +@keyframes fadeIn{0%{opacity:0;}100%{opacity:1;}0%{opacity:0;}}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0;}100%{transform:translateY(0);opacity:1;}0%{transform:translateY(1rem);opacity:0;}}.badge-close{cursor:pointer;}.badge-close::before{height:2px;width:50%;}.badge-close::after{height:50%;width:2px;}.badge-close:hover,.badge-close:focus{background-color:rgba(10,10,10,.3);}.badge-close:active{background-color:rgba(10,10,10,.4);}.navbar-nav .nav-item:hover{cursor:pointer;}.navbar-nav .nav-link:hover{cursor:pointer;}.nav .nav-link:hover{cursor:pointer;}.nav-item{position:relative;}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item{width:100%;}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent;}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item:empty::after{margin-left:0;}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{transform:rotate(-90deg);position:absolute;right:10%;top:45%;}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-menu{top:0;left:100%;margin-left:0;margin-right:.1rem;}.btn-group>.b-tooltip:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0;}.btn-group>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0;}.btn-group.btn-group-toggle .btn.active.disabled{opacity:1;}.btn-group-vertical>.b-tooltip:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0;}.btn-group-vertical>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0;}.btn-xs,.btn-group-xs>.btn{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem;}.btn-md,.btn-group-md>.btn{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem;}.btn-xl,.btn-group-xl>.btn{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem;}.btn-block{display:block;width:100%;}.btn-block+.btn-block{margin-top:.5rem;}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%;}.card-deck .card{height:100%;}.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible{z-index:11;}.dropdown-menu-position-strategy{width:max-content;top:0;left:0;}.dropdown-menu-position-strategy-absolute{position:absolute;}.dropdown-menu-position-strategy-fixed{position:fixed;}.dropdown-toggle.dropdown-toggle-hidden::after{content:none!important;}.dropdown-toggle.dropdown-toggle-hidden::before{content:none!important;}.dropdown-menu.show{animation-duration:.3s;animation-fill-mode:both;animation-name:fadeIn;}.dropdown-menu a:not([href]).dropdown-item:not(.disabled){cursor:pointer;}.dropdown-menu.dropdown-menu-scrollable{max-height:var(--dropdown-list-menu-max-height,200px);overflow-y:scroll;}.b-is-autocomplete .dropdown-menu{width:100%;max-height:var(--autocomplete-menu-max-height,200px);overflow-y:scroll;}.b-is-autocomplete .dropdown-menu .dropdown-item.focus{color:#1e2125!important;background-color:#e9ecef;}.b-is-autocomplete.b-is-autocomplete-multipleselection{display:flex;align-items:center;flex-wrap:wrap;padding-top:.25rem;max-width:100%;width:100%;cursor:text;min-height:calc(1.5em + .75rem + 2px);height:auto;border:1px solid #ced4da;border-radius:.25rem;}.b-is-autocomplete.b-is-autocomplete-multipleselection>input.form-control{display:inline-block;border:0;box-shadow:none;outline:0;background-color:transparent;max-width:inherit;width:auto;flex-grow:1;}.b-is-autocomplete.b-is-autocomplete-multipleselection>.badge{margin-bottom:.25rem;line-height:1.5;flex-grow:initial;}.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu{top:100%;}.b-is-autocomplete.b-is-autocomplete-multipleselection.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25);}.dropdown.btn-group>.btn.dropdown-toggle-split+.dropdown-menu.show{top:100%;}.dropdown{position:relative;}.dropdown.dropdown-disabled.b-is-autocomplete{background-color:var(--b-theme-light,#e9ecef);}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend){position:relative;}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle{width:100%;}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent;}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle:empty::after{margin-left:0;}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{position:absolute;right:10%;top:45%;}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-menu{top:auto;left:auto;bottom:auto;right:auto;}.dropdown>.dropdown-menu>.dropdown.dropup .dropdown-toggle::after,.dropdown>.dropdown-menu>.dropdown.dropend .dropdown-toggle::after{vertical-align:0;position:absolute;right:10%;top:45%;}.dropdown>.dropdown-menu>.dropdown.dropstart .dropdown-toggle::after{vertical-align:0;}.dropdown.dropup>.dropdown-menu{top:auto;bottom:auto;margin-top:0;margin-bottom:.125rem;}.dropdown.dropup>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent;}.dropdown.dropup>.dropdown-toggle:empty::after{margin-left:0;}.dropdown.dropend>.dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem;}.dropdown.dropend>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;}.dropdown.dropend>.dropdown-toggle:empty::after{margin-left:0;}.dropdown.dropend>.dropdown-toggle::after{vertical-align:0;}.dropdown.dropstart>.dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem;}.dropdown.dropstart>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";}.dropdown.dropstart>.dropdown-toggle::after{display:none;}.dropdown.dropstart>.dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;}.dropdown.dropstart>.dropdown-toggle:empty::after{margin-left:0;}.dropdown.dropstart>.dropdown-toggle::before{vertical-align:0;}.dropdown-menu-start{right:auto;left:0;}.dropdown-menu-end{right:0;left:auto;}@media(min-width:576px){.dropdown-menu-sm-start{right:auto;left:0;}.dropdown-menu-sm-end{right:0;left:auto;}}@media(min-width:768px){.dropdown-menu-md-start{right:auto;left:0;}.dropdown-menu-md-end{right:0;left:auto;}}@media(min-width:992px){.dropdown-menu-lg-start{right:auto;left:0;}.dropdown-menu-lg-end{right:0;left:auto;}}@media(min-width:1200px){.dropdown-menu-xl-start{right:auto;left:0;}.dropdown-menu-xl-end{right:0;left:auto;}}hr.divider.divider-text{position:unset;}hr.divider.divider-text::before{top:unset;}.snackbar-stack{z-index:1059!important;}.snackbar{z-index:1060!important;}.figure.figure-is-16x16{height:16px;width:16px;}.figure.figure-is-24x24{height:24px;width:24px;}.figure.figure-is-32x32{height:32px;width:32px;}.figure.figure-is-48x48{height:48px;width:48px;}.figure.figure-is-64x64{height:64px;width:64px;}.figure.figure-is-96x96{height:96px;width:96px;}.figure.figure-is-128x128{height:128px;width:128px;}.figure.figure-is-256x256{height:256px;width:256px;}.figure.figure-is-512x512{height:512px;width:512px;}.form-check>.form-check-input.form-check-input-pointer,.form-check>.form-check-label.form-check-label-pointer,.form-switch>.form-check-input.form-check-input-pointer,.form-switch>.form-check-label.form-check-label-pointer{cursor:pointer;}.form-control-plaintext.form-control-xs,.form-control-plaintext.form-control-md,.form-control-plaintext.form-control-xl{padding-right:0;padding-left:0;}.form-control-xs{height:calc(1.5em + .3rem + 2px);padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem;}.form-control-md{height:calc(1.5em + .94rem + 2px);padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem;}.form-control-xl{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem;}.form-select-xs{height:calc(1.5em + .3rem + 2px);padding-top:.15rem;padding-bottom:.15rem;padding-left:.5rem;font-size:.75rem;}.form-select-md{height:calc(1.5em + .94rem + 2px);padding-top:.47rem;padding-bottom:.47rem;padding-left:1rem;font-size:1.125rem;}.form-select-xl{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.5rem;}.input-group>.b-numeric:not(:last-child)>input,.input-group>div.flatpickr-wrapper:not(:last-child)>input{border-top-right-radius:0;border-bottom-right-radius:0;}.input-group>.b-numeric:not(:first-child)>input,.input-group>div.flatpickr-wrapper:not(:first-child)>input{border-top-left-radius:0;border-bottom-left-radius:0;}.input-group-xs>.form-control:not(textarea),.input-group-xs>.form-select,.input-group-xs>.b-numeric>input{height:calc(1.5em + .3rem + 2px);}.input-group-xs>.form-control,.input-group-xs>.form-select,.input-group-xs>.input-group-text,.input-group-xs>.btn,.input-group-xs>.b-numeric>input{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem;}.input-group-sm>.b-numeric>input{height:calc(1.5em + .5rem + 2px);}.input-group-sm>.b-numeric>input{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem;}.input-group-md>.form-control:not(textarea),.input-group-md>.form-select,.input-group-md>.b-numeric>input{height:calc(1.5em + .94rem + 2px);}.input-group-md>.form-control,.input-group-md>.form-select,.input-group-md>.input-group-text,.input-group-md>.btn,.input-group-md>.b-numeric>input{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem;}.input-group-lg>.b-numeric>input{height:calc(1.5em + 1rem + 2px);}.input-group-lg>.b-numeric>input{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem;}.input-group-xl>.form-control:not(textarea),.input-group-xl>.form-select,.input-group-xl>.b-numeric>input{height:calc(1.5em + 1rem + 2px);}.input-group-xl>.form-control,.input-group-xl>.form-select,.input-group-xl>.input-group-text,.input-group-xl>.btn,.input-group-xl>.b-numeric>input{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem;}.input-group-xs>.form-select,.input-group-md>.form-select,.input-group-xl>.form-select{padding-right:1.75rem;}.input-group:not(.has-validation)>.dropdown:first-child>.btn:not(:last-child).dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0;}.input-group.has-validation>.dropdown>.btn:not(:last-child).dropdown-toggle,.input-group.has-validation>.dropdown>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0;}.input-group>div.flatpickr-wrapper>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0;}.form-check>.form-check-input.form-check-input-xs{width:.7rem;height:.7rem;}.form-check>.form-check-input.form-check-input-xs+.form-check-label{line-height:"normal";padding-left:0;}.form-check>.form-check-input.form-check-input-sm{width:.8rem;height:.8rem;}.form-check>.form-check-input.form-check-input-sm+.form-check-label{line-height:"normal";padding-left:0;}.form-check>.form-check-input.form-check-input-md{width:1.25rem;height:1.25rem;}.form-check>.form-check-input.form-check-input-md+.form-check-label{line-height:1.7rem;padding-left:3px;}.form-check>.form-check-input.form-check-input-lg{width:1.55rem;height:1.55rem;}.form-check>.form-check-input.form-check-input-lg+.form-check-label{line-height:2rem;padding-left:6px;}.form-check>.form-check-input.form-check-input-xl{width:1.85rem;height:1.85rem;}.form-check>.form-check-input.form-check-input-xl+.form-check-label{line-height:2.5rem;padding-left:10px;}select[readonly]{pointer-events:none;}select[readonly] option,select[readonly] optgroup{display:none;}.b-numeric{position:relative;width:100%;}.b-numeric:hover>.b-numeric-handler-wrap{opacity:1;}.b-numeric input:disabled+.b-numeric-handler-wrap,.b-numeric input:read-only+.b-numeric-handler-wrap{display:none;}.b-numeric-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border:1px solid #d9d9d9;opacity:0;}.input-group .b-numeric{-ms-flex:1 1 auto;flex:1 1 auto;width:1%;}.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down{border-top:1px solid #d9d9d9;}.b-numeric-handler{position:relative;display:flex;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;align-items:center;justify-content:center;}.b-numeric-handler.btn{padding:0;}.form-control+.b-numeric-handler-wrap{font-size:1rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;}.form-control-xs+.b-numeric-handler-wrap{font-size:.75rem;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem;}.form-control-xs+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.75rem;}.form-control-sm+.b-numeric-handler-wrap{font-size:.875rem;border-top-right-radius:.2rem;border-bottom-right-radius:.2rem;}.form-control-sm+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.875rem;}.form-control-md+.b-numeric-handler-wrap{font-size:1.125rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;}.form-control-md+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.125rem;}.form-control-lg+.b-numeric-handler-wrap{font-size:1.25rem;border-top-right-radius:.3rem;border-bottom-right-radius:.3rem;}.form-control-lg+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.25rem;}.form-control-xl+.b-numeric-handler-wrap{font-size:1.5rem;border-top-right-radius:.4rem;border-bottom-right-radius:.4rem;}.form-control-xl+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.5rem;}.custom-file-label{overflow:hidden;}input[readonly][type=range],input[readonly=readonly][type=range]{pointer-events:none;}input[readonly][type=range]::-webkit-slider-thumb,input[readonly=readonly][type=range]::-webkit-slider-thumb{pointer-events:none;}input[readonly][type=range]::-moz-range-thumb,input[readonly=readonly][type=range]::-moz-range-thumb{pointer-events:none;}input[readonly][type=range]::-ms-thumb,input[readonly=readonly][type=range]::-ms-thumb{pointer-events:none;}.form-group{margin-bottom:1rem;}.form-inline{display:flex;flex-flow:row wrap;align-items:center;}.form-inline .form-check{width:100%;}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0;}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0;}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle;}.form-inline .form-control-plaintext{display:inline-block;}.form-inline .input-group,.form-inline .custom-select{width:auto;}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0;}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0;}.form-inline .form-select{align-items:center;justify-content:center;}.form-inline .form-check-label{margin-bottom:0;}}.b-input-color-picker{padding:.5rem .6rem;}.b-input-color-picker>.b-input-color-picker-preview{height:.55rem;}.focus-trap{display:contents;}.form-file input[type=file]{margin-left:-2px!important;}.form-file input[type=file]::-webkit-file-upload-button{display:none;}.form-file input[type=file]::file-selector-button{display:none;}.form-label-required:after{content:" *";color:var(--b-theme-danger,#dc3545);}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem;}@media(min-width:576px){.jumbotron{padding:4rem 2rem;}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0;}.jumbotron.jumbotron-primary{background-color:#007bff;color:#fff;}.jumbotron.jumbotron-secondary{background-color:#6c757d;color:#fff;}.jumbotron.jumbotron-success{background-color:#28a745;color:#fff;}.jumbotron.jumbotron-info{background-color:#17a2b8;color:#fff;}.jumbotron.jumbotron-warning{background-color:#ffc107;color:#212529;}.jumbotron.jumbotron-danger{background-color:#dc3545;color:#fff;}.jumbotron.jumbotron-light{background-color:#f8f9fa;color:#212529;}.jumbotron.jumbotron-dark{background-color:#343a40;color:#fff;}.jumbotron.jumbotron-link{background-color:#3273dc;color:#fff;}.b-layout-header-fixed{z-index:1030;}.b-layout-footer-fixed{z-index:1030;}.b-layout-sider-content{z-index:1031;}li.list-group-item-action{cursor:pointer;}.list-group-scrollable{overflow-y:scroll;}.media{display:flex;align-items:flex-start;}.media-body{flex:1;}.modal.fade{transition:opacity var(--modal-animation-duration,300ms) linear;}.modal.fade .modal-dialog{transition:-webkit-transform var(--modal-animation-duration,300ms) ease-out;transition:transform var(--modal-animation-duration,300ms) ease-out;}.offcanvas-footer{position:sticky;bottom:0;top:auto;display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);}.page-item:not(.disabled) .page-link{cursor:pointer;}.pagination-xs .page-link{padding:.125rem .25rem;font-size:.75rem;line-height:1.5;}.pagination-xs .page-item:first-child .page-link{border-top-left-radius:.15rem;border-bottom-left-radius:.15rem;}.pagination-xs .page-item:last-child .page-link{border-top-right-radius:.15rem;border-bottom-right-radius:.15rem;}.pagination-md .page-link{padding:.625rem 1.25rem;font-size:1.125rem;line-height:1.5;}.pagination-md .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;}.pagination-md .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;}.pagination-xl .page-link{padding:1rem 2rem;font-size:1.5rem;line-height:1.5;}.pagination-xl .page-item:first-child .page-link{border-top-left-radius:.4rem;border-bottom-left-radius:.4rem;}.pagination-xl .page-item:last-child .page-link{border-top-right-radius:.4rem;border-bottom-right-radius:.4rem;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary{background-color:#007bff;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary{background-color:#6c757d;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success{background-color:#28a745;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info{background-color:#17a2b8;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning{background-color:#ffc107;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger{background-color:#dc3545;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light{background-color:#f8f9fa;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark{background-color:#343a40;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link{background-color:#3273dc;}.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item{cursor:pointer;}.rating.rating-disabled{opacity:.65;}.rating .rating-item.rating-item-primary{color:#007bff;}.rating .rating-item.rating-item-secondary{color:#6c757d;}.rating .rating-item.rating-item-success{color:#28a745;}.rating .rating-item.rating-item-info{color:#17a2b8;}.rating .rating-item.rating-item-warning{color:#ffc107;}.rating .rating-item.rating-item-danger{color:#dc3545;}.rating .rating-item.rating-item-light{color:#f8f9fa;}.rating .rating-item.rating-item-dark{color:#343a40;}.rating .rating-item.rating-item-link{color:#3273dc;}.rating .rating-item.rating-item-hover{opacity:.7;}.gap-y-0{row-gap:0!important;}.gap-x-0{column-gap:0!important;}.gap-y-1{row-gap:.25rem!important;}.gap-x-1{column-gap:.25rem!important;}.gap-y-2{row-gap:.5rem!important;}.gap-x-2{column-gap:.5rem!important;}.gap-y-3{row-gap:1rem!important;}.gap-x-3{column-gap:1rem!important;}.gap-y-4{row-gap:1.5rem!important;}.gap-x-4{column-gap:1.5rem!important;}.gap-y-5{row-gap:3rem!important;}.gap-x-5{column-gap:3rem!important;}.steps{padding:0;margin:0;list-style:none;display:flex;overflow-x:auto;}.steps .step:first-child{margin-left:auto;}.steps .step:last-child{margin-right:auto;}.step:first-of-type .step-circle::before{display:none;}.step:last-of-type .step-container{padding-right:0;}.step-container{box-sizing:content-box;display:flex;align-items:center;flex-direction:column;width:5rem;min-width:5rem;max-width:5rem;padding-top:.5rem;padding-right:1rem;}.step-circle{position:relative;display:flex;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;color:#adb5bd;border:2px solid #adb5bd;border-radius:100%;background-color:#fff;}.step-circle::before{content:"";display:block;position:absolute;top:50%;left:-2px;width:calc(5rem + 1rem - 1.5rem);height:2px;transform:translate(-100%,-50%);color:#adb5bd;background-color:currentColor;}.step-text{color:#adb5bd;word-break:keep-all;text-align:center;margin-top:.25em;}.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745;}.step-completed .step-circle::before{color:#28a745;}.step-completed .step-text{color:#28a745;}.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-active .step-circle::before{color:#007bff;}.step-active .step-text{color:#007bff;}.step-primary .step-circle{color:#007bff;border-color:#007bff;}.step-primary.step-completed .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-primary.step-completed .step-circle::before{color:#007bff;}.step-primary.step-completed .step-text{color:#007bff;}.step-primary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-primary.step-active::before{color:#007bff;}.step-primary.step-active .step-text{color:#007bff;}.step-secondary .step-circle{color:#6c757d;border-color:#6c757d;}.step-secondary.step-completed .step-circle{color:#fff;background-color:#6c757d;border-color:#6c757d;}.step-secondary.step-completed .step-circle::before{color:#6c757d;}.step-secondary.step-completed .step-text{color:#6c757d;}.step-secondary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-secondary.step-active::before{color:#007bff;}.step-secondary.step-active .step-text{color:#007bff;}.step-success .step-circle{color:#28a745;border-color:#28a745;}.step-success.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745;}.step-success.step-completed .step-circle::before{color:#28a745;}.step-success.step-completed .step-text{color:#28a745;}.step-success.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-success.step-active::before{color:#007bff;}.step-success.step-active .step-text{color:#007bff;}.step-info .step-circle{color:#17a2b8;border-color:#17a2b8;}.step-info.step-completed .step-circle{color:#fff;background-color:#17a2b8;border-color:#17a2b8;}.step-info.step-completed .step-circle::before{color:#17a2b8;}.step-info.step-completed .step-text{color:#17a2b8;}.step-info.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-info.step-active::before{color:#007bff;}.step-info.step-active .step-text{color:#007bff;}.step-warning .step-circle{color:#ffc107;border-color:#ffc107;}.step-warning.step-completed .step-circle{color:#fff;background-color:#ffc107;border-color:#ffc107;}.step-warning.step-completed .step-circle::before{color:#ffc107;}.step-warning.step-completed .step-text{color:#ffc107;}.step-warning.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-warning.step-active::before{color:#007bff;}.step-warning.step-active .step-text{color:#007bff;}.step-danger .step-circle{color:#dc3545;border-color:#dc3545;}.step-danger.step-completed .step-circle{color:#fff;background-color:#dc3545;border-color:#dc3545;}.step-danger.step-completed .step-circle::before{color:#dc3545;}.step-danger.step-completed .step-text{color:#dc3545;}.step-danger.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-danger.step-active::before{color:#007bff;}.step-danger.step-active .step-text{color:#007bff;}.step-light .step-circle{color:#f8f9fa;border-color:#f8f9fa;}.step-light.step-completed .step-circle{color:#fff;background-color:#f8f9fa;border-color:#f8f9fa;}.step-light.step-completed .step-circle::before{color:#f8f9fa;}.step-light.step-completed .step-text{color:#f8f9fa;}.step-light.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-light.step-active::before{color:#007bff;}.step-light.step-active .step-text{color:#007bff;}.step-dark .step-circle{color:#343a40;border-color:#343a40;}.step-dark.step-completed .step-circle{color:#fff;background-color:#343a40;border-color:#343a40;}.step-dark.step-completed .step-circle::before{color:#343a40;}.step-dark.step-completed .step-text{color:#343a40;}.step-dark.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-dark.step-active::before{color:#007bff;}.step-dark.step-active .step-text{color:#007bff;}.step-link .step-circle{color:#3273dc;border-color:#3273dc;}.step-link.step-completed .step-circle{color:#fff;background-color:#3273dc;border-color:#3273dc;}.step-link.step-completed .step-circle::before{color:#3273dc;}.step-link.step-completed .step-text{color:#3273dc;}.step-link.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff;}.step-link.step-active::before{color:#007bff;}.step-link.step-active .step-text{color:#007bff;}.steps-content{margin:1rem 0;}.steps-content>.step-panel{display:none;}.steps-content>.active{display:block;}.form-check.form-switch .form-check-input.form-check-input-primary:checked{background-color:#007bff;border-color:#007bff;}.form-check.form-switch .form-check-input.form-check-input-secondary:checked{background-color:#6c757d;border-color:#6c757d;}.form-check.form-switch .form-check-input.form-check-input-success:checked{background-color:#28a745;border-color:#28a745;}.form-check.form-switch .form-check-input.form-check-input-info:checked{background-color:#17a2b8;border-color:#17a2b8;}.form-check.form-switch .form-check-input.form-check-input-warning:checked{background-color:#ffc107;border-color:#ffc107;}.form-check.form-switch .form-check-input.form-check-input-danger:checked{background-color:#dc3545;border-color:#dc3545;}.form-check.form-switch .form-check-input.form-check-input-light:checked{background-color:#f8f9fa;border-color:#f8f9fa;}.form-check.form-switch .form-check-input.form-check-input-dark:checked{background-color:#343a40;border-color:#343a40;}.form-check.form-switch .form-check-input.form-check-input-link:checked{background-color:#3273dc;border-color:#3273dc;}.form-check.form-switch .form-check-input.form-check-input-xs{width:calc(.75rem + (.5rem/2));height:.5rem;margin-left:-2.5em;}.form-check.form-switch .form-check-input.form-check-input-xs+.form-check-label{line-height:1rem;vertical-align:middle;padding-left:0;}.form-check.form-switch .form-check-input.form-check-input-xs:checked~.form-check-label::after{transform:translateX(calc(.75rem - (.5rem/2)));}.form-check.form-switch .form-check-input.form-check-input-sm{width:calc(1rem + (.75rem/2));height:.75rem;margin-left:-2.5em;}.form-check.form-switch .form-check-input.form-check-input-sm+.form-check-label{line-height:1.25rem;vertical-align:middle;padding-left:.75rem;}.form-check.form-switch .form-check-input.form-check-input-sm:checked~.form-check-label::after{transform:translateX(calc(1rem - (.75rem/2)));}.form-check.form-switch .form-check-input.form-check-input-md{width:calc(2rem + (1.5rem/2));height:1.5rem;margin-left:-2.5em;}.form-check.form-switch .form-check-input.form-check-input-md+.form-check-label{line-height:2rem;vertical-align:middle;padding-left:.75rem;}.form-check.form-switch .form-check-input.form-check-input-md:checked~.form-check-label::after{transform:translateX(calc(2rem - (1.5rem/2)));}.form-check.form-switch .form-check-input.form-check-input-lg{width:calc(3rem + (2rem/2));height:2rem;margin-left:-2.5em;}.form-check.form-switch .form-check-input.form-check-input-lg+.form-check-label{line-height:2.5rem;vertical-align:middle;padding-left:.75rem;}.form-check.form-switch .form-check-input.form-check-input-lg:checked~.form-check-label::after{transform:translateX(calc(3rem - (2rem/2)));}.form-check.form-switch .form-check-input.form-check-input-xl{width:calc(4rem + (2.5rem/2));height:2.5rem;margin-left:-2.5em;}.form-check.form-switch .form-check-input.form-check-input-xl+.form-check-label{line-height:3rem;vertical-align:middle;padding-left:.75rem;}.form-check.form-switch .form-check-input.form-check-input-xl:checked~.form-check-label::after{transform:translateX(calc(4rem - (2.5rem/2)));}table.table tbody tr:not(.table-group).selected{background-color:var(--bs-primary);}table.table tbody tr.table-group{cursor:pointer;background-color:var(--b-theme-light,var(--bs-light,#f5f5f5));font-weight:700;}tr.table-row-selectable:hover{cursor:pointer;}tr.table-row-selectable:focus[tabindex="0"]{outline:0;}.table-fixed-header{overflow-y:auto;}.table-fixed-header>.table{border-collapse:separate;border-spacing:0;}.table-fixed-header>.table>thead:not(.table-thead-theme)>tr>th{background:#fff;}.table-fixed-header>.table>thead>tr>th{border-top:0;position:sticky;z-index:10;}.table-fixed-header>.table>thead>tr:nth-child(1)>th{top:0;}.table-fixed-header>.table-bordered>:not(caption)>*>*{border-width:1px 1px;}.overflow-auto-auto{overflow:auto auto!important;}.overflow-auto-hidden{overflow:auto hidden!important;}.overflow-auto-visible{overflow:auto visible!important;}.overflow-auto-scroll{overflow:auto scroll!important;}.overflow-hidden-auto{overflow:hidden auto!important;}.overflow-hidden-hidden{overflow:hidden hidden!important;}.overflow-hidden-visible{overflow:hidden visible!important;}.overflow-hidden-scroll{overflow:hidden scroll!important;}.overflow-visible-auto{overflow:visible auto!important;}.overflow-visible-hidden{overflow:visible hidden!important;}.overflow-visible-visible{overflow:visible visible!important;}.overflow-visible-scroll{overflow:visible scroll!important;}.overflow-scroll-auto{overflow:scroll auto!important;}.overflow-scroll-hidden{overflow:scroll hidden!important;}.overflow-scroll-visible{overflow:scroll visible!important;}.overflow-scroll-scroll{overflow:scroll scroll!important;}ol.ordered-list-lower-alpha{list-style-type:lower-alpha;}ol.ordered-list-lower-roman{list-style-type:lower-roman;}ol.ordered-list-upper-alpha{list-style-type:upper-alpha;}ol.ordered-list-upper-roman{list-style-type:upper-roman;}.border-1{border:1px solid #dee2e6!important;}.border-1.border-primary{border-color:#007bff!important;}.border-1.border-secondary{border-color:#6c757d!important;}.border-1.border-success{border-color:#28a745!important;}.border-1.border-info{border-color:#17a2b8!important;}.border-1.border-warning{border-color:#ffc107!important;}.border-1.border-danger{border-color:#dc3545!important;}.border-1.border-light{border-color:#f8f9fa!important;}.border-1.border-dark{border-color:#343a40!important;}.border-1.border-link{border-color:#3273dc!important;}.border-primary-1{border:1px solid #007bff!important;}.border-secondary-1{border:1px solid #6c757d!important;}.border-success-1{border:1px solid #28a745!important;}.border-info-1{border:1px solid #17a2b8!important;}.border-warning-1{border:1px solid #ffc107!important;}.border-danger-1{border:1px solid #dc3545!important;}.border-light-1{border:1px solid #f8f9fa!important;}.border-dark-1{border:1px solid #343a40!important;}.border-link-1{border:1px solid #3273dc!important;}.border-top-1{border-top:1px solid #dee2e6!important;}.border-primary-top-1{border-top:1px solid #007bff!important;}.border-secondary-top-1{border-top:1px solid #6c757d!important;}.border-success-top-1{border-top:1px solid #28a745!important;}.border-info-top-1{border-top:1px solid #17a2b8!important;}.border-warning-top-1{border-top:1px solid #ffc107!important;}.border-danger-top-1{border-top:1px solid #dc3545!important;}.border-light-top-1{border-top:1px solid #f8f9fa!important;}.border-dark-top-1{border-top:1px solid #343a40!important;}.border-link-top-1{border-top:1px solid #3273dc!important;}.border-end-1{border-right:1px solid #dee2e6!important;}.border-primary-end-1{border-right:1px solid #007bff!important;}.border-secondary-end-1{border-right:1px solid #6c757d!important;}.border-success-end-1{border-right:1px solid #28a745!important;}.border-info-end-1{border-right:1px solid #17a2b8!important;}.border-warning-end-1{border-right:1px solid #ffc107!important;}.border-danger-end-1{border-right:1px solid #dc3545!important;}.border-light-end-1{border-right:1px solid #f8f9fa!important;}.border-dark-end-1{border-right:1px solid #343a40!important;}.border-link-end-1{border-right:1px solid #3273dc!important;}.border-bottom-1{border-bottom:1px solid #dee2e6!important;}.border-primary-bottom-1{border-bottom:1px solid #007bff!important;}.border-secondary-bottom-1{border-bottom:1px solid #6c757d!important;}.border-success-bottom-1{border-bottom:1px solid #28a745!important;}.border-info-bottom-1{border-bottom:1px solid #17a2b8!important;}.border-warning-bottom-1{border-bottom:1px solid #ffc107!important;}.border-danger-bottom-1{border-bottom:1px solid #dc3545!important;}.border-light-bottom-1{border-bottom:1px solid #f8f9fa!important;}.border-dark-bottom-1{border-bottom:1px solid #343a40!important;}.border-link-bottom-1{border-bottom:1px solid #3273dc!important;}.border-start-1{border-left:1px solid #dee2e6!important;}.border-primary-start-1{border-left:1px solid #007bff!important;}.border-secondary-start-1{border-left:1px solid #6c757d!important;}.border-success-start-1{border-left:1px solid #28a745!important;}.border-info-start-1{border-left:1px solid #17a2b8!important;}.border-warning-start-1{border-left:1px solid #ffc107!important;}.border-danger-start-1{border-left:1px solid #dc3545!important;}.border-light-start-1{border-left:1px solid #f8f9fa!important;}.border-dark-start-1{border-left:1px solid #343a40!important;}.border-link-start-1{border-left:1px solid #3273dc!important;}.border-2{border:2px solid #dee2e6!important;}.border-2.border-primary{border-color:#007bff!important;}.border-2.border-secondary{border-color:#6c757d!important;}.border-2.border-success{border-color:#28a745!important;}.border-2.border-info{border-color:#17a2b8!important;}.border-2.border-warning{border-color:#ffc107!important;}.border-2.border-danger{border-color:#dc3545!important;}.border-2.border-light{border-color:#f8f9fa!important;}.border-2.border-dark{border-color:#343a40!important;}.border-2.border-link{border-color:#3273dc!important;}.border-primary-2{border:2px solid #007bff!important;}.border-secondary-2{border:2px solid #6c757d!important;}.border-success-2{border:2px solid #28a745!important;}.border-info-2{border:2px solid #17a2b8!important;}.border-warning-2{border:2px solid #ffc107!important;}.border-danger-2{border:2px solid #dc3545!important;}.border-light-2{border:2px solid #f8f9fa!important;}.border-dark-2{border:2px solid #343a40!important;}.border-link-2{border:2px solid #3273dc!important;}.border-top-2{border-top:2px solid #dee2e6!important;}.border-primary-top-2{border-top:2px solid #007bff!important;}.border-secondary-top-2{border-top:2px solid #6c757d!important;}.border-success-top-2{border-top:2px solid #28a745!important;}.border-info-top-2{border-top:2px solid #17a2b8!important;}.border-warning-top-2{border-top:2px solid #ffc107!important;}.border-danger-top-2{border-top:2px solid #dc3545!important;}.border-light-top-2{border-top:2px solid #f8f9fa!important;}.border-dark-top-2{border-top:2px solid #343a40!important;}.border-link-top-2{border-top:2px solid #3273dc!important;}.border-end-2{border-right:2px solid #dee2e6!important;}.border-primary-end-2{border-right:2px solid #007bff!important;}.border-secondary-end-2{border-right:2px solid #6c757d!important;}.border-success-end-2{border-right:2px solid #28a745!important;}.border-info-end-2{border-right:2px solid #17a2b8!important;}.border-warning-end-2{border-right:2px solid #ffc107!important;}.border-danger-end-2{border-right:2px solid #dc3545!important;}.border-light-end-2{border-right:2px solid #f8f9fa!important;}.border-dark-end-2{border-right:2px solid #343a40!important;}.border-link-end-2{border-right:2px solid #3273dc!important;}.border-bottom-2{border-bottom:2px solid #dee2e6!important;}.border-primary-bottom-2{border-bottom:2px solid #007bff!important;}.border-secondary-bottom-2{border-bottom:2px solid #6c757d!important;}.border-success-bottom-2{border-bottom:2px solid #28a745!important;}.border-info-bottom-2{border-bottom:2px solid #17a2b8!important;}.border-warning-bottom-2{border-bottom:2px solid #ffc107!important;}.border-danger-bottom-2{border-bottom:2px solid #dc3545!important;}.border-light-bottom-2{border-bottom:2px solid #f8f9fa!important;}.border-dark-bottom-2{border-bottom:2px solid #343a40!important;}.border-link-bottom-2{border-bottom:2px solid #3273dc!important;}.border-start-2{border-left:2px solid #dee2e6!important;}.border-primary-start-2{border-left:2px solid #007bff!important;}.border-secondary-start-2{border-left:2px solid #6c757d!important;}.border-success-start-2{border-left:2px solid #28a745!important;}.border-info-start-2{border-left:2px solid #17a2b8!important;}.border-warning-start-2{border-left:2px solid #ffc107!important;}.border-danger-start-2{border-left:2px solid #dc3545!important;}.border-light-start-2{border-left:2px solid #f8f9fa!important;}.border-dark-start-2{border-left:2px solid #343a40!important;}.border-link-start-2{border-left:2px solid #3273dc!important;}.border-3{border:3px solid #dee2e6!important;}.border-3.border-primary{border-color:#007bff!important;}.border-3.border-secondary{border-color:#6c757d!important;}.border-3.border-success{border-color:#28a745!important;}.border-3.border-info{border-color:#17a2b8!important;}.border-3.border-warning{border-color:#ffc107!important;}.border-3.border-danger{border-color:#dc3545!important;}.border-3.border-light{border-color:#f8f9fa!important;}.border-3.border-dark{border-color:#343a40!important;}.border-3.border-link{border-color:#3273dc!important;}.border-primary-3{border:3px solid #007bff!important;}.border-secondary-3{border:3px solid #6c757d!important;}.border-success-3{border:3px solid #28a745!important;}.border-info-3{border:3px solid #17a2b8!important;}.border-warning-3{border:3px solid #ffc107!important;}.border-danger-3{border:3px solid #dc3545!important;}.border-light-3{border:3px solid #f8f9fa!important;}.border-dark-3{border:3px solid #343a40!important;}.border-link-3{border:3px solid #3273dc!important;}.border-top-3{border-top:3px solid #dee2e6!important;}.border-primary-top-3{border-top:3px solid #007bff!important;}.border-secondary-top-3{border-top:3px solid #6c757d!important;}.border-success-top-3{border-top:3px solid #28a745!important;}.border-info-top-3{border-top:3px solid #17a2b8!important;}.border-warning-top-3{border-top:3px solid #ffc107!important;}.border-danger-top-3{border-top:3px solid #dc3545!important;}.border-light-top-3{border-top:3px solid #f8f9fa!important;}.border-dark-top-3{border-top:3px solid #343a40!important;}.border-link-top-3{border-top:3px solid #3273dc!important;}.border-end-3{border-right:3px solid #dee2e6!important;}.border-primary-end-3{border-right:3px solid #007bff!important;}.border-secondary-end-3{border-right:3px solid #6c757d!important;}.border-success-end-3{border-right:3px solid #28a745!important;}.border-info-end-3{border-right:3px solid #17a2b8!important;}.border-warning-end-3{border-right:3px solid #ffc107!important;}.border-danger-end-3{border-right:3px solid #dc3545!important;}.border-light-end-3{border-right:3px solid #f8f9fa!important;}.border-dark-end-3{border-right:3px solid #343a40!important;}.border-link-end-3{border-right:3px solid #3273dc!important;}.border-bottom-3{border-bottom:3px solid #dee2e6!important;}.border-primary-bottom-3{border-bottom:3px solid #007bff!important;}.border-secondary-bottom-3{border-bottom:3px solid #6c757d!important;}.border-success-bottom-3{border-bottom:3px solid #28a745!important;}.border-info-bottom-3{border-bottom:3px solid #17a2b8!important;}.border-warning-bottom-3{border-bottom:3px solid #ffc107!important;}.border-danger-bottom-3{border-bottom:3px solid #dc3545!important;}.border-light-bottom-3{border-bottom:3px solid #f8f9fa!important;}.border-dark-bottom-3{border-bottom:3px solid #343a40!important;}.border-link-bottom-3{border-bottom:3px solid #3273dc!important;}.border-start-3{border-left:3px solid #dee2e6!important;}.border-primary-start-3{border-left:3px solid #007bff!important;}.border-secondary-start-3{border-left:3px solid #6c757d!important;}.border-success-start-3{border-left:3px solid #28a745!important;}.border-info-start-3{border-left:3px solid #17a2b8!important;}.border-warning-start-3{border-left:3px solid #ffc107!important;}.border-danger-start-3{border-left:3px solid #dc3545!important;}.border-light-start-3{border-left:3px solid #f8f9fa!important;}.border-dark-start-3{border-left:3px solid #343a40!important;}.border-link-start-3{border-left:3px solid #3273dc!important;}.border-4{border:4px solid #dee2e6!important;}.border-4.border-primary{border-color:#007bff!important;}.border-4.border-secondary{border-color:#6c757d!important;}.border-4.border-success{border-color:#28a745!important;}.border-4.border-info{border-color:#17a2b8!important;}.border-4.border-warning{border-color:#ffc107!important;}.border-4.border-danger{border-color:#dc3545!important;}.border-4.border-light{border-color:#f8f9fa!important;}.border-4.border-dark{border-color:#343a40!important;}.border-4.border-link{border-color:#3273dc!important;}.border-primary-4{border:4px solid #007bff!important;}.border-secondary-4{border:4px solid #6c757d!important;}.border-success-4{border:4px solid #28a745!important;}.border-info-4{border:4px solid #17a2b8!important;}.border-warning-4{border:4px solid #ffc107!important;}.border-danger-4{border:4px solid #dc3545!important;}.border-light-4{border:4px solid #f8f9fa!important;}.border-dark-4{border:4px solid #343a40!important;}.border-link-4{border:4px solid #3273dc!important;}.border-top-4{border-top:4px solid #dee2e6!important;}.border-primary-top-4{border-top:4px solid #007bff!important;}.border-secondary-top-4{border-top:4px solid #6c757d!important;}.border-success-top-4{border-top:4px solid #28a745!important;}.border-info-top-4{border-top:4px solid #17a2b8!important;}.border-warning-top-4{border-top:4px solid #ffc107!important;}.border-danger-top-4{border-top:4px solid #dc3545!important;}.border-light-top-4{border-top:4px solid #f8f9fa!important;}.border-dark-top-4{border-top:4px solid #343a40!important;}.border-link-top-4{border-top:4px solid #3273dc!important;}.border-end-4{border-right:4px solid #dee2e6!important;}.border-primary-end-4{border-right:4px solid #007bff!important;}.border-secondary-end-4{border-right:4px solid #6c757d!important;}.border-success-end-4{border-right:4px solid #28a745!important;}.border-info-end-4{border-right:4px solid #17a2b8!important;}.border-warning-end-4{border-right:4px solid #ffc107!important;}.border-danger-end-4{border-right:4px solid #dc3545!important;}.border-light-end-4{border-right:4px solid #f8f9fa!important;}.border-dark-end-4{border-right:4px solid #343a40!important;}.border-link-end-4{border-right:4px solid #3273dc!important;}.border-bottom-4{border-bottom:4px solid #dee2e6!important;}.border-primary-bottom-4{border-bottom:4px solid #007bff!important;}.border-secondary-bottom-4{border-bottom:4px solid #6c757d!important;}.border-success-bottom-4{border-bottom:4px solid #28a745!important;}.border-info-bottom-4{border-bottom:4px solid #17a2b8!important;}.border-warning-bottom-4{border-bottom:4px solid #ffc107!important;}.border-danger-bottom-4{border-bottom:4px solid #dc3545!important;}.border-light-bottom-4{border-bottom:4px solid #f8f9fa!important;}.border-dark-bottom-4{border-bottom:4px solid #343a40!important;}.border-link-bottom-4{border-bottom:4px solid #3273dc!important;}.border-start-4{border-left:4px solid #dee2e6!important;}.border-primary-start-4{border-left:4px solid #007bff!important;}.border-secondary-start-4{border-left:4px solid #6c757d!important;}.border-success-start-4{border-left:4px solid #28a745!important;}.border-info-start-4{border-left:4px solid #17a2b8!important;}.border-warning-start-4{border-left:4px solid #ffc107!important;}.border-danger-start-4{border-left:4px solid #dc3545!important;}.border-light-start-4{border-left:4px solid #f8f9fa!important;}.border-dark-start-4{border-left:4px solid #343a40!important;}.border-link-start-4{border-left:4px solid #3273dc!important;}.border-5{border:5px solid #dee2e6!important;}.border-5.border-primary{border-color:#007bff!important;}.border-5.border-secondary{border-color:#6c757d!important;}.border-5.border-success{border-color:#28a745!important;}.border-5.border-info{border-color:#17a2b8!important;}.border-5.border-warning{border-color:#ffc107!important;}.border-5.border-danger{border-color:#dc3545!important;}.border-5.border-light{border-color:#f8f9fa!important;}.border-5.border-dark{border-color:#343a40!important;}.border-5.border-link{border-color:#3273dc!important;}.border-primary-5{border:5px solid #007bff!important;}.border-secondary-5{border:5px solid #6c757d!important;}.border-success-5{border:5px solid #28a745!important;}.border-info-5{border:5px solid #17a2b8!important;}.border-warning-5{border:5px solid #ffc107!important;}.border-danger-5{border:5px solid #dc3545!important;}.border-light-5{border:5px solid #f8f9fa!important;}.border-dark-5{border:5px solid #343a40!important;}.border-link-5{border:5px solid #3273dc!important;}.border-top-5{border-top:5px solid #dee2e6!important;}.border-primary-top-5{border-top:5px solid #007bff!important;}.border-secondary-top-5{border-top:5px solid #6c757d!important;}.border-success-top-5{border-top:5px solid #28a745!important;}.border-info-top-5{border-top:5px solid #17a2b8!important;}.border-warning-top-5{border-top:5px solid #ffc107!important;}.border-danger-top-5{border-top:5px solid #dc3545!important;}.border-light-top-5{border-top:5px solid #f8f9fa!important;}.border-dark-top-5{border-top:5px solid #343a40!important;}.border-link-top-5{border-top:5px solid #3273dc!important;}.border-end-5{border-right:5px solid #dee2e6!important;}.border-primary-end-5{border-right:5px solid #007bff!important;}.border-secondary-end-5{border-right:5px solid #6c757d!important;}.border-success-end-5{border-right:5px solid #28a745!important;}.border-info-end-5{border-right:5px solid #17a2b8!important;}.border-warning-end-5{border-right:5px solid #ffc107!important;}.border-danger-end-5{border-right:5px solid #dc3545!important;}.border-light-end-5{border-right:5px solid #f8f9fa!important;}.border-dark-end-5{border-right:5px solid #343a40!important;}.border-link-end-5{border-right:5px solid #3273dc!important;}.border-bottom-5{border-bottom:5px solid #dee2e6!important;}.border-primary-bottom-5{border-bottom:5px solid #007bff!important;}.border-secondary-bottom-5{border-bottom:5px solid #6c757d!important;}.border-success-bottom-5{border-bottom:5px solid #28a745!important;}.border-info-bottom-5{border-bottom:5px solid #17a2b8!important;}.border-warning-bottom-5{border-bottom:5px solid #ffc107!important;}.border-danger-bottom-5{border-bottom:5px solid #dc3545!important;}.border-light-bottom-5{border-bottom:5px solid #f8f9fa!important;}.border-dark-bottom-5{border-bottom:5px solid #343a40!important;}.border-link-bottom-5{border-bottom:5px solid #3273dc!important;}.border-start-5{border-left:5px solid #dee2e6!important;}.border-primary-start-5{border-left:5px solid #007bff!important;}.border-secondary-start-5{border-left:5px solid #6c757d!important;}.border-success-start-5{border-left:5px solid #28a745!important;}.border-info-start-5{border-left:5px solid #17a2b8!important;}.border-warning-start-5{border-left:5px solid #ffc107!important;}.border-danger-start-5{border-left:5px solid #dc3545!important;}.border-light-start-5{border-left:5px solid #f8f9fa!important;}.border-dark-start-5{border-left:5px solid #343a40!important;}.border-link-start-5{border-left:5px solid #3273dc!important;}.cursor-pointer{cursor:pointer;}.fs-xs{font-size:.75rem!important;}.fs-sm{font-size:.925rem!important;}.fs-md{font-size:1.125rem!important;}.fs-lg{font-size:1.25rem!important;}.fs-xl{font-size:1.5rem!important;}.grid{display:grid;grid-template-rows:repeat(1,1fr);grid-template-columns:repeat(12,1fr);gap:1.5rem;}.grid.g-rows-1{grid-template-rows:repeat(1,minmax(0,1fr));}.grid.g-rows-2{grid-template-rows:repeat(2,minmax(0,1fr));}.grid.g-rows-3{grid-template-rows:repeat(3,minmax(0,1fr));}.grid.g-rows-4{grid-template-rows:repeat(4,minmax(0,1fr));}.grid.g-rows-5{grid-template-rows:repeat(5,minmax(0,1fr));}.grid.g-rows-6{grid-template-rows:repeat(6,minmax(0,1fr));}.grid.g-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.grid.g-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.grid.g-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.grid.g-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}.grid.g-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}.grid.g-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}.grid.g-cols-7{grid-template-columns:repeat(7,minmax(0,1fr));}.grid.g-cols-8{grid-template-columns:repeat(8,minmax(0,1fr));}.grid.g-cols-9{grid-template-columns:repeat(9,minmax(0,1fr));}.grid.g-cols-10{grid-template-columns:repeat(10,minmax(0,1fr));}.grid.g-cols-11{grid-template-columns:repeat(11,minmax(0,1fr));}.grid.g-cols-12{grid-template-columns:repeat(12,minmax(0,1fr));}.grid .g-col-1{grid-column:auto/span 1;}.grid .g-col-2{grid-column:auto/span 2;}.grid .g-col-3{grid-column:auto/span 3;}.grid .g-col-4{grid-column:auto/span 4;}.grid .g-col-5{grid-column:auto/span 5;}.grid .g-col-6{grid-column:auto/span 6;}.grid .g-col-7{grid-column:auto/span 7;}.grid .g-col-8{grid-column:auto/span 8;}.grid .g-col-9{grid-column:auto/span 9;}.grid .g-col-10{grid-column:auto/span 10;}.grid .g-col-11{grid-column:auto/span 11;}.grid .g-col-12{grid-column:auto/span 12;}@media(min-width:576px){.grid .g-col-sm-1{grid-column:auto/span 1;}.grid .g-col-sm-2{grid-column:auto/span 2;}.grid .g-col-sm-3{grid-column:auto/span 3;}.grid .g-col-sm-4{grid-column:auto/span 4;}.grid .g-col-sm-5{grid-column:auto/span 5;}.grid .g-col-sm-6{grid-column:auto/span 6;}.grid .g-col-sm-7{grid-column:auto/span 7;}.grid .g-col-sm-8{grid-column:auto/span 8;}.grid .g-col-sm-9{grid-column:auto/span 9;}.grid .g-col-sm-10{grid-column:auto/span 10;}.grid .g-col-sm-11{grid-column:auto/span 11;}.grid .g-col-sm-12{grid-column:auto/span 12;}}@media(min-width:768px){.grid .g-col-md-1{grid-column:auto/span 1;}.grid .g-col-md-2{grid-column:auto/span 2;}.grid .g-col-md-3{grid-column:auto/span 3;}.grid .g-col-md-4{grid-column:auto/span 4;}.grid .g-col-md-5{grid-column:auto/span 5;}.grid .g-col-md-6{grid-column:auto/span 6;}.grid .g-col-md-7{grid-column:auto/span 7;}.grid .g-col-md-8{grid-column:auto/span 8;}.grid .g-col-md-9{grid-column:auto/span 9;}.grid .g-col-md-10{grid-column:auto/span 10;}.grid .g-col-md-11{grid-column:auto/span 11;}.grid .g-col-md-12{grid-column:auto/span 12;}}@media(min-width:992px){.grid .g-col-lg-1{grid-column:auto/span 1;}.grid .g-col-lg-2{grid-column:auto/span 2;}.grid .g-col-lg-3{grid-column:auto/span 3;}.grid .g-col-lg-4{grid-column:auto/span 4;}.grid .g-col-lg-5{grid-column:auto/span 5;}.grid .g-col-lg-6{grid-column:auto/span 6;}.grid .g-col-lg-7{grid-column:auto/span 7;}.grid .g-col-lg-8{grid-column:auto/span 8;}.grid .g-col-lg-9{grid-column:auto/span 9;}.grid .g-col-lg-10{grid-column:auto/span 10;}.grid .g-col-lg-11{grid-column:auto/span 11;}.grid .g-col-lg-12{grid-column:auto/span 12;}}@media(min-width:1200px){.grid .g-col-xl-1{grid-column:auto/span 1;}.grid .g-col-xl-2{grid-column:auto/span 2;}.grid .g-col-xl-3{grid-column:auto/span 3;}.grid .g-col-xl-4{grid-column:auto/span 4;}.grid .g-col-xl-5{grid-column:auto/span 5;}.grid .g-col-xl-6{grid-column:auto/span 6;}.grid .g-col-xl-7{grid-column:auto/span 7;}.grid .g-col-xl-8{grid-column:auto/span 8;}.grid .g-col-xl-9{grid-column:auto/span 9;}.grid .g-col-xl-10{grid-column:auto/span 10;}.grid .g-col-xl-11{grid-column:auto/span 11;}.grid .g-col-xl-12{grid-column:auto/span 12;}}.flatpickr-months{margin:.5rem 0;}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{height:auto;position:relative;}.flatpickr-months .flatpickr-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#007bff;}.flatpickr-months .flatpickr-month{color:#212529;}.flatpickr-current-month{padding:13px 0 0 0;font-size:115%;}.flatpickr-current-month span.cur-month{font-weight:700;}.flatpickr-current-month span.cur-month:hover{background:rgba(0,123,255,.15);}.numInputWrapper:hover{background:rgba(0,123,255,.15);}.flatpickr-day{border-radius:.25rem;font-weight:500;color:#212529;}.flatpickr-day.today{border-color:#007bff;}.flatpickr-day.today:hover{background:#007bff;border-color:#007bff;}.flatpickr-day:hover{background:rgba(0,123,255,.1);border-color:rgba(0,0,0,0);}span.flatpickr-weekday{color:#212529;}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#007bff;border-color:#007bff;}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #007bff;}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:.25rem 0 0 .25rem;}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 .25rem .25rem 0;}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:rgba(0,123,255,.1);}.flatpickr-monthSelect-month.selected{background-color:#007bff;} \ No newline at end of file diff --git a/_content/Blazorise.Bootstrap5/modal.js b/_content/Blazorise.Bootstrap5/modal.js new file mode 100755 index 00000000..d021a9ae --- /dev/null +++ b/_content/Blazorise.Bootstrap5/modal.js @@ -0,0 +1,120 @@ +import { addClassToBody, removeClassFromBody } from "../Blazorise/utilities.js?v=1.3.1.0"; + +export function open(element, scrollToTop) { + adjustDialogDimensionsBeforeShow(element); + + var modals = Number(document.body.getAttribute("data-modals") || "0"); + + if (modals === 0) { + addClassToBody("modal-open"); + } + + modals += 1; + + document.body.setAttribute("data-modals", modals.toString()); + + if (scrollToTop) { + const modalBody = element.querySelector('.modal-body'); + + if (modalBody) { + modalBody.scrollTop = 0; + } + } +} + +export function close(element) { + var modals = Number(document.body.getAttribute("data-modals") || "0"); + + modals -= 1; + + if (modals < 0) { + modals = 0; + } + + if (modals === 0) { + removeClassFromBody("modal-open"); + } + + document.body.setAttribute("data-modals", modals.toString()); + + resetAdjustments(element); +} + +export function adjustDialogDimensionsBeforeShow(element) { + if (element) { + const rect = document.body.getBoundingClientRect(); + const isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; + const scrollbarWidth = getScrollBarWidth(); + + if (isBodyOverflowing) { + const fixedContent = [].slice.call(document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')); + const stickyContent = [].slice.call(document.querySelectorAll('.sticky-top')); + + // Adjust fixed content padding + if (fixedContent) { + fixedContent.forEach((fixedContentElement) => { + const calculatedPadding = fixedContentElement.style.paddingRight; + + fixedContentElement.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`; + }); + } + + // Adjust sticky content margin + if (stickyContent) { + stickyContent.forEach((stickyContentElement) => { + const calculatedMargin = stickyContentElement.style.marginRight; + + stickyContentElement.style.marginRight = `${parseFloat(calculatedMargin) - scrollbarWidth}px`; + }); + } + + // Adjust body padding + const calculatedPadding = document.body.style.paddingRight; + + document.body.style.paddingRight = `${calculatedPadding + scrollbarWidth}px`; + } + + const isModalOverflowing = element.scrollHeight > document.documentElement.clientHeight; + + if (!isBodyOverflowing && isModalOverflowing) { + element.style.paddingLeft = `${scrollbarWidth}px`; + } + + if (isBodyOverflowing && !isModalOverflowing) { + element.style.paddingRight = `${scrollbarWidth}px`; + } + } +} + +export function resetAdjustments(element) { + // Restore element padding + if (element && element.style) { + element.style.paddingLeft = '' + element.style.paddingRight = ''; + } + + const fixedContent = [].slice.call(document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')); + const stickyContent = [].slice.call(document.querySelectorAll('.sticky-top')); + + // Restore fixed content padding + if (fixedContent) { + fixedContent.forEach((fixedContentElement) => { + fixedContentElement.style.paddingRight = ''; + }); + } + + // Restore sticky content + if (stickyContent) { + stickyContent.forEach((stickyContentElement) => { + stickyContentElement.style.marginRight = ''; + }); + } + + // Restore body padding + document.body.style.paddingRight = ''; +} + +export function getScrollBarWidth() { + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); +} \ No newline at end of file diff --git a/_content/Blazorise.Bootstrap5/tooltip.js b/_content/Blazorise.Bootstrap5/tooltip.js new file mode 100755 index 00000000..d3d50b9a --- /dev/null +++ b/_content/Blazorise.Bootstrap5/tooltip.js @@ -0,0 +1,11 @@ +import { initialize as baseInitialize, destroy, updateContent } from "../Blazorise/tooltip.js?v=1.3.1.0"; + +export function initialize(element, elementId, options) { + baseInitialize(element, elementId, options); + + if (options.autodetectInline && element && element.querySelector(".custom-control-input,.btn")) { + element.classList.add("b-tooltip-inline"); + } +} + +export { destroy, updateContent }; \ No newline at end of file diff --git a/_content/Blazorise.Charts/charts.js b/_content/Blazorise.Charts/charts.js new file mode 100755 index 00000000..da9162ac --- /dev/null +++ b/_content/Blazorise.Charts/charts.js @@ -0,0 +1,485 @@ +import { parseFunction, deepClone } from "./utilities.js?v=1.3.1.0"; + +// workaround for: https://github.com/Megabit/Blazorise/issues/2287 +const _ChartTitleCallbacks = function (item) { + return item[0].dataset.label; +}; + +const _ChartLabelCallback = function (item) { + const label = item.label; + const value = item.dataset.data[item.dataIndex]; + return label + ': ' + value; +}; + +// In Chart v3 callbacks are now defined by default. So to override them by the Blazorise the user +// would have to first set them to null immediately after charts.js is loaded for this workaround +// to have any effect. + +if (!Chart.overrides.pie.plugins.tooltip.callbacks.title) { + Chart.overrides.pie.plugins.tooltip.callbacks.title = _ChartTitleCallbacks; +} + +if (!Chart.overrides.pie.plugins.tooltip.callbacks.label) { + Chart.overrides.pie.plugins.tooltip.callbacks.label = _ChartLabelCallback; +} + +if (!Chart.overrides.doughnut.plugins.tooltip.callbacks.title) { + Chart.overrides.doughnut.plugins.tooltip.callbacks.title = _ChartTitleCallbacks; +} + +if (!Chart.overrides.doughnut.plugins.tooltip.callbacks.label) { + Chart.overrides.doughnut.plugins.tooltip.callbacks.label = _ChartLabelCallback; +} + +const _instances = []; + +export function initialize(dotnetAdapter, eventOptions, canvas, canvasId, type, data, options, dataJsonString, optionsJsonString, optionsObject, pluginNames) { + if (dataJsonString) { + data = JSON.parse(dataJsonString); + } + + if (optionsJsonString) { + options = JSON.parse(optionsJsonString); + } + else if (optionsObject) { + options = optionsObject; + } + + function processTicksCallback(scales, axis) { + if (scales && Array.isArray(scales[axis])) { + scales[axis].forEach(a => { + if (a.ticks && a.ticks.callback) { + if (typeof a.ticks.callback === 'string') { + const callback = a.ticks.callback; + a.ticks.callback = function (value, index, ticks) { + return eval(callback); + } + } + } + }); + } + } + + if (options && options.scales) { + processTicksCallback(options.scales, 'x'); + processTicksCallback(options.scales, 'y'); + } + + // search for canvas element + canvas = canvas || document.getElementById(canvasId); + + if (canvas) { + const chart = createChart(dotnetAdapter, eventOptions, canvas, canvasId, type, data, options, pluginNames); + + // save references to all elements + _instances[canvasId] = { + dotnetAdapter: dotnetAdapter, + eventOptions: eventOptions, + canvas: canvas, + chart: chart + }; + } +} + +export function changeChartType(canvas, canvasId, type) { + let chart = getChart(canvasId); + + if (chart) { + const data = chart.data; + const options = deepClone(chart.options); + const instance = _instances[canvasId]; + + if (data && data.datasets) { + data.datasets.forEach((ds) => { + ds.type = type; + }); + } + + chart.destroy(); + + chart = createChart(instance.dotnetAdapter, instance.eventOptions, canvas, canvas, type, data, options, instance.pluginNames); + + _instances[canvasId].chart = chart; + } +} + +function createChart(dotnetAdapter, eventOptions, canvas, canvasId, type, data, options, pluginNames) { + // save the copy of the received options + const originalOptions = deepClone(options); + + options = compileOptionCallbacks(options); + + const plugins = []; + + if (pluginNames) { + if (pluginNames.includes("DataLabels") && ChartDataLabels) { + plugins.push(ChartDataLabels); + } + + if (pluginNames.includes("Streaming")) { + plugins.push({ + duration: 20000 + }); + } + } + + const chart = new Chart(canvas, { + type: type, + data: data, + options: options, + plugins: plugins + }); + + chart.originalOptions = originalOptions; + + wireEvents(dotnetAdapter, eventOptions, canvas, type, chart); + + return chart; +} + +export function compileOptionCallbacks(options) { + if (options && options.scales) { + if (options.scales.x && options.scales.x.ticks && options.scales.x.ticks.callback) { + options.scales.x.ticks.callback = parseFunction(options.scales.x.ticks.callback); + } + + if (options.scales.y && options.scales.y.ticks && options.scales.y.ticks.callback) { + options.scales.y.ticks.callback = parseFunction(options.scales.y.ticks.callback); + } + } + + return options; +} + +export function destroy(canvas, canvasId) { + var instances = _instances || {}; + + const instance = instances[canvasId]; + + if (instance) { + const chart = instance.chart; + + if (chart) { + chart.destroy(); + } + + delete instances[canvasId]; + } +} + +export function setOptions(canvasId, options, optionsJsonString, optionsObject) { + if (optionsJsonString) { + options = JSON.parse(optionsJsonString); + } + else if (optionsObject) { + options = optionsObject; + } + + const chart = getChart(canvasId); + + if (chart) { + // save the copy of the received options + const originalOptions = deepClone(options); + + options = compileOptionCallbacks(options); + + chart.options = options; + chart.originalOptions = originalOptions; + + // Due to a bug in chartjs we need to set aspectRatio directly on chart instance + // instead of through the options. + if (options.aspectRatio) { + chart._aspectRatio = options.aspectRatio; + + chart.resize(); + } + } +} + +export function resize(canvasId) { + const chart = getChart(canvasId); + + if (chart) { + chart.resize(); + } +} + +export function update(canvasId) { + const chart = getChart(canvasId); + + if (chart) { + chart.update(); + } +} + +export function clear(canvasId) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.labels = []; + chart.data.datasets = []; + chart.update(); + } +} + +export function addLabel(canvasId, newLabels) { + const chart = getChart(canvasId); + + if (chart) { + newLabels.forEach((label, index) => { + chart.data.labels.push(label); + }); + } +} + +export function addDataset(canvasId, newDatasets) { + const chart = getChart(canvasId); + if (chart) { + newDatasets.forEach((dataset, index) => { + chart.data.datasets.push(dataset); + }); + } +} + +export function removeDataset(canvasId, datasetIndex) { + const chart = getChart(canvasId); + + if (chart && datasetIndex >= 0) { + chart.data.datasets.splice(datasetIndex, 1); + } +} + +export function addData(canvasId, datasetIndex, newData) { + const chart = getChart(canvasId); + + if (chart) { + newData.forEach((data, index) => { + chart.data.datasets[datasetIndex].data.push(data); + }); + } +} + +export function setData(canvasId, datasetIndex, newData) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.datasets[datasetIndex].data = newData; + } +} + +export function addDatasetsAndUpdate(canvasId, newDatasets) { + const chart = getChart(canvasId); + + if (chart) { + newDatasets.forEach((dataset, index) => { + chart.data.datasets.push(dataset); + }); + + chart.update(); + } +} + +export function addLabelsDatasetsAndUpdate(canvasId, newLabels, newDatasets) { + const chart = getChart(canvasId); + + if (chart) { + newLabels.forEach((label, index) => { + chart.data.labels.push(label); + }); + + newDatasets.forEach((dataset, index) => { + chart.data.datasets.push(dataset); + }); + + chart.update(); + } +} + +export function shiftLabel(canvasId) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.labels.shift(); + } +} + +export function shiftData(canvasId, datasetIndex) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.datasets[datasetIndex].data.shift(); + } +} + +export function popLabel(canvasId) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.labels.pop(); + } +} + +export function popData(canvasId, datasetIndex) { + const chart = getChart(canvasId); + + if (chart) { + chart.data.datasets[datasetIndex].data.pop(); + } +} + +function toModel(element, type) { + if (type == "line") { + return { + x: element.x, + y: element.y, + label: element.options.label, + backgroundColor: element.options.backgroundColor, + borderColor: element.options.borderColor, + borderWidth: element.options.borderWidth, + controlPointNextX: element.cp1x, + controlPointNextY: element.cp1y, + controlPointPreviousX: element.cp2x, + controlPointPreviousY: element.cp2y, + hitRadius: element.options.hitRadius, + pointStyle: element.options.pointStyle, + radius: element.options.radius, + skip: element.skip, + stop: element.stop, + steppedLine: element.options.steppedLine, + tension: element.options.tension + }; + } + else if (type == "bar") { + return { + x: element.x, + y: element.y, + backgroundColor: element.options.backgroundColor, + borderColor: element.options.borderColor, + borderRadius: element.options.borderRadius, + borderSkipped: element.options.borderSkipped, + borderWidth: element.options.borderWidth, + inflateAmount: element.options.inflateAmount, + pointStyle: element.options.pointStyle, + datasetLabel: element.options.datasetLabel, + base: element.base, + horizontal: element.horizontal, + width: element.width, + height: element.height + }; + } + else if (type == "pie" || type == "polarArea" || type == "doughnut") { + return { + x: element.x, + y: element.y, + + backgroundColor: element.options.backgroundColor, + borderAlign: element.options.borderAlign, + borderColor: element.options.borderColor, + borderRadius: element.options.borderRadius, + borderWidth: element.options.borderWidth, + offset: element.options.offset, + spacing: element.options.spacing, + circumference: element.circumference, + startAngle: element.startAngle, + endAngle: element.endAngle, + innerRadius: element.innerRadius, + outerRadius: element.outerRadius, + pixelMargin: element.pixelMargin, + fullCircles: element.fullCircles + }; + } + else if (type == "scatter" || type == "bubble") { + return { + x: element.x, + y: element.y, + + backgroundColor: element.options.backgroundColor, + borderColor: element.options.borderColor, + borderWidth: element.options.borderWidth, + hitRadius: element.options.hitRadius, + hoverBorderWidth: element.options.hoverBorderWidth, + hoverRadius: element.options.hoverRadius, + pointStyle: element.options.pointStyle, + radius: element.options.radius, + rotation: element.options.rotation, + skip: element.skip, + stop: element.stop + }; + } + else if (type == "radar") { + return { + x: element.x, + y: element.y, + + angle: element.angle, + backgroundColor: element.options.backgroundColor, + borderColor: element.options.borderColor, + borderWidth: element.options.borderWidth, + hitRadius: element.options.hitRadius, + hoverBorderWidth: element.options.hoverBorderWidth, + hoverRadius: element.options.hoverRadius, + pointStyle: element.options.pointStyle, + radius: element.options.radius, + rotation: element.options.rotation, + skip: element.skip, + stop: element.stop + }; + } + + return { + x: element.x, + y: element.y, + backgroundColor: element.options.backgroundColor, + borderColor: element.options.borderColor, + borderWidth: element.options.borderWidth + }; +} + +export function wireEvents(dotnetAdapter, eventOptions, canvas, type, chart) { + if (eventOptions.hasClickEvent) { + canvas.onclick = function (evt) { + const activePoint = chart.getElementsAtEventForMode(evt, 'nearest', { intersect: true }, false); + + if (activePoint && activePoint.length > 0) { + const datasetIndex = activePoint[0].datasetIndex; + const index = activePoint[0].index; + const model = toModel(activePoint[0].element, type); + model.datasetLabel = chart.data.labels[index]; + + dotnetAdapter.invokeMethodAsync("Event", "click", datasetIndex, index, JSON.stringify(model)); + } + }; + } + + if (eventOptions.hasHoverEvent) { + chart.config.options.onHover = function (evt) { + if (evt.type === "mousemove") { + const activePoint = chart.getElementsAtEventForMode(evt, 'nearest', { intersect: true }, false); + + if (activePoint && activePoint.length > 0) { + const datasetIndex = activePoint[0].datasetIndex; + const index = activePoint[0].index; + const model = toModel(activePoint[0].element, type); + model.datasetLabel = chart.data.labels[index]; + + dotnetAdapter.invokeMethodAsync("Event", "hover", datasetIndex, index, JSON.stringify(model)); + } + } + else if (evt.type === "mouseout") { + dotnetAdapter.invokeMethodAsync("Event", "mouseout", -1, -1, "{}"); + } + }; + } +} + +export function getChart(canvasId) { + let chart = null; + + Chart.helpers.each(Chart.instances, function (instance) { + if (instance.canvas.id === canvasId) { + chart = instance; + } + }); + + return chart; +} diff --git a/_content/Blazorise.Charts/utilities.js b/_content/Blazorise.Charts/utilities.js new file mode 100755 index 00000000..01ae4dcc --- /dev/null +++ b/_content/Blazorise.Charts/utilities.js @@ -0,0 +1,26 @@ +export function parseFunction(str) { + try { + let fn_body_idx = str.indexOf('{'), + fn_body = str.substring(fn_body_idx + 1, str.lastIndexOf('}')), + fn_declare = str.substring(0, fn_body_idx), + fn_params = fn_declare.substring(fn_declare.indexOf('(') + 1, fn_declare.lastIndexOf(')')), + args = fn_params.split(','); + + args.push(fn_body); + + function Fn() { + return Function.apply(this, args); + } + + Fn.prototype = Function.prototype; + + return new Fn(); + } + catch (error) { + return null; + } +} + +export function deepClone(value) { + return JSON.parse(JSON.stringify(value)); +} \ No newline at end of file diff --git a/_content/Blazorise.DataGrid/datagrid.js b/_content/Blazorise.DataGrid/datagrid.js new file mode 100755 index 00000000..4a8e8a0e --- /dev/null +++ b/_content/Blazorise.DataGrid/datagrid.js @@ -0,0 +1,39 @@ +import { getRequiredElement } from "../Blazorise/utilities.js?v=1.3.1.0"; + +export function initialize(element, elementId) { + element = getRequiredElement(element, elementId); + + if (element) { + var headerInputs = element.querySelectorAll("thead input"); + headerInputs.forEach(input => { + input.addEventListener("keypress", (e) => { + preventSubmitOnEnter(e); + }); + }); + } +} + +export function scrollTo(table, rowUnselectedClass) { + let allTr = table.querySelectorAll("tbody tr"); + let scrollTo = table.querySelector("tbody > div").offsetHeight; + + for (let i = 0; i < allTr.length; i++) { + let tr = allTr[i]; + + if (tr.classList.contains(rowUnselectedClass)) + scrollTo += tr.offsetHeight; + else { + break; + } + } + + table.parentElement.scrollTop = scrollTo; + + return scrollTo; +} + +function preventSubmitOnEnter(e) { + if (e.keyCode == 13) { + e.preventDefault(); + } +} \ No newline at end of file diff --git a/_content/Blazorise.Snackbar/blazorise.snackbar.css b/_content/Blazorise.Snackbar/blazorise.snackbar.css new file mode 100755 index 00000000..418326ac --- /dev/null +++ b/_content/Blazorise.Snackbar/blazorise.snackbar.css @@ -0,0 +1,496 @@ +.snackbar { + align-items: center; + background-color: var(--b-snackbar-background, #323232); + color: var(--b-snackbar-text-color, rgb(255, 255, 255)); + font-size: 0.875rem; + line-height: 1.428572; + opacity: 0; + padding: 0.875rem 1.5rem; + position: fixed; + bottom: 0; + left: 0; + transform: translateY(100%); + transition: opacity 0s var(--transition-duration-mobile-leaving, 0.195s), transform var(--transition-duration-mobile-leaving, 0.195s) cubic-bezier(0.4, 0, 1, 1); + width: 100%; + z-index: 60; +} +@media (min-width: 768px) { + .snackbar { + border-radius: 2px; + max-width: 35.5rem; + min-width: 18rem; + left: 50%; + transform: translate(-50%, 100%); + width: auto; + } +} +@media (min-width: 768px) { + .snackbar { + transition: opacity 0s var(--transition-duration-tablet-leaving, 0.2535s), transform var(--transition-duration-tablet-leaving, 0.2535s) cubic-bezier(0.4, 0, 1, 1); + } +} +@media (min-width: 1200px) { + .snackbar { + transition: opacity 0s var(--transition-duration-desktop-leaving, 0.13s), transform var(--transition-duration-desktop-leaving, 0.13s) cubic-bezier(0.4, 0, 1, 1); + } +} +@media screen and (prefers-reduced-motion: reduce) { + .snackbar { + transition: none; + } +} +.snackbar.snackbar-show { + transition-duration: var(--transition-duration-mobile-entering, 0.225s); + transition-property: transform; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + opacity: 1; + transform: translateY(0); +} +@media (min-width: 768px) { + .snackbar.snackbar-show { + transition-duration: var(--transition-duration-tablet-entering, 0.2925s); + } +} +@media (min-width: 1200px) { + .snackbar.snackbar-show { + transition-duration: var(--transition-duration-desktop-entering, 0.15s); + } +} +@media screen and (prefers-reduced-motion: reduce) { + .snackbar.snackbar-show { + transition: none; + } +} +@media (min-width: 768px) { + .snackbar.snackbar-show { + transform: translate(-50%, -1.5rem); + } +} + +.snackbar-header { + display: flex; + -ms-flex-pack: justify; + justify-content: space-between; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + background-color: DARKEN(var(--b-snackbar-background, #323232), 30%); + margin-right: auto; + min-width: 0; + font-weight: bold; + padding-bottom: 0.875rem; +} + +.snackbar-footer { + display: flex; + -ms-flex-pack: justify; + justify-content: space-between; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + background-color: DARKEN(var(--b-snackbar-background, #323232), 30%); + margin-right: auto; + min-width: 0; + padding-top: 0.875rem; +} + +.snackbar-body { + display: flex; + -ms-flex-pack: justify; + justify-content: space-between; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin-right: auto; + max-height: 100%; + min-width: 0; +} + +.snackbar-action-button { + transition-duration: var(--transition-duration-mobile, 0.3s); + transition-property: background-color, background-image; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + background-color: transparent; + background-image: none; + border: 0; + color: var(--b-snackbar-button-color, var(--b-snackbar-button-color, #ff4081)); + cursor: pointer; + display: block; + flex-shrink: 0; + font-size: inherit; + font-weight: 500; + line-height: inherit; + /*margin-left: $snackbar-inner-spacer-x;*/ + padding: 0; + text-transform: uppercase; + white-space: nowrap; +} +@media (min-width: 768px) { + .snackbar-action-button { + transition-duration: var(--transition-duration-tablet, 0.39s); + } +} +@media (min-width: 1200px) { + .snackbar-action-button { + transition-duration: var(--transition-duration-desktop, 0.2s); + } +} +@media screen and (prefers-reduced-motion: reduce) { + .snackbar-action-button { + transition: none; + } +} +.snackbar-action-button:focus, .snackbar-action-button:hover { + color: var(--b-snackbar-button-hover-color, var(--b-snackbar-button-hover-color, #ff80ab)); + text-decoration: none; +} +@media (min-width: 768px) { + .snackbar-action-button { + margin-left: 3rem; + } +} +.snackbar-action-button:focus { + outline: 0; +} + +@media (min-width: 768px) { + .snackbar-bottom-start, + .snackbar-bottom-end { + transform: translateY(100%); + } + .snackbar-bottom-start.snackbar-show, + .snackbar-bottom-end.snackbar-show { + transform: translateY(-1.5rem); + } +} + +@media (min-width: 768px) { + .snackbar-bottom-start { + left: 1.5rem; + } +} + +@media (min-width: 768px) { + .snackbar-bottom-end { + right: 1.5rem; + left: auto; + } +} + +.snackbar-top { + top: 0; + bottom: auto; + transform: translateY(-100%); +} +@media (min-width: 768px) { + .snackbar-top { + transform: translateX(-50%) translateY(-100%); + } + .snackbar-top.snackbar-show { + transform: translate(-50%, 1.5rem); + } +} +.snackbar-top-start { + top: 0; + bottom: auto; + transform: translateY(-100%); + left: 0; +} +@media (min-width: 768px) { + .snackbar-top-start { + transform: translateY(-100%); + left: 1.5rem; + } + .snackbar-top-start.snackbar-show { + transform: translateY(1.5rem); + } +} +.snackbar-top-end { + top: 0; + bottom: auto; + transform: translateY(-100%); +} +@media (min-width: 768px) { + .snackbar-top-end { + transform: translateY(-100%); + right: 1.5rem; + left: auto; + } + .snackbar-top-end.snackbar-show { + transform: translateY(1.5rem); + } +} + +.snackbar-multi-line { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} +.snackbar-multi-line .snackbar-body { + white-space: normal; +} + +.snackbar-primary { + background-color: var(--b-snackbar-background-primary, #cce5ff); + color: var(--b-snackbar-text-primary, #004085); +} + +.snackbar-action-button-primary { + color: var(--b-snackbar-button-primary, #ff4081); +} +.snackbar-action-button-primary:focus, .snackbar-action-button-primary:hover { + color: var(--b-snackbar-button-hover-primary, #ff80ab); +} + +.snackbar-secondary { + background-color: var(--b-snackbar-background-secondary, #e2e3e5); + color: var(--b-snackbar-text-secondary, #383d41); +} + +.snackbar-action-button-secondary { + color: var(--b-snackbar-button-secondary, #ff4081); +} +.snackbar-action-button-secondary:focus, .snackbar-action-button-secondary:hover { + color: var(--b-snackbar-button-hover-secondary, #ff80ab); +} + +.snackbar-success { + background-color: var(--b-snackbar-background-success, #d4edda); + color: var(--b-snackbar-text-success, #155724); +} + +.snackbar-action-button-success { + color: var(--b-snackbar-button-success, #ff4081); +} +.snackbar-action-button-success:focus, .snackbar-action-button-success:hover { + color: var(--b-snackbar-button-hover-success, #ff80ab); +} + +.snackbar-danger { + background-color: var(--b-snackbar-background-danger, #f8d7da); + color: var(--b-snackbar-text-danger, #721c24); +} + +.snackbar-action-button-danger { + color: var(--b-snackbar-button-danger, #ff4081); +} +.snackbar-action-button-danger:focus, .snackbar-action-button-danger:hover { + color: var(--b-snackbar-button-hover-danger, #ff80ab); +} + +.snackbar-warning { + background-color: var(--b-snackbar-background-warning, #fff3cd); + color: var(--b-snackbar-text-warning, #856404); +} + +.snackbar-action-button-warning { + color: var(--b-snackbar-button-warning, #ff4081); +} +.snackbar-action-button-warning:focus, .snackbar-action-button-warning:hover { + color: var(--b-snackbar-button-hover-warning, #ff80ab); +} + +.snackbar-info { + background-color: var(--b-snackbar-background-info, #d1ecf1); + color: var(--b-snackbar-text-info, #0c5460); +} + +.snackbar-action-button-info { + color: var(--b-snackbar-button-info, #ff4081); +} +.snackbar-action-button-info:focus, .snackbar-action-button-info:hover { + color: var(--b-snackbar-button-hover-info, #ff80ab); +} + +.snackbar-light { + background-color: var(--b-snackbar-background-light, #fefefe); + color: var(--b-snackbar-text-light, #818182); +} + +.snackbar-action-button-light { + color: var(--b-snackbar-button-light, #ff4081); +} +.snackbar-action-button-light:focus, .snackbar-action-button-light:hover { + color: var(--b-snackbar-button-hover-light, #ff80ab); +} + +.snackbar-dark { + background-color: var(--b-snackbar-background-dark, #d6d8d9); + color: var(--b-snackbar-text-dark, #1b1e21); +} + +.snackbar-action-button-dark { + color: var(--b-snackbar-button-dark, #ff4081); +} +.snackbar-action-button-dark:focus, .snackbar-action-button-dark:hover { + color: var(--b-snackbar-button-hover-dark, #ff80ab); +} + +.snackbar-stack-bottom-end, +.snackbar-stack-bottom-start, +.snackbar-stack-bottom { + display: flex; + flex-direction: column; + position: fixed; + z-index: 1090 !important; + bottom: 0; +} + +.snackbar-stack-bottom-end .snackbar, +.snackbar-stack-bottom-start .snackbar, +.snackbar-stack-bottom .snackbar { + position: relative; + flex-direction: row; + margin-bottom: 0; +} +.snackbar-stack-bottom-end .snackbar:not(:last-child), +.snackbar-stack-bottom-start .snackbar:not(:last-child), +.snackbar-stack-bottom .snackbar:not(:last-child) { + margin-bottom: 1.5rem; +} + +.snackbar-stack-top-end, +.snackbar-stack-top-start, +.snackbar-stack-top { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + align-content: center; + position: fixed; + z-index: 1090 !important; + top: 0; +} +.snackbar-stack-top-end .snackbar, +.snackbar-stack-top-start .snackbar, +.snackbar-stack-top .snackbar { + position: relative; + flex-direction: row; + margin-bottom: 0; +} +.snackbar-stack-top-end .snackbar.snackbar-show, +.snackbar-stack-top-start .snackbar.snackbar-show, +.snackbar-stack-top .snackbar.snackbar-show { + transform: translate(-50%); +} +.snackbar-stack-top-end .snackbar:not(:last-child), +.snackbar-stack-top-start .snackbar:not(:last-child), +.snackbar-stack-top .snackbar:not(:last-child) { + margin-bottom: 1.5rem; +} + +.snackbar-stack-top .snackbar.snackbar-show, +.snackbar-stack-top-start .snackbar.snackbar-show, +.snackbar-stack-top-end .snackbar.snackbar-show { + transition: all var(--stack-transition-duration, 1000); + animation: showTop var(--stack-animation-duration, 500) forwards; + opacity: 1; +} + +.snackbar-stack-top .snackbar-hide, +.snackbar-stack-top-start .snackbar-hide, +.snackbar-stack-top-end .snackbar-hide { + transition: all var(--stack-transition-duration, 1000); + animation: hideTop var(--stack-animation-duration, 500) forwards; + opacity: 0; +} + +.snackbar-stack-bottom .snackbar.snackbar-show, +.snackbar-stack-bottom-start .snackbar.snackbar-show, +.snackbar-stack-bottom-end .snackbar.snackbar-show { + transition: all var(--stack-transition-duration, 1000); + animation: showBottom var(--stack-animation-duration, 500) forwards; + opacity: 1; +} + +.snackbar-stack-bottom .snackbar-hide, +.snackbar-stack-bottom-start .snackbar-hide, +.snackbar-stack-bottom-end .snackbar-hide { + transition: all var(--stack-transition-duration, 1000); + animation: hideBottom var(--stack-animation-duration, 500) forwards; + opacity: 0; +} + +@keyframes showTop { + 0% { + max-height: 0; + padding: 0; + transform: translate(-50%) translateY(-50px); + opacity: 0; + } + 100% { + max-height: 150px; + padding: 0.5rem 1rem; + transform: translate(-50%) translateY(0); + opacity: 1; + } +} +@keyframes hideTop { + 0% { + max-height: 150px; + padding: 0.5rem 1rem; + transform: translate(-50%) translateY(0); + opacity: 1; + } + 100% { + max-height: 0; + padding: 0; + transform: translate(-50%) translateY(-50px); + opacity: 0; + } +} +@keyframes showBottom { + 0% { + max-height: 0; + padding: 0; + opacity: 0; + transform: translate(-50%) translateY(50px); + } + 100% { + max-height: 150px; + padding: 0.5rem 1rem; + opacity: 1; + transform: translate(-50%) translateY(0); + } +} +@keyframes hideBottom { + 0% { + max-height: 150px; + transform: translate(-50%) translateY(0); + padding: 0.5rem 1rem; + opacity: 1; + } + 100% { + max-height: 0; + padding: 0; + transform: translate(-50%) translateY(50px); + opacity: 0; + } +} +@media (min-width: 576px) { + .snackbar-stack-bottom { + left: 50%; + transform: translate(-50%, 0%); + bottom: 1.5rem; + } + .snackbar-stack-bottom-start { + left: 1.5rem; + bottom: 1.5rem; + } + .snackbar-stack-bottom-end { + right: 1.5rem; + bottom: 1.5rem; + } + .snackbar-stack-top-start { + left: 1.5rem; + top: 1.5rem; + } + .snackbar-stack-top-end { + right: 1.5rem; + top: 1.5rem; + } + .snackbar-stack-top { + left: 50%; + transform: translate(-50%, 0%); + top: 1.5rem; + } +} diff --git a/_content/Blazorise.Snackbar/blazorise.snackbar.min.css b/_content/Blazorise.Snackbar/blazorise.snackbar.min.css new file mode 100755 index 00000000..5c746a18 --- /dev/null +++ b/_content/Blazorise.Snackbar/blazorise.snackbar.min.css @@ -0,0 +1 @@ +.snackbar{align-items:center;background-color:var(--b-snackbar-background,#323232);color:var(--b-snackbar-text-color,#fff);font-size:.875rem;line-height:1.428572;opacity:0;padding:.875rem 1.5rem;position:fixed;bottom:0;left:0;transform:translateY(100%);transition:opacity 0s var(--transition-duration-mobile-leaving,.195s),transform var(--transition-duration-mobile-leaving,.195s) cubic-bezier(.4,0,1,1);width:100%;z-index:60;}@media(min-width:768px){.snackbar{border-radius:2px;max-width:35.5rem;min-width:18rem;left:50%;transform:translate(-50%,100%);width:auto;}}@media(min-width:768px){.snackbar{transition:opacity 0s var(--transition-duration-tablet-leaving,.2535s),transform var(--transition-duration-tablet-leaving,.2535s) cubic-bezier(.4,0,1,1);}}@media(min-width:1200px){.snackbar{transition:opacity 0s var(--transition-duration-desktop-leaving,.13s),transform var(--transition-duration-desktop-leaving,.13s) cubic-bezier(.4,0,1,1);}}@media screen and (prefers-reduced-motion:reduce){.snackbar{transition:none;}}.snackbar.snackbar-show{transition-duration:var(--transition-duration-mobile-entering,.225s);transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1);opacity:1;transform:translateY(0);}@media(min-width:768px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-tablet-entering,.2925s);}}@media(min-width:1200px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-desktop-entering,.15s);}}@media screen and (prefers-reduced-motion:reduce){.snackbar.snackbar-show{transition:none;}}@media(min-width:768px){.snackbar.snackbar-show{transform:translate(-50%,-1.5rem);}}.snackbar-header{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;font-weight:bold;padding-bottom:.875rem;}.snackbar-footer{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;padding-top:.875rem;}.snackbar-body{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;max-height:100%;min-width:0;}.snackbar-action-button{transition-duration:var(--transition-duration-mobile,.3s);transition-property:background-color,background-image;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:transparent;background-image:none;border:0;color:var(--b-snackbar-button-color,var(--b-snackbar-button-color,#ff4081));cursor:pointer;display:block;flex-shrink:0;font-size:inherit;font-weight:500;line-height:inherit;padding:0;text-transform:uppercase;white-space:nowrap;}@media(min-width:768px){.snackbar-action-button{transition-duration:var(--transition-duration-tablet,.39s);}}@media(min-width:1200px){.snackbar-action-button{transition-duration:var(--transition-duration-desktop,.2s);}}@media screen and (prefers-reduced-motion:reduce){.snackbar-action-button{transition:none;}}.snackbar-action-button:focus,.snackbar-action-button:hover{color:var(--b-snackbar-button-hover-color,var(--b-snackbar-button-hover-color,#ff80ab));text-decoration:none;}@media(min-width:768px){.snackbar-action-button{margin-left:3rem;}}.snackbar-action-button:focus{outline:0;}@media(min-width:768px){.snackbar-bottom-start,.snackbar-bottom-end{transform:translateY(100%);}.snackbar-bottom-start.snackbar-show,.snackbar-bottom-end.snackbar-show{transform:translateY(-1.5rem);}}@media(min-width:768px){.snackbar-bottom-start{left:1.5rem;}}@media(min-width:768px){.snackbar-bottom-end{right:1.5rem;left:auto;}}.snackbar-top{top:0;bottom:auto;transform:translateY(-100%);}@media(min-width:768px){.snackbar-top{transform:translateX(-50%) translateY(-100%);}.snackbar-top.snackbar-show{transform:translate(-50%,1.5rem);}}.snackbar-top-start{top:0;bottom:auto;transform:translateY(-100%);left:0;}@media(min-width:768px){.snackbar-top-start{transform:translateY(-100%);left:1.5rem;}.snackbar-top-start.snackbar-show{transform:translateY(1.5rem);}}.snackbar-top-end{top:0;bottom:auto;transform:translateY(-100%);}@media(min-width:768px){.snackbar-top-end{transform:translateY(-100%);right:1.5rem;left:auto;}.snackbar-top-end.snackbar-show{transform:translateY(1.5rem);}}.snackbar-multi-line{padding-top:1.25rem;padding-bottom:1.25rem;}.snackbar-multi-line .snackbar-body{white-space:normal;}.snackbar-primary{background-color:var(--b-snackbar-background-primary,#cce5ff);color:var(--b-snackbar-text-primary,#004085);}.snackbar-action-button-primary{color:var(--b-snackbar-button-primary,#ff4081);}.snackbar-action-button-primary:focus,.snackbar-action-button-primary:hover{color:var(--b-snackbar-button-hover-primary,#ff80ab);}.snackbar-secondary{background-color:var(--b-snackbar-background-secondary,#e2e3e5);color:var(--b-snackbar-text-secondary,#383d41);}.snackbar-action-button-secondary{color:var(--b-snackbar-button-secondary,#ff4081);}.snackbar-action-button-secondary:focus,.snackbar-action-button-secondary:hover{color:var(--b-snackbar-button-hover-secondary,#ff80ab);}.snackbar-success{background-color:var(--b-snackbar-background-success,#d4edda);color:var(--b-snackbar-text-success,#155724);}.snackbar-action-button-success{color:var(--b-snackbar-button-success,#ff4081);}.snackbar-action-button-success:focus,.snackbar-action-button-success:hover{color:var(--b-snackbar-button-hover-success,#ff80ab);}.snackbar-danger{background-color:var(--b-snackbar-background-danger,#f8d7da);color:var(--b-snackbar-text-danger,#721c24);}.snackbar-action-button-danger{color:var(--b-snackbar-button-danger,#ff4081);}.snackbar-action-button-danger:focus,.snackbar-action-button-danger:hover{color:var(--b-snackbar-button-hover-danger,#ff80ab);}.snackbar-warning{background-color:var(--b-snackbar-background-warning,#fff3cd);color:var(--b-snackbar-text-warning,#856404);}.snackbar-action-button-warning{color:var(--b-snackbar-button-warning,#ff4081);}.snackbar-action-button-warning:focus,.snackbar-action-button-warning:hover{color:var(--b-snackbar-button-hover-warning,#ff80ab);}.snackbar-info{background-color:var(--b-snackbar-background-info,#d1ecf1);color:var(--b-snackbar-text-info,#0c5460);}.snackbar-action-button-info{color:var(--b-snackbar-button-info,#ff4081);}.snackbar-action-button-info:focus,.snackbar-action-button-info:hover{color:var(--b-snackbar-button-hover-info,#ff80ab);}.snackbar-light{background-color:var(--b-snackbar-background-light,#fefefe);color:var(--b-snackbar-text-light,#818182);}.snackbar-action-button-light{color:var(--b-snackbar-button-light,#ff4081);}.snackbar-action-button-light:focus,.snackbar-action-button-light:hover{color:var(--b-snackbar-button-hover-light,#ff80ab);}.snackbar-dark{background-color:var(--b-snackbar-background-dark,#d6d8d9);color:var(--b-snackbar-text-dark,#1b1e21);}.snackbar-action-button-dark{color:var(--b-snackbar-button-dark,#ff4081);}.snackbar-action-button-dark:focus,.snackbar-action-button-dark:hover{color:var(--b-snackbar-button-hover-dark,#ff80ab);}.snackbar-stack-bottom-end,.snackbar-stack-bottom-start,.snackbar-stack-bottom{display:flex;flex-direction:column;position:fixed;z-index:1090!important;bottom:0;}.snackbar-stack-bottom-end .snackbar,.snackbar-stack-bottom-start .snackbar,.snackbar-stack-bottom .snackbar{position:relative;flex-direction:row;margin-bottom:0;}.snackbar-stack-bottom-end .snackbar:not(:last-child),.snackbar-stack-bottom-start .snackbar:not(:last-child),.snackbar-stack-bottom .snackbar:not(:last-child){margin-bottom:1.5rem;}.snackbar-stack-top-end,.snackbar-stack-top-start,.snackbar-stack-top{display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:center;position:fixed;z-index:1090!important;top:0;}.snackbar-stack-top-end .snackbar,.snackbar-stack-top-start .snackbar,.snackbar-stack-top .snackbar{position:relative;flex-direction:row;margin-bottom:0;}.snackbar-stack-top-end .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top .snackbar.snackbar-show{transform:translate(-50%);}.snackbar-stack-top-end .snackbar:not(:last-child),.snackbar-stack-top-start .snackbar:not(:last-child),.snackbar-stack-top .snackbar:not(:last-child){margin-bottom:1.5rem;}.snackbar-stack-top .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showTop var(--stack-animation-duration,500) forwards;opacity:1;}.snackbar-stack-top .snackbar-hide,.snackbar-stack-top-start .snackbar-hide,.snackbar-stack-top-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideTop var(--stack-animation-duration,500) forwards;opacity:0;}.snackbar-stack-bottom .snackbar.snackbar-show,.snackbar-stack-bottom-start .snackbar.snackbar-show,.snackbar-stack-bottom-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showBottom var(--stack-animation-duration,500) forwards;opacity:1;}.snackbar-stack-bottom .snackbar-hide,.snackbar-stack-bottom-start .snackbar-hide,.snackbar-stack-bottom-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideBottom var(--stack-animation-duration,500) forwards;opacity:0;}@keyframes showTop{0%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0;}100%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1;}}@keyframes hideTop{0%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1;}100%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0;}}@keyframes showBottom{0%{max-height:0;padding:0;opacity:0;transform:translate(-50%) translateY(50px);}100%{max-height:150px;padding:.5rem 1rem;opacity:1;transform:translate(-50%) translateY(0);}}@keyframes hideBottom{0%{max-height:150px;transform:translate(-50%) translateY(0);padding:.5rem 1rem;opacity:1;}100%{max-height:0;padding:0;transform:translate(-50%) translateY(50px);opacity:0;}}@media(min-width:576px){.snackbar-stack-bottom{left:50%;transform:translate(-50%,0%);bottom:1.5rem;}.snackbar-stack-bottom-start{left:1.5rem;bottom:1.5rem;}.snackbar-stack-bottom-end{right:1.5rem;bottom:1.5rem;}.snackbar-stack-top-start{left:1.5rem;top:1.5rem;}.snackbar-stack-top-end{right:1.5rem;top:1.5rem;}.snackbar-stack-top{left:50%;transform:translate(-50%,0%);top:1.5rem;}} \ No newline at end of file diff --git a/_content/Blazorise.TreeView/blazorise.treeview.css b/_content/Blazorise.TreeView/blazorise.treeview.css new file mode 100755 index 00000000..cfeff4a7 --- /dev/null +++ b/_content/Blazorise.TreeView/blazorise.treeview.css @@ -0,0 +1,31 @@ +.b-tree-view .b-tree-view-node { + margin-left: 1.25rem; +} +.b-tree-view .b-tree-view-node.b-tree-view-node-collapsed { + display: none; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-icon { + float: left; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title { + margin-left: 1.25rem; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title > .b-tree-view-node-check { + display: inline-block; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title > .b-tree-view-node-check > input.is-checkradio + label { + padding-left: 1rem; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title > .b-tree-view-node-check > div.inline-flex.mr-4 { + margin-right: 0.25rem; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title > .b-tree-view-node-check > .custom-control.custom-checkbox { + padding-left: 1.5rem; +} +.b-tree-view .b-tree-view-node .b-tree-view-node-title > .b-tree-view-node-check > label.ant-checkbox-wrapper > span:last-child { + padding-right: 0; + padding-left: 0; +} +.b-tree-view .b-tree-view-node .b-tree-view-node .cursor-pointer { + cursor: pointer; +} diff --git a/_content/Blazorise.TreeView/blazorise.treeview.min.css b/_content/Blazorise.TreeView/blazorise.treeview.min.css new file mode 100755 index 00000000..85ad904f --- /dev/null +++ b/_content/Blazorise.TreeView/blazorise.treeview.min.css @@ -0,0 +1 @@ +.b-tree-view .b-tree-view-node{margin-left:1.25rem;}.b-tree-view .b-tree-view-node.b-tree-view-node-collapsed{display:none;}.b-tree-view .b-tree-view-node .b-tree-view-node-icon{float:left;}.b-tree-view .b-tree-view-node .b-tree-view-node-title{margin-left:1.25rem;}.b-tree-view .b-tree-view-node .b-tree-view-node-title>.b-tree-view-node-check{display:inline-block;}.b-tree-view .b-tree-view-node .b-tree-view-node-title>.b-tree-view-node-check>input.is-checkradio+label{padding-left:1rem;}.b-tree-view .b-tree-view-node .b-tree-view-node-title>.b-tree-view-node-check>div.inline-flex.mr-4{margin-right:.25rem;}.b-tree-view .b-tree-view-node .b-tree-view-node-title>.b-tree-view-node-check>.custom-control.custom-checkbox{padding-left:1.5rem;}.b-tree-view .b-tree-view-node .b-tree-view-node-title>.b-tree-view-node-check>label.ant-checkbox-wrapper>span:last-child{padding-right:0;padding-left:0;}.b-tree-view .b-tree-view-node .b-tree-view-node .cursor-pointer{cursor:pointer;} \ No newline at end of file diff --git a/_content/Blazorise/blazorise.css b/_content/Blazorise/blazorise.css new file mode 100755 index 00000000..69f35a50 --- /dev/null +++ b/_content/Blazorise/blazorise.css @@ -0,0 +1,2453 @@ +body:before { + content: "mobile"; + display: none; + visibility: hidden; +} + +@media (min-width: 768px) { + body:before { + content: "tablet"; + } +} +@media (min-width: 992px) { + body:before { + content: "desktop"; + } +} +@media (min-width: 1200px) { + body:before { + content: "widescreen"; + } +} +@media (min-width: 1400px) { + body:before { + content: "fullhd"; + } +} +hr.divider.divider-solid { + border-top: var(--b-divider-thickness, 1px) solid var(--b-divider-color, #999); +} +hr.divider.divider-dashed { + border-top: var(--b-divider-thickness, 1px) dashed var(--b-divider-color, #999); +} +hr.divider.divider-dotted { + border-top: var(--b-divider-thickness, 1px) dotted var(--b-divider-color, #999); +} +hr.divider.divider-text { + position: relative; + border: none; + height: var(--b-divider-thickness, 1px); + background: var(--b-divider-color, #999); +} +hr.divider.divider-text::before { + content: attr(data-content); + display: inline-block; + background: #fff; + font-weight: bold; + font-size: var(--b-divider-font-size, 0.85rem); + color: var(--b-divider-color, #999); + border-radius: 30rem; + padding: 0.2rem 2rem; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.b-drop-zone { + position: relative; + transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; +} +.b-drop-zone.b-drop-zone-drag-block > * { + pointer-events: none; +} +.b-drop-zone.b-drop-zone-drop-allowed { + outline: 1px solid var(--b-theme-success, "#00FF00") !important; +} +.b-drop-zone.b-drop-zone-drop-not-allowed { + outline: 1px solid var(--b-theme-danger, "#FF0000") !important; +} +.b-drop-zone-draggable:not(.draggable-preview-start) { + cursor: grab; + user-select: none; +} +.b-drop-zone-draggable:not(.draggable-preview-start):active { + cursor: grabbing; +} +.b-drop-zone .draggable-placeholder { + outline: 2px dashed var(--b-theme-primary, "#0000FF") !important; + padding: 1rem; +} +.b-drop-zone .draggable-preview-start { + height: 20px; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; +} + +.b-file-picker { + display: inline-block; + width: 100%; + /*.dropdown { + .custom-file { + width: auto; + + .custom-file-label { + border: 0; + } + } + + .b-file-picker-files { + width: 100%; + } + + .b-file-picker-file { + margin-right: 1.5rem; + } + }*/ +} +.b-file-picker .b-text-drop { + border: 1px solid rgba(0, 0, 0, 0.15); + margin-top: 0.5rem; + display: block; + text-align: center; + font-size: 0.75rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.b-file-picker .b-file-picker-file { + min-width: 25rem; +} +.b-file-picker .b-file-picker-file span { + display: block; +} +.b-file-picker .b-file-picker-file .b-file-picker-file-size, .b-file-picker .b-file-picker-file .b-file-picker-file-status, .b-file-picker .b-file-picker-file .b-file-picker-file-relativepath { + font-size: 0.75rem; +} + +.b-input-color-picker { + padding: 0.6rem; +} +.b-input-color-picker > .b-input-color-picker-preview { + position: relative; + z-index: 1; + width: 100%; + height: 100%; + display: flex; + flex-direction: row; + justify-content: space-between; + /*margin-bottom: 0.5em;*/ +} +.b-input-color-picker > .b-input-color-picker-preview::before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('data:image/svg+xml;utf8, '); + background-size: 0.5em; + border-radius: 0.15em; + z-index: -1; +} +.b-input-color-picker > .b-input-color-picker-preview > .b-input-color-picker-curent-color { + display: inline-block; + width: 100%; + height: 100%; +} +.b-input-color-picker[aria-disabled=true] { + opacity: 0.65; +} + +.progress.progress-xs { + height: 0.25rem; +} +.progress.progress-sm { + height: 0.5rem; +} +.progress.progress-md { + height: 1rem; +} +.progress.progress-lg { + height: 1.5rem; +} +.progress.progress-xl { + height: 2rem; +} + +.b-page-progress { + width: 100%; + height: 4px; + z-index: 9999; + top: 0; + left: 0; + position: fixed; + display: none; +} +.b-page-progress .b-page-progress-indicator { + width: 0; + height: 100%; + transition: height 0.3s; + background-color: #000; + transition: width 1s; +} +.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-indeterminate { + width: 30%; + animation: running-page-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite; +} +.b-page-progress.b-page-progress-active { + display: block; +} + +@keyframes running-page-progress { + 0% { + margin-left: 0px; + margin-right: 100%; + } + 50% { + margin-left: 25%; + margin-right: 0%; + } + 100% { + margin-left: 100%; + margin-right: 0; + } +} +.tippy-box[data-animation=scale][data-placement^=top] { + transform-origin: bottom; +} + +.tippy-box[data-animation=scale][data-placement^=bottom] { + transform-origin: top; +} + +.tippy-box[data-animation=scale][data-placement^=left] { + transform-origin: right; +} + +.tippy-box[data-animation=scale][data-placement^=right] { + transform-origin: left; +} + +.tippy-box[data-animation=scale][data-state=hidden] { + transform: scale(0.5); + opacity: 0; +} + +.tippy-box[data-theme~=blazorise] { + background-color: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); + color: var(--b-tooltip-color, #ffffff); +} + +.tippy-box[data-theme~=blazorise][data-placement^=top] > .tippy-arrow::before { + border-top-color: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); +} + +.tippy-box[data-theme~=blazorise][data-placement^=bottom] > .tippy-arrow::before { + border-bottom-color: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); +} + +.tippy-box[data-theme~=blazorise][data-placement^=left] > .tippy-arrow::before { + border-left-color: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); +} + +.tippy-box[data-theme~=blazorise][data-placement^=right] > .tippy-arrow::before { + border-right-color: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); +} + +.tippy-box[data-theme~=blazorise] > .tippy-svg-arrow { + fill: RGBA( var(--b-tooltip-background-color-r, 128), var(--b-tooltip-background-color-g, 128), var(--b-tooltip-background-color-b, 128), var(--b-tooltip-background-opacity, 0.9) ); +} + +.b-tooltip-inline { + display: inline-block; +} + +.b-layout { + display: flex; + flex: auto; + flex-direction: column; +} +.b-layout.b-layout-root { + height: 100vh; +} + +.b-layout, +.b-layout * { + box-sizing: border-box; +} + +@keyframes spinner { + 0% { + transform: translate3d(-50%, -50%, 0) rotate(0deg); + } + 100% { + transform: translate3d(-50%, -50%, 0) rotate(360deg); + } +} +.b-layout > .b-layout-loading { + z-index: 9999; + position: fixed; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.3); +} +.b-layout > .b-layout-loading:before { + animation: 1s linear infinite spinner; + border: solid 3px #eee; + border-bottom-color: var(--b-theme-primary); + border-radius: 50%; + height: 40px; + left: 50%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); + width: 40px; + content: " "; +} +.b-layout.b-layout-has-sider { + flex-direction: row; + min-height: 0; +} +.b-layout.b-layout-has-sider .b-layout { + overflow-x: hidden; +} + +.b-layout-header, +.b-layout-footer { + flex: 0 0 auto; +} + +.b-layout-header { + color: rgba(0, 0, 0, 0.65); +} + +.b-layout.b-layout-root.b-layout-has-sider > .b-layout-header-fixed, +.b-layout.b-layout-root.b-layout-has-sider > .b-layout > .b-layout-header-fixed { + position: sticky; + top: 0; + width: 100%; + flex: 0; +} + +.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed, +.b-layout.b-layout-root:not(.b-layout-has-sider) > .b-layout .b-layout-header-fixed { + position: fixed; + top: 0; + left: 0; + right: 0; + flex: 0; +} +.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed + .b-layout-content, +.b-layout.b-layout-root:not(.b-layout-has-sider) > .b-layout .b-layout-header-fixed + .b-layout-content { + margin-top: var(--b-bar-horizontal-height, auto); +} + +.b-layout.b-layout-root > .b-layout-header.b-layout-header-fixed + .b-layout.b-layout-has-sider { + margin-top: var(--b-bar-horizontal-height, auto); +} + +.b-layout-footer { + color: rgba(0, 0, 0, 0.65); +} +.b-layout-footer-fixed { + position: sticky; + z-index: 1; + bottom: 0; + flex: 0; +} + +.b-layout-content { + flex: 1; +} + +.b-layout-sider { + display: flex; + position: relative; + background: #001529; +} + +.b-layout-sider-content { + position: sticky; + top: 0; + z-index: 2; +} + +.b-layout-header .navbar { + line-height: inherit; +} + +.b-bar-horizontal[data-collapse=hide] { + flex-wrap: nowrap; +} +.b-bar-horizontal[data-collapse=hide][data-broken=true] { + height: auto; +} +.b-bar-horizontal[data-broken=false] { + height: auto; +} + +.b-layout > .b-layout-header .b-bar-horizontal[data-collapse=hide][data-broken=true] { + height: var(--b-bar-horizontal-height, auto); +} +.b-layout > .b-layout-header .b-bar-horizontal[data-broken=false] { + height: var(--b-bar-horizontal-height, auto); +} + +.b-bar-initial { + display: none !important; +} + +.b-bar-vertical-inline, +.b-bar-vertical-popout, +.b-bar-vertical-small { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + position: sticky; + top: 0; + padding: 0; + min-width: var(--b-vertical-bar-width, 230px); + max-width: var(--b-vertical-bar-width, 230px); + width: var(--b-vertical-bar-width, 230px); + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + height: 100%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* + Theming + */ +} +.b-bar-vertical-inline:not(.b-bar-initial), +.b-bar-vertical-popout:not(.b-bar-initial), +.b-bar-vertical-small:not(.b-bar-initial) { + transition: width 200ms ease-in-out, min-width 200ms ease-in-out; +} +.b-bar-vertical-inline .b-bar-menu, +.b-bar-vertical-popout .b-bar-menu, +.b-bar-vertical-small .b-bar-menu { + width: 100%; + display: flex; + flex: 1; + justify-content: space-between; + flex-direction: column; + align-self: stretch; +} +.b-bar-vertical-inline .b-bar-brand, +.b-bar-vertical-popout .b-bar-brand, +.b-bar-vertical-small .b-bar-brand { + width: 100%; + display: flex; + height: var(--b-vertical-bar-brand-height, 64px); + min-height: var(--b-vertical-bar-brand-height, 64px); +} +.b-bar-vertical-inline .b-bar-toggler-inline, +.b-bar-vertical-popout .b-bar-toggler-inline, +.b-bar-vertical-small .b-bar-toggler-inline { + height: var(--b-vertical-bar-brand-height, 64px); + padding: 12px; + display: inline-flex; + cursor: pointer; + position: absolute; + right: 0; +} +.b-bar-vertical-inline .b-bar-toggler-inline > *, +.b-bar-vertical-popout .b-bar-toggler-inline > *, +.b-bar-vertical-small .b-bar-toggler-inline > * { + margin: auto; +} +.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + display: flex; + position: fixed; + left: var(--b-vertical-bar-width, 230px); + border-radius: 0px 10px 10px 0px; + border: 0px; + width: 10px; + height: 40px; + padding: 5px; + align-items: center; + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + cursor: pointer; +} +.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial), +.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial), +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial) { + transition: width 200ms ease-in-out, left 200ms ease-in-out; +} +.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle) > *, +.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle) > *, +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle) > * { + margin: auto; + display: none; +} +.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover, +.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover, +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover { + width: 45px; +} +.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover > *, +.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover > *, +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover > * { + display: block; +} +.b-bar-vertical-inline .b-bar-item, +.b-bar-vertical-popout .b-bar-item, +.b-bar-vertical-small .b-bar-item { + margin: auto; + flex-grow: 1; + min-height: 40px; +} +.b-bar-vertical-inline .b-bar-item .b-bar-icon, +.b-bar-vertical-popout .b-bar-item .b-bar-icon, +.b-bar-vertical-small .b-bar-item .b-bar-icon { + font-size: 1.25rem; + vertical-align: middle; + margin: 3px; + display: inline-block; +} +.b-bar-vertical-inline .b-bar-start, +.b-bar-vertical-popout .b-bar-start, +.b-bar-vertical-small .b-bar-start { + width: 100%; + display: block; +} +.b-bar-vertical-inline .b-bar-end, +.b-bar-vertical-popout .b-bar-end, +.b-bar-vertical-small .b-bar-end { + padding-bottom: 1rem; + width: 100%; + padding-top: 1rem; + display: block; +} +.b-bar-vertical-inline .b-bar-end .b-bar-dropdown, +.b-bar-vertical-popout .b-bar-end .b-bar-dropdown, +.b-bar-vertical-small .b-bar-end .b-bar-dropdown { + position: relative; +} +.b-bar-vertical-inline .b-bar-end .b-bar-dropdown-menu-container, +.b-bar-vertical-popout .b-bar-end .b-bar-dropdown-menu-container, +.b-bar-vertical-small .b-bar-end .b-bar-dropdown-menu-container { + bottom: 0; +} +.b-bar-vertical-inline .b-bar-link, +.b-bar-vertical-popout .b-bar-link, +.b-bar-vertical-small .b-bar-link { + display: block; + width: 100%; + text-decoration: none; + padding: 0.5rem 0.5rem 0.5rem 1.5rem; + cursor: pointer; + overflow-x: hidden; + line-height: 1.5rem; + vertical-align: middle; + transition: font-size 150ms ease-in; +} +.b-bar-vertical-inline .b-bar-label, +.b-bar-vertical-popout .b-bar-label, +.b-bar-vertical-small .b-bar-label { + background: transparent; + color: #adb5bd; + padding: 0.375rem 1.25rem; + font-size: 0.75rem; + text-overflow: ellipsis; + overflow-x: hidden; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-toggle:before, +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-toggle:before, +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-toggle:before { + content: " "; + border: solid; + border-width: 0 2px 2px 0; + display: inline-block; + padding: 2px; + right: 1rem; + transition: transform 200ms ease-out; + float: right; + position: relative; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + top: 0.7rem; +} +.b-bar-vertical-inline .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before, +.b-bar-vertical-popout .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before, +.b-bar-vertical-small .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + top: 0.5rem; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu, +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu, +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu { + display: none; + background: inherit; + color: inherit; + float: none; + padding: 5px 0px; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true], +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true], +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true] { + display: block; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item, +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item, +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item { + position: relative; + color: inherit; + transition: background 100ms ease-in-out, color 100ms ease-in-out; + text-decoration: none; + display: block; + width: 100%; + overflow-x: hidden; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i, +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i, +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i { + margin-right: 0.3rem; +} +.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu:before, +.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu:before, +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu:before { + background: inherit; + box-shadow: none; +} +.b-bar-vertical-inline .b-bar-mobile-toggle, +.b-bar-vertical-popout .b-bar-mobile-toggle, +.b-bar-vertical-small .b-bar-mobile-toggle { + right: 20px; + margin: auto; + display: none; +} +.b-bar-vertical-inline .b-bar-item-multi-line, +.b-bar-vertical-popout .b-bar-item-multi-line, +.b-bar-vertical-small .b-bar-item-multi-line { + display: -webkit-box !important; + -webkit-box-orient: vertical; + -webkit-line-clamp: var(--b-bar-item-lines, 2); + white-space: normal !important; + overflow: hidden; + text-overflow: ellipsis; +} +.b-bar-vertical-inline.b-bar-dark, +.b-bar-vertical-popout.b-bar-dark, +.b-bar-vertical-small.b-bar-dark { + background: var(--b-bar-dark-background, #001529); + color: var(--b-bar-dark-color, rgba(255, 255, 255, 0.5)); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-brand, +.b-bar-vertical-popout.b-bar-dark .b-bar-brand, +.b-bar-vertical-small.b-bar-dark .b-bar-brand { + background: var(--b-bar-brand-dark-background, rgba(255, 255, 255, 0.025)); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link, +.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link, +.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link { + color: #fff; +} +.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link.active, +.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link.active, +.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link.active { + color: #fff; + background: inherit; +} +.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link:hover, +.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link:hover, +.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link:hover { + color: #fff; + background: inherit; +} +.b-bar-vertical-inline.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-popout.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-small.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + background: var(--b-bar-dark-background, #001529); + color: var(--b-bar-dark-color, rgba(255, 255, 255, 0.5)); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu, +.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu, +.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu { + background: var(--b-bar-dropdown-dark-background, #000c17); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active, +.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active, +.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active { + color: var(--b-bar-item-dark-active-color, #fff); + background: var(--b-bar-item-dark-active-background, #0288D1); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover, +.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover, +.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover { + color: var(--b-bar-item-dark-hover-color, #fff); + background: var(--b-bar-item-dark-hover-background, rgba(255, 255, 255, 0.3)); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-link, +.b-bar-vertical-popout.b-bar-dark .b-bar-link, +.b-bar-vertical-small.b-bar-dark .b-bar-link { + color: inherit; +} +.b-bar-vertical-inline.b-bar-dark .b-bar-link.active, +.b-bar-vertical-popout.b-bar-dark .b-bar-link.active, +.b-bar-vertical-small.b-bar-dark .b-bar-link.active { + color: var(--b-bar-item-dark-active-color, #fff); + background: var(--b-bar-item-dark-active-background, #0288D1); +} +.b-bar-vertical-inline.b-bar-dark .b-bar-link:hover, +.b-bar-vertical-popout.b-bar-dark .b-bar-link:hover, +.b-bar-vertical-small.b-bar-dark .b-bar-link:hover { + color: var(--b-bar-item-dark-hover-color, #fff); + background: var(--b-bar-item-dark-hover-background, rgba(255, 255, 255, 0.3)); +} +.b-bar-vertical-inline.b-bar-light, +.b-bar-vertical-popout.b-bar-light, +.b-bar-vertical-small.b-bar-light { + background: var(--b-bar-light-background, #fff); + color: var(--b-bar-light-color, rgba(0, 0, 0, 0.7)); +} +.b-bar-vertical-inline.b-bar-light .b-bar-brand, +.b-bar-vertical-popout.b-bar-light .b-bar-brand, +.b-bar-vertical-small.b-bar-light .b-bar-brand { + background: var(--b-bar-brand-light-background, rgba(0, 0, 0, 0.025)); +} +.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link, +.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link, +.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link { + color: #000; +} +.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link.active, +.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link.active, +.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link.active { + background: inherit; +} +.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link:hover, +.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link:hover, +.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link:hover { + background: inherit; +} +.b-bar-vertical-inline.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-popout.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-small.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + background: var(--b-bar-brand-light-background, #fff); + color: var(--b-bar-light-color, rgba(0, 0, 0, 0.7)); +} +.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu, +.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu, +.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu { + background: var(--b-bar-dropdown-light-background, #f2f2f2); +} +.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active, +.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active, +.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active { + color: var(--b-bar-item-light-active-color, #000); + background: var(--b-bar-item-light-active-background, #0288D1); +} +.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover, +.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover, +.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover { + color: var(--b-bar-item-light-hover-color, #000); + background: var(--b-bar-item-light-hover-background, rgba(0, 0, 0, 0.3)); +} +.b-bar-vertical-inline.b-bar-light .b-bar-link, +.b-bar-vertical-popout.b-bar-light .b-bar-link, +.b-bar-vertical-small.b-bar-light .b-bar-link { + color: inherit; +} +.b-bar-vertical-inline.b-bar-light .b-bar-link.active, +.b-bar-vertical-popout.b-bar-light .b-bar-link.active, +.b-bar-vertical-small.b-bar-light .b-bar-link.active { + color: var(--b-bar-item-light-active-color, #000); + background: var(--b-bar-item-light-active-background, #0288D1); +} +.b-bar-vertical-inline.b-bar-light .b-bar-link:hover, +.b-bar-vertical-popout.b-bar-light .b-bar-link:hover, +.b-bar-vertical-small.b-bar-light .b-bar-link:hover { + color: var(--b-bar-item-light-hover-color, #000); + background: var(--b-bar-item-light-hover-background, rgba(0, 0, 0, 0.3)); +} + +.b-bar-vertical-small, +.b-bar-vertical-inline[data-collapse=small], +.b-bar-vertical-popout[data-collapse=small] { + width: var(--b-vertical-bar-small-width, 64px); + min-width: var(--b-vertical-bar-small-width, 64px); +} +.b-bar-vertical-small:not(.b-bar-initial), +.b-bar-vertical-inline[data-collapse=small]:not(.b-bar-initial), +.b-bar-vertical-popout[data-collapse=small]:not(.b-bar-initial) { + transition: width 200ms ease-in-out, min-width 200ms ease-in-out; +} +.b-bar-vertical-small .b-bar-toggler-inline, +.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-inline, +.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-inline { + position: relative; + width: 100%; +} +.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + left: var(--b-vertical-bar-small-width, 64px); +} +.b-bar-vertical-small .b-bar-item > .b-bar-dropdown > .b-bar-dropdown-toggle:before, +.b-bar-vertical-inline[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-dropdown-toggle:before, +.b-bar-vertical-popout[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-dropdown-toggle:before { + display: none; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container { + z-index: 100; + max-height: 50vh; + position: absolute !important; + margin: -42px 5px 0px 5px; + display: flex; + width: var(--b-vertical-bar-popout-menu-width, 180px); + left: var(--b-vertical-bar-small-width, 64px); +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right { + right: var(--b-vertical-bar-small-width, 64px); + left: unset; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu { + box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05); + border-radius: 3px; + overflow-y: auto; + overflow-x: hidden; + flex: 1 100%; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item { + padding: 0.5rem 0.5rem 0.5rem 1.5rem; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before { + position: absolute; + top: 0; + left: -7px; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + opacity: 0.0001; + content: " "; + z-index: -1; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before { + left: unset; + right: -7px; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container { + left: var(--b-vertical-bar-popout-menu-width, 180px); +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right { + right: var(--b-vertical-bar-popout-menu-width, 180px); +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-toggle:before, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-toggle:before, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-toggle:before { + content: " "; + border: solid; + border-width: 0 2px 2px 0; + display: inline-block; + padding: 2px; + right: 1rem; + transition: transform 200ms ease-out; + float: right; + position: relative; + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + right: 0.8rem; +} +.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before, +.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before, +.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before { + -webkit-transform: rotate(315deg); + transform: rotate(315deg); +} +@keyframes b-bar-link-small { + to { + text-align: center; + padding-left: 0px; + padding-right: 0px; + } +} +.b-bar-vertical-small .b-bar-item > .b-bar-link, +.b-bar-vertical-small .b-bar-item > .b-bar-dropdown > .b-bar-link, +.b-bar-vertical-inline[data-collapse=small] .b-bar-item > .b-bar-link, +.b-bar-vertical-inline[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-link, +.b-bar-vertical-popout[data-collapse=small] .b-bar-item > .b-bar-link, +.b-bar-vertical-popout[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-link { + animation: b-bar-link-small forwards; + animation-delay: 170ms; + font-size: 0; + transition: font-size 100ms ease-out; +} +.b-bar-vertical-small .b-bar-item > .b-bar-link:after, +.b-bar-vertical-small .b-bar-item > .b-bar-dropdown > .b-bar-link:after, +.b-bar-vertical-inline[data-collapse=small] .b-bar-item > .b-bar-link:after, +.b-bar-vertical-inline[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-link:after, +.b-bar-vertical-popout[data-collapse=small] .b-bar-item > .b-bar-link:after, +.b-bar-vertical-popout[data-collapse=small] .b-bar-item > .b-bar-dropdown > .b-bar-link:after { + display: none; +} +.b-bar-vertical-small .b-bar-label, +.b-bar-vertical-inline[data-collapse=small] .b-bar-label, +.b-bar-vertical-popout[data-collapse=small] .b-bar-label { + text-align: center; +} + +.b-bar-vertical-inline:not([data-collapse]) { + overflow-y: auto; + overflow-x: hidden; +} +.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container { + position: relative; +} +.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu { + position: relative !important; + border: none; + border-radius: 0; + box-shadow: none; +} +.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item { + padding: 0.5rem 0.5rem 0.5rem 3rem; +} +.b-bar-vertical-inline:not([data-collapse]) .b-bar-brand .b-bar-link { + display: flex; + align-items: center; +} + +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-toggle:before { + content: " "; + border: solid; + border-width: 0 2px 2px 0; + display: inline-block; + padding: 2px; + right: 1rem; + transition: transform 200ms ease-out; + float: right; + position: relative; + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + right: 0.8rem; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before { + -webkit-transform: rotate(315deg); + transform: rotate(315deg); +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container { + z-index: 100; + max-height: 50vh; + position: absolute !important; + margin: -42px 5px 0px 5px; + display: flex; + width: var(--b-vertical-bar-popout-menu-width, 180px); + left: var(--b-vertical-bar-width, 230px); +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right { + right: var(--b-vertical-bar-width, 230px); + left: unset; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu { + box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05); + border-radius: 3px; + overflow-y: auto; + overflow-x: hidden; + flex: 1 100%; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item { + padding: 0.5rem 0.5rem 0.5rem 1.5rem; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before { + position: absolute; + top: 0; + left: -7px; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + opacity: 0.0001; + content: " "; + z-index: -1; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before { + left: unset; + right: -7px; +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container { + left: var(--b-vertical-bar-popout-menu-width, 180px); +} +.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu > .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right { + right: var(--b-vertical-bar-popout-menu-width, 180px); +} + +.b-bar-vertical-inline[data-collapse=hide], +.b-bar-vertical-popout[data-collapse=hide], +.b-bar-vertical-small[data-collapse=hide] { + width: 0px; + min-width: 0px; + overflow-y: hidden; + visibility: hidden; +} +.b-bar-vertical-inline[data-collapse=hide]:not(.b-bar-initial), +.b-bar-vertical-popout[data-collapse=hide]:not(.b-bar-initial), +.b-bar-vertical-small[data-collapse=hide]:not(.b-bar-initial) { + transition: width 200ms ease-in-out, min-width 200ms ease-in-out, visibility 100ms; +} +.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-inline, +.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-inline, +.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-inline { + display: none; +} +.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle), +.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + visibility: visible; + left: 0px; +} + +/* Mobile & below */ +@media only screen and (max-width: 576px) { + .b-bar-vertical-inline:not([data-collapse]) { + min-width: 100vw; + } + .b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-inline:not(.b-bar-mobile-toggle) { + display: none; + } + .b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-popout:not(.b-bar-mobile-toggle) { + left: 100vw; + } + .b-bar-vertical-inline:not([data-collapse]) .b-bar-mobile-toggle { + display: flex; + } +} +.b-table.table { + position: relative; +} +.b-table.table .b-table-resizer { + position: absolute; + top: 0; + right: 0; + width: 5px; + cursor: col-resize; + user-select: none; + z-index: 1; +} +.b-table.table .b-table-resizer:hover, .b-table.table .b-table-resizing { + cursor: col-resize !important; + border-right: 2px solid var(--b-theme-primary, blue); +} +.b-table.table .b-table-resizing { + cursor: col-resize !important; +} + +thead tr th { + position: relative; +} + +.b-character-casing-lower { + text-transform: lowercase; +} + +.b-character-casing-upper { + text-transform: uppercase; +} + +.b-character-casing-title { + text-transform: lowercase; +} +.b-character-casing-title::first-letter { + text-transform: uppercase; +} + +.flatpickr-calendar { + background: transparent; + opacity: 0; + display: none; + text-align: center; + visibility: hidden; + padding: 0; + -webkit-animation: none; + animation: none; + direction: ltr; + border: 0; + font-size: 14px; + line-height: 24px; + border-radius: 5px; + position: absolute; + width: 307.875px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -ms-touch-action: manipulation; + touch-action: manipulation; + background: #fff; + -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08); + box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08); +} + +.flatpickr-calendar.open, +.flatpickr-calendar.inline { + opacity: 1; + max-height: 640px; + visibility: visible; +} + +.flatpickr-calendar.open { + display: inline-block; + z-index: 99999; +} + +.flatpickr-calendar.animate.open { + -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); + animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); +} + +.flatpickr-calendar.inline { + display: block; + position: relative; + top: 2px; +} + +.flatpickr-calendar.static { + position: absolute; + top: calc(100% + 2px); +} + +.flatpickr-calendar.static.open { + z-index: 999; + display: block; +} + +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { + -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; + box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; +} + +.flatpickr-calendar .hasWeeks .dayContainer, +.flatpickr-calendar .hasTime .dayContainer { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.flatpickr-calendar .hasWeeks .dayContainer { + border-left: 0; +} + +.flatpickr-calendar.hasTime .flatpickr-time { + height: 40px; + border-top: 1px solid #e6e6e6; +} + +.flatpickr-calendar.noCalendar.hasTime .flatpickr-time { + height: auto; +} + +.flatpickr-calendar:before, +.flatpickr-calendar:after { + position: absolute; + display: block; + pointer-events: none; + border: solid transparent; + content: ""; + height: 0; + width: 0; + left: 22px; +} + +.flatpickr-calendar.rightMost:before, +.flatpickr-calendar.arrowRight:before, +.flatpickr-calendar.rightMost:after, +.flatpickr-calendar.arrowRight:after { + left: auto; + right: 22px; +} + +.flatpickr-calendar.arrowCenter:before, +.flatpickr-calendar.arrowCenter:after { + left: 50%; + right: 50%; +} + +.flatpickr-calendar:before { + border-width: 5px; + margin: 0 -5px; +} + +.flatpickr-calendar:after { + border-width: 4px; + margin: 0 -4px; +} + +.flatpickr-calendar.arrowTop:before, +.flatpickr-calendar.arrowTop:after { + bottom: 100%; +} + +.flatpickr-calendar.arrowTop:before { + border-bottom-color: #e6e6e6; +} + +.flatpickr-calendar.arrowTop:after { + border-bottom-color: #fff; +} + +.flatpickr-calendar.arrowBottom:before, +.flatpickr-calendar.arrowBottom:after { + top: 100%; +} + +.flatpickr-calendar.arrowBottom:before { + border-top-color: #e6e6e6; +} + +.flatpickr-calendar.arrowBottom:after { + border-top-color: #fff; +} + +.flatpickr-calendar:focus { + outline: 0; +} + +.flatpickr-wrapper { + position: relative; + display: contents; +} + +.flatpickr-months { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; +} + +.flatpickr-months .flatpickr-month { + background: transparent; + color: rgba(0, 0, 0, 0.9); + fill: rgba(0, 0, 0, 0.9); + height: 34px; + line-height: 1; + text-align: center; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.flatpickr-months .flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month { + text-decoration: none; + cursor: pointer; + position: absolute; + top: 0; + height: 34px; + padding: 10px; + z-index: 3; + color: rgba(0, 0, 0, 0.9); + fill: rgba(0, 0, 0, 0.9); +} + +.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, +.flatpickr-months .flatpickr-next-month.flatpickr-disabled { + display: none; +} + +.flatpickr-months .flatpickr-prev-month i, +.flatpickr-months .flatpickr-next-month i { + position: relative; +} + +.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month.flatpickr-prev-month { + /* + /*rtl:begin:ignore*/ + /* + */ + left: 0; + /* + /*rtl:end:ignore*/ + /* + */ +} + +/* + /*rtl:begin:ignore*/ +/* + /*rtl:end:ignore*/ +.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, +.flatpickr-months .flatpickr-next-month.flatpickr-next-month { + /* + /*rtl:begin:ignore*/ + /* + */ + right: 0; + /* + /*rtl:end:ignore*/ + /* + */ +} + +/* + /*rtl:begin:ignore*/ +/* + /*rtl:end:ignore*/ +.flatpickr-months .flatpickr-prev-month:hover, +.flatpickr-months .flatpickr-next-month:hover { + color: #959ea9; +} + +.flatpickr-months .flatpickr-prev-month:hover svg, +.flatpickr-months .flatpickr-next-month:hover svg { + fill: #f64747; +} + +.flatpickr-months .flatpickr-prev-month svg, +.flatpickr-months .flatpickr-next-month svg { + width: 14px; + height: 14px; +} + +.flatpickr-months .flatpickr-prev-month svg path, +.flatpickr-months .flatpickr-next-month svg path { + -webkit-transition: fill 0.1s; + transition: fill 0.1s; + fill: inherit; +} + +.numInputWrapper { + position: relative; + height: auto; +} + +.numInputWrapper input, +.numInputWrapper span { + display: inline-block; +} + +.numInputWrapper input { + width: 100%; +} + +.numInputWrapper input::-ms-clear { + display: none; +} + +.numInputWrapper input::-webkit-outer-spin-button, +.numInputWrapper input::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; +} + +.numInputWrapper span { + position: absolute; + right: 0; + width: 14px; + padding: 0 4px 0 2px; + height: 50%; + line-height: 50%; + opacity: 0; + cursor: pointer; + border: 1px solid rgba(57, 57, 57, 0.15); + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.numInputWrapper span:hover { + background: rgba(0, 0, 0, 0.1); +} + +.numInputWrapper span:active { + background: rgba(0, 0, 0, 0.2); +} + +.numInputWrapper span:after { + display: block; + content: ""; + position: absolute; +} + +.numInputWrapper span.arrowUp { + top: 0; + border-bottom: 0; +} + +.numInputWrapper span.arrowUp:after { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid rgba(57, 57, 57, 0.6); + top: 26%; +} + +.numInputWrapper span.arrowDown { + top: 50%; +} + +.numInputWrapper span.arrowDown:after { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid rgba(57, 57, 57, 0.6); + top: 40%; +} + +.numInputWrapper span svg { + width: inherit; + height: auto; +} + +.numInputWrapper span svg path { + fill: rgba(0, 0, 0, 0.5); +} + +.numInputWrapper:hover { + background: rgba(0, 0, 0, 0.05); +} + +.numInputWrapper:hover span { + opacity: 1; +} + +.flatpickr-current-month { + font-size: 135%; + line-height: inherit; + font-weight: 300; + color: inherit; + position: absolute; + width: 75%; + left: 12.5%; + padding: 7.48px 0 0 0; + line-height: 1; + height: 34px; + display: inline-block; + text-align: center; + -webkit-transform: translate3d(0px, 0px, 0px); + transform: translate3d(0px, 0px, 0px); +} + +.flatpickr-current-month span.cur-month { + font-family: inherit; + font-weight: 700; + color: inherit; + display: inline-block; + margin-left: 0.5ch; + padding: 0; +} + +.flatpickr-current-month span.cur-month:hover { + background: rgba(0, 0, 0, 0.05); +} + +.flatpickr-current-month .numInputWrapper { + width: 6ch; + width: 7ch\0 ; + display: inline-block; +} + +.flatpickr-current-month .numInputWrapper span.arrowUp:after { + border-bottom-color: rgba(0, 0, 0, 0.9); +} + +.flatpickr-current-month .numInputWrapper span.arrowDown:after { + border-top-color: rgba(0, 0, 0, 0.9); +} + +.flatpickr-current-month input.cur-year { + background: transparent; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: inherit; + cursor: text; + padding: 0 0 0 0.5ch; + margin: 0; + display: inline-block; + font-size: inherit; + font-family: inherit; + font-weight: 300; + line-height: inherit; + height: auto; + border: 0; + border-radius: 0; + vertical-align: initial; + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; +} + +.flatpickr-current-month input.cur-year:focus { + outline: 0; +} + +.flatpickr-current-month input.cur-year[disabled], +.flatpickr-current-month input.cur-year[disabled]:hover { + font-size: 100%; + color: rgba(0, 0, 0, 0.5); + background: transparent; + pointer-events: none; +} + +.flatpickr-current-month .flatpickr-monthDropdown-months { + appearance: menulist; + background: transparent; + border: none; + border-radius: 0; + box-sizing: border-box; + color: inherit; + cursor: pointer; + font-size: inherit; + font-family: inherit; + font-weight: 300; + height: auto; + line-height: inherit; + margin: -1px 0 0 0; + outline: none; + padding: 0 0 0 0.5ch; + position: relative; + vertical-align: initial; + -webkit-box-sizing: border-box; + -webkit-appearance: menulist; + -moz-appearance: menulist; + width: auto; +} + +.flatpickr-current-month .flatpickr-monthDropdown-months:focus, +.flatpickr-current-month .flatpickr-monthDropdown-months:active { + outline: none; +} + +.flatpickr-current-month .flatpickr-monthDropdown-months:hover { + background: rgba(0, 0, 0, 0.05); +} + +.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month { + background-color: transparent; + outline: none; + padding: 0; +} + +.flatpickr-weekdays { + background: transparent; + text-align: center; + overflow: hidden; + width: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + height: 28px; +} + +.flatpickr-weekdays .flatpickr-weekdaycontainer { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +span.flatpickr-weekday { + cursor: default; + font-size: 90%; + background: transparent; + color: rgba(0, 0, 0, 0.54); + line-height: 1; + margin: 0; + text-align: center; + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + font-weight: bolder; +} + +.dayContainer, +.flatpickr-weeks { + padding: 1px 0 0 0; +} + +.flatpickr-days { + position: relative; + overflow: hidden; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + width: 307.875px; +} + +.flatpickr-days:focus { + outline: 0; +} + +.dayContainer { + padding: 0; + outline: 0; + text-align: left; + width: 307.875px; + min-width: 307.875px; + max-width: 307.875px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + display: -ms-flexbox; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-wrap: wrap; + -ms-flex-pack: justify; + -webkit-justify-content: space-around; + justify-content: space-around; + -webkit-transform: translate3d(0px, 0px, 0px); + transform: translate3d(0px, 0px, 0px); + opacity: 1; +} + +.dayContainer + .dayContainer { + -webkit-box-shadow: -1px 0 0 #e6e6e6; + box-shadow: -1px 0 0 #e6e6e6; +} + +.flatpickr-day { + background: none; + border: 1px solid transparent; + border-radius: 150px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #393939; + cursor: pointer; + font-weight: 400; + width: 14.2857143%; + -webkit-flex-basis: 14.2857143%; + -ms-flex-preferred-size: 14.2857143%; + flex-basis: 14.2857143%; + max-width: 39px; + height: 39px; + line-height: 39px; + margin: 0; + display: inline-block; + position: relative; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.flatpickr-day.inRange, +.flatpickr-day.prevMonthDay.inRange, +.flatpickr-day.nextMonthDay.inRange, +.flatpickr-day.today.inRange, +.flatpickr-day.prevMonthDay.today.inRange, +.flatpickr-day.nextMonthDay.today.inRange, +.flatpickr-day:hover, +.flatpickr-day.prevMonthDay:hover, +.flatpickr-day.nextMonthDay:hover, +.flatpickr-day:focus, +.flatpickr-day.prevMonthDay:focus, +.flatpickr-day.nextMonthDay:focus { + cursor: pointer; + outline: 0; + background: #e6e6e6; + border-color: #e6e6e6; +} + +.flatpickr-day.today { + border-color: #959ea9; +} + +.flatpickr-day.today:hover, +.flatpickr-day.today:focus { + border-color: #959ea9; + background: #959ea9; + color: #fff; +} + +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.endRange, +.flatpickr-day.selected.inRange, +.flatpickr-day.startRange.inRange, +.flatpickr-day.endRange.inRange, +.flatpickr-day.selected:focus, +.flatpickr-day.startRange:focus, +.flatpickr-day.endRange:focus, +.flatpickr-day.selected:hover, +.flatpickr-day.startRange:hover, +.flatpickr-day.endRange:hover, +.flatpickr-day.selected.prevMonthDay, +.flatpickr-day.startRange.prevMonthDay, +.flatpickr-day.endRange.prevMonthDay, +.flatpickr-day.selected.nextMonthDay, +.flatpickr-day.startRange.nextMonthDay, +.flatpickr-day.endRange.nextMonthDay { + background: #569ff7; + -webkit-box-shadow: none; + box-shadow: none; + color: #fff; + border-color: #569ff7; +} + +.flatpickr-day.selected.startRange, +.flatpickr-day.startRange.startRange, +.flatpickr-day.endRange.startRange { + border-radius: 50px 0 0 50px; +} + +.flatpickr-day.selected.endRange, +.flatpickr-day.startRange.endRange, +.flatpickr-day.endRange.endRange { + border-radius: 0 50px 50px 0; +} + +.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), +.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), +.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) { + -webkit-box-shadow: -10px 0 0 #569ff7; + box-shadow: -10px 0 0 #569ff7; +} + +.flatpickr-day.selected.startRange.endRange, +.flatpickr-day.startRange.startRange.endRange, +.flatpickr-day.endRange.startRange.endRange { + border-radius: 50px; +} + +.flatpickr-day.inRange { + border-radius: 0; + -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; + box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; +} + +.flatpickr-day.flatpickr-disabled, +.flatpickr-day.flatpickr-disabled:hover, +.flatpickr-day.prevMonthDay, +.flatpickr-day.nextMonthDay, +.flatpickr-day.notAllowed, +.flatpickr-day.notAllowed.prevMonthDay, +.flatpickr-day.notAllowed.nextMonthDay { + color: rgba(57, 57, 57, 0.3); + background: transparent; + border-color: transparent; + cursor: default; +} + +.flatpickr-day.flatpickr-disabled, +.flatpickr-day.flatpickr-disabled:hover { + cursor: not-allowed; + color: rgba(57, 57, 57, 0.1); +} + +.flatpickr-day.week.selected { + border-radius: 0; + -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; + box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; +} + +.flatpickr-day.hidden { + visibility: hidden; +} + +.rangeMode .flatpickr-day { + margin-top: 1px; +} + +.flatpickr-weekwrapper { + float: left; +} + +.flatpickr-weekwrapper .flatpickr-weeks { + padding: 0 12px; + -webkit-box-shadow: 1px 0 0 #e6e6e6; + box-shadow: 1px 0 0 #e6e6e6; +} + +.flatpickr-weekwrapper .flatpickr-weekday { + float: none; + width: 100%; + line-height: 28px; +} + +.flatpickr-weekwrapper span.flatpickr-day, +.flatpickr-weekwrapper span.flatpickr-day:hover { + display: block; + width: 100%; + max-width: none; + color: rgba(57, 57, 57, 0.3); + background: transparent; + cursor: default; + border: none; +} + +.flatpickr-innerContainer { + display: block; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; +} + +.flatpickr-rContainer { + display: inline-block; + padding: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.flatpickr-time { + text-align: center; + outline: 0; + display: block; + height: 0; + line-height: 40px; + max-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; +} + +.flatpickr-time:after { + content: ""; + display: table; + clear: both; +} + +.flatpickr-time .numInputWrapper { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + width: 40%; + height: 40px; + float: left; +} + +.flatpickr-time .numInputWrapper span.arrowUp:after { + border-bottom-color: #393939; +} + +.flatpickr-time .numInputWrapper span.arrowDown:after { + border-top-color: #393939; +} + +.flatpickr-time.hasSeconds .numInputWrapper { + width: 26%; +} + +.flatpickr-time.time24hr .numInputWrapper { + width: 49%; +} + +.flatpickr-time input { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border: 0; + border-radius: 0; + text-align: center; + margin: 0; + padding: 0; + height: inherit; + line-height: inherit; + color: #393939; + font-size: 14px; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; +} + +.flatpickr-time input.flatpickr-hour { + font-weight: bold; +} + +.flatpickr-time input.flatpickr-minute, +.flatpickr-time input.flatpickr-second { + font-weight: 400; +} + +.flatpickr-time input:focus { + outline: 0; + border: 0; +} + +.flatpickr-time .flatpickr-time-separator, +.flatpickr-time .flatpickr-am-pm { + height: inherit; + float: left; + line-height: inherit; + color: #393939; + font-weight: bold; + width: 2%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center; +} + +.flatpickr-time .flatpickr-am-pm { + outline: 0; + width: 18%; + cursor: pointer; + text-align: center; + font-weight: 400; +} + +.flatpickr-time input:hover, +.flatpickr-time .flatpickr-am-pm:hover, +.flatpickr-time input:focus, +.flatpickr-time .flatpickr-am-pm:focus { + background: #eee; +} + +.flatpickr-input[readonly] { + cursor: pointer; +} + +@-webkit-keyframes fpFadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +@keyframes fpFadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.flatpickr-monthSelect-months { + margin: 10px 1px 3px 1px; + flex-wrap: wrap; +} + +.flatpickr-monthSelect-month { + background: none; + border: 0; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #393939; + cursor: pointer; + display: inline-block; + font-weight: 400; + margin: 0.5px; + justify-content: center; + padding: 10px; + position: relative; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + text-align: center; + width: 33%; +} + +.flatpickr-monthSelect-month.disabled { + color: #eee; +} + +.flatpickr-monthSelect-month.disabled:hover, +.flatpickr-monthSelect-month.disabled:focus { + cursor: not-allowed; + background: none !important; +} + +.flatpickr-monthSelect-theme-dark { + background: #3f4458; +} + +.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year { + color: #fff; +} + +.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month, +.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month { + color: #fff; + fill: #fff; +} + +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month { + color: rgba(255, 255, 255, 0.95); +} + +.flatpickr-monthSelect-month:hover, +.flatpickr-monthSelect-month:focus { + background: #e6e6e6; + cursor: pointer; + outline: 0; +} + +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover, +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus { + background: #646c8c; + border-color: #646c8c; +} + +.flatpickr-monthSelect-month.selected { + background-color: #569ff7; + color: #fff; +} + +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected { + background: #80cbc4; + -webkit-box-shadow: none; + box-shadow: none; + color: #fff; + border-color: #80cbc4; +} + +/*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ +.pickr { + position: relative; + overflow: visible; + transform: translateY(0); +} + +.pickr * { + box-sizing: border-box; + outline: none; + border: none; + -webkit-appearance: none; +} + +.pickr .pcr-button { + position: relative; + height: 2em; + width: 2em; + padding: 0.5em; + cursor: pointer; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif; + border-radius: 0.15em; + background: url('data:image/svg+xml;utf8, ') no-repeat center; + background-size: 0; + transition: all 0.3s; +} + +.pickr .pcr-button::before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('data:image/svg+xml;utf8, '); + background-size: 0.5em; + border-radius: 0.15em; + z-index: -1; +} + +.pickr .pcr-button::before { + z-index: initial; +} + +.pickr .pcr-button::after { + position: absolute; + content: ""; + top: 0; + left: 0; + height: 100%; + width: 100%; + transition: background 0.3s; + background: var(--pcr-color); + border-radius: 0.15em; +} + +.pickr .pcr-button.clear { + background-size: 70%; +} + +.pickr .pcr-button.clear::before { + opacity: 0; +} + +.pickr .pcr-button.clear:focus { + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color); +} + +.pickr .pcr-button.disabled { + cursor: not-allowed; +} + +.pickr *, .pcr-app * { + box-sizing: border-box; + outline: none; + border: none; + -webkit-appearance: none; +} + +.pickr input:focus, .pickr input.pcr-active, .pickr button:focus, .pickr button.pcr-active, .pcr-app input:focus, .pcr-app input.pcr-active, .pcr-app button:focus, .pcr-app button.pcr-active { + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color); +} + +.pickr .pcr-palette, .pickr .pcr-slider, .pcr-app .pcr-palette, .pcr-app .pcr-slider { + transition: box-shadow 0.3s; +} + +.pickr .pcr-palette:focus, .pickr .pcr-slider:focus, .pcr-app .pcr-palette:focus, .pcr-app .pcr-slider:focus { + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25); +} + +.pcr-app { + position: fixed; + display: flex; + flex-direction: column; + z-index: 10000; + border-radius: 0.1em; + background: #fff; + opacity: 0; + visibility: hidden; + transition: opacity 0.3s, visibility 0s 0.3s; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif; + box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03); + left: 0; + top: 0; +} + +.pcr-app.visible { + transition: opacity 0.3s; + visibility: visible; + opacity: 1; +} + +.pcr-app .pcr-swatches { + display: flex; + flex-wrap: wrap; + margin-top: 0.75em; +} + +.pcr-app .pcr-swatches.pcr-last { + margin: 0; +} + +@supports (display: grid) { + .pcr-app .pcr-swatches { + display: grid; + align-items: center; + grid-template-columns: repeat(auto-fit, 1.75em); + } +} +.pcr-app .pcr-swatches > button { + font-size: 1em; + position: relative; + width: calc(1.75em - 5px); + height: calc(1.75em - 5px); + border-radius: 0.15em; + cursor: pointer; + margin: 2.5px; + flex-shrink: 0; + justify-self: center; + transition: all 0.15s; + overflow: hidden; + background: transparent; + z-index: 1; +} + +.pcr-app .pcr-swatches > button::before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('data:image/svg+xml;utf8, '); + background-size: 6px; + border-radius: 0.15em; + z-index: -1; +} + +.pcr-app .pcr-swatches > button::after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--pcr-color); + border: 1px solid rgba(0, 0, 0, 0.05); + border-radius: 0.15em; + box-sizing: border-box; +} + +.pcr-app .pcr-swatches > button:hover { + filter: brightness(1.05); +} + +.pcr-app .pcr-swatches > button:not(.pcr-active) { + box-shadow: none; +} + +.pcr-app .pcr-interaction { + display: flex; + flex-wrap: wrap; + align-items: center; + margin: 0 -0.2em 0 -0.2em; +} + +.pcr-app .pcr-interaction > * { + margin: 0 0.2em; +} + +.pcr-app .pcr-interaction input { + letter-spacing: 0.07em; + font-size: 0.75em; + text-align: center; + cursor: pointer; + color: #75797e; + background: #f1f3f4; + border-radius: 0.15em; + transition: all 0.15s; + padding: 0.45em 0.5em; + margin-top: 0.75em; +} + +.pcr-app .pcr-interaction input:hover { + filter: brightness(0.975); +} + +.pcr-app .pcr-interaction input:focus { + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(66, 133, 244, 0.75); +} + +.pcr-app .pcr-interaction .pcr-result { + color: #75797e; + text-align: left; + flex: 1 1 8em; + min-width: 8em; + transition: all 0.2s; + border-radius: 0.15em; + background: #f1f3f4; + cursor: text; +} + +.pcr-app .pcr-interaction .pcr-result::-moz-selection { + background: #4285f4; + color: #fff; +} + +.pcr-app .pcr-interaction .pcr-result::selection { + background: #4285f4; + color: #fff; +} + +.pcr-app .pcr-interaction .pcr-type.active { + color: #fff; + background: #4285f4; +} + +.pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear { + color: #fff; + width: auto; +} + +.pcr-app .pcr-interaction .pcr-save, .pcr-app .pcr-interaction .pcr-cancel, .pcr-app .pcr-interaction .pcr-clear { + color: #fff; +} + +.pcr-app .pcr-interaction .pcr-save:hover, .pcr-app .pcr-interaction .pcr-cancel:hover, .pcr-app .pcr-interaction .pcr-clear:hover { + filter: brightness(0.925); +} + +.pcr-app .pcr-interaction .pcr-save { + background: #4285f4; +} + +.pcr-app .pcr-interaction .pcr-clear, .pcr-app .pcr-interaction .pcr-cancel { + background: #f44250; +} + +.pcr-app .pcr-interaction .pcr-clear:focus, .pcr-app .pcr-interaction .pcr-cancel:focus { + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(244, 66, 80, 0.75); +} + +.pcr-app .pcr-selection .pcr-picker { + position: absolute; + height: 18px; + width: 18px; + border: 2px solid #fff; + border-radius: 100%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.pcr-app .pcr-selection .pcr-color-palette, .pcr-app .pcr-selection .pcr-color-chooser, .pcr-app .pcr-selection .pcr-color-opacity { + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + display: flex; + flex-direction: column; + cursor: grab; + cursor: -webkit-grab; +} + +.pcr-app .pcr-selection .pcr-color-palette:active, .pcr-app .pcr-selection .pcr-color-chooser:active, .pcr-app .pcr-selection .pcr-color-opacity:active { + cursor: grabbing; + cursor: -webkit-grabbing; +} + +.pcr-app[data-theme=monolith] { + width: 14.25em; + max-width: 95vw; + padding: 0.8em; +} + +.pcr-app[data-theme=monolith] .pcr-selection { + display: flex; + flex-direction: column; + justify-content: space-between; + flex-grow: 1; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview { + position: relative; + z-index: 1; + width: 100%; + height: 1em; + display: flex; + flex-direction: row; + justify-content: space-between; + margin-bottom: 0.5em; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('data:image/svg+xml;utf8, '); + background-size: 0.5em; + border-radius: 0.15em; + z-index: -1; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color { + cursor: pointer; + transition: background-color 0.3s, box-shadow 0.3s; + border-radius: 0.15em 0 0 0.15em; + z-index: 2; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color { + border-radius: 0 0.15em 0.15em 0; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color, .pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color { + background: var(--pcr-color); + width: 50%; + height: 100%; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette { + width: 100%; + height: 8em; + z-index: 1; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette { + border-radius: 0.15em; + width: 100%; + height: 100%; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('data:image/svg+xml;utf8, '); + background-size: 0.5em; + border-radius: 0.15em; + z-index: -1; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser, .pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity { + height: 0.5em; + margin-top: 0.75em; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker, .pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker { + top: 50%; + transform: translateY(-50%); +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider, .pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider { + flex-grow: 1; + border-radius: 50em; +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider { + background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red); +} + +.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider { + background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, '); + background-size: 100%, 0.25em; +} diff --git a/_content/Blazorise/blazorise.min.css b/_content/Blazorise/blazorise.min.css new file mode 100755 index 00000000..bd0effd9 --- /dev/null +++ b/_content/Blazorise/blazorise.min.css @@ -0,0 +1,3 @@ +body:before{content:"mobile";display:none;visibility:hidden;}@media(min-width:768px){body:before{content:"tablet";}}@media(min-width:992px){body:before{content:"desktop";}}@media(min-width:1200px){body:before{content:"widescreen";}}@media(min-width:1400px){body:before{content:"fullhd";}}hr.divider.divider-solid{border-top:var(--b-divider-thickness,1px) solid var(--b-divider-color,#999);}hr.divider.divider-dashed{border-top:var(--b-divider-thickness,1px) dashed var(--b-divider-color,#999);}hr.divider.divider-dotted{border-top:var(--b-divider-thickness,1px) dotted var(--b-divider-color,#999);}hr.divider.divider-text{position:relative;border:0;height:var(--b-divider-thickness,1px);background:var(--b-divider-color,#999);}hr.divider.divider-text::before{content:attr(data-content);display:inline-block;background:#fff;font-weight:bold;font-size:var(--b-divider-font-size,.85rem);color:var(--b-divider-color,#999);border-radius:30rem;padding:.2rem 2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}.b-drop-zone{position:relative;transition:all 300ms cubic-bezier(.4,0,.2,1) 0ms;}.b-drop-zone.b-drop-zone-drag-block>*{pointer-events:none;}.b-drop-zone.b-drop-zone-drop-allowed{outline:1px solid var(--b-theme-success,"#00FF00")!important;}.b-drop-zone.b-drop-zone-drop-not-allowed{outline:1px solid var(--b-theme-danger,"#FF0000")!important;}.b-drop-zone-draggable:not(.draggable-preview-start){cursor:grab;user-select:none;}.b-drop-zone-draggable:not(.draggable-preview-start):active{cursor:grabbing;}.b-drop-zone .draggable-placeholder{outline:2px dashed var(--b-theme-primary,"#0000FF")!important;padding:1rem;}.b-drop-zone .draggable-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1;}.b-file-picker{display:inline-block;width:100%;}.b-file-picker .b-text-drop{border:1px solid rgba(0,0,0,.15);margin-top:.5rem;display:block;text-align:center;font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem;}.b-file-picker .b-file-picker-file{min-width:25rem;}.b-file-picker .b-file-picker-file span{display:block;}.b-file-picker .b-file-picker-file .b-file-picker-file-size,.b-file-picker .b-file-picker-file .b-file-picker-file-status,.b-file-picker .b-file-picker-file .b-file-picker-file-relativepath{font-size:.75rem;}.b-input-color-picker{padding:.6rem;}.b-input-color-picker>.b-input-color-picker-preview{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between;}.b-input-color-picker>.b-input-color-picker-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1;}.b-input-color-picker>.b-input-color-picker-preview>.b-input-color-picker-curent-color{display:inline-block;width:100%;height:100%;}.b-input-color-picker[aria-disabled=true]{opacity:.65;}.progress.progress-xs{height:.25rem;}.progress.progress-sm{height:.5rem;}.progress.progress-md{height:1rem;}.progress.progress-lg{height:1.5rem;}.progress.progress-xl{height:2rem;}.b-page-progress{width:100%;height:4px;z-index:9999;top:0;left:0;position:fixed;display:none;}.b-page-progress .b-page-progress-indicator{width:0;height:100%;transition:height .3s;background-color:#000;transition:width 1s;}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-indeterminate{width:30%;animation:running-page-progress 2s cubic-bezier(.4,0,.2,1) infinite;}.b-page-progress.b-page-progress-active{display:block;}@keyframes running-page-progress{0%{margin-left:0;margin-right:100%;}50%{margin-left:25%;margin-right:0%;}100%{margin-left:100%;margin-right:0;}}.tippy-box[data-animation=scale][data-placement^=top]{transform-origin:bottom;}.tippy-box[data-animation=scale][data-placement^=bottom]{transform-origin:top;}.tippy-box[data-animation=scale][data-placement^=left]{transform-origin:right;}.tippy-box[data-animation=scale][data-placement^=right]{transform-origin:left;}.tippy-box[data-animation=scale][data-state=hidden]{transform:scale(.5);opacity:0;}.tippy-box[data-theme~=blazorise]{background-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));color:var(--b-tooltip-color,#fff);}.tippy-box[data-theme~=blazorise][data-placement^=top]>.tippy-arrow::before{border-top-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));}.tippy-box[data-theme~=blazorise][data-placement^=bottom]>.tippy-arrow::before{border-bottom-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));}.tippy-box[data-theme~=blazorise][data-placement^=left]>.tippy-arrow::before{border-left-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));}.tippy-box[data-theme~=blazorise][data-placement^=right]>.tippy-arrow::before{border-right-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));}.tippy-box[data-theme~=blazorise]>.tippy-svg-arrow{fill:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));}.b-tooltip-inline{display:inline-block;}.b-layout{display:flex;flex:auto;flex-direction:column;}.b-layout.b-layout-root{height:100vh;}.b-layout,.b-layout *{box-sizing:border-box;}@keyframes spinner{0%{transform:translate3d(-50%,-50%,0) rotate(0deg);}100%{transform:translate3d(-50%,-50%,0) rotate(360deg);}}.b-layout>.b-layout-loading{z-index:9999;position:fixed;width:100%;height:100%;background:rgba(0,0,0,.3);}.b-layout>.b-layout-loading:before{animation:1s linear infinite spinner;border:solid 3px #eee;border-bottom-color:var(--b-theme-primary);border-radius:50%;height:40px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:40px;content:" ";}.b-layout.b-layout-has-sider{flex-direction:row;min-height:0;}.b-layout.b-layout-has-sider .b-layout{overflow-x:hidden;}.b-layout-header,.b-layout-footer{flex:0 0 auto;}.b-layout-header{color:rgba(0,0,0,.65);}.b-layout.b-layout-root.b-layout-has-sider>.b-layout-header-fixed,.b-layout.b-layout-root.b-layout-has-sider>.b-layout>.b-layout-header-fixed{position:sticky;top:0;width:100%;flex:0;}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed{position:fixed;top:0;left:0;right:0;flex:0;}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed+.b-layout-content,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed+.b-layout-content{margin-top:var(--b-bar-horizontal-height,auto);}.b-layout.b-layout-root>.b-layout-header.b-layout-header-fixed+.b-layout.b-layout-has-sider{margin-top:var(--b-bar-horizontal-height,auto);}.b-layout-footer{color:rgba(0,0,0,.65);}.b-layout-footer-fixed{position:sticky;z-index:1;bottom:0;flex:0;}.b-layout-content{flex:1;}.b-layout-sider{display:flex;position:relative;background:#001529;}.b-layout-sider-content{position:sticky;top:0;z-index:2;}.b-layout-header .navbar{line-height:inherit;}.b-bar-horizontal[data-collapse=hide]{flex-wrap:nowrap;}.b-bar-horizontal[data-collapse=hide][data-broken=true]{height:auto;}.b-bar-horizontal[data-broken=false]{height:auto;}.b-layout>.b-layout-header .b-bar-horizontal[data-collapse=hide][data-broken=true]{height:var(--b-bar-horizontal-height,auto);}.b-layout>.b-layout-header .b-bar-horizontal[data-broken=false]{height:var(--b-bar-horizontal-height,auto);}.b-bar-initial{display:none!important;}.b-bar-vertical-inline,.b-bar-vertical-popout,.b-bar-vertical-small{display:flex;flex-direction:column;flex-wrap:nowrap;position:sticky;top:0;padding:0;min-width:var(--b-vertical-bar-width,230px);max-width:var(--b-vertical-bar-width,230px);width:var(--b-vertical-bar-width,230px);box-shadow:2px 0 6px rgba(0,21,41,.35);height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.b-bar-vertical-inline:not(.b-bar-initial),.b-bar-vertical-popout:not(.b-bar-initial),.b-bar-vertical-small:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out;}.b-bar-vertical-inline .b-bar-menu,.b-bar-vertical-popout .b-bar-menu,.b-bar-vertical-small .b-bar-menu{width:100%;display:flex;flex:1;justify-content:space-between;flex-direction:column;align-self:stretch;}.b-bar-vertical-inline .b-bar-brand,.b-bar-vertical-popout .b-bar-brand,.b-bar-vertical-small .b-bar-brand{width:100%;display:flex;height:var(--b-vertical-bar-brand-height,64px);min-height:var(--b-vertical-bar-brand-height,64px);}.b-bar-vertical-inline .b-bar-toggler-inline,.b-bar-vertical-popout .b-bar-toggler-inline,.b-bar-vertical-small .b-bar-toggler-inline{height:var(--b-vertical-bar-brand-height,64px);padding:12px;display:inline-flex;cursor:pointer;position:absolute;right:0;}.b-bar-vertical-inline .b-bar-toggler-inline>*,.b-bar-vertical-popout .b-bar-toggler-inline>*,.b-bar-vertical-small .b-bar-toggler-inline>*{margin:auto;}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle){display:flex;position:fixed;left:var(--b-vertical-bar-width,230px);border-radius:0 10px 10px 0;border:0;width:10px;height:40px;padding:5px;align-items:center;box-shadow:2px 0 6px rgba(0,21,41,.35);cursor:pointer;}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial){transition:width 200ms ease-in-out,left 200ms ease-in-out;}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*{margin:auto;display:none;}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover{width:45px;}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*{display:block;}.b-bar-vertical-inline .b-bar-item,.b-bar-vertical-popout .b-bar-item,.b-bar-vertical-small .b-bar-item{margin:auto;flex-grow:1;min-height:40px;}.b-bar-vertical-inline .b-bar-item .b-bar-icon,.b-bar-vertical-popout .b-bar-item .b-bar-icon,.b-bar-vertical-small .b-bar-item .b-bar-icon{font-size:1.25rem;vertical-align:middle;margin:3px;display:inline-block;}.b-bar-vertical-inline .b-bar-start,.b-bar-vertical-popout .b-bar-start,.b-bar-vertical-small .b-bar-start{width:100%;display:block;}.b-bar-vertical-inline .b-bar-end,.b-bar-vertical-popout .b-bar-end,.b-bar-vertical-small .b-bar-end{padding-bottom:1rem;width:100%;padding-top:1rem;display:block;}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown,.b-bar-vertical-small .b-bar-end .b-bar-dropdown{position:relative;}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-small .b-bar-end .b-bar-dropdown-menu-container{bottom:0;}.b-bar-vertical-inline .b-bar-link,.b-bar-vertical-popout .b-bar-link,.b-bar-vertical-small .b-bar-link{display:block;width:100%;text-decoration:none;padding:.5rem .5rem .5rem 1.5rem;cursor:pointer;overflow-x:hidden;line-height:1.5rem;vertical-align:middle;transition:font-size 150ms ease-in;}.b-bar-vertical-inline .b-bar-label,.b-bar-vertical-popout .b-bar-label,.b-bar-vertical-small .b-bar-label{background:transparent;color:#adb5bd;padding:.375rem 1.25rem;font-size:.75rem;text-overflow:ellipsis;overflow-x:hidden;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(225deg);transform:rotate(225deg);top:.7rem;}.b-bar-vertical-inline .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:.5rem;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu{display:none;background:inherit;color:inherit;float:none;padding:5px 0;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true]{display:block;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item{position:relative;color:inherit;transition:background 100ms ease-in-out,color 100ms ease-in-out;text-decoration:none;display:block;width:100%;overflow-x:hidden;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i{margin-right:.3rem;}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu:before{background:inherit;box-shadow:none;}.b-bar-vertical-inline .b-bar-mobile-toggle,.b-bar-vertical-popout .b-bar-mobile-toggle,.b-bar-vertical-small .b-bar-mobile-toggle{right:20px;margin:auto;display:none;}.b-bar-vertical-inline .b-bar-item-multi-line,.b-bar-vertical-popout .b-bar-item-multi-line,.b-bar-vertical-small .b-bar-item-multi-line{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:var(--b-bar-item-lines,2);white-space:normal!important;overflow:hidden;text-overflow:ellipsis;}.b-bar-vertical-inline.b-bar-dark,.b-bar-vertical-popout.b-bar-dark,.b-bar-vertical-small.b-bar-dark{background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5));}.b-bar-vertical-inline.b-bar-dark .b-bar-brand,.b-bar-vertical-popout.b-bar-dark .b-bar-brand,.b-bar-vertical-small.b-bar-dark .b-bar-brand{background:var(--b-bar-brand-dark-background,rgba(255,255,255,.025));}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link{color:#fff;}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link.active{color:#fff;background:inherit;}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link:hover{color:#fff;background:inherit;}.b-bar-vertical-inline.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5));}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu{background:var(--b-bar-dropdown-dark-background,#000c17);}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1);}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3));}.b-bar-vertical-inline.b-bar-dark .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-link{color:inherit;}.b-bar-vertical-inline.b-bar-dark .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-link.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1);}.b-bar-vertical-inline.b-bar-dark .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-link:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3));}.b-bar-vertical-inline.b-bar-light,.b-bar-vertical-popout.b-bar-light,.b-bar-vertical-small.b-bar-light{background:var(--b-bar-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7));}.b-bar-vertical-inline.b-bar-light .b-bar-brand,.b-bar-vertical-popout.b-bar-light .b-bar-brand,.b-bar-vertical-small.b-bar-light .b-bar-brand{background:var(--b-bar-brand-light-background,rgba(0,0,0,.025));}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link{color:#000;}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link.active{background:inherit;}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link:hover{background:inherit;}.b-bar-vertical-inline.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-brand-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7));}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu{background:var(--b-bar-dropdown-light-background,#f2f2f2);}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1);}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3));}.b-bar-vertical-inline.b-bar-light .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-link{color:inherit;}.b-bar-vertical-inline.b-bar-light .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-link.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1);}.b-bar-vertical-inline.b-bar-light .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-link:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3));}.b-bar-vertical-small,.b-bar-vertical-inline[data-collapse=small],.b-bar-vertical-popout[data-collapse=small]{width:var(--b-vertical-bar-small-width,64px);min-width:var(--b-vertical-bar-small-width,64px);}.b-bar-vertical-small:not(.b-bar-initial),.b-bar-vertical-inline[data-collapse=small]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=small]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out;}.b-bar-vertical-small .b-bar-toggler-inline,.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-inline{position:relative;width:100%;}.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:var(--b-vertical-bar-small-width,64px);}.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before{display:none;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-small-width,64px);}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-small-width,64px);left:unset;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px);}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px);}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem;}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg);}@keyframes b-bar-link-small{to{text-align:center;padding-left:0;padding-right:0;}}.b-bar-vertical-small .b-bar-item>.b-bar-link,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link{animation:b-bar-link-small forwards;animation-delay:170ms;font-size:0;transition:font-size 100ms ease-out;}.b-bar-vertical-small .b-bar-item>.b-bar-link:after,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after{display:none;}.b-bar-vertical-small .b-bar-label,.b-bar-vertical-inline[data-collapse=small] .b-bar-label,.b-bar-vertical-popout[data-collapse=small] .b-bar-label{text-align:center;}.b-bar-vertical-inline:not([data-collapse]){overflow-y:auto;overflow-x:hidden;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{position:relative;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{position:relative!important;border:0;border-radius:0;box-shadow:none;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 3rem;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-brand .b-bar-link{display:flex;align-items:center;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg);}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-width,230px);}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-width,230px);left:unset;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px;}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px);}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px);}.b-bar-vertical-inline[data-collapse=hide],.b-bar-vertical-popout[data-collapse=hide],.b-bar-vertical-small[data-collapse=hide]{width:0;min-width:0;overflow-y:hidden;visibility:hidden;}.b-bar-vertical-inline[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-small[data-collapse=hide]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out,visibility 100ms;}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-inline{display:none;}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){visibility:visible;left:0;}@media only screen and (max-width:576px){.b-bar-vertical-inline:not([data-collapse]){min-width:100vw;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-inline:not(.b-bar-mobile-toggle){display:none;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:100vw;}.b-bar-vertical-inline:not([data-collapse]) .b-bar-mobile-toggle{display:flex;}}.b-table.table{position:relative;}.b-table.table .b-table-resizer{position:absolute;top:0;right:0;width:5px;cursor:col-resize;user-select:none;z-index:1;}.b-table.table .b-table-resizer:hover,.b-table.table .b-table-resizing{cursor:col-resize!important;border-right:2px solid var(--b-theme-primary,#00f);}.b-table.table .b-table-resizing{cursor:col-resize!important;}thead tr th{position:relative;}.b-character-casing-lower{text-transform:lowercase;}.b-character-casing-upper{text-transform:uppercase;}.b-character-casing-title{text-transform:lowercase;}.b-character-casing-title::first-letter {text-transform:uppercase;}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible;}.flatpickr-calendar.open{display:inline-block;z-index:99999;}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);}.flatpickr-calendar.inline{display:block;position:relative;top:2px;}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px);}.flatpickr-calendar.static.open{z-index:999;display:block;}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important;}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0;}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6;}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto;}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px;}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px;}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%;}.flatpickr-calendar:before{border-width:5px;margin:0 -5px;}.flatpickr-calendar:after{border-width:4px;margin:0 -4px;}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6;}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff;}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%;}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6;}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff;}.flatpickr-calendar:focus{outline:0;}.flatpickr-wrapper{position:relative;display:contents;}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none;}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative;}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0;}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0;}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9;}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747;}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px;}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit;}.numInputWrapper{position:relative;height:auto;}.numInputWrapper input,.numInputWrapper span{display:inline-block;}.numInputWrapper input{width:100%;}.numInputWrapper input::-ms-clear{display:none;}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box;}.numInputWrapper span:hover{background:rgba(0,0,0,.1);}.numInputWrapper span:active{background:rgba(0,0,0,.2);}.numInputWrapper span:after{display:block;content:"";position:absolute;}.numInputWrapper span.arrowUp{top:0;border-bottom:0;}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%;}.numInputWrapper span.arrowDown{top:50%;}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%;}.numInputWrapper span svg{width:inherit;height:auto;}.numInputWrapper span svg path{fill:rgba(0,0,0,.5);}.numInputWrapper:hover{background:rgba(0,0,0,.05);}.numInputWrapper:hover span{opacity:1;}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0;}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05);}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block;}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9);}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9);}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;}.flatpickr-current-month input.cur-year:focus{outline:0;}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none;}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:0;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto;}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:0;}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05);}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0;}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px;}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder;}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0;}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;}.flatpickr-days:focus{outline:0;}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6;}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6;}.flatpickr-day.today{border-color:#959ea9;}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff;}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7;}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px;}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0;}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7;}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px;}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default;}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1);}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;}.flatpickr-day.hidden{visibility:hidden;}.rangeMode .flatpickr-day{margin-top:1px;}.flatpickr-weekwrapper{float:left;}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px;}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:0;}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-time:after{content:"";display:table;clear:both;}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left;}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939;}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939;}.flatpickr-time.hasSeconds .numInputWrapper{width:26%;}.flatpickr-time.time24hr .numInputWrapper{width:49%;}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;}.flatpickr-time input.flatpickr-hour{font-weight:bold;}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400;}.flatpickr-time input:focus{outline:0;border:0;}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400;}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee;}.flatpickr-input[readonly]{cursor:pointer;}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}}.flatpickr-monthSelect-months{margin:10px 1px 3px 1px;flex-wrap:wrap;}.flatpickr-monthSelect-month{background:none;border:0;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;font-weight:400;margin:.5px;justify-content:center;padding:10px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;text-align:center;width:33%;}.flatpickr-monthSelect-month.disabled{color:#eee;}.flatpickr-monthSelect-month.disabled:hover,.flatpickr-monthSelect-month.disabled:focus{cursor:not-allowed;background:none!important;}.flatpickr-monthSelect-theme-dark{background:#3f4458;}.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year{color:#fff;}.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month,.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month{color:#fff;fill:#fff;}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month{color:rgba(255,255,255,.95);}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:#e6e6e6;cursor:pointer;outline:0;}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus{background:#646c8c;border-color:#646c8c;}.flatpickr-monthSelect-month.selected{background-color:#569ff7;color:#fff;}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected{background:#80cbc4;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#80cbc4;} +/*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ +.pickr{position:relative;overflow:visible;transform:translateY(0);}.pickr *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none;}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all .3s;}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1;}.pickr .pcr-button::before{z-index:initial;}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em;}.pickr .pcr-button.clear{background-size:70%;}.pickr .pcr-button.clear::before{opacity:0;}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color);}.pickr .pcr-button.disabled{cursor:not-allowed;}.pickr *,.pcr-app *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none;}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color);}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s;}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25);}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0;}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1;}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em;}.pcr-app .pcr-swatches.pcr-last{margin:0;}@supports(display:grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit,1.75em);}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:transparent;z-index:1;}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1;}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box;}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05);}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none;}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -.2em 0 -.2em;}.pcr-app .pcr-interaction>*{margin:0 .2em;}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em;}.pcr-app .pcr-interaction input:hover{filter:brightness(.975);}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75);}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text;}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff;}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff;}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4;}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto;}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(.925);}.pcr-app .pcr-interaction .pcr-save{background:#4285f4;}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250;}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75);}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab;}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing;}.pcr-app[data-theme=monolith]{width:14.25em;max-width:95vw;padding:.8em;}.pcr-app[data-theme=monolith] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.5em;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color .3s,box-shadow .3s;border-radius:.15em 0 0 .15em;z-index:2;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 .15em .15em 0;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity{height:.5em;margin-top:.75em;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%);}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em;}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right,transparent,#000),url('data:image/svg+xml;utf8, ');background-size:100%,.25em;} \ No newline at end of file diff --git a/_content/Blazorise/breakpoint.js b/_content/Blazorise/breakpoint.js new file mode 100755 index 00000000..3c891b54 --- /dev/null +++ b/_content/Blazorise/breakpoint.js @@ -0,0 +1,81 @@ +// holds the list of components that are triggers to breakpoint +const breakpointComponents = []; +let lastBreakpoint = null; + +// Recalculate breakpoint on resize +if (window.attachEvent) { + window.attachEvent('onresize', windowResized); +} +else if (window.addEventListener) { + window.addEventListener('resize', windowResized, true); +} +else { + //The browser does not support Javascript event binding +} + +function windowResized() { + if (breakpointComponents && breakpointComponents.length > 0) { + var currentBreakpoint = getBreakpoint(); + + if (lastBreakpoint !== currentBreakpoint) { + lastBreakpoint = currentBreakpoint; + + let index = 0; + + for (index = 0; index < breakpointComponents.length; ++index) { + onBreakpoint(breakpointComponents[index].dotnetAdapter, currentBreakpoint); + } + } + } +} + +// Set initial breakpoint +lastBreakpoint = getBreakpoint(); + +// Get the current breakpoint +export function getBreakpoint() { + return window.getComputedStyle(document.body, ':before').content.replace(/\"/g, ''); +} + +export function addBreakpointComponent(elementId, dotnetAdapter) { + breakpointComponents.push({ elementId: elementId, dotnetAdapter: dotnetAdapter }); +} + +export function findBreakpointComponentIndex(elementId) { + let index = 0; + + for (index = 0; index < breakpointComponents.length; ++index) { + if (breakpointComponents[index].elementId === elementId) + return index; + } + + return -1; +} + +export function isBreakpointComponent(elementId) { + let index = 0; + + for (index = 0; index < breakpointComponents.length; ++index) { + if (breakpointComponents[index].elementId === elementId) + return true; + } + + return false; +} + +function onBreakpoint(dotnetAdapter, currentBreakpoint) { + dotnetAdapter.invokeMethodAsync('OnBreakpoint', currentBreakpoint); +} + +export function registerBreakpointComponent(dotnetAdapter, elementId) { + if (isBreakpointComponent(elementId) !== true) { + addBreakpointComponent(elementId, dotnetAdapter); + } +} + +export function unregisterBreakpointComponent(elementId) { + const index = findBreakpointComponentIndex(elementId); + if (index !== -1) { + breakpointComponents.splice(index, 1); + } +} \ No newline at end of file diff --git a/_content/Blazorise/button.js b/_content/Blazorise/button.js new file mode 100755 index 00000000..e5be269a --- /dev/null +++ b/_content/Blazorise/button.js @@ -0,0 +1,37 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +const _instances = []; + +export function initialize(element, elementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + _instances[elementId] = new ButtonInfo(element, elementId, options); + + if (element && element.type === "submit") { + element.addEventListener("click", (e) => { + click(_instances[elementId], e); + }); + } +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + delete instances[elementId]; +} + +export function click(buttonInfo, e) { + if (buttonInfo.options.preventDefaultOnSubmit) { + return e.preventDefault(); + } +} + +class ButtonInfo { + constructor(element, elementId, options) { + this.elementId = elementId; + this.element = element; + this.options = options || {}; + } +} \ No newline at end of file diff --git a/_content/Blazorise/closable.js b/_content/Blazorise/closable.js new file mode 100755 index 00000000..5f1d30b6 --- /dev/null +++ b/_content/Blazorise/closable.js @@ -0,0 +1,155 @@ +let closableComponents = []; +let closableLightComponents = []; +let lastClickedDocumentElement = null; + +function addClosableComponent(elementId, dotnetAdapter) { + closableComponents.push({ elementId: elementId, dotnetAdapter: dotnetAdapter }); +} + +function addClosableLightComponent(elementId) { + closableLightComponents.push({ elementId: elementId }); +} + +function isClosableComponent(elementId) { + let index = 0; + + for (index = 0; index < closableComponents.length; ++index) { + if (closableComponents[index].elementId === elementId) + return true; + } + + return false; +} + +function isClosableLightComponent(elementId) { + let index = 0; + + for (index = 0; index < closableLightComponents.length; ++index) { + if (closableLightComponents[index].elementId === elementId) + return true; + } + + return false; +} + +function findClosableComponentIndex(elementId) { + let index = 0; + + for (index = 0; index < closableComponents.length; ++index) { + if (closableComponents[index].elementId === elementId) + return index; + } + + return null; +} + +function findClosableLightComponentIndex(elementId) { + let index = 0; + + for (index = 0; index < closableLightComponents.length; ++index) { + if (closableLightComponents[index].elementId === elementId) + return index; + } + + return null; +} + +function tryClose(closable, targetElementId, isEscapeKey, isChildClicked) { + let request = new Promise((resolve, reject) => { + closable.dotnetAdapter.invokeMethodAsync('SafeToClose', targetElementId, isEscapeKey ? 'escape' : 'leave', isChildClicked) + .then((result) => resolve({ elementId: closable.elementId, dotnetAdapter: closable.dotnetAdapter, status: result === true ? 'ok' : 'cancelled' })) + .catch(() => resolve({ elementId: closable.elementId, status: 'error' })); + }); + + if (request) { + request + .then((response) => { + if (response.status === 'ok') { + response.dotnetAdapter.invokeMethodAsync('Close', isEscapeKey ? 'escape' : 'leave') + // If the user navigates to another page then it will raise exception because the reference to the component cannot be found. + // In that case just remove the elementId from the list. + .catch(() => unregisterClosableComponent(response.elementId)); + } + }); + } +} + +function hasParentInTree(element, parentElementId) { + if (!element.parentElement) return false; + if (element.parentElement.id === parentElementId) return true; + return hasParentInTree(element.parentElement, parentElementId); +} + +function hasScroll(element) { + return element.scrollHeight > element.clientHeight; +} + +function scrollClick(event) { + return hasScroll(event.target) && event.target.clientWidth < event.clientX; +} + +export function registerClosableComponent(dotnetAdapter, element) { + if (element) { + if (isClosableComponent(element.id) !== true) { + addClosableComponent(element.id, dotnetAdapter); + } + } +} + +/// Adds a lighter closable component, that is tracked for close events. +export function registerClosableLightComponent(element) { + if (element) { + if (isClosableLightComponent(element.id) !== true) { + addClosableLightComponent(element.id); + } + } +} + +export function unregisterClosableLightComponent(element) { + if (element) { + const index = findClosableLightComponentIndex(element.id); + if (index !== -1) { + closableLightComponents.splice(index, 1); + } + } +} + +export function unregisterClosableComponent(element) { + if (element) { + const index = findClosableComponentIndex(element.id); + if (index !== -1) { + closableComponents.splice(index, 1); + } + } +} + +document.addEventListener('mousedown', function handler(evt) { + lastClickedDocumentElement = evt.target; +}); + +document.addEventListener('mouseup', function handler(evt) { + if (isClosableLightComponent(evt.target.id)) + return; + + if (evt.button === 0 && evt.target === lastClickedDocumentElement && closableComponents && closableComponents.length > 0) { + const lastClosable = closableComponents[closableComponents.length - 1]; + const scrollClicked = scrollClick(evt); + if (lastClosable && !scrollClicked) { + tryClose(lastClosable, evt.target.id, false, hasParentInTree(evt.target, lastClosable.elementId)); + } + } +}); + + + +document.addEventListener('keyup', function handler(evt) { + if (isClosableLightComponent(evt.target.id)) + return; + + if (evt.keyCode === 27 && closableComponents && closableComponents.length > 0) { + const lastClosable = closableComponents[closableComponents.length - 1]; + if (lastClosable) { + tryClose(lastClosable, lastClosable.elementId, true, hasParentInTree(evt.target, lastClosable.elementId)); + } + } +}); \ No newline at end of file diff --git a/_content/Blazorise/colorPicker.js b/_content/Blazorise/colorPicker.js new file mode 100755 index 00000000..39cfa52c --- /dev/null +++ b/_content/Blazorise/colorPicker.js @@ -0,0 +1,210 @@ +import "./vendors/Pickr.js?v=1.3.1.0"; +import * as utilities from "./utilities.js?v=1.3.1.0"; + +const _instancesInfos = []; + +export function initialize(dotnetAdapter, element, elementId, options) { + element = utilities.getRequiredElement(element, elementId); + + if (!element) + return; + + const picker = Pickr.create({ + el: element, + theme: 'monolith', // or 'monolith', or 'nano' + + useAsButton: element, + + comparison: false, + default: options.default || "#000000", + position: 'bottom-start', + silent: true, + + swatches: options.showPalette ? options.palette : null, + components: { + //palette: false, + + // Main components + preview: true, + opacity: true, + hue: false, + + // Input / output Options + interaction: { + hex: true, + rgba: true, + hsla: false, + hsva: false, + cmyk: false, + input: true, + save: false, + clear: options.showClearButton || true, + cancel: options.showCancelButton || true + } + }, + + // Translations, these are the default values. + i18n: options.localization || { + // Strings visible in the UI + 'ui:dialog': 'color picker dialog', + 'btn:toggle': 'toggle color picker dialog', + 'btn:swatch': 'color swatch', + 'btn:last-color': 'use previous color', + 'btn:save': 'Save', + 'btn:cancel': 'Cancel', + 'btn:clear': 'Clear', + + // Strings used for aria-labels + 'aria:btn:save': 'save and close', + 'aria:btn:cancel': 'cancel and close', + 'aria:btn:clear': 'clear and close', + 'aria:input': 'color input field', + 'aria:palette': 'color selection area', + 'aria:hue': 'hue selection slider', + 'aria:opacity': 'selection slider' + } + }); + + const hexColor = options.default ? options.default : "#000000"; + + const previewElement = element.querySelector(":scope > .b-input-color-picker-preview > .b-input-color-picker-curent-color"); + + const instanceInfo = { + picker: picker, + dotnetAdapter: dotnetAdapter, + element: element, + elementId: elementId, + previewElement: previewElement, + hexColor: hexColor, + palette: options.palette || [], + showPalette: options.showPalette || true, + hideAfterPaletteSelect: options.hideAfterPaletteSelect || true, + showButtons: options.showButtons || true + }; + + applyHexColor(instanceInfo, hexColor, true); + + let hexColorShow = picker.getColor() ? picker.getColor().toHEXA().toString() : null; + + if (options.disabled) { + picker.disable(); + } + + picker + .on('show', (color, instance) => { + hexColorShow = color ? color.toHEXA().toString() : null; + }) + .on("cancel", (instance) => { + applyHexColor(instanceInfo, hexColorShow); + instanceInfo.picker.setColor(hexColorShow, true); + instanceInfo.picker.hide() + }) + .on("clear", (instance) => { + hexColorShow = null; + applyHexColor(instanceInfo, null); + }) + .on("changestop", (source, instance) => { + const hexColor = instance.getColor() ? instance.getColor().toHEXA().toString() : null; + applyHexColor(instanceInfo, hexColor); + }) + .on("swatchselect", (color, instance) => { + const hexColor = color ? color.toHEXA().toString() : null; + applyHexColor(instanceInfo, hexColor); + + if (instanceInfo.hideAfterPaletteSelect) { + instanceInfo.picker.hide(); + } + }); + + _instancesInfos[elementId] = instanceInfo; +} + +export function destroy(element, elementId) { + const instanceInfo = _instancesInfos || {}; + delete instanceInfo[elementId]; +} + +export function updateValue(element, elementId, hexColor) { + const instanceInfo = _instancesInfos[elementId]; + + if (instanceInfo) { + applyHexColor(instanceInfo, hexColor); + } +} + +export function updateOptions(element, elementId, options) { + const instanceInfo = _instancesInfos[elementId]; + + if (instanceInfo) { + if (options.palette.changed) { + instanceInfo.palette = options.palette.value || []; + instanceInfo.picker.setSwatches(instanceInfo.palette); + } + + if (options.showPalette.changed) { + if (options.showPalette.value) { + instanceInfo.picker.setSwatches(instanceInfo.palette); + } else { + instanceInfo.picker.setSwatches([]); + } + } + + if (options.hideAfterPaletteSelect.changed) { + instanceInfo.hideAfterPaletteSelect = options.hideAfterPaletteSelect.value; + } + + if (options.disabled.changed || options.readOnly.changed) { + if (options.disabled.value || options.readOnly.value) { + instanceInfo.picker.disable(); + } else { + instanceInfo.picker.enable(); + } + } + } +} + +export function updateLocalization(element, elementId, localization) { + const instanceInfo = _instancesInfos[elementId]; + + if (instanceInfo) { + instanceInfo.picker.options.i18n = localization; + + instanceInfo.picker._root.interaction.save.value = localization["btn:save"]; + instanceInfo.picker._root.interaction.cancel.value = localization["btn:cancel"]; + instanceInfo.picker._root.interaction.clear.value = localization["btn:clear"]; + } +} + +export function focus(element, elementId, scrollToElement) { + const instanceInfo = _instancesInfos[elementId]; + + if (instanceInfo) { + utilities.focus(picker.element, null, scrollToElement); + } +} + +export function select(element, elementId, focus) { + const instanceInfo = _instancesInfos[elementId]; + + if (instanceInfo) { + utilities.select(picker.element, null, focus); + } +} + +export function applyHexColor(instanceInfo, hexColor, force = false) { + if (instanceInfo.hexColor !== hexColor || force) { + instanceInfo.hexColor = hexColor; + + if (instanceInfo.previewElement) { + instanceInfo.previewElement.style.backgroundColor = hexColor; + } + + if (instanceInfo.element) { + instanceInfo.element.setAttribute('data-color', hexColor); + } + + if (instanceInfo.dotnetAdapter) { + instanceInfo.dotnetAdapter.invokeMethodAsync('SetValue', hexColor); + } + } +} \ No newline at end of file diff --git a/_content/Blazorise/datePicker.js b/_content/Blazorise/datePicker.js new file mode 100755 index 00000000..e72c16d3 --- /dev/null +++ b/_content/Blazorise/datePicker.js @@ -0,0 +1,320 @@ +import "./vendors/flatpickr.js?v=1.3.1.0"; +import * as utilities from "./utilities.js?v=1.3.1.0"; + +const _pickers = []; + +export function initialize(dotnetAdapter, element, elementId, options) { + element = utilities.getRequiredElement(element, elementId); + + if (!element) + return; + + function mutationObserverCallback(mutationsList, observer) { + mutationsList.forEach(mutation => { + if (mutation.attributeName === 'class') { + const picker = _pickers[mutation.target.id]; + + if (picker && picker.altInput) { + const altInputClassListToRemove = [...picker.altInput.classList].filter(cn => !["input", "active"].includes(cn)); + const inputClassListToAdd = [...picker.input.classList].filter(cn => !["flatpickr-input"].includes(cn)); + + altInputClassListToRemove.forEach(name => { + picker.altInput.classList.remove(name); + }); + + inputClassListToAdd.forEach(name => { + picker.altInput.classList.add(name); + }); + } + } + }); + } + + // When flatpickr is defined with altInput=true, it will create a second input + // element while the original input element will be hidden. With MutationObserver + // we can copy classnames from hidden to the visible element. + const mutationObserver = new MutationObserver(mutationObserverCallback); + mutationObserver.observe(document.getElementById(elementId), { attributes: true }); + + const defaultOptions = { + enableTime: options.inputMode === 1, + dateFormat: options.inputMode === 1 ? 'Y-m-d H:i' : 'Y-m-d', + allowInput: true, + altInput: true, + altFormat: options.displayFormat ? options.displayFormat : (options.inputMode === 1 ? 'Y-m-d H:i' : 'Y-m-d'), + defaultDate: options.defaultDate, + minDate: options.min, + maxDate: options.max, + locale: options.localization || { + firstDayOfWeek: options.firstDayOfWeek + }, + time_24hr: options.timeAs24hr ? options.timeAs24hr : false, + clickOpens: !(options.readOnly || false), + disable: options.disabledDates || [], + inline: options.inline || false, + disableMobile: options.disableMobile || true, + static: options.staticPicker + }; + + if (options.selectionMode) + defaultOptions.mode = options.selectionMode; + + const pluginOptions = options.inputMode === 2 ? { + plugins: [new monthSelectPlugin({ + shorthand: false, + dateFormat: "Y-m-d", + altFormat: "M Y" + })] + } : {}; + + const picker = flatpickr(element, Object.assign({}, defaultOptions, pluginOptions)); + + picker.altInput.dotnetAdapter = dotnetAdapter; + + if (options) { + picker.altInput.disabled = options.disabled || false; + picker.altInput.readOnly = options.readOnly || false; + picker.altInput.placeholder = options.placeholder; + + picker.altInput.addEventListener("blur", (e) => { + const isInput = e.target === picker._input; + + // Workaround for: onchange does not fire when user writes the time and then click outside of the input area. + if (isInput && picker.isOpen === false) { + picker.input.dispatchEvent(utilities.createEvent("change")); + picker.input.dispatchEvent(utilities.createEvent("input")); + } + }); + } + + picker.customOptions = { + inputMode: options.inputMode + }; + + attachEventHandlers(picker.altInput); + + _pickers[elementId] = picker; +} + +function attachEventHandlers(picker) { + picker.addEventListener("keydown", keyDownHandler); + picker.addEventListener("keyup", keyUpHandler); + picker.addEventListener("focus", focusHandler); + picker.addEventListener("focusin", focusInHandler); + picker.addEventListener("focusout", focusOutHandler); + picker.addEventListener("keypress", keyPressHandler); + picker.addEventListener("blur", blurHandler); +} + +function removeEventHandlers(picker) { + picker.removeEventListener("keydown", keyDownHandler); + picker.removeEventListener("keyup", keyUpHandler); + picker.removeEventListener("focus", focusHandler); + picker.removeEventListener("focusin", focusInHandler); + picker.removeEventListener("focusout", focusOutHandler); + picker.removeEventListener("keypress", keyPressHandler); + picker.removeEventListener("blur", blurHandler); +} + +function keyDownHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnKeyDownHandler", e); + } +} + +function keyUpHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnKeyUpHandler", e); + } +} + +function focusHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnFocusHandler", e); + } +} + +function focusInHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnFocusInHandler", e); + } +} + +function focusOutHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnFocusOutHandler", e); + } +} + +function keyPressHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnKeyPressHandler", e); + } +} + +function blurHandler(e) { + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnBlurHandler", e); + } +} + +export function destroy(element, elementId) { + const instances = _pickers || {}; + + const instance = instances[elementId]; + + if (instance && instance.altInput) { + removeEventHandlers(instance.altInput); + } + + if (instance) { + instance.destroy(); + } + + delete instances[elementId]; +} + +export function updateValue(element, elementId, value) { + const picker = _pickers[elementId]; + + if (picker) { + picker.setDate(value); + + // workaround for https://github.com/flatpickr/flatpickr/issues/2861 + if (picker.customOptions && picker.customOptions.inputMode === 2 && picker.nextMonthNav) { + picker.nextMonthNav.click(); + picker.jumpToDate(value, false); + } + } +} + +export function updateOptions(element, elementId, options) { + const picker = _pickers[elementId]; + + if (picker) { + if (options.firstDayOfWeek.changed) { + picker.set("firstDayOfWeek", options.firstDayOfWeek.value); + } + + if (options.displayFormat.changed) { + picker.set("altFormat", options.displayFormat.value); + } + + if (options.timeAs24hr.changed) { + picker.set("time_24hr", options.timeAs24hr.value); + } + + if (options.min.changed) { + picker.set("minDate", options.min.value); + } + + if (options.max.changed) { + picker.set("maxDate", options.max.value); + } + + if (options.disabled.changed) { + picker.altInput.disabled = options.disabled.value; + } + + if (options.readOnly.changed) { + picker.altInput.readOnly = options.readOnly.value; + picker.set("clickOpens", !options.readOnly.value); + } + + if (options.disabledDates.changed) { + picker.set("disable", options.disabledDates.value || []); + } + + if (options.selectionMode.changed) { + picker.set("mode", options.selectionMode.value); + } + + if (options.inline.changed) { + picker.set("inline", options.inline.value || false); + } + + if (options.disableMobile.changed) { + picker.set("disableMobile", options.disableMobile.value || true); + } + + if (options.placeholder.changed) { + picker.altInput.placeholder = options.placeholder.value; + } + + if (options.staticPicker.changed) { + picker.set("static", options.staticPicker.value); + } + } +} + +export function open(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.open(); + } +} + +export function close(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.close(); + } +} + +export function toggle(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.toggle(); + } +} + +export function updateLocalization(element, elementId, localization) { + const picker = _pickers[elementId]; + + if (picker) { + picker.config.locale = localization; + + if (picker.l10n) { + picker.l10n.months = localization.months; + picker.l10n.weekdays = localization.weekdays; + picker.l10n.amPM = localization.amPM; + picker.l10n.rangeSeparator = localization.rangeSeparator; + } + + if (picker.weekdayContainer) { + for (let i = 0; i < 7; ++i) { + picker.weekdayContainer.children[0].children[i].innerHtml = localization.weekdays.shorthand[i]; + picker.weekdayContainer.children[0].children[i].innerText = localization.weekdays.shorthand[i]; + } + } + + if (picker.amPM) { + const selectedDate = picker.selectedDates && picker.selectedDates.length > 0 ? picker.selectedDates[0] : null; + const index = selectedDate && selectedDate.getHours() >= 12 ? 1 : 0; + + picker.amPM.innerHtml = localization.amPM[index]; + picker.amPM.innerText = localization.amPM[index]; + } + + picker.redraw(); + } +} + +export function focus(element, elementId, scrollToElement) { + const picker = _pickers[elementId]; + + if (picker && picker.altInput) { + utilities.focus(picker.altInput, null, scrollToElement); + } +} + +export function select(element, elementId, focus) { + const picker = _pickers[elementId]; + + if (picker && picker.altInput) { + utilities.select(picker.altInput, null, focus); + } +} \ No newline at end of file diff --git a/_content/Blazorise/dragDrop.js b/_content/Blazorise/dragDrop.js new file mode 100755 index 00000000..37f01370 --- /dev/null +++ b/_content/Blazorise/dragDrop.js @@ -0,0 +1,83 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +export function initialize(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + element.addEventListener('dragover', dragOverHandler); + element.addEventListener('dragstart', dragStartHandler); +} + +export function destroy(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + element.removeEventListener('dragover', dragOverHandler); + element.removeEventListener('dragstart', dragStartHandler); +} + +export function initializeThrottledDragEvents(element, elementId, dotnetAdapter) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + element.dotnetAdapter = dotnetAdapter; + element.timeOutForDrag = null; + element.timeOutForDragOver = null; + + element.addEventListener('drag', throttledDragHandler); + element.addEventListener('dragover', throttledDragOverHandler); +} + +export function destroyThrottledDragEvents(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + if (typeof throttledDragHandler === "function") { + element.removeEventListener("drag", throttledDragHandler); + } + + if (typeof throttledDragOverHandler === "function") { + element.removeEventListener("dragover", throttledDragOverHandler); + } +} + +function dragOverHandler(e) { + e.preventDefault(); +} + +function dragStartHandler(e) { + e.dataTransfer.setData('', e.target.id); +} + +function throttledDragHandler(e) { + e.preventDefault(); + + if (e.target && !e.target.timeOutForDrag) { + e.target.timeOutForDrag = setTimeout(function () { + e.target.timeOutForDrag = null; + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnDragHandler", e); + } + }.bind(this), 250); + } +} + +function throttledDragOverHandler(e) { + e.preventDefault(); + if (e.target && !e.target.timeOutForDragOver) { + e.target.timeOutForDragOver = setTimeout(function () { + e.target.timeOutForDragOver = null; + if (e.target.dotnetAdapter) { + e.target.dotnetAdapter.invokeMethodAsync("OnDragOverHandler", e); + } + }.bind(this), 250); + } +} \ No newline at end of file diff --git a/_content/Blazorise/dropdown.js b/_content/Blazorise/dropdown.js new file mode 100755 index 00000000..89e76338 --- /dev/null +++ b/_content/Blazorise/dropdown.js @@ -0,0 +1,46 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; +import { createFloatingUiAutoUpdate } from './floatingUi.js?v=1.3.1.0'; + +const _instances = []; + +function createSelector(value) { + const classNames = '.' + value.split(' ').filter(i => i).join('.'); + + return classNames; +} + +export function initialize(element, elementId, targetElementId, menuElementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const targetElement = targetElementId + ? document.getElementById(targetElementId) + : element.querySelector(createSelector(options.dropdownToggleClassNames)); + + const menuElement = menuElementId + ? document.getElementById(menuElementId) + : element.querySelector(createSelector(options.dropdownMenuClassNames)); + + const instanceCleanupFunction = createFloatingUiAutoUpdate(targetElement, menuElement, options); + + _instances[elementId] = instanceCleanupFunction; +} + + +export function destroy(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const instances = _instances || {}; + + const instanceCleanupFunction = instances[elementId]; + + if (instanceCleanupFunction) { + instanceCleanupFunction(); + delete instances[elementId]; + } +} \ No newline at end of file diff --git a/_content/Blazorise/fileEdit.js b/_content/Blazorise/fileEdit.js new file mode 100755 index 00000000..b4619248 --- /dev/null +++ b/_content/Blazorise/fileEdit.js @@ -0,0 +1,201 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +const _instances = []; +let nextFileId = 0; +export function initialize(adapter, element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + // save an instance of adapter + _instances[elementId] = new FileEditInfo(adapter, element, elementId); + element.addEventListener("drop", async (e) => await onDrop(e, element), false); + element.addEventListener('change', function handleInputFileChange(event) { + + var fileList = mapElementFilesToFileEntries(element); + + adapter.invokeMethodAsync('NotifyChange', fileList).then(null, function (err) { + throw new Error(err); + }); + }); +} + +export function removeFile(element, elementId, fileId) { + element = getRequiredElement(element, elementId); + + if (element && element.files && element.files.length > 0) { + const dt = new DataTransfer(); + + for (let i = 0; i < element.files.length; i++) { + const file = element.files[i]; + if (file.id != fileId) + dt.items.add(file); + } + + element.files = dt.files; + element.dispatchEvent(new Event("change")); + } +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + delete instances[elementId]; +} + +export function reset(element, elementId) { + element = getRequiredElement(element, elementId); + + if (element) { + element.value = ''; + + var fileEditInfo = _instances[elementId]; + + if (fileEditInfo) { + fileEditInfo.adapter.invokeMethodAsync('NotifyChange', []).then(null, function (err) { + throw new Error(err); + }); + } + } +} + +export function open(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + if ('showPicker' in HTMLInputElement.prototype) { + element.showPicker(); + } + else { + element.click(); + } +} + +// Reduce to purely serializable data, plus build an index by ID +function mapElementFilesToFileEntries(element) { + element._blazorFilesById = {}; + + let fileList = Array.prototype.map.call(element.files, function (file) { + file.id = file.id ?? ++nextFileId; + var fileEntry = { + id: file.id, + lastModified: new Date(file.lastModified).toISOString(), + name: file.name, + size: file.size, + type: file.type, + relativePath: file.webkitRelativePath + }; + element._blazorFilesById[fileEntry.id] = fileEntry; + + // Attach the blob data itself as a non-enumerable property so it doesn't appear in the JSON + Object.defineProperty(fileEntry, 'blob', { value: file }); + + return fileEntry; + }); + return fileList; +} + +async function onDrop(e, element) { + e.preventDefault(); + console.log(element); + let fileInput = element; + + let _files = await getFilesAsync(e.dataTransfer, fileInput.webkitdirectory, fileInput.multiple); + fileInput.files = _files; + + const event = new Event('change', { bubbles: true }); + fileInput.dispatchEvent(event); +} + +export async function getFilesAsync(dataTransfer, directory, multiple) { + const files = []; + const queue = []; + + let fileCount = 1 + if (multiple) { + fileCount = dataTransfer.items.length + } + + for (let i = 0; i < fileCount; i++) { + const item = dataTransfer.items[i]; + if (item.kind === "file") { + if (typeof item.webkitGetAsEntry === "function") { + const entry = item.webkitGetAsEntry(); + if (entry.isDirectory) { + if (!directory) { + continue; + } + } + queue.push(readEntryContentAsync(entry).then(x => files.push(...x))); + continue; + } + + const file = item.getAsFile(); + if (file) { + files.push(file); + } + } + } + await Promise.all(queue); + + var dt = new DataTransfer(); + + for (var i = 0; i < files.length; i++) { + dt.items.add(files[i]); + } + + return dt.files; +} + +// Returns a promise with all the files of the directory hierarchy +function readEntryContentAsync(entry) { + return new Promise((resolve, reject) => { + let reading = 0; + const contents = []; + + readEntry(entry); + + function readEntry(entry) { + if (entry.isFile) { + reading++; + entry.file(file => { + reading--; + contents.push(file); + + if (reading === 0) { + resolve(contents); + } + }); + } else if (entry.isDirectory) { + readReaderContent(entry.createReader()); + } + } + + function readReaderContent(reader) { + reading++; + + reader.readEntries(function (entries) { + reading--; + for (const entry of entries) { + readEntry(entry); + } + + if (reading === 0) { + resolve(contents); + } + }); + } + }); +} + + +class FileEditInfo { + constructor(adapter, element, elementId) { + this.adapter = adapter; + this.element = element; + this.elementId = elementId; + } +} + diff --git a/_content/Blazorise/filePicker.js b/_content/Blazorise/filePicker.js new file mode 100755 index 00000000..9e733460 --- /dev/null +++ b/_content/Blazorise/filePicker.js @@ -0,0 +1,67 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; +import { getFilesAsync } from "./fileEdit.js?v=1.3.1.0"; + +const _instances = []; +export function initialize(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + _instances[elementId] = element; + initializeDropZone(element); +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + delete instances[elementId]; +} + +function initializeDropZone(element) { + let fileInput = setFileInput(element); + if (fileInput) { + element.addEventListener("dragenter", onDragHover); + element.addEventListener("dragover", onDragHover); + element.addEventListener("dragleave", onDragLeave); + element.addEventListener("drop", async (e) => await onDrop(e, element), false); + element.addEventListener('paste', (e) => onPaste(e, element)); + } +} + +function onDragHover(e) { + e.preventDefault(); +} + +function onDragLeave(e) { + e.preventDefault(); +} + +async function onDrop(e, element) { + e.preventDefault(); + console.log(element); + let fileInput = getFileInput(element); + + let _files = await getFilesAsync(e.dataTransfer, fileInput.webkitdirectory, fileInput.multiple); + fileInput.files = _files; + + const event = new Event('change', { bubbles: true }); + fileInput.dispatchEvent(event); +} + +function onPaste(e, element) { + let fileInput = getFileInput(element); + + fileInput.files = e.clipboardData.files; + const event = new Event('change', { bubbles: true }); + fileInput.dispatchEvent(event); +} + +function setFileInput(element) { + let fileInput = element.querySelector("input[type=file]"); + _instances[element.id].fileInput = fileInput; + return fileInput; +} + +function getFileInput(element) { + return _instances[element.id].fileInput; +} diff --git a/_content/Blazorise/floatingUi.js b/_content/Blazorise/floatingUi.js new file mode 100755 index 00000000..6f4ee3f6 --- /dev/null +++ b/_content/Blazorise/floatingUi.js @@ -0,0 +1,38 @@ +import { computePosition, autoUpdate, flip, shift, limitShift } from './vendors/floating-ui.js?v=1.3.1.0'; + +const DIRECTION_DEFAULT = 'Default' +const DIRECTION_DOWN = 'Down' +const DIRECTION_UP = 'Up' +const DIRECTION_END = 'End' +const DIRECTION_START = 'Start' + +export function createFloatingUiAutoUpdate(targetElement, menuElement, options) { + //https://floating-ui.com/docs/autoUpdate + return autoUpdate(targetElement, menuElement, () => { + computePosition(targetElement, menuElement, { //https://floating-ui.com/docs/computePosition#anchoring + placement: getPlacementDirection(options.direction, options.rightAligned), //https://floating-ui.com/docs/computePosition#placement + strategy: options.strategy, //https://floating-ui.com/docs/computePosition#strategy + middleware: [flip(), shift({ padding: 0, limiter: limitShift() })] //https://floating-ui.com/docs/computePosition#middleware + }).then(({ x, y }) => { + Object.assign(menuElement.style, { + left: `${x}px`, + top: `${y}px` + }); + }); + }); +} + +function getPlacementDirection(direction, rightAligned) { + let suffixAlignment = rightAligned ? "end" : "start"; + + if (direction === DIRECTION_DEFAULT || direction === DIRECTION_DOWN) + return 'bottom-' + suffixAlignment; + else if (direction === DIRECTION_UP) + return 'top-' + suffixAlignment; + else if (direction === DIRECTION_END) + return 'right-' + suffixAlignment; + else if (direction === DIRECTION_START) + return 'left-' + suffixAlignment; + + return 'bottom-' + suffixAlignment; +} \ No newline at end of file diff --git a/_content/Blazorise/inputMask.js b/_content/Blazorise/inputMask.js new file mode 100755 index 00000000..bfac1458 --- /dev/null +++ b/_content/Blazorise/inputMask.js @@ -0,0 +1,66 @@ +import Inputmask from "./vendors/inputmask.js?v=1.3.1.0"; +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +let _instances = []; + +export function initialize(dotnetAdapter, element, elementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const maskOptions = options.mask ? { mask: options.mask } : {}; + const regexOptions = options.mask ? { regex: options.regex } : {}; + const aliasOptions = options.alias ? { alias: options.alias, inputFormat: options.inputFormat, outputFormat: options.outputFormat } : {}; + const otherOptions = { + placeholder: options.placeholder || "_", + showMaskOnFocus: options.showMaskOnFocus, + showMaskOnHover: options.showMaskOnHover, + numericInput: options.numericInput || false, + rightAlign: options.rightAlign || false, + radixPoint: options.decimalSeparator || "", + groupSeparator: options.groupSeparator || "", + nullable: options.nullable || false, + positionCaretOnClick: options.positionCaretOnClick || "lvp", + clearMaskOnLostFocus: options.clearMaskOnLostFocus || true, + clearIncomplete: options.clearIncomplete || false, + autoUnmask: options.autoUnmask || false, + oncomplete: function (e) { + dotnetAdapter.invokeMethodAsync('NotifyCompleted', e.target.value); + }, + onincomplete: function (e) { + dotnetAdapter.invokeMethodAsync('NotifyIncompleted', e.target.value); + }, + oncleared: function () { + dotnetAdapter.invokeMethodAsync('NotifyCleared'); + } + }; + + const finalOptions = options.alias + ? Object.assign({}, aliasOptions, otherOptions) + : Object.assign({}, maskOptions, regexOptions, otherOptions); + + var inputMask = new Inputmask(finalOptions); + + inputMask.mask(element); + + _instances[elementId] = { + dotnetAdapter: dotnetAdapter, + element: element, + elementId: elementId, + inputMask: inputMask + }; +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + delete instances[elementId]; +} + +export function extendAliases(element, elementId, aliasOptions) { + const instance = _instances[elementId]; + + if (instance && instance.inputMask) { + instance.inputMask.extendAliases(aliasOptions); + } +} \ No newline at end of file diff --git a/_content/Blazorise/io.js b/_content/Blazorise/io.js new file mode 100755 index 00000000..5534ecf0 --- /dev/null +++ b/_content/Blazorise/io.js @@ -0,0 +1,132 @@ +export async function readFileDataStream(elem, fileId) { + const file = getFileById(elem, fileId); + return file.blob; +} + +export function readFileData(element, fileEntryId, position, length) { + var readPromise = getArrayBufferFromFileAsync(element, fileEntryId); + + return readPromise.then(function (arrayBuffer) { + return new Uint8Array(arrayBuffer, position, length); + }); +} + +function ensureArrayBufferReadyForSharedMemoryInterop(element, fileId) { + return getArrayBufferFromFileAsync(element, fileId).then(function (arrayBuffer) { + getFileById(element, fileId).arrayBuffer = arrayBuffer; + }); +} + +function readFileDataSharedMemory(readRequest) { + // This uses various unsupported internal APIs. Beware that if you also use them, + // your code could become broken by any update. + var inputFileElementReferenceId = Blazor.platform.readStringField(readRequest, 0); + var inputFileElement = document.querySelector('[_bl_' + inputFileElementReferenceId + ']'); + var fileId = Blazor.platform.readInt32Field(readRequest, 4); + var sourceOffset = Blazor.platform.readUint64Field(readRequest, 8); + var destination = Blazor.platform.readInt32Field(readRequest, 16); + var destinationOffset = Blazor.platform.readInt32Field(readRequest, 20); + var maxBytes = Blazor.platform.readInt32Field(readRequest, 24); + + var sourceArrayBuffer = getFileById(inputFileElement, fileId).arrayBuffer; + var bytesToRead = Math.min(maxBytes, sourceArrayBuffer.byteLength - sourceOffset); + var sourceUint8Array = new Uint8Array(sourceArrayBuffer, sourceOffset, bytesToRead); + + var destinationUint8Array = Blazor.platform.toUint8Array(destination); + destinationUint8Array.set(sourceUint8Array, destinationOffset); + + return bytesToRead; +} + + +function getFileById(element, fileId) { + var file = element._blazorFilesById[fileId]; + + if (!file) { + throw new Error('There is no file with ID ' + fileId + '. The file list may have changed'); + } + + return file; +} + +function getArrayBufferFromFileAsync(element, fileId) { + var file = getFileById(element, fileId); + + // On the first read, convert the FileReader into a Promise + if (!file.readPromise) { + file.readPromise = new Promise(function (resolve, reject) { + var reader = new FileReader(); + reader.onload = function () { resolve(reader.result); }; + reader.onerror = function (err) { reject(err); }; + reader.readAsArrayBuffer(file.blob); + }); + } + + return file.readPromise; +} + +var uint8ToBase64 = (function () { + // Code from https://github.com/beatgammit/base64-js/ + // License: MIT + var lookup = []; + + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + } + + function tripletToBase64(num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F]; + } + + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF); + output.push(tripletToBase64(tmp)); + } + return output.join(''); + } + + return function fromByteArray(uint8) { + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1]; + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ); + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1]; + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ); + } + + return parts.join(''); + }; +})(); \ No newline at end of file diff --git a/_content/Blazorise/memoEdit.js b/_content/Blazorise/memoEdit.js new file mode 100755 index 00000000..119b123c --- /dev/null +++ b/_content/Blazorise/memoEdit.js @@ -0,0 +1,123 @@ +import { Behave } from "./vendors/Behave.js?v=1.3.1.0"; +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +const _instances = []; + +export function initialize(element, elementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const replaceTab = options.replaceTab || false; + const tabSize = options.tabSize || 4; + const softTabs = options.tabSize || true; + + let behave = replaceTab ? new Behave({ + textarea: element, + replaceTab: replaceTab, + softTabs: softTabs, + tabSize: tabSize, + autoOpen: true, + overwrite: true, + autoStrip: true, + autoIndent: true, + fence: false + }) : null; + + if (options.autoSize) { + element.oninput = onInputChanged; + + // fire oninput immediatelly to trigger autosize in case the text is long + if ("createEvent" in document) { + let event = document.createEvent("HTMLEvents"); + event.initEvent("input", false, true); + element.dispatchEvent(event); + } + else { + element.fireEvent("oninput"); + } + } + + _instances[elementId] = { + element: element, + elementId: elementId, + replaceTab: replaceTab, + tabSize: tabSize, + softTabs: softTabs, + behave: behave + }; +} + +export function destroy(element, elementId) { + const instance = _instances[elementId]; + + if (instance && instance.behave) { + instance.behave.destroy(); + instance.behave = null; + } + + delete _instances[elementId]; +} + +export function updateOptions(element, elementId, options) { + const instance = _instances[elementId]; + + if (instance) { + if (options.replaceTab.changed || options.tabSize.changed || options.softTabs.changed) { + instance.replaceTab = options.replaceTab.value; + instance.tabSize = options.tabSize.value; + instance.softTabs = options.softTabs.value; + + if (instance.behave) { + instance.behave.destroy(); + instance.behave = null; + } + + if (instance.replaceTab) { + instance.behave = new Behave({ + textarea: element, + replaceTab: instance.replaceTab, + softTabs: instance.softTabs, + tabSize: instance.tabSize, + autoOpen: true, + overwrite: true, + autoStrip: true, + autoIndent: true, + fence: false + }); + } + } + + if (options.autoSize.changed) { + element.oninput = options.autoSize.value + ? onInputChanged + : function () { }; + } + }; +} + +function onInputChanged(e) { + if (e && e.target) { + e.target.style.height = 'auto'; + e.target.style.height = this.scrollHeight + 'px'; + e.target.style.overflowY = 'hidden'; + } +} + +export function recalculateAutoHeight(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + // fire input to trigger autosize in case the text is long + if ("createEvent" in document) { + let event = document.createEvent("HTMLEvents"); + event.initEvent("input", false, true); + element.dispatchEvent(event); + } + else { + element.fireEvent("oninput"); + } +} \ No newline at end of file diff --git a/_content/Blazorise/numericPicker.js b/_content/Blazorise/numericPicker.js new file mode 100755 index 00000000..2e812465 --- /dev/null +++ b/_content/Blazorise/numericPicker.js @@ -0,0 +1,146 @@ +import { getRequiredElement, fromExponential, firstNonNull } from "./utilities.js?v=1.3.1.0"; + +import './vendors/autoNumeric.js?v=1.3.1.0'; + +let _instances = []; + +export function initialize(dotnetAdapter, element, elementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const instance = new AutoNumeric(element, options.value, { + decimalPlaces: firstNonNull(options.decimals, AutoNumeric.options.decimalPlaces.two), + decimalPlacesRawValue: firstNonNull(options.decimals, AutoNumeric.options.decimalPlaces.two), + decimalPlacesShownOnBlur: firstNonNull(options.decimals, AutoNumeric.options.decimalPlaces.two), + decimalPlacesShownOnFocus: firstNonNull(options.decimals, AutoNumeric.options.decimalPlaces.two), + decimalCharacter: firstNonNull(options.decimalSeparator, AutoNumeric.options.decimalCharacter.dot), + decimalCharacterAlternative: firstNonNull(options.alternativeDecimalSeparator, AutoNumeric.options.decimalCharacter.comma), + + digitGroupSeparator: firstNonNull(options.groupSeparator, AutoNumeric.options.digitGroupSeparator.noSeparator), + digitalGroupSpacing: firstNonNull(options.groupSpacing, AutoNumeric.options.digitalGroupSpacing.three), + + modifyValueOnWheel: firstNonNull(options.modifyValueOnWheel, AutoNumeric.options.modifyValueOnWheel.doNothing), + wheelOn: firstNonNull(options.wheelOn, AutoNumeric.options.wheelOn.focus), + wheelStep: firstNonNull(options.step, 1), + minimumValue: firstNonNull(fromExponential(firstNonNull(options.min, options.typeMin)), AutoNumeric.options.minimumValue.tenTrillions), + maximumValue: firstNonNull(fromExponential(firstNonNull(options.max, options.typeMax)), AutoNumeric.options.maximumValue.tenTrillions), + overrideMinMaxLimits: firstNonNull(options.minMaxLimitsOverride, AutoNumeric.options.overrideMinMaxLimits.doNotOverride), + roundingMethod: firstNonNull(options.roundingMethod, AutoNumeric.options.roundingMethod.halfUpSymmetric), + + currencySymbol: firstNonNull(options.currencySymbol, AutoNumeric.options.currencySymbol.none), + currencySymbolPlacement: firstNonNull(options.currencySymbolPlacement, AutoNumeric.options.currencySymbolPlacement.suffix), + + selectOnFocus: firstNonNull(options.selectAllOnFocus, AutoNumeric.options.selectOnFocus.doNotSelect), + caretPositionOnFocus: AutoNumeric.options.caretPositionOnFocus.doNoForceCaretPosition, + + allowDecimalPadding: firstNonNull(options.allowDecimalPadding, AutoNumeric.options.allowDecimalPadding.always), + alwaysAllowDecimalCharacter: firstNonNull(options.alwaysAllowDecimalSeparator, AutoNumeric.options.alwaysAllowDecimalCharacter.doNotAllow), + + onInvalidPaste: 'ignore', + emptyInputBehavior: AutoNumeric.options.emptyInputBehavior.null + }); + + element.addEventListener('autoNumeric:rawValueModified', e => { + if (typeof e.detail.newRawValue !== "undefined") { + dotnetAdapter.invokeMethodAsync('SetValue', e.detail.newRawValue); + } + }); + + _instances[elementId] = instance; +} + +export function destroy(element, elementId) { + const instance = _instances[elementId]; + + if (instance) { + instance.remove(); + } + + delete _instances[elementId]; +} + +export function updateOptions(element, elementId, options) { + const instance = _instances[elementId]; + + if (instance && options) { + const newOptions = {}; + + if (options.decimals.changed) { + //newOptions.decimalPlaces = options.decimals.value || AutoNumeric.options.decimalPlaces.two; + newOptions.decimalPlacesRawValue = firstNonNull(options.decimals.value, AutoNumeric.options.decimalPlaces.two); + newOptions.decimalPlacesShownOnFocus = firstNonNull(options.decimals.value, AutoNumeric.options.decimalPlaces.two); + newOptions.decimalPlacesShownOnBlur = firstNonNull(options.decimals.value, AutoNumeric.options.decimalPlaces.two); + } + + if (options.decimalSeparator.changed) { + newOptions.decimalCharacter = firstNonNull(options.decimalSeparator.value, AutoNumeric.options.decimalCharacter.dot); + } + + if (options.alternativeDecimalSeparator.changed) { + newOptions.decimalCharacterAlternative = firstNonNull(options.alternativeDecimalSeparator.value, AutoNumeric.options.decimalCharacter.comma); + } + + if (options.groupSeparator.changed) { + newOptions.digitGroupSeparator = firstNonNull(options.groupSeparator.value, AutoNumeric.options.digitGroupSeparator.noSeparator); + } + + if (options.groupSpacing.changed) { + newOptions.digitalGroupSpacing = firstNonNull(options.groupSpacing.value, AutoNumeric.options.digitalGroupSpacing.three); + } + + if (options.currencySymbol.changed) { + newOptions.currencySymbol = firstNonNull(options.currencySymbol.value, AutoNumeric.options.currencySymbol.none); + } + + if (options.currencySymbolPlacement.changed) { + newOptions.currencySymbolPlacement = firstNonNull(options.currencySymbolPlacement.value, AutoNumeric.options.currencySymbolPlacement.suffix); + } + + if (options.roundingMethod.changed) { + newOptions.roundingMethod = firstNonNull(options.roundingMethod.value, AutoNumeric.options.roundingMethod.halfUpSymmetric); + } + + if (options.min.changed) { + newOptions.minimumValue = fromExponential(firstNonNull(options.min.value, AutoNumeric.options.minimumValue.tenTrillions)); + } + if (options.max.changed) { + newOptions.maximumValue = fromExponential(firstNonNull(options.max.value, AutoNumeric.options.maximumValue.tenTrillions)); + } + + if (options.minMaxLimitsOverride.changed) { + newOptions.overrideMinMaxLimits = firstNonNull(options.minMaxLimitsOverride.value, AutoNumeric.options.overrideMinMaxLimits.doNotOverride); + } + + if (options.selectAllOnFocus.changed) { + newOptions.selectOnFocus = firstNonNull(options.selectAllOnFocus.value, AutoNumeric.options.selectOnFocus.doNotSelect); + } + + if (options.allowDecimalPadding.changed) { + newOptions.allowDecimalPadding = firstNonNull(options.allowDecimalPadding.value, AutoNumeric.options.allowDecimalPadding.always); + } + + if (options.alwaysAllowDecimalSeparator.changed) { + newOptions.alwaysAllowDecimalCharacter = firstNonNull(options.alwaysAllowDecimalSeparator.value, AutoNumeric.options.alwaysAllowDecimalCharacter.doNotAllow); + } + + if (options.modifyValueOnWheel.changed) { + newOptions.modifyValueOnWheel = firstNonNull(options.modifyValueOnWheel.value, AutoNumeric.options.modifyValueOnWheel.doNothing); + } + + if (options.wheelOn.changed) { + newOptions.wheelOn = firstNonNull(options.wheelOn.value, AutoNumeric.options.wheelOn.focus); + } + + instance.update(newOptions); + } +} + +export function updateValue(element, elementId, value) { + const instance = _instances[elementId]; + + if (instance) { + instance.set(value); + } +} \ No newline at end of file diff --git a/_content/Blazorise/observer.js b/_content/Blazorise/observer.js new file mode 100755 index 00000000..60236d1e --- /dev/null +++ b/_content/Blazorise/observer.js @@ -0,0 +1,54 @@ +///https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver + +const _instances = []; + +///Creates a new observer on a given element, please follow the link below for usage +///https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver/observe +export function createObserver(elementId, callback, configuration) { + const observer = new MutationObserver(callback); + observer.observe(document.getElementById(elementId), configuration); + _instances[elementId] = observer; + return observer; +} + +///Creates a new observer that's setup to listen for attribute changes on a given element. +export function createAttributesObserver(targetNode, callback) { + return createObserver(targetNode, callback, { attributes: true, attributeOldValue: true }); +} + +///Observer helper function, sets an observer callback based on a class name +export function observeClassChanged(mutationsList, className, onChangedCallBack, triggerOnOldValue) { + if (mutationsList && className) { + for (const mutation of mutationsList) { + if (mutation.type === 'attributes' && mutation.attributeName === 'class' && (mutation.target.classList.contains(className)) || (triggerOnOldValue && mutation.oldValue && mutation.oldValue.includes(className))) { + if (typeof (onChangedCallBack) === "function") + onChangedCallBack(); + } + } + } +} + +///Observer helper function, sets an observer callback based on an attribute name +export function observeAttributeChanged(mutationsList, attributeName, onChangedCallBack) { + if (mutationsList && attributeName) { + for (const mutation of mutationsList) { + if (mutation.type === 'attributes' && mutation.attributeName === 'attribute' && mutation.target.classList.contains(attributeName)) { + if (typeof (onChangedCallBack) === "function") + onChangedCallBack(); + } + } + } +} + +///Stops and clean ups the observer +export function destroyObserver(elementId) { + const instances = _instances || {}; + + const instance = instances[elementId]; + + if (instance) { + instance.disconnect(); + + delete instances[elementId]; + } +} \ No newline at end of file diff --git a/_content/Blazorise/table.js b/_content/Blazorise/table.js new file mode 100755 index 00000000..79e16e1d --- /dev/null +++ b/_content/Blazorise/table.js @@ -0,0 +1,225 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +export function initializeTableFixedHeader(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + let resizeTimeout = null + + function resizeThottler() { + if (!resizeTimeout) { + resizeTimeout = setTimeout(function () { + resizeTimeout = null; + resizeHandler(element); + }.bind(this), 66); + } + } + + function resizeHandler(element) { + const thead = element.querySelector("thead:first-child"); + const tableRows = thead.querySelectorAll("tr"); + if (tableRows !== null && tableRows.length > 1) { + let previousRowCellHeight = 0; + for (let i = 0; i < tableRows.length; i++) { + let currentTh = tableRows[i].querySelectorAll("th"); + currentTh.forEach(x => x.style.top = `${previousRowCellHeight}px`); + previousRowCellHeight += currentTh[0].offsetHeight; + } + } + } + + resizeHandler(element); + + window.addEventListener("resize", this.resizeThottler, false); +} + +export function destroyTableFixedHeader(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + if (typeof this.resizeThottler === "function") { + window.removeEventListener("resize", this.resizeThottler); + } + + const thead = element.querySelector("thead:first-child"); + const tableRows = thead.querySelectorAll("tr"); + + if (tableRows !== null && tableRows.length > 1) { + for (let i = 0; i < tableRows.length; i++) { + let currentTh = tableRows[i].querySelectorAll("th"); + currentTh.forEach(x => x.style.top = `${0}px`); + } + } +} + +export function fixedHeaderScrollTableToPixels(element, elementId, pixels) { + if (element && element.parentElement) { + + element.parentElement.scroll({ + top: pixels, + behavior: "smooth" + }); + } +} + +export function fixedHeaderScrollTableToRow(element, elementId, row) { + element = getRequiredElement(element, elementId); + + if (element) { + let rows = element.querySelectorAll("tr"); + let rowsLength = rows.length; + + if (rowsLength > 0 && row >= 0 && row < rowsLength) { + rows[row].scrollIntoView({ + behavior: "smooth", + block: "nearest" + }); + } + } +} + +export function initializeResizable(element, elementId, mode) { + const resizerClass = "b-table-resizer"; + const resizingClass = "b-table-resizing"; + const resizerHeaderMode = 0; + let cols = null; + + element = getRequiredElement(element, elementId); + + if (element) { + const thead = element.querySelector("thead:first-child"); + cols = thead.querySelectorAll('tr:first-child > th'); + } + + if (cols) { + + const calculateTableActualHeight = function () { + let height = 0; + if (element !== null) { + const tableRows = element.querySelectorAll('tr'); + + tableRows.forEach(x => { + let firstCol = x.querySelector('th:first-child,td:first-child'); + if (firstCol !== null) { + height += firstCol.offsetHeight; + } + }); + } + return height; + }; + + const calculateModeHeight = () => { + return mode === resizerHeaderMode + ? element !== null + ? element.querySelector('tr:first-child > th:first-child').offsetHeight + : 0 + : calculateTableActualHeight(); + }; + + let actualHeight = calculateModeHeight(); + + const createResizableColumn = function (col) { + if (col.querySelector(`.${resizerClass}`) !== null) + return; + // Add a resizer element to the column + const resizer = document.createElement('div'); + resizer.classList.add(resizerClass); + + // Set the height + resizer.style.height = `${actualHeight}px`; + + resizer.addEventListener("click", function (e) { + e.preventDefault(); + e.stopPropagation(); + }); + + let mouseDownDate; + let mouseUpDate; + + col.addEventListener('click', function (e) { + let resized = (mouseDownDate !== null && mouseUpDate !== null); + if (resized) { + let currentDate = new Date(); + + // Checks if mouse down was some ms ago, which means click from resizing + let elapsedFromMouseDown = currentDate - mouseDownDate; + let clickFromResize = elapsedFromMouseDown > 100; + + // Checks if mouse up was some ms ago, which either means: + // we clicked from resizing just now or + // did not click from resizing and should handle click normally. + let elapsedFromMouseUp = currentDate - mouseUpDate; + let clickFromResizeJustNow = elapsedFromMouseUp < 100; + + if (resized && clickFromResize && clickFromResizeJustNow) { + e.preventDefault(); + e.stopPropagation(); + } + mouseDownDate = null; + mouseUpDate = null; + } + }); + col.appendChild(resizer); + + // Track the current position of mouse + let x = 0; + let w = 0; + + const mouseDownHandler = function (e) { + mouseDownDate = new Date(); + + // Get the current mouse position + x = e.clientX; + + // Calculate the current width of column + const styles = window.getComputedStyle(col); + w = parseInt(styles.width, 10); + + // Attach listeners for document's events + document.addEventListener('pointermove', mouseMoveHandler); + document.addEventListener('pointerup', mouseUpHandler); + + resizer.classList.add(resizingClass); + }; + + const mouseMoveHandler = function (e) { + // Determine how far the mouse has been moved + const dx = e.clientX - x; + + resizer.style.height = `${calculateTableActualHeight()}px`; + + // Update the width of column + col.style.width = `${w + dx}px`; + }; + + // When user releases the mouse, remove the existing event listeners + const mouseUpHandler = function () { + mouseUpDate = new Date(); + + resizer.classList.remove(resizingClass); + + element.querySelectorAll(`.${resizerClass}`).forEach(x => x.style.height = `${calculateModeHeight()}px`); + + document.removeEventListener('pointermove', mouseMoveHandler); + document.removeEventListener('pointerup', mouseUpHandler); + }; + + resizer.addEventListener('pointerdown', mouseDownHandler); + }; + + + [].forEach.call(cols, function (col) { + createResizableColumn(col); + }); + } +} + +export function destroyResizable(element, elementId) { + if (element !== null) { + element.querySelectorAll('.b-table-resizer').forEach(x => x.remove()); + } +} \ No newline at end of file diff --git a/_content/Blazorise/textEdit.js b/_content/Blazorise/textEdit.js new file mode 100755 index 00000000..b06c23f7 --- /dev/null +++ b/_content/Blazorise/textEdit.js @@ -0,0 +1,52 @@ +import { NumericMaskValidator } from "./validators/NumericMaskValidator.js?v=1.3.1.0"; +import { DateTimeMaskValidator } from "./validators/DateTimeMaskValidator.js?v=1.3.1.0"; +import { RegExMaskValidator } from "./validators/RegExMaskValidator.js?v=1.3.1.0"; +import { NoValidator } from "./validators/NoValidator.js?v=1.3.1.0"; +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +let _instances = []; + +export function initialize(element, elementId, maskType, editMask) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + var instances = _instances = _instances || {}; + + if (maskType === "numeric") { + instances[elementId] = new NumericMaskValidator(null, element, elementId); + } + else if (maskType === "datetime") { + instances[elementId] = new DateTimeMaskValidator(element, elementId); + } + else if (maskType === "regex") { + instances[elementId] = new RegExMaskValidator(element, elementId, editMask); + } + else { + instances[elementId] = new NoValidator(); + } + + element.addEventListener("keypress", (e) => { + keyPress(instances[elementId], e); + }); + + element.addEventListener("paste", (e) => { + paste(instances[elementId], e); + }); +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + delete instances[elementId]; +} + +function keyPress(validator, e) { + var currentValue = String.fromCharCode(e.which); + + return validator.isValid(currentValue) || e.preventDefault(); +} + +function paste(validator, e) { + return validator.isValid(e.clipboardData.getData("text/plain")) || e.preventDefault(); +} \ No newline at end of file diff --git a/_content/Blazorise/theme.js b/_content/Blazorise/theme.js new file mode 100755 index 00000000..ef0c7d07 --- /dev/null +++ b/_content/Blazorise/theme.js @@ -0,0 +1,35 @@ +export function addVariable(name, value) { + const themeVariablesElement = document.getElementById("b-theme-variables"); + + // make sure that themeVariables element exists and that we don't have the variable already defined + if (themeVariablesElement && themeVariablesElement.innerHTML) { + const newVariable = "\n" + name + ": " + value + ";"; + + const variableStartIndex = themeVariablesElement.innerHTML.indexOf(name + ":"); + + if (variableStartIndex >= 0) { + const variableEndIndex = themeVariablesElement.innerHTML.indexOf(";", variableStartIndex); + const existingVariable = themeVariablesElement.innerHTML.substr(variableStartIndex, variableEndIndex); + + const result = themeVariablesElement.innerHTML.replace(existingVariable, newVariable); + + themeVariablesElement.innerHTML = result; + } + else { + const innerHTML = themeVariablesElement.innerHTML; + const position = innerHTML.lastIndexOf(';'); + + if (position >= 0) { + const result = [innerHTML.slice(0, position + 1), newVariable, innerHTML.slice(position + 1)].join(''); + + themeVariablesElement.innerHTML = result; + } + } + + return; + } + + // The fallback mechanism for custom CSS variables where we don't use theme provider + // is to apply them to the body element + document.body.style.setProperty(name, value); +} \ No newline at end of file diff --git a/_content/Blazorise/timePicker.js b/_content/Blazorise/timePicker.js new file mode 100755 index 00000000..d1866b60 --- /dev/null +++ b/_content/Blazorise/timePicker.js @@ -0,0 +1,199 @@ +import "./vendors/flatpickr.js?v=1.3.1.0"; +import * as utilities from "./utilities.js?v=1.3.1.0"; + +const _pickers = []; + +export function initialize(element, elementId, options) { + element = utilities.getRequiredElement(element, elementId); + + if (!element) + return; + + function mutationObserverCallback(mutationsList, observer) { + mutationsList.forEach(mutation => { + if (mutation.attributeName === 'class') { + const picker = _pickers[mutation.target.id]; + + if (picker && picker.altInput) { + const altInputClassListToRemove = [...picker.altInput.classList].filter(cn => !["input", "active"].includes(cn)); + const inputClassListToAdd = [...picker.input.classList].filter(cn => !["flatpickr-input"].includes(cn)); + + altInputClassListToRemove.forEach(name => { + picker.altInput.classList.remove(name); + }); + + inputClassListToAdd.forEach(name => { + picker.altInput.classList.add(name); + }); + } + } + }); + } + + // When flatpickr is defined with altInput=true, it will create a second input + // element while the original input element will be hidden. With MutationObserver + // we can copy classnames from hidden to the visible element. + const mutationObserver = new MutationObserver(mutationObserverCallback); + mutationObserver.observe(document.getElementById(elementId), { attributes: true }); + + const picker = flatpickr(element, { + enableTime: true, + noCalendar: true, + dateFormat: "H:i", + allowInput: true, + altInput: true, + altFormat: options.displayFormat ? options.displayFormat : "H:i", + defaultValue: options.default, + minTime: options.min, + maxTime: options.max, + time_24hr: options.timeAs24hr ? options.timeAs24hr : false, + clickOpens: !(options.readOnly || false), + locale: options.localization || {}, + inline: options.inline || false, + static: options.staticPicker + }); + + if (options) { + picker.altInput.disabled = options.disabled || false; + picker.altInput.readOnly = options.readOnly || false; + picker.altInput.placeholder = options.placeholder; + + picker.altInput.addEventListener("blur", (e) => { + const isInput = e.target === picker._input; + + // Workaround for: onchange does not fire when user writes the time and then click outside of the input area. + if (isInput && picker.isOpen === false) { + picker.input.dispatchEvent(utilities.createEvent("change")); + picker.input.dispatchEvent(utilities.createEvent("input")); + } + }); + } + + _pickers[elementId] = picker; +} + +export function destroy(element, elementId) { + const instances = _pickers || {}; + + const instance = instances[elementId]; + + if (instance) { + instance.destroy(); + } + + delete instances[elementId]; +} + +export function updateValue(element, elementId, value) { + const picker = _pickers[elementId]; + + if (picker) { + picker.setDate(value); + } +} + +export function updateOptions(element, elementId, options) { + const picker = _pickers[elementId]; + + if (picker) { + if (options.displayFormat.changed) { + picker.set("altFormat", options.displayFormat.value); + } + + if (options.timeAs24hr.changed) { + picker.set("time_24hr", options.timeAs24hr.value); + } + + if (options.min.changed) { + picker.set("minTime", options.min.value); + } + + if (options.max.changed) { + picker.set("maxTime", options.max.value); + } + + if (options.disabled.changed) { + picker.altInput.disabled = options.disabled.value; + } + + if (options.readOnly.changed) { + picker.altInput.readOnly = options.readOnly.value; + picker.set("clickOpens", !options.readOnly.value); + } + + if (options.inline.changed) { + picker.set("inline", options.inline.value || false); + } + + if (options.placeholder.changed) { + picker.altInput.placeholder = options.placeholder.value; + } + + if (options.staticPicker.changed) { + picker.set("static", options.staticPicker.value); + } + } +} + +export function open(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.open(); + } +} + +export function close(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.close(); + } +} + +export function toggle(element, elementId) { + const picker = _pickers[elementId]; + + if (picker) { + picker.toggle(); + } +} + + +export function updateLocalization(element, elementId, localization) { + const picker = _pickers[elementId]; + + if (picker) { + picker.config.locale = localization; + + if (picker.l10n) { + picker.l10n.amPM = localization.amPM; + } + + if (picker.amPM) { + const selectedDate = picker.selectedDates && picker.selectedDates.length > 0 ? picker.selectedDates[0] : null; + const index = selectedDate && selectedDate.getHours() >= 12 ? 1 : 0; + + picker.amPM.innerHtml = localization.amPM[index]; + picker.amPM.innerText = localization.amPM[index]; + } + + picker.redraw(); + } +} + +export function focus(element, elementId, scrollToElement) { + const picker = _pickers[elementId]; + + if (picker && picker.altInput) { + utilities.focus(picker.altInput, null, scrollToElement); + } +} + +export function select(element, elementId, focus) { + const picker = _pickers[elementId]; + + if (picker && picker.altInput) { + utilities.select(picker.altInput, null, focus); + } +} \ No newline at end of file diff --git a/_content/Blazorise/tooltip.js b/_content/Blazorise/tooltip.js new file mode 100755 index 00000000..9f22816c --- /dev/null +++ b/_content/Blazorise/tooltip.js @@ -0,0 +1,90 @@ +import { getRequiredElement } from "./utilities.js?v=1.3.1.0"; + +!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) { function t(e) { return { width: (e = e.getBoundingClientRect()).width, height: e.height, top: e.top, right: e.right, bottom: e.bottom, left: e.left, x: e.left, y: e.top } } function n(e) { return null == e ? window : "[object Window]" !== e.toString() ? (e = e.ownerDocument) && e.defaultView || window : e } function o(e) { return { scrollLeft: (e = n(e)).pageXOffset, scrollTop: e.pageYOffset } } function r(e) { return e instanceof n(e).Element || e instanceof Element } function i(e) { return e instanceof n(e).HTMLElement || e instanceof HTMLElement } function a(e) { return "undefined" != typeof ShadowRoot && (e instanceof n(e).ShadowRoot || e instanceof ShadowRoot) } function s(e) { return e ? (e.nodeName || "").toLowerCase() : null } function f(e) { return ((r(e) ? e.ownerDocument : e.document) || window.document).documentElement } function p(e) { return t(f(e)).left + o(e).scrollLeft } function c(e) { return n(e).getComputedStyle(e) } function l(e) { return e = c(e), /auto|scroll|overlay|hidden/.test(e.overflow + e.overflowY + e.overflowX) } function u(e, r, a) { void 0 === a && (a = !1); var c = f(r); e = t(e); var u = i(r), d = { scrollLeft: 0, scrollTop: 0 }, m = { x: 0, y: 0 }; return (u || !u && !a) && (("body" !== s(r) || l(c)) && (d = r !== n(r) && i(r) ? { scrollLeft: r.scrollLeft, scrollTop: r.scrollTop } : o(r)), i(r) ? ((m = t(r)).x += r.clientLeft, m.y += r.clientTop) : c && (m.x = p(c))), { x: e.left + d.scrollLeft - m.x, y: e.top + d.scrollTop - m.y, width: e.width, height: e.height } } function d(e) { var n = t(e), o = e.offsetWidth, r = e.offsetHeight; return 1 >= Math.abs(n.width - o) && (o = n.width), 1 >= Math.abs(n.height - r) && (r = n.height), { x: e.offsetLeft, y: e.offsetTop, width: o, height: r } } function m(e) { return "html" === s(e) ? e : e.assignedSlot || e.parentNode || (a(e) ? e.host : null) || f(e) } function h(e) { return 0 <= ["html", "body", "#document"].indexOf(s(e)) ? e.ownerDocument.body : i(e) && l(e) ? e : h(m(e)) } function v(e, t) { var o; void 0 === t && (t = []); var r = h(e); return e = r === (null == (o = e.ownerDocument) ? void 0 : o.body), o = n(r), r = e ? [o].concat(o.visualViewport || [], l(r) ? r : []) : r, t = t.concat(r), e ? t : t.concat(v(m(r))) } function g(e) { return i(e) && "fixed" !== c(e).position ? e.offsetParent : null } function y(e) { for (var t = n(e), o = g(e); o && 0 <= ["table", "td", "th"].indexOf(s(o)) && "static" === c(o).position;)o = g(o); if (o && ("html" === s(o) || "body" === s(o) && "static" === c(o).position)) return t; if (!o) e: { for (o = -1 !== navigator.userAgent.toLowerCase().indexOf("firefox"), e = m(e); i(e) && 0 > ["html", "body"].indexOf(s(e));) { var r = c(e); if ("none" !== r.transform || "none" !== r.perspective || "paint" === r.contain || -1 !== ["transform", "perspective"].indexOf(r.willChange) || o && "filter" === r.willChange || o && r.filter && "none" !== r.filter) { o = e; break e } e = e.parentNode } o = null } return o || t } function b(e) { function t(e) { o.add(e.name), [].concat(e.requires || [], e.requiresIfExists || []).forEach((function (e) { o.has(e) || (e = n.get(e)) && t(e) })), r.push(e) } var n = new Map, o = new Set, r = []; return e.forEach((function (e) { n.set(e.name, e) })), e.forEach((function (e) { o.has(e.name) || t(e) })), r } function w(e) { var t; return function () { return t || (t = new Promise((function (n) { Promise.resolve().then((function () { t = void 0, n(e()) })) }))), t } } function x(e) { return e.split("-")[0] } function O(e, t) { var n = t.getRootNode && t.getRootNode(); if (e.contains(t)) return !0; if (n && a(n)) do { if (t && e.isSameNode(t)) return !0; t = t.parentNode || t.host } while (t); return !1 } function j(e) { return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }) } function E(e, r) { if ("viewport" === r) { r = n(e); var a = f(e); r = r.visualViewport; var s = a.clientWidth; a = a.clientHeight; var l = 0, u = 0; r && (s = r.width, a = r.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (l = r.offsetLeft, u = r.offsetTop)), e = j(e = { width: s, height: a, x: l + p(e), y: u }) } else i(r) ? ((e = t(r)).top += r.clientTop, e.left += r.clientLeft, e.bottom = e.top + r.clientHeight, e.right = e.left + r.clientWidth, e.width = r.clientWidth, e.height = r.clientHeight, e.x = e.left, e.y = e.top) : (u = f(e), e = f(u), s = o(u), r = null == (a = u.ownerDocument) ? void 0 : a.body, a = _(e.scrollWidth, e.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), l = _(e.scrollHeight, e.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), u = -s.scrollLeft + p(u), s = -s.scrollTop, "rtl" === c(r || e).direction && (u += _(e.clientWidth, r ? r.clientWidth : 0) - a), e = j({ width: a, height: l, x: u, y: s })); return e } function D(e, t, n) { return t = "clippingParents" === t ? function (e) { var t = v(m(e)), n = 0 <= ["absolute", "fixed"].indexOf(c(e).position) && i(e) ? y(e) : e; return r(n) ? t.filter((function (e) { return r(e) && O(e, n) && "body" !== s(e) })) : [] }(e) : [].concat(t), (n = (n = [].concat(t, [n])).reduce((function (t, n) { return n = E(e, n), t.top = _(n.top, t.top), t.right = U(n.right, t.right), t.bottom = U(n.bottom, t.bottom), t.left = _(n.left, t.left), t }), E(e, n[0]))).width = n.right - n.left, n.height = n.bottom - n.top, n.x = n.left, n.y = n.top, n } function L(e) { return 0 <= ["top", "bottom"].indexOf(e) ? "x" : "y" } function P(e) { var t = e.reference, n = e.element, o = (e = e.placement) ? x(e) : null; e = e ? e.split("-")[1] : null; var r = t.x + t.width / 2 - n.width / 2, i = t.y + t.height / 2 - n.height / 2; switch (o) { case "top": r = { x: r, y: t.y - n.height }; break; case "bottom": r = { x: r, y: t.y + t.height }; break; case "right": r = { x: t.x + t.width, y: i }; break; case "left": r = { x: t.x - n.width, y: i }; break; default: r = { x: t.x, y: t.y } }if (null != (o = o ? L(o) : null)) switch (i = "y" === o ? "height" : "width", e) { case "start": r[o] -= t[i] / 2 - n[i] / 2; break; case "end": r[o] += t[i] / 2 - n[i] / 2 }return r } function M(e) { return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e) } function k(e, t) { return t.reduce((function (t, n) { return t[n] = e, t }), {}) } function W(e, n) { void 0 === n && (n = {}); var o = n; n = void 0 === (n = o.placement) ? e.placement : n; var i = o.boundary, a = void 0 === i ? "clippingParents" : i, s = void 0 === (i = o.rootBoundary) ? "viewport" : i; i = void 0 === (i = o.elementContext) ? "popper" : i; var p = o.altBoundary, c = void 0 !== p && p; o = M("number" != typeof (o = void 0 === (o = o.padding) ? 0 : o) ? o : k(o, C)); var l = e.elements.reference; p = e.rects.popper, a = D(r(c = e.elements[c ? "popper" === i ? "reference" : "popper" : i]) ? c : c.contextElement || f(e.elements.popper), a, s), c = P({ reference: s = t(l), element: p, strategy: "absolute", placement: n }), p = j(Object.assign({}, p, c)), s = "popper" === i ? p : s; var u = { top: a.top - s.top + o.top, bottom: s.bottom - a.bottom + o.bottom, left: a.left - s.left + o.left, right: s.right - a.right + o.right }; if (e = e.modifiersData.offset, "popper" === i && e) { var d = e[n]; Object.keys(u).forEach((function (e) { var t = 0 <= ["right", "bottom"].indexOf(e) ? 1 : -1, n = 0 <= ["top", "bottom"].indexOf(e) ? "y" : "x"; u[e] += d[n] * t })) } return u } function A() { for (var e = arguments.length, t = Array(e), n = 0; n < e; n++)t[n] = arguments[n]; return !t.some((function (e) { return !(e && "function" == typeof e.getBoundingClientRect) })) } function B(e) { void 0 === e && (e = {}); var t = e.defaultModifiers, n = void 0 === t ? [] : t, o = void 0 === (e = e.defaultOptions) ? F : e; return function (e, t, i) { function a() { f.forEach((function (e) { return e() })), f = [] } void 0 === i && (i = o); var s = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, F, o), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} }, f = [], p = !1, c = { state: s, setOptions: function (i) { return a(), s.options = Object.assign({}, o, s.options, i), s.scrollParents = { reference: r(e) ? v(e) : e.contextElement ? v(e.contextElement) : [], popper: v(t) }, i = function (e) { var t = b(e); return I.reduce((function (e, n) { return e.concat(t.filter((function (e) { return e.phase === n }))) }), []) }(function (e) { var t = e.reduce((function (e, t) { var n = e[t.name]; return e[t.name] = n ? Object.assign({}, n, t, { options: Object.assign({}, n.options, t.options), data: Object.assign({}, n.data, t.data) }) : t, e }), {}); return Object.keys(t).map((function (e) { return t[e] })) }([].concat(n, s.options.modifiers))), s.orderedModifiers = i.filter((function (e) { return e.enabled })), s.orderedModifiers.forEach((function (e) { var t = e.name, n = e.options; n = void 0 === n ? {} : n, "function" == typeof (e = e.effect) && (t = e({ state: s, name: t, instance: c, options: n }), f.push(t || function () { })) })), c.update() }, forceUpdate: function () { if (!p) { var e = s.elements, t = e.reference; if (A(t, e = e.popper)) for (s.rects = { reference: u(t, y(e), "fixed" === s.options.strategy), popper: d(e) }, s.reset = !1, s.placement = s.options.placement, s.orderedModifiers.forEach((function (e) { return s.modifiersData[e.name] = Object.assign({}, e.data) })), t = 0; t < s.orderedModifiers.length; t++)if (!0 === s.reset) s.reset = !1, t = -1; else { var n = s.orderedModifiers[t]; e = n.fn; var o = n.options; o = void 0 === o ? {} : o, n = n.name, "function" == typeof e && (s = e({ state: s, options: o, name: n, instance: c }) || s) } } }, update: w((function () { return new Promise((function (e) { c.forceUpdate(), e(s) })) })), destroy: function () { a(), p = !0 } }; return A(e, t) ? (c.setOptions(i).then((function (e) { !p && i.onFirstUpdate && i.onFirstUpdate(e) })), c) : c } } function T(e) { var t, o = e.popper, r = e.popperRect, i = e.placement, a = e.offsets, s = e.position, p = e.gpuAcceleration, l = e.adaptive; if (!0 === (e = e.roundOffsets)) { e = a.y; var u = window.devicePixelRatio || 1; e = { x: z(z(a.x * u) / u) || 0, y: z(z(e * u) / u) || 0 } } else e = "function" == typeof e ? e(a) : a; e = void 0 === (e = (u = e).x) ? 0 : e, u = void 0 === (u = u.y) ? 0 : u; var d = a.hasOwnProperty("x"); a = a.hasOwnProperty("y"); var m, h = "left", v = "top", g = window; if (l) { var b = y(o), w = "clientHeight", x = "clientWidth"; b === n(o) && ("static" !== c(b = f(o)).position && (w = "scrollHeight", x = "scrollWidth")), "top" === i && (v = "bottom", u -= b[w] - r.height, u *= p ? 1 : -1), "left" === i && (h = "right", e -= b[x] - r.width, e *= p ? 1 : -1) } return o = Object.assign({ position: s }, l && J), p ? Object.assign({}, o, ((m = {})[v] = a ? "0" : "", m[h] = d ? "0" : "", m.transform = 2 > (g.devicePixelRatio || 1) ? "translate(" + e + "px, " + u + "px)" : "translate3d(" + e + "px, " + u + "px, 0)", m)) : Object.assign({}, o, ((t = {})[v] = a ? u + "px" : "", t[h] = d ? e + "px" : "", t.transform = "", t)) } function H(e) { return e.replace(/left|right|bottom|top/g, (function (e) { return $[e] })) } function R(e) { return e.replace(/start|end/g, (function (e) { return ee[e] })) } function S(e, t, n) { return void 0 === n && (n = { x: 0, y: 0 }), { top: e.top - t.height - n.y, right: e.right - t.width + n.x, bottom: e.bottom - t.height + n.y, left: e.left - t.width - n.x } } function q(e) { return ["top", "right", "bottom", "left"].some((function (t) { return 0 <= e[t] })) } var C = ["top", "bottom", "right", "left"], N = C.reduce((function (e, t) { return e.concat([t + "-start", t + "-end"]) }), []), V = [].concat(C, ["auto"]).reduce((function (e, t) { return e.concat([t, t + "-start", t + "-end"]) }), []), I = "beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "), _ = Math.max, U = Math.min, z = Math.round, F = { placement: "bottom", modifiers: [], strategy: "absolute" }, X = { passive: !0 }, Y = { name: "eventListeners", enabled: !0, phase: "write", fn: function () { }, effect: function (e) { var t = e.state, o = e.instance, r = (e = e.options).scroll, i = void 0 === r || r, a = void 0 === (e = e.resize) || e, s = n(t.elements.popper), f = [].concat(t.scrollParents.reference, t.scrollParents.popper); return i && f.forEach((function (e) { e.addEventListener("scroll", o.update, X) })), a && s.addEventListener("resize", o.update, X), function () { i && f.forEach((function (e) { e.removeEventListener("scroll", o.update, X) })), a && s.removeEventListener("resize", o.update, X) } }, data: {} }, G = { name: "popperOffsets", enabled: !0, phase: "read", fn: function (e) { var t = e.state; t.modifiersData[e.name] = P({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement }) }, data: {} }, J = { top: "auto", right: "auto", bottom: "auto", left: "auto" }, K = { name: "computeStyles", enabled: !0, phase: "beforeWrite", fn: function (e) { var t = e.state, n = e.options; e = void 0 === (e = n.gpuAcceleration) || e; var o = n.adaptive; o = void 0 === o || o, n = void 0 === (n = n.roundOffsets) || n, e = { placement: x(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: e }, null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign({}, t.styles.popper, T(Object.assign({}, e, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: o, roundOffsets: n })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, T(Object.assign({}, e, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, roundOffsets: n })))), t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }) }, data: {} }, Q = { name: "applyStyles", enabled: !0, phase: "write", fn: function (e) { var t = e.state; Object.keys(t.elements).forEach((function (e) { var n = t.styles[e] || {}, o = t.attributes[e] || {}, r = t.elements[e]; i(r) && s(r) && (Object.assign(r.style, n), Object.keys(o).forEach((function (e) { var t = o[e]; !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t) }))) })) }, effect: function (e) { var t = e.state, n = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; return Object.assign(t.elements.popper.style, n.popper), t.styles = n, t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow), function () { Object.keys(t.elements).forEach((function (e) { var o = t.elements[e], r = t.attributes[e] || {}; e = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce((function (e, t) { return e[t] = "", e }), {}), i(o) && s(o) && (Object.assign(o.style, e), Object.keys(r).forEach((function (e) { o.removeAttribute(e) }))) })) } }, requires: ["computeStyles"] }, Z = { name: "offset", enabled: !0, phase: "main", requires: ["popperOffsets"], fn: function (e) { var t = e.state, n = e.name, o = void 0 === (e = e.options.offset) ? [0, 0] : e, r = (e = V.reduce((function (e, n) { var r = t.rects, i = x(n), a = 0 <= ["left", "top"].indexOf(i) ? -1 : 1, s = "function" == typeof o ? o(Object.assign({}, r, { placement: n })) : o; return r = (r = s[0]) || 0, s = ((s = s[1]) || 0) * a, i = 0 <= ["left", "right"].indexOf(i) ? { x: s, y: r } : { x: r, y: s }, e[n] = i, e }), {}))[t.placement], i = r.x; r = r.y, null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += i, t.modifiersData.popperOffsets.y += r), t.modifiersData[n] = e } }, $ = { left: "right", right: "left", bottom: "top", top: "bottom" }, ee = { start: "end", end: "start" }, te = { name: "flip", enabled: !0, phase: "main", fn: function (e) { var t = e.state, n = e.options; if (e = e.name, !t.modifiersData[e]._skip) { var o = n.mainAxis; o = void 0 === o || o; var r = n.altAxis; r = void 0 === r || r; var i = n.fallbackPlacements, a = n.padding, s = n.boundary, f = n.rootBoundary, p = n.altBoundary, c = n.flipVariations, l = void 0 === c || c, u = n.allowedAutoPlacements; c = x(n = t.options.placement), i = i || (c !== n && l ? function (e) { if ("auto" === x(e)) return []; var t = H(e); return [R(e), t, R(t)] }(n) : [H(n)]); var d = [n].concat(i).reduce((function (e, n) { return e.concat("auto" === x(n) ? function (e, t) { void 0 === t && (t = {}); var n = t.boundary, o = t.rootBoundary, r = t.padding, i = t.flipVariations, a = t.allowedAutoPlacements, s = void 0 === a ? V : a, f = t.placement.split("-")[1]; 0 === (i = (t = f ? i ? N : N.filter((function (e) { return e.split("-")[1] === f })) : C).filter((function (e) { return 0 <= s.indexOf(e) }))).length && (i = t); var p = i.reduce((function (t, i) { return t[i] = W(e, { placement: i, boundary: n, rootBoundary: o, padding: r })[x(i)], t }), {}); return Object.keys(p).sort((function (e, t) { return p[e] - p[t] })) }(t, { placement: n, boundary: s, rootBoundary: f, padding: a, flipVariations: l, allowedAutoPlacements: u }) : n) }), []); n = t.rects.reference, i = t.rects.popper; var m = new Map; c = !0; for (var h = d[0], v = 0; v < d.length; v++) { var g = d[v], y = x(g), b = "start" === g.split("-")[1], w = 0 <= ["top", "bottom"].indexOf(y), O = w ? "width" : "height", j = W(t, { placement: g, boundary: s, rootBoundary: f, altBoundary: p, padding: a }); if (b = w ? b ? "right" : "left" : b ? "bottom" : "top", n[O] > i[O] && (b = H(b)), O = H(b), w = [], o && w.push(0 >= j[y]), r && w.push(0 >= j[b], 0 >= j[O]), w.every((function (e) { return e }))) { h = g, c = !1; break } m.set(g, w) } if (c) for (o = function (e) { var t = d.find((function (t) { if (t = m.get(t)) return t.slice(0, e).every((function (e) { return e })) })); if (t) return h = t, "break" }, r = l ? 3 : 1; 0 < r && "break" !== o(r); r--); t.placement !== h && (t.modifiersData[e]._skip = !0, t.placement = h, t.reset = !0) } }, requiresIfExists: ["offset"], data: { _skip: !1 } }, ne = { name: "preventOverflow", enabled: !0, phase: "main", fn: function (e) { var t = e.state, n = e.options; e = e.name; var o = n.mainAxis, r = void 0 === o || o, i = void 0 !== (o = n.altAxis) && o; o = void 0 === (o = n.tether) || o; var a = n.tetherOffset, s = void 0 === a ? 0 : a, f = W(t, { boundary: n.boundary, rootBoundary: n.rootBoundary, padding: n.padding, altBoundary: n.altBoundary }); n = x(t.placement); var p = t.placement.split("-")[1], c = !p, l = L(n); n = "x" === l ? "y" : "x", a = t.modifiersData.popperOffsets; var u = t.rects.reference, m = t.rects.popper, h = "function" == typeof s ? s(Object.assign({}, t.rects, { placement: t.placement })) : s; if (s = { x: 0, y: 0 }, a) { if (r || i) { var v = "y" === l ? "top" : "left", g = "y" === l ? "bottom" : "right", b = "y" === l ? "height" : "width", w = a[l], O = a[l] + f[v], j = a[l] - f[g], E = o ? -m[b] / 2 : 0, D = "start" === p ? u[b] : m[b]; p = "start" === p ? -m[b] : -u[b], m = t.elements.arrow, m = o && m ? d(m) : { width: 0, height: 0 }; var P = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 }; v = P[v], g = P[g], m = _(0, U(u[b], m[b])), D = c ? u[b] / 2 - E - m - v - h : D - m - v - h, u = c ? -u[b] / 2 + E + m + g + h : p + m + g + h, c = t.elements.arrow && y(t.elements.arrow), h = t.modifiersData.offset ? t.modifiersData.offset[t.placement][l] : 0, c = a[l] + D - h - (c ? "y" === l ? c.clientTop || 0 : c.clientLeft || 0 : 0), u = a[l] + u - h, r && (r = o ? U(O, c) : O, j = o ? _(j, u) : j, r = _(r, U(w, j)), a[l] = r, s[l] = r - w), i && (r = (i = a[n]) + f["x" === l ? "top" : "left"], f = i - f["x" === l ? "bottom" : "right"], r = o ? U(r, c) : r, o = o ? _(f, u) : f, o = _(r, U(i, o)), a[n] = o, s[n] = o - i) } t.modifiersData[e] = s } }, requiresIfExists: ["offset"] }, oe = { name: "arrow", enabled: !0, phase: "main", fn: function (e) { var t, n = e.state, o = e.name, r = e.options, i = n.elements.arrow, a = n.modifiersData.popperOffsets, s = x(n.placement); if (e = L(s), s = 0 <= ["left", "right"].indexOf(s) ? "height" : "width", i && a) { r = M("number" != typeof (r = "function" == typeof (r = r.padding) ? r(Object.assign({}, n.rects, { placement: n.placement })) : r) ? r : k(r, C)); var f = d(i), p = "y" === e ? "top" : "left", c = "y" === e ? "bottom" : "right", l = n.rects.reference[s] + n.rects.reference[e] - a[e] - n.rects.popper[s]; a = a[e] - n.rects.reference[e], a = (i = (i = y(i)) ? "y" === e ? i.clientHeight || 0 : i.clientWidth || 0 : 0) / 2 - f[s] / 2 + (l / 2 - a / 2), s = _(r[p], U(a, i - f[s] - r[c])), n.modifiersData[o] = ((t = {})[e] = s, t.centerOffset = s - a, t) } }, effect: function (e) { var t = e.state; if (null != (e = void 0 === (e = e.options.element) ? "[data-popper-arrow]" : e)) { if ("string" == typeof e && !(e = t.elements.popper.querySelector(e))) return; O(t.elements.popper, e) && (t.elements.arrow = e) } }, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }, re = { name: "hide", enabled: !0, phase: "main", requiresIfExists: ["preventOverflow"], fn: function (e) { var t = e.state; e = e.name; var n = t.rects.reference, o = t.rects.popper, r = t.modifiersData.preventOverflow, i = W(t, { elementContext: "reference" }), a = W(t, { altBoundary: !0 }); n = S(i, n), o = S(a, o, r), r = q(n), a = q(o), t.modifiersData[e] = { referenceClippingOffsets: n, popperEscapeOffsets: o, isReferenceHidden: r, hasPopperEscaped: a }, t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-reference-hidden": r, "data-popper-escaped": a }) } }, ie = B({ defaultModifiers: [Y, G, K, Q] }), ae = [Y, G, K, Q, Z, te, ne, oe, re], se = B({ defaultModifiers: ae }); e.applyStyles = Q, e.arrow = oe, e.computeStyles = K, e.createPopper = se, e.createPopperLite = ie, e.defaultModifiers = ae, e.detectOverflow = W, e.eventListeners = Y, e.flip = te, e.hide = re, e.offset = Z, e.popperGenerator = B, e.popperOffsets = G, e.preventOverflow = ne, Object.defineProperty(e, "__esModule", { value: !0 }) })); +!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("@popperjs/core")) : "function" == typeof define && define.amd ? define(["@popperjs/core"], e) : (t = t || self).tippy = e(t.Popper) }(this, (function (t) { "use strict"; var e = "undefined" != typeof window && "undefined" != typeof document, n = e ? navigator.userAgent : "", r = /MSIE |Trident\//.test(n), i = { passive: !0, capture: !0 }; function o(t, e, n) { if (Array.isArray(t)) { var r = t[e]; return null == r ? Array.isArray(n) ? n[e] : n : r } return t } function a(t, e) { var n = {}.toString.call(t); return 0 === n.indexOf("[object") && n.indexOf(e + "]") > -1 } function s(t, e) { return "function" == typeof t ? t.apply(void 0, e) : t } function p(t, e) { return 0 === e ? t : function (r) { clearTimeout(n), n = setTimeout((function () { t(r) }), e) }; var n } function u(t, e) { var n = Object.assign({}, t); return e.forEach((function (t) { delete n[t] })), n } function c(t) { return [].concat(t) } function f(t, e) { -1 === t.indexOf(e) && t.push(e) } function l(t) { return t.split("-")[0] } function d(t) { return [].slice.call(t) } function v() { return document.createElement("div") } function m(t) { return ["Element", "Fragment"].some((function (e) { return a(t, e) })) } function g(t) { return a(t, "MouseEvent") } function h(t) { return !(!t || !t._tippy || t._tippy.reference !== t) } function b(t) { return m(t) ? [t] : function (t) { return a(t, "NodeList") }(t) ? d(t) : Array.isArray(t) ? t : d(document.querySelectorAll(t)) } function y(t, e) { t.forEach((function (t) { t && (t.style.transitionDuration = e + "ms") })) } function w(t, e) { t.forEach((function (t) { t && t.setAttribute("data-state", e) })) } function x(t) { var e, n = c(t)[0]; return (null == n || null == (e = n.ownerDocument) ? void 0 : e.body) ? n.ownerDocument : document } function E(t, e, n) { var r = e + "EventListener";["transitionend", "webkitTransitionEnd"].forEach((function (e) { t[r](e, n) })) } var O = { isTouch: !1 }, C = 0; function T() { O.isTouch || (O.isTouch = !0, window.performance && document.addEventListener("mousemove", A)) } function A() { var t = performance.now(); t - C < 20 && (O.isTouch = !1, document.removeEventListener("mousemove", A)), C = t } function L() { var t = document.activeElement; if (h(t)) { var e = t._tippy; t.blur && !e.state.isVisible && t.blur() } } var D = Object.assign({ appendTo: function () { return document.body }, 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(D); function R(t) { var e = (t.plugins || []).reduce((function (e, n) { var r = n.name, i = n.defaultValue; return r && (e[r] = void 0 !== t[r] ? t[r] : i), e }), {}); return Object.assign({}, t, {}, e) } function j(t, e) { var n = Object.assign({}, e, { content: s(e.content, [t]) }, e.ignoreAttributes ? {} : function (t, e) { return (e ? Object.keys(R(Object.assign({}, D, { plugins: e }))) : k).reduce((function (e, n) { var r = (t.getAttribute("data-tippy-" + n) || "").trim(); if (!r) return e; if ("content" === n) e[n] = r; else try { e[n] = JSON.parse(r) } catch (t) { e[n] = r } return e }), {}) }(t, e.plugins)); return n.aria = Object.assign({}, D.aria, {}, n.aria), n.aria = { expanded: "auto" === n.aria.expanded ? e.interactive : n.aria.expanded, content: "auto" === n.aria.content ? e.interactive ? null : "describedby" : n.aria.content }, n } function M(t, e) { t.innerHTML = e } function P(t) { var e = v(); return !0 === t ? e.className = "tippy-arrow" : (e.className = "tippy-svg-arrow", m(t) ? e.appendChild(t) : M(e, t)), e } function V(t, e) { m(e.content) ? (M(t, ""), t.appendChild(e.content)) : "function" != typeof e.content && (e.allowHTML ? M(t, e.content) : t.textContent = e.content) } function I(t) { var e = t.firstElementChild, n = d(e.children); return { box: e, content: n.find((function (t) { return t.classList.contains("tippy-content") })), arrow: n.find((function (t) { return t.classList.contains("tippy-arrow") || t.classList.contains("tippy-svg-arrow") })), backdrop: n.find((function (t) { return t.classList.contains("tippy-backdrop") })) } } function S(t) { var e = v(), n = v(); n.className = "tippy-box", n.setAttribute("data-state", "hidden"), n.setAttribute("tabindex", "-1"); var r = v(); function i(n, r) { var i = I(e), o = i.box, a = i.content, s = i.arrow; r.theme ? o.setAttribute("data-theme", r.theme) : o.removeAttribute("data-theme"), "string" == typeof r.animation ? o.setAttribute("data-animation", r.animation) : o.removeAttribute("data-animation"), r.inertia ? o.setAttribute("data-inertia", "") : o.removeAttribute("data-inertia"), o.style.maxWidth = "number" == typeof r.maxWidth ? r.maxWidth + "px" : r.maxWidth, r.role ? o.setAttribute("role", r.role) : o.removeAttribute("role"), n.content === r.content && n.allowHTML === r.allowHTML || V(a, t.props), r.arrow ? s ? n.arrow !== r.arrow && (o.removeChild(s), o.appendChild(P(r.arrow))) : o.appendChild(P(r.arrow)) : s && o.removeChild(s) } return r.className = "tippy-content", r.setAttribute("data-state", "hidden"), V(r, t.props), e.appendChild(n), n.appendChild(r), i(t.props, t.props), { popper: e, onUpdate: i } } S.$$tippy = !0; var B = 1, H = [], N = []; function U(e, n) { var a, u, m, h, b, C, T, A, L, k = j(e, Object.assign({}, D, {}, R((a = n, Object.keys(a).reduce((function (t, e) { return void 0 !== a[e] && (t[e] = a[e]), t }), {}))))), M = !1, P = !1, V = !1, S = !1, U = [], _ = p(bt, k.interactiveDebounce), z = B++, F = (L = k.plugins).filter((function (t, e) { return L.indexOf(t) === e })), W = { id: z, reference: e, popper: v(), popperInstance: null, props: k, state: { isEnabled: !0, isVisible: !1, isDestroyed: !1, isMounted: !1, isShown: !1 }, plugins: F, clearDelayTimeouts: function () { clearTimeout(u), clearTimeout(m), cancelAnimationFrame(h) }, setProps: function (t) { if (W.state.isDestroyed) return; it("onBeforeUpdate", [W, t]), gt(); var n = W.props, r = j(e, Object.assign({}, W.props, {}, t, { ignoreAttributes: !0 })); W.props = r, mt(), n.interactiveDebounce !== r.interactiveDebounce && (st(), _ = p(bt, r.interactiveDebounce)); n.triggerTarget && !r.triggerTarget ? c(n.triggerTarget).forEach((function (t) { t.removeAttribute("aria-expanded") })) : r.triggerTarget && e.removeAttribute("aria-expanded"); at(), rt(), q && q(n, r); W.popperInstance && (Et(), Ct().forEach((function (t) { requestAnimationFrame(t._tippy.popperInstance.forceUpdate) }))); it("onAfterUpdate", [W, t]) }, setContent: function (t) { W.setProps({ content: t }) }, show: function () { var t = W.state.isVisible, e = W.state.isDestroyed, n = !W.state.isEnabled, r = O.isTouch && !W.props.touch, i = o(W.props.duration, 0, D.duration); if (t || e || n || r) return; if (Z().hasAttribute("disabled")) return; if (it("onShow", [W], !1), !1 === W.props.onShow(W)) return; W.state.isVisible = !0, Q() && (Y.style.visibility = "visible"); rt(), ft(), W.state.isMounted || (Y.style.transition = "none"); if (Q()) { var a = et(), p = a.box, u = a.content; y([p, u], 0) } T = function () { var t; if (W.state.isVisible && !S) { if (S = !0, Y.offsetHeight, Y.style.transition = W.props.moveTransition, Q() && W.props.animation) { var e = et(), n = e.box, r = e.content; y([n, r], i), w([n, r], "visible") } ot(), at(), f(N, W), null == (t = W.popperInstance) || t.forceUpdate(), W.state.isMounted = !0, it("onMount", [W]), W.props.animation && Q() && function (t, e) { dt(t, e) }(i, (function () { W.state.isShown = !0, it("onShown", [W]) })) } }, function () { var t, e = W.props.appendTo, n = Z(); t = W.props.interactive && e === D.appendTo || "parent" === e ? n.parentNode : s(e, [n]); t.contains(Y) || t.appendChild(Y); Et() }() }, hide: function () { var t = !W.state.isVisible, e = W.state.isDestroyed, n = !W.state.isEnabled, r = o(W.props.duration, 1, D.duration); if (t || e || n) return; if (it("onHide", [W], !1), !1 === W.props.onHide(W)) return; W.state.isVisible = !1, W.state.isShown = !1, S = !1, M = !1, Q() && (Y.style.visibility = "hidden"); if (st(), lt(), rt(), Q()) { var i = et(), a = i.box, s = i.content; W.props.animation && (y([a, s], r), w([a, s], "hidden")) } ot(), at(), W.props.animation ? Q() && function (t, e) { dt(t, (function () { !W.state.isVisible && Y.parentNode && Y.parentNode.contains(Y) && e() })) }(r, W.unmount) : W.unmount() }, hideWithInteractivity: function (t) { tt().addEventListener("mousemove", _), f(H, _), _(t) }, enable: function () { W.state.isEnabled = !0 }, disable: function () { W.hide(), W.state.isEnabled = !1 }, unmount: function () { W.state.isVisible && W.hide(); if (!W.state.isMounted) return; Ot(), Ct().forEach((function (t) { t._tippy.unmount() })), Y.parentNode && Y.parentNode.removeChild(Y); N = N.filter((function (t) { return t !== W })), W.state.isMounted = !1, it("onHidden", [W]) }, destroy: function () { if (W.state.isDestroyed) return; W.clearDelayTimeouts(), W.unmount(), gt(), delete e._tippy, W.state.isDestroyed = !0, it("onDestroy", [W]) } }; if (!k.render) return W; var X = k.render(W), Y = X.popper, q = X.onUpdate; Y.setAttribute("data-tippy-root", ""), Y.id = "tippy-" + W.id, W.popper = Y, e._tippy = W, Y._tippy = W; var $ = F.map((function (t) { return t.fn(W) })), J = e.hasAttribute("aria-expanded"); return mt(), at(), rt(), it("onCreate", [W]), k.showOnCreate && Tt(), Y.addEventListener("mouseenter", (function () { W.props.interactive && W.state.isVisible && W.clearDelayTimeouts() })), Y.addEventListener("mouseleave", (function (t) { W.props.interactive && W.props.trigger.indexOf("mouseenter") >= 0 && (tt().addEventListener("mousemove", _), _(t)) })), W; function G() { var t = W.props.touch; return Array.isArray(t) ? t : [t, 0] } function K() { return "hold" === G()[0] } function Q() { var t; return !!(null == (t = W.props.render) ? void 0 : t.$$tippy) } function Z() { return A || e } function tt() { var t = Z().parentNode; return t ? x(t) : document } function et() { return I(Y) } function nt(t) { return W.state.isMounted && !W.state.isVisible || O.isTouch || b && "focus" === b.type ? 0 : o(W.props.delay, t ? 0 : 1, D.delay) } function rt() { Y.style.pointerEvents = W.props.interactive && W.state.isVisible ? "" : "none", Y.style.zIndex = "" + W.props.zIndex } function it(t, e, n) { var r; (void 0 === n && (n = !0), $.forEach((function (n) { n[t] && n[t].apply(void 0, e) })), n) && (r = W.props)[t].apply(r, e) } function ot() { var t = W.props.aria; if (t.content) { var n = "aria-" + t.content, r = Y.id; c(W.props.triggerTarget || e).forEach((function (t) { var e = t.getAttribute(n); if (W.state.isVisible) t.setAttribute(n, e ? e + " " + r : r); else { var i = e && e.replace(r, "").trim(); i ? t.setAttribute(n, i) : t.removeAttribute(n) } })) } } function at() { !J && W.props.aria.expanded && c(W.props.triggerTarget || e).forEach((function (t) { W.props.interactive ? t.setAttribute("aria-expanded", W.state.isVisible && t === Z() ? "true" : "false") : t.removeAttribute("aria-expanded") })) } function st() { tt().removeEventListener("mousemove", _), H = H.filter((function (t) { return t !== _ })) } function pt(t) { if (!(O.isTouch && (V || "mousedown" === t.type) || W.props.interactive && Y.contains(t.target))) { if (Z().contains(t.target)) { if (O.isTouch) return; if (W.state.isVisible && W.props.trigger.indexOf("click") >= 0) return } else it("onClickOutside", [W, t]); !0 === W.props.hideOnClick && (W.clearDelayTimeouts(), W.hide(), P = !0, setTimeout((function () { P = !1 })), W.state.isMounted || lt()) } } function ut() { V = !0 } function ct() { V = !1 } function ft() { var t = tt(); t.addEventListener("mousedown", pt, !0), t.addEventListener("touchend", pt, i), t.addEventListener("touchstart", ct, i), t.addEventListener("touchmove", ut, i) } function lt() { var t = tt(); t.removeEventListener("mousedown", pt, !0), t.removeEventListener("touchend", pt, i), t.removeEventListener("touchstart", ct, i), t.removeEventListener("touchmove", ut, i) } function dt(t, e) { var n = et().box; function r(t) { t.target === n && (E(n, "remove", r), e()) } if (0 === t) return e(); E(n, "remove", C), E(n, "add", r), C = r } function vt(t, n, r) { void 0 === r && (r = !1), c(W.props.triggerTarget || e).forEach((function (e) { e.addEventListener(t, n, r), U.push({ node: e, eventType: t, handler: n, options: r }) })) } function mt() { var t; K() && (vt("touchstart", ht, { passive: !0 }), vt("touchend", yt, { passive: !0 })), (t = W.props.trigger, t.split(/\s+/).filter(Boolean)).forEach((function (t) { if ("manual" !== t) switch (vt(t, ht), t) { case "mouseenter": vt("mouseleave", yt); break; case "focus": vt(r ? "focusout" : "blur", wt); break; case "focusin": vt("focusout", wt) } })) } function gt() { U.forEach((function (t) { var e = t.node, n = t.eventType, r = t.handler, i = t.options; e.removeEventListener(n, r, i) })), U = [] } function ht(t) { var e, n = !1; if (W.state.isEnabled && !xt(t) && !P) { var r = "focus" === (null == (e = b) ? void 0 : e.type); b = t, A = t.currentTarget, at(), !W.state.isVisible && g(t) && H.forEach((function (e) { return e(t) })), "click" === t.type && (W.props.trigger.indexOf("mouseenter") < 0 || M) && !1 !== W.props.hideOnClick && W.state.isVisible ? n = !0 : Tt(t), "click" === t.type && (M = !n), n && !r && At(t) } } function bt(t) { var e = t.target, n = Z().contains(e) || Y.contains(e); "mousemove" === t.type && n || function (t, e) { var n = e.clientX, r = e.clientY; return t.every((function (t) { var e = t.popperRect, i = t.popperState, o = t.props.interactiveBorder, a = l(i.placement), s = i.modifiersData.offset; if (!s) return !0; var p = "bottom" === a ? s.top.y : 0, u = "top" === a ? s.bottom.y : 0, c = "right" === a ? s.left.x : 0, f = "left" === a ? s.right.x : 0, d = e.top - r + p > o, v = r - e.bottom - u > o, m = e.left - n + c > o, g = n - e.right - f > o; return d || v || m || g })) }(Ct().concat(Y).map((function (t) { var e, n = null == (e = t._tippy.popperInstance) ? void 0 : e.state; return n ? { popperRect: t.getBoundingClientRect(), popperState: n, props: k } : null })).filter(Boolean), t) && (st(), At(t)) } function yt(t) { xt(t) || W.props.trigger.indexOf("click") >= 0 && M || (W.props.interactive ? W.hideWithInteractivity(t) : At(t)) } function wt(t) { W.props.trigger.indexOf("focusin") < 0 && t.target !== Z() || W.props.interactive && t.relatedTarget && Y.contains(t.relatedTarget) || At(t) } function xt(t) { return !!O.isTouch && K() !== t.type.indexOf("touch") >= 0 } function Et() { Ot(); var n = W.props, r = n.popperOptions, i = n.placement, o = n.offset, a = n.getReferenceClientRect, s = n.moveTransition, p = Q() ? I(Y).arrow : null, u = a ? { getBoundingClientRect: a, contextElement: a.contextElement || Z() } : e, c = [{ name: "offset", options: { offset: o } }, { name: "preventOverflow", options: { padding: { top: 2, bottom: 2, left: 5, right: 5 } } }, { name: "flip", options: { padding: 5 } }, { name: "computeStyles", options: { adaptive: !s } }, { name: "$$tippy", enabled: !0, phase: "beforeWrite", requires: ["computeStyles"], fn: function (t) { var e = t.state; if (Q()) { var n = et().box;["placement", "reference-hidden", "escaped"].forEach((function (t) { "placement" === t ? n.setAttribute("data-placement", e.placement) : e.attributes.popper["data-popper-" + t] ? n.setAttribute("data-" + t, "") : n.removeAttribute("data-" + t) })), e.attributes.popper = {} } } }]; Q() && p && c.push({ name: "arrow", options: { element: p, padding: 3 } }), c.push.apply(c, (null == r ? void 0 : r.modifiers) || []), W.popperInstance = t.createPopper(u, Y, Object.assign({}, r, { placement: i, onFirstUpdate: T, modifiers: c })) } function Ot() { W.popperInstance && (W.popperInstance.destroy(), W.popperInstance = null) } function Ct() { return d(Y.querySelectorAll("[data-tippy-root]")) } function Tt(t) { W.clearDelayTimeouts(), t && it("onTrigger", [W, t]), ft(); var e = nt(!0), n = G(), r = n[0], i = n[1]; O.isTouch && "hold" === r && i && (e = i), e ? u = setTimeout((function () { W.show() }), e) : W.show() } function At(t) { if (W.clearDelayTimeouts(), it("onUntrigger", [W, t]), W.state.isVisible) { if (!(W.props.trigger.indexOf("mouseenter") >= 0 && W.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(t.type) >= 0 && M)) { var e = nt(!1); e ? m = setTimeout((function () { W.state.isVisible && W.hide() }), e) : h = requestAnimationFrame((function () { W.hide() })) } } else lt() } } function _(t, e) { void 0 === e && (e = {}); var n = D.plugins.concat(e.plugins || []); document.addEventListener("touchstart", T, i), window.addEventListener("blur", L); var r = Object.assign({}, e, { plugins: n }), o = b(t).reduce((function (t, e) { var n = e && U(e, r); return n && t.push(n), t }), []); return m(t) ? o[0] : o } _.defaultProps = D, _.setDefaultProps = function (t) { Object.keys(t).forEach((function (e) { D[e] = t[e] })) }, _.currentInput = O; var z = Object.assign({}, t.applyStyles, { effect: function (t) { var e = t.state, n = { popper: { position: e.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; Object.assign(e.elements.popper.style, n.popper), e.styles = n, e.elements.arrow && Object.assign(e.elements.arrow.style, n.arrow) } }), F = { mouseover: "mouseenter", focusin: "focus", click: "click" }; var W = { name: "animateFill", defaultValue: !1, fn: function (t) { var e; if (!(null == (e = t.props.render) ? void 0 : e.$$tippy)) return {}; var n = I(t.popper), r = n.box, i = n.content, o = t.props.animateFill ? function () { var t = v(); return t.className = "tippy-backdrop", w([t], "hidden"), t }() : null; return { onCreate: function () { o && (r.insertBefore(o, r.firstElementChild), r.setAttribute("data-animatefill", ""), r.style.overflow = "hidden", t.setProps({ arrow: !1, animation: "shift-away" })) }, onMount: function () { if (o) { var t = r.style.transitionDuration, e = Number(t.replace("ms", "")); i.style.transitionDelay = Math.round(e / 10) + "ms", o.style.transitionDuration = t, w([o], "visible") } }, onShow: function () { o && (o.style.transitionDuration = "0ms") }, onHide: function () { o && w([o], "hidden") } } } }; var X = { clientX: 0, clientY: 0 }, Y = []; function q(t) { var e = t.clientX, n = t.clientY; X = { clientX: e, clientY: n } } var $ = { name: "followCursor", defaultValue: !1, fn: function (t) { var e = t.reference, n = x(t.props.triggerTarget || e), r = !1, i = !1, o = !0, a = t.props; function s() { return "initial" === t.props.followCursor && t.state.isVisible } function p() { n.addEventListener("mousemove", f) } function u() { n.removeEventListener("mousemove", f) } function c() { r = !0, t.setProps({ getReferenceClientRect: null }), r = !1 } function f(n) { var r = !n.target || e.contains(n.target), i = t.props.followCursor, o = n.clientX, a = n.clientY, s = e.getBoundingClientRect(), p = o - s.left, u = a - s.top; !r && t.props.interactive || t.setProps({ getReferenceClientRect: function () { var t = e.getBoundingClientRect(), n = o, r = a; "initial" === i && (n = t.left + p, r = t.top + u); var s = "horizontal" === i ? t.top : r, c = "vertical" === i ? t.right : n, f = "horizontal" === i ? t.bottom : r, l = "vertical" === i ? t.left : n; return { width: c - l, height: f - s, top: s, right: c, bottom: f, left: l } } }) } function l() { t.props.followCursor && (Y.push({ instance: t, doc: n }), function (t) { t.addEventListener("mousemove", q) }(n)) } function d() { 0 === (Y = Y.filter((function (e) { return e.instance !== t }))).filter((function (t) { return t.doc === n })).length && function (t) { t.removeEventListener("mousemove", q) }(n) } return { onCreate: l, onDestroy: d, onBeforeUpdate: function () { a = t.props }, onAfterUpdate: function (e, n) { var o = n.followCursor; r || void 0 !== o && a.followCursor !== o && (d(), o ? (l(), !t.state.isMounted || i || s() || p()) : (u(), c())) }, onMount: function () { t.props.followCursor && !i && (o && (f(X), o = !1), s() || p()) }, onTrigger: function (t, e) { g(e) && (X = { clientX: e.clientX, clientY: e.clientY }), i = "focus" === e.type }, onHidden: function () { t.props.followCursor && (c(), u(), o = !0) } } } }; var J = { name: "inlinePositioning", defaultValue: !1, fn: function (t) { var e, n = t.reference; var r = -1, i = !1, o = { name: "tippyInlinePositioning", enabled: !0, phase: "afterWrite", fn: function (i) { var o = i.state; t.props.inlinePositioning && (e !== o.placement && t.setProps({ getReferenceClientRect: function () { return function (t) { return function (t, e, n, r) { if (n.length < 2 || null === t) return e; if (2 === n.length && r >= 0 && n[0].left > n[1].right) return n[r] || e; switch (t) { case "top": case "bottom": var i = n[0], o = n[n.length - 1], a = "top" === t, s = i.top, p = o.bottom, u = a ? i.left : o.left, c = a ? i.right : o.right; return { top: s, bottom: p, left: u, right: c, width: c - u, height: p - s }; case "left": case "right": var f = Math.min.apply(Math, n.map((function (t) { return t.left }))), l = Math.max.apply(Math, n.map((function (t) { return t.right }))), d = n.filter((function (e) { return "left" === t ? e.left === f : e.right === l })), v = d[0].top, m = d[d.length - 1].bottom; return { top: v, bottom: m, left: f, right: l, width: l - f, height: m - v }; default: return e } }(l(t), n.getBoundingClientRect(), d(n.getClientRects()), r) }(o.placement) } }), e = o.placement) } }; function a() { var e; i || (e = function (t, e) { var n; return { popperOptions: Object.assign({}, t.popperOptions, { modifiers: [].concat(((null == (n = t.popperOptions) ? void 0 : n.modifiers) || []).filter((function (t) { return t.name !== e.name })), [e]) }) } }(t.props, o), i = !0, t.setProps(e), i = !1) } return { onCreate: a, onAfterUpdate: a, onTrigger: function (e, n) { if (g(n)) { var i = d(t.reference.getClientRects()), o = i.find((function (t) { return t.left - 2 <= n.clientX && t.right + 2 >= n.clientX && t.top - 2 <= n.clientY && t.bottom + 2 >= n.clientY })); r = i.indexOf(o) } }, onUntrigger: function () { r = -1 } } } }; var G = { name: "sticky", defaultValue: !1, fn: function (t) { var e = t.reference, n = t.popper; function r(e) { return !0 === t.props.sticky || t.props.sticky === e } var i = null, o = null; function a() { var s = r("reference") ? (t.popperInstance ? t.popperInstance.state.elements.reference : e).getBoundingClientRect() : null, p = r("popper") ? n.getBoundingClientRect() : null; (s && K(i, s) || p && K(o, p)) && t.popperInstance && t.popperInstance.update(), i = s, o = p, t.state.isMounted && requestAnimationFrame(a) } return { onMount: function () { t.props.sticky && a() } } } }; function K(t, e) { return !t || !e || (t.top !== e.top || t.right !== e.right || t.bottom !== e.bottom || t.left !== e.left) } return e && function (t) { var e = document.createElement("style"); e.textContent = t, e.setAttribute("data-tippy-stylesheet", ""); var n = document.head, r = document.querySelector("head>style,head>link"); r ? n.insertBefore(e, r) : n.appendChild(e) }('.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;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}'), _.setDefaultProps({ plugins: [W, $, J, G], render: S }), _.createSingleton = function (t, e) { var n; void 0 === e && (e = {}); var r, i = t, o = [], a = e.overrides, s = [], p = !1; function c() { o = i.map((function (t) { return t.reference })) } function f(t) { i.forEach((function (e) { t ? e.enable() : e.disable() })) } function l(t) { return i.map((function (e) { var n = e.setProps; return e.setProps = function (i) { n(i), e.reference === r && t.setProps(i) }, function () { e.setProps = n } })) } function d(t, e) { var n = o.indexOf(e); if (e !== r) { r = e; var s = (a || []).concat("content").reduce((function (t, e) { return t[e] = i[n].props[e], t }), {}); t.setProps(Object.assign({}, s, { getReferenceClientRect: "function" == typeof s.getReferenceClientRect ? s.getReferenceClientRect : function () { return e.getBoundingClientRect() } })) } } f(!1), c(); var m = { fn: function () { return { onDestroy: function () { f(!0) }, onHidden: function () { r = null }, onClickOutside: function (t) { t.props.showOnCreate && !p && (p = !0, r = null) }, onShow: function (t) { t.props.showOnCreate && !p && (p = !0, d(t, o[0])) }, onTrigger: function (t, e) { d(t, e.currentTarget) } } } }, g = _(v(), Object.assign({}, u(e, ["overrides"]), { plugins: [m].concat(e.plugins || []), triggerTarget: o, popperOptions: Object.assign({}, e.popperOptions, { modifiers: [].concat((null == (n = e.popperOptions) ? void 0 : n.modifiers) || [], [z]) }) })), h = g.show; g.show = function (t) { if (h(), !r && null == t) return d(g, o[0]); if (!r || null != t) { if ("number" == typeof t) return o[t] && d(g, o[t]); if (i.includes(t)) { var e = t.reference; return d(g, e) } return o.includes(t) ? d(g, t) : void 0 } }, g.showNext = function () { var t = o[0]; if (!r) return g.show(0); var e = o.indexOf(r); g.show(o[e + 1] || t) }, g.showPrevious = function () { var t = o[o.length - 1]; if (!r) return g.show(t); var e = o.indexOf(r), n = o[e - 1] || t; g.show(n) }; var b = g.setProps; return g.setProps = function (t) { a = t.overrides || a, b(t) }, g.setInstances = function (t) { f(!0), s.forEach((function (t) { return t() })), i = t, f(!1), c(), l(g), g.setProps({ triggerTarget: o }) }, s = l(g), g }, _.delegate = function (t, e) { var n = [], r = [], o = !1, a = e.target, s = u(e, ["target"]), p = Object.assign({}, s, { trigger: "manual", touch: !1 }), f = Object.assign({}, s, { showOnCreate: !0 }), l = _(t, p); function d(t) { if (t.target && !o) { var n = t.target.closest(a); if (n) { var i = n.getAttribute("data-tippy-trigger") || e.trigger || D.trigger; if (!n._tippy && !("touchstart" === t.type && "boolean" == typeof f.touch || "touchstart" !== t.type && i.indexOf(F[t.type]) < 0)) { var s = _(n, f); s && (r = r.concat(s)) } } } } function v(t, e, r, i) { void 0 === i && (i = !1), t.addEventListener(e, r, i), n.push({ node: t, eventType: e, handler: r, options: i }) } return c(l).forEach((function (t) { var e = t.destroy, a = t.enable, s = t.disable; t.destroy = function (t) { void 0 === t && (t = !0), t && r.forEach((function (t) { t.destroy() })), r = [], n.forEach((function (t) { var e = t.node, n = t.eventType, r = t.handler, i = t.options; e.removeEventListener(n, r, i) })), n = [], e() }, t.enable = function () { a(), r.forEach((function (t) { return t.enable() })), o = !1 }, t.disable = function () { s(), r.forEach((function (t) { return t.disable() })), o = !0 }, function (t) { var e = t.reference; v(e, "touchstart", d, i), v(e, "mouseover", d), v(e, "focusin", d), v(e, "click", d) }(t) })), l }, _.hideAll = function (t) { var e = void 0 === t ? {} : t, n = e.exclude, r = e.duration; N.forEach((function (t) { var e = !1; if (n && (e = h(n) ? t.reference === n : t.popper === n.popper), !e) { var i = t.props.duration; t.setProps({ duration: r }), t.hide(), t.state.isDestroyed || t.setProps({ duration: i }) } })) }, _.roundArrow = '', _ })); + +const _instances = []; + +export function initialize(element, elementId, options) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + const triggerTarget = options.triggerTargetId ? document.getElementById(options.triggerTargetId) : null; + + const appendTo = determineAppendTo(options.appendTo); + + const defaultOptions = { + theme: 'blazorise', + content: options.text, + placement: options.placement, + maxWidth: options.maxWidth ? options.maxWidth : options.multiline ? "15rem" : null, + duration: options.fade ? [options.fadeDuration, options.fadeDuration] : [0, 0], + arrow: options.showArrow, + allowHTML: true, + trigger: options.trigger, + triggerTarget: triggerTarget, + zIndex: options.zIndex, + interactive: options.interactive, + appendTo: appendTo + }; + + const alwaysActiveOptions = options.alwaysActive + ? { + showOnCreate: true, + hideOnClick: false, + trigger: "manual" + } : {}; + + const instance = tippy(element, Object.assign({}, defaultOptions, alwaysActiveOptions)); + + if (options.text) { + instance.enable(); + } + else { + instance.disable(); + } + + _instances[elementId] = instance; +} + +export function destroy(element, elementId) { + var instances = _instances || {}; + + const instance = instances[elementId]; + + if (instance) { + instance.hide(); + + delete instances[elementId]; + } +} + +export function updateContent(element, elementId, content) { + const instance = _instances[elementId]; + + if (instance) { + instance.setContent(content); + + if (content) { + instance.enable(); + } + else { + instance.disable(); + } + } +} + +function determineAppendTo(value) { + if (!value || value === "body") { + return () => document.body; + } + + if (value === "parent") + return "parent"; + else if (value.length > 0 && value[0] === "#") + return document.getElementById(value); + + return () => document.body; +} \ No newline at end of file diff --git a/_content/Blazorise/utilities.js b/_content/Blazorise/utilities.js new file mode 100755 index 00000000..85b8909c --- /dev/null +++ b/_content/Blazorise/utilities.js @@ -0,0 +1,310 @@ +import "./vendors/jsencrypt.js?v=1.3.1.0"; +import "./vendors/sha512.js?v=1.3.1.0"; + +// adds a classname to the specified element +export function addClass(element, classname) { + element.classList.add(classname); +} + +// removes a classname from the specified element +export function removeClass(element, classname) { + if (element.classList.contains(classname)) { + element.classList.remove(classname); + } +} + +// toggles a classname on the given element id +export function toggleClass(element, classname) { + if (element) { + if (element.classList.contains(classname)) { + element.classList.remove(classname); + } else { + element.classList.add(classname); + } + } +} + +// adds a classname to the body element +export function addClassToBody(classname) { + addClass(document.body, classname); +} + +// removes a classname from the body element +export function removeClassFromBody(classname) { + removeClass(document.body, classname); +} + +// sets the input focuses to the given element +export function focus(element, elementId, scrollToElement) { + element = getRequiredElement(element, elementId); + + if (element) { + element.focus({ + preventScroll: !scrollToElement + }); + } +} + +// selects the given element +export function select(element, elementId, focus) { + if (focus) { + focus(element, elementId, true); + } + + element = getRequiredElement(element, elementId); + + if (element) { + element.select(); + } +} + +// show a browser picker for the supplied input element +export function showPicker(element, elementId) { + element = getRequiredElement(element, elementId); + + if (element && 'showPicker' in HTMLInputElement.prototype) { + element.showPicker(); + } +} + +export function setCaret(element, caret) { + if (hasSelectionCapabilities(element)) { + window.requestAnimationFrame(() => { + element.selectionStart = caret; + element.selectionEnd = caret; + }); + } +} + +export function getCaret(element) { + return hasSelectionCapabilities(element) + ? element.selectionStart : + -1; +} + +export function setTextValue(element, value) { + element.value = value; +} + +export function scrollAnchorIntoView(elementId) { + var element = document.getElementById(elementId); + + if (element) { + element.scrollIntoView(); + window.location.hash = elementId; + } +} + +export function scrollElementIntoView(elementId, smooth) { + var element = document.getElementById(elementId); + + if (element) { + var top; + if (element.offsetTop < element.parentElement.scrollTop || element.clientHeight > element.parentElement.clientHeight) { + top = element.offsetTop; + } else if (element.offsetTop + element.offsetHeight > element.parentElement.scrollTop + element.parentElement.clientHeight) { + top = element.offsetTop + element.offsetHeight - element.parentElement.clientHeight; + } + + var behavior = smooth ? "smooth" : "instant"; + element.parentElement.scrollTo({ top: top, behavior: behavior }); + } +} + +// sets the value to the element property +export function setProperty(element, property, value) { + if (element && property) { + element[property] = value; + } +} + +export function getElementInfo(element, elementId) { + if (!element) { + element = document.getElementById(elementId); + } + + if (element) { + const position = element.getBoundingClientRect(); + + return { + boundingClientRect: { + x: position.x, + y: position.y, + top: position.top, + bottom: position.bottom, + left: position.left, + right: position.right, + width: position.width, + height: position.height + }, + offsetTop: element.offsetTop, + offsetLeft: element.offsetLeft, + offsetWidth: element.offsetWidth, + offsetHeight: element.offsetHeight, + scrollTop: element.scrollTop, + scrollLeft: element.scrollLeft, + scrollWidth: element.scrollWidth, + scrollHeight: element.scrollHeight, + clientTop: element.clientTop, + clientLeft: element.clientLeft, + clientWidth: element.clientWidth, + clientHeight: element.clientHeight + }; + } + + return {}; +} + +function hasSelectionCapabilities(element) { + const nodeName = element && element.nodeName && element.nodeName.toLowerCase(); + + return ( + nodeName && + ((nodeName === 'input' && + (element.type === 'text' || + element.type === 'search' || + element.type === 'tel' || + element.type === 'url' || + element.type === 'password')) || + nodeName === 'textarea' || + element.contentEditable === 'true') + ); +} + +export function getRequiredElement(element, elementId) { + if (element) + return element; + + return document.getElementById(elementId); +} + + +export function getUserAgent() { + return navigator.userAgent; +} + +export function copyToClipboard(element, elementId) { + element = getRequiredElement(element, elementId); + + if (!element) + return; + + if (navigator.clipboard) { + navigator.clipboard.writeText(element.innerText); + } +} + +function getExponentialParts(num) { + return Array.isArray(num) ? num : String(num).split(/[eE]/); +} + +function isExponential(num) { + const eParts = getExponentialParts(num); + return !Number.isNaN(Number(eParts[1])); +} + +export function fromExponential(num) { + if (!num) + return num; + + const eParts = getExponentialParts(num); + if (!isExponential(eParts)) { + return eParts[0]; + } + + const sign = eParts[0][0] === '-' ? '-' : ''; + const digits = eParts[0].replace(/^-/, ''); + const digitsParts = digits.split('.'); + const wholeDigits = digitsParts[0]; + const fractionDigits = digitsParts[1] || ''; + let e = Number(eParts[1]); + + if (e === 0) { + return `${sign + wholeDigits}.${fractionDigits}`; + } else if (e < 0) { + // move dot to the left + const countWholeAfterTransform = wholeDigits.length + e; + if (countWholeAfterTransform > 0) { + // transform whole to fraction + const wholeDigitsAfterTransform = wholeDigits.substr(0, countWholeAfterTransform); + const wholeDigitsTransformedToFraction = wholeDigits.substr(countWholeAfterTransform); + return `${sign + wholeDigitsAfterTransform}.${wholeDigitsTransformedToFraction}${fractionDigits}`; + } else { + // not enough whole digits: prepend with fractional zeros + + // first e goes to dotted zero + let zeros = '0.'; + e = countWholeAfterTransform; + while (e) { + zeros += '0'; + e += 1; + } + return sign + zeros + wholeDigits + fractionDigits; + } + } else { + // move dot to the right + const countFractionAfterTransform = fractionDigits.length - e; + if (countFractionAfterTransform > 0) { + // transform fraction to whole + // countTransformedFractionToWhole = e + const fractionDigitsAfterTransform = fractionDigits.substr(e); + const fractionDigitsTransformedToWhole = fractionDigits.substr(0, e); + return `${sign + wholeDigits + fractionDigitsTransformedToWhole}.${fractionDigitsAfterTransform}`; + } else { + // not enough fractions: append whole zeros + let zerosCount = -countFractionAfterTransform; + let zeros = ''; + while (zerosCount) { + zeros += '0'; + zerosCount -= 1; + } + return sign + wholeDigits + fractionDigits + zeros; + } + } +} + +function getTag(value) { + if (value == null) { + return value === undefined ? '[object Undefined]' : '[object Null]' + } + return toString.call(value) +} + +export function isString(value) { + const type = typeof value + return type === 'string' || (type === 'object' && value != null && !Array.isArray(value) && getTag(value) == '[object String]') +} + +export function firstNonNull(value, fallbackValue) { + if (value === null || value === undefined) + return fallbackValue; + + return value; +} + +export function verifyRsa(publicKey, content, signature) { + try { + const jsEncrypt = new JSEncrypt(); + jsEncrypt.setPublicKey(publicKey); + + const verified = jsEncrypt.verify(content, signature, sha512); + + if (verified) { + return true; + } + } catch (error) { + console.error(error); + } + + return false; +} + +export function log(message, args) { + console.log(message, args); +} + +export function createEvent(name) { + const e = document.createEvent("Event"); + e.initEvent(name, true, true); + return e; +} \ No newline at end of file diff --git a/_content/Blazorise/validators/DateTimeMaskValidator.js b/_content/Blazorise/validators/DateTimeMaskValidator.js new file mode 100755 index 00000000..6c9fa38f --- /dev/null +++ b/_content/Blazorise/validators/DateTimeMaskValidator.js @@ -0,0 +1,16 @@ +export function DateTimeMaskValidator(element, elementId) { + this.elementId = elementId; + this.element = element; + this.regex = function () { + return /^\d{0,4}$|^\d{4}-0?$|^\d{4}-(?:0?[1-9]|1[012])(?:-(?:0?[1-9]?|[12]\d|3[01])?)?$/; + }; + this.carret = function () { + return [this.element.selectionStart, this.element.selectionEnd]; + }; + this.isValid = function (currentValue) { + var value = this.element.value, + selection = this.carret(); + + return value = value.substring(0, selection[0]) + currentValue + value.substring(selection[1]), !!this.regex().test(value); + }; +} \ No newline at end of file diff --git a/_content/Blazorise/validators/NoValidator.js b/_content/Blazorise/validators/NoValidator.js new file mode 100755 index 00000000..baeda384 --- /dev/null +++ b/_content/Blazorise/validators/NoValidator.js @@ -0,0 +1,5 @@ +export function NoValidator() { + this.isValid = function (currentValue) { + return true; + }; +} \ No newline at end of file diff --git a/_content/Blazorise/validators/NumericMaskValidator.js b/_content/Blazorise/validators/NumericMaskValidator.js new file mode 100755 index 00000000..a6a90328 --- /dev/null +++ b/_content/Blazorise/validators/NumericMaskValidator.js @@ -0,0 +1,163 @@ +export function NumericMaskValidator(dotnetAdapter, element, elementId, options) { + options = options || {}; + + this.dotnetAdapter = dotnetAdapter; + this.elementId = elementId; + this.element = element; + this.decimals = options.decimals === null || options.decimals === undefined ? 2 : options.decimals; + this.separator = options.separator || "."; + this.step = options.step || 1; + this.min = options.min; + this.max = options.max; + this.typeMin = options.typeMin; + this.typeMax = options.typeMax; + this.immediate = options.immediate || true; + this.selectAllOnFocus = options.selectAllOnFocus || false; + + this.regex = function () { + var sep = "\\" + this.separator, + dec = this.decimals, + reg = "{0," + dec + "}"; + + return dec ? new RegExp("^(-)?(((\\d+(" + sep + "\\d" + reg + ")?)|(" + sep + "\\d" + reg + ")))?$") : /^(-)?(\d*)$/; + }; + this.carret = function () { + return [this.element.selectionStart, this.element.selectionEnd]; + }; + this.isValid = function (currentValue) { + let value = this.element.value, + selection = this.carret(); + + if (value = value.substring(0, selection[0]) + currentValue + value.substring(selection[1]), !!this.regex().test(value)) { + + value = (value || "").replace(this.separator, "."); + + // Now that we know the number is valid we also need to make sure it can fit in the min-max range ot the TValue type. + let number = Number(value); + let numberOverflow = false; + + if (number > this.typeMax) { + number = Number(this.typeMax); + + numberOverflow = true; + } + else if (number < this.typeMin) { + number = Number(this.typeMin); + + numberOverflow = true; + } + + if (numberOverflow) { + value = this.fromExponential(number); + + // Update input with new value and also make sure that Blazor knows it is changed. + this.element.value = value; + + // Trigger event so that Blazor can pick it up. + let eventName = this.immediate ? 'input' : 'change'; + + if ("createEvent" in document) { + let event = document.createEvent("HTMLEvents"); + event.initEvent(eventName, false, true); + this.element.dispatchEvent(event); + } + else { + this.element.fireEvent("on" + eventName); + } + + return false; // This will make it fail the validation and do the preventDefault(). + } + + return value; + } + + return false; + }; + this.update = function (options) { + if (options.decimals && options.decimals.changed) { + this.decimals = options.decimals.value; + + this.truncate(); + } + }; + this.getExponentialParts = function (num) { + return Array.isArray(num) ? num : String(num).split(/[eE]/); + }; + this.isExponential = function (num) { + const eParts = this.getExponentialParts(num); + return !Number.isNaN(Number(eParts[1])); + }; + this.fromExponential = function (num) { + const eParts = this.getExponentialParts(num); + if (!this.isExponential(eParts)) { + return eParts[0]; + } + + const sign = eParts[0][0] === '-' ? '-' : ''; + const digits = eParts[0].replace(/^-/, ''); + const digitsParts = digits.split('.'); + const wholeDigits = digitsParts[0]; + const fractionDigits = digitsParts[1] || ''; + let e = Number(eParts[1]); + + if (e === 0) { + return `${sign + wholeDigits}.${fractionDigits}`; + } else if (e < 0) { + // move dot to the left + const countWholeAfterTransform = wholeDigits.length + e; + if (countWholeAfterTransform > 0) { + // transform whole to fraction + const wholeDigitsAfterTransform = wholeDigits.substr(0, countWholeAfterTransform); + const wholeDigitsTransformedToFraction = wholeDigits.substr(countWholeAfterTransform); + return `${sign + wholeDigitsAfterTransform}.${wholeDigitsTransformedToFraction}${fractionDigits}`; + } else { + // not enough whole digits: prepend with fractional zeros + + // first e goes to dotted zero + let zeros = '0.'; + e = countWholeAfterTransform; + while (e) { + zeros += '0'; + e += 1; + } + return sign + zeros + wholeDigits + fractionDigits; + } + } else { + // move dot to the right + const countFractionAfterTransform = fractionDigits.length - e; + if (countFractionAfterTransform > 0) { + // transform fraction to whole + // countTransformedFractionToWhole = e + const fractionDigitsAfterTransform = fractionDigits.substr(e); + const fractionDigitsTransformedToWhole = fractionDigits.substr(0, e); + return `${sign + wholeDigits + fractionDigitsTransformedToWhole}.${fractionDigitsAfterTransform}`; + } else { + // not enough fractions: append whole zeros + let zerosCount = -countFractionAfterTransform; + let zeros = ''; + while (zerosCount) { + zeros += '0'; + zerosCount -= 1; + } + return sign + wholeDigits + fractionDigits + zeros; + } + } + }; + this.truncate = function () { + let value = (this.element.value || "").replace(this.separator, "."); + + if (value) { + let number = Number(value); + + number = Math.trunc(number * Math.pow(10, this.decimals)) / Math.pow(10, this.decimals); + + let newValue = number.toString().replace(".", this.separator); + + this.element.value = newValue; + + if (this.dotnetAdapter) { + this.dotnetAdapter.invokeMethodAsync('SetValue', newValue); + } + } + }; +} \ No newline at end of file diff --git a/_content/Blazorise/validators/RegExMaskValidator.js b/_content/Blazorise/validators/RegExMaskValidator.js new file mode 100755 index 00000000..26f1bb03 --- /dev/null +++ b/_content/Blazorise/validators/RegExMaskValidator.js @@ -0,0 +1,17 @@ +export function RegExMaskValidator(element, elementId, editMask) { + this.elementId = elementId; + this.element = element; + this.editMask = editMask; + this.regex = function () { + return new RegExp(this.editMask); + }; + this.carret = function () { + return [this.element.selectionStart, this.element.selectionEnd]; + }; + this.isValid = function (currentValue) { + var value = this.element.value, + selection = this.carret(); + + return value = value.substring(0, selection[0]) + currentValue + value.substring(selection[1]), !!this.regex().test(value); + }; +} \ No newline at end of file diff --git a/_content/Blazorise/vendors/Behave.js b/_content/Blazorise/vendors/Behave.js new file mode 100755 index 00000000..b663cefe --- /dev/null +++ b/_content/Blazorise/vendors/Behave.js @@ -0,0 +1 @@ +function BehaveHooks() { var e = {}; return { add: function (t, r) { var n; if ("object" == typeof t) for (n = 0; n < t.length; n++) { var a = t[n]; e[a] || (e[a] = []), e[a].push(r) } else e[t] || (e[t] = []), e[t].push(r) }, get: function (t) { if (e[t]) return e[t] } } } const _hooks = BehaveHooks(); export function Behave(e) { "function" != typeof String.prototype.repeat && (String.prototype.repeat = function (e) { if (e < 1) return ""; if (e % 2) return this.repeat(e - 1) + this; var t = this.repeat(e / 2); return t + t }), "function" != typeof Array.prototype.filter && (Array.prototype.filter = function (e) { if (null === this) throw new TypeError; var t = Object(this), r = t.length >>> 0; if ("function" != typeof e) throw new TypeError; for (var n = [], a = arguments[1], o = 0; o < r; o++)if (o in t) { var s = t[o]; e.call(a, s, o, t) && n.push(s) } return n }); var t, r, n, a = { textarea: null, replaceTab: !0, softTabs: !0, tabSize: 4, autoOpen: !0, overwrite: !0, autoStrip: !0, autoIndent: !0, fence: !1 }, o = { keyMap: [{ open: '"', close: '"', canBreak: !1 }, { open: "'", close: "'", canBreak: !1 }, { open: "(", close: ")", canBreak: !1 }, { open: "[", close: "]", canBreak: !0 }, { open: "{", close: "}", canBreak: !0 }] }, s = { _callHook: function (e, t) { var r = _hooks.get(e); if (t = "boolean" != typeof t || !1 !== t, r) if (t) { var n, o = a.textarea, i = o.value, c = s.cursor.get(); for (n = 0; n < r.length; n++)r[n].call(void 0, { editor: { element: o, text: i, levelsDeep: s.levelsDeep() }, caret: { pos: c }, lines: { current: s.cursor.getLine(i, c), total: s.editor.getLines(i) } }) } else for (n = 0; n < r.length; n++)r[n].call(void 0) }, defineNewLine: function () { var e = document.createElement("textarea"); e.value = "\n", r = 2 == e.value.length ? "\r\n" : "\n" }, defineTabSize: function (e) { void 0 === a.textarea.style.OTabSize ? void 0 === a.textarea.style.MozTabSize ? void 0 === a.textarea.style.tabSize || (a.textarea.style.tabSize = e) : a.textarea.style.MozTabSize = e : a.textarea.style.OTabSize = e }, cursor: { getLine: function (e, t) { return e.substring(0, t).split("\n").length }, get: function () { if ("number" == typeof document.createElement("textarea").selectionStart) return a.textarea.selectionStart; if (document.selection) { var e = 0, t = a.textarea.createTextRange(), r = document.selection.createRange().duplicate().getBookmark(); for (t.moveToBookmark(r); 0 !== t.moveStart("character", -1);)e++; return e } }, set: function (e, t) { if (t || (t = e), a.textarea.setSelectionRange) a.textarea.focus(), a.textarea.setSelectionRange(e, t); else if (a.textarea.createTextRange) { var r = a.textarea.createTextRange(); r.collapse(!0), r.moveEnd("character", t), r.moveStart("character", e), r.select() } }, selection: function () { var e, t, n, o, i, c = a.textarea, l = 0, u = 0; return "number" == typeof c.selectionStart && "number" == typeof c.selectionEnd ? (l = c.selectionStart, u = c.selectionEnd) : (t = document.selection.createRange()) && t.parentElement() == c && (o = (e = s.editor.get()).length, (n = c.createTextRange()).moveToBookmark(t.getBookmark()), (i = c.createTextRange()).collapse(!1), n.compareEndPoints("StartToEnd", i) > -1 ? l = u = o : (l = -n.moveStart("character", -o), l += e.slice(0, l).split(r).length - 1, n.compareEndPoints("EndToEnd", i) > -1 ? u = o : (u = -n.moveEnd("character", -o), u += e.slice(0, u).split(r).length - 1))), l != u && { start: l, end: u } } }, editor: { getLines: function (e) { return e.split("\n").length }, get: function () { return a.textarea.value.replace(/\r/g, "") }, set: function (e, t) { a.textarea.value = e, t && a.textarea.dispatchEvent(new Event("input", { bubbles: !0 })) } }, fenceRange: function () { if ("string" == typeof a.fence) { for (var e = s.editor.get(), t = s.cursor.get(), r = 0, n = e.indexOf(a.fence), o = 0; n >= 0 && (o++, !(t < n + r));)r += n + a.fence.length, n = (e = e.substring(n + a.fence.length)).indexOf(a.fence); return r < t && n + r > t && o % 2 == 0 } return !0 }, isEven: function (e, t) { return t % 2 }, levelsDeep: function () { var e, t, r = s.cursor.get(), n = s.editor.get().substring(0, r), a = 0; for (e = 0; e < n.length; e++)for (t = 0; t < o.keyMap.length; t++)o.keyMap[t].canBreak && (o.keyMap[t].open == n.charAt(e) && a++, o.keyMap[t].close == n.charAt(e) && a--); var i = 0, c = ["'", '"']; for (e = 0; e < o.keyMap.length; e++)if (o.keyMap[e].canBreak) for (t in c) i += n.split(c[t]).filter(s.isEven).join("").split(o.keyMap[e].open).length - 1; var l = a - i; return l >= 0 ? l : 0 }, deepExtend: function (e, t) { for (var r in t) t[r] && t[r].constructor && t[r].constructor === Object ? (e[r] = e[r] || {}, s.deepExtend(e[r], t[r])) : e[r] = t[r]; return e }, addEvent: function (e, t, r) { e.addEventListener ? e.addEventListener(t, r, !1) : e.attachEvent && e.attachEvent("on" + t, r) }, removeEvent: function (e, t, r) { e.addEventListener ? e.removeEventListener(t, r, !1) : e.attachEvent && e.detachEvent("on" + t, r) }, preventDefaultEvent: function (e) { e.preventDefault ? e.preventDefault() : e.returnValue = !1 } }, i = function (e) { if (s.fenceRange()) { if (9 == e.keyCode) { s.preventDefaultEvent(e); var r = !0; s._callHook("tab:before"); var n = s.cursor.selection(), a = s.cursor.get(), o = s.editor.get(); if (n) { for (var i = n.start; i--;)if ("\n" == o.charAt(i)) { n.start = i + 1; break } var c, l = o.substring(n.start, n.end), u = l.split("\n"); if (e.shiftKey) { for (c = 0; c < u.length; c++)u[c].substring(0, t.length) == t && (u[c] = u[c].substring(t.length)); l = u.join("\n"), s.editor.set(o.substring(0, n.start) + l + o.substring(n.end)), s.cursor.set(n.start, n.start + l.length) } else { for (c in u) u[c] = t + u[c]; l = u.join("\n"), s.editor.set(o.substring(0, n.start) + l + o.substring(n.end)), s.cursor.set(n.start, n.start + l.length) } } else { var f = o.substring(0, a), g = o.substring(a), v = f + t + g; e.shiftKey ? o.substring(a - t.length, a) == t && (v = o.substring(0, a - t.length) + g, s.editor.set(v), s.cursor.set(a - t.length)) : (s.editor.set(v), s.cursor.set(a + t.length), r = !1) } s._callHook("tab:after") } return r } }, c = function (e) { if (s.fenceRange() && 13 == e.keyCode) { s.preventDefaultEvent(e), s._callHook("enter:before"); var n, a, i = s.cursor.get(), c = s.editor.get(), l = c.substring(0, i), u = c.substring(i), f = l.charAt(l.length - 1), g = u.charAt(0), v = s.levelsDeep(), p = "", d = ""; if (v) { for (; v--;)p += t; for (n = (p = p).length + 1, a = 0; a < o.keyMap.length; a++)o.keyMap[a].open == f && o.keyMap[a].close == g && (d = r) } else n = 1; var h = l + r + p + d + p.substring(0, p.length - t.length) + u; s.editor.set(h), s.cursor.set(i + n), s._callHook("enter:after") } }, l = function (e) { if (s.fenceRange() && 8 == e.keyCode) { s.preventDefaultEvent(e), s._callHook("delete:before"); var t, r = s.cursor.get(), n = s.editor.get(), a = n.substring(0, r), i = n.substring(r), c = a.charAt(a.length - 1), l = i.charAt(0); if (!1 === s.cursor.selection()) { for (t = 0; t < o.keyMap.length; t++)if (o.keyMap[t].open == c && o.keyMap[t].close == l) { var u = n.substring(0, r - 1) + n.substring(r + 1); return s.editor.set(u), void s.cursor.set(r - 1) } u = n.substring(0, r - 1) + n.substring(r); s.editor.set(u, !0), s.cursor.set(r - 1) } else { var f = s.cursor.selection(); u = n.substring(0, f.start) + n.substring(f.end); s.editor.set(u, !0), s.cursor.set(r) } s._callHook("delete:after") } }, u = function (e, t) { s.preventDefaultEvent(t), s._callHook("openChar:before"); var r = s.cursor.get(), n = s.editor.get(), o = n.substring(0, r), i = n.substring(r), c = o + e.open + e.close + i; a.textarea.value = c, s.cursor.set(r + 1), s._callHook("openChar:after") }, f = function (e, t) { var r = s.cursor.get(); return s.editor.get().substring(r, r + 1) == e.close && (s.preventDefaultEvent(t), s._callHook("closeChar:before"), s.cursor.set(s.cursor.get() + 1), s._callHook("closeChar:after"), !0) }, g = { filter: function (e) { if (s.fenceRange()) { var t = e.which || e.keyCode; if (39 != t && (40 != t || 0 !== e.which)) { var r, n = String.fromCharCode(t); for (r = 0; r < o.keyMap.length; r++) { if (o.keyMap[r].close == n) !(a.overwrite && f(o.keyMap[r], e)) && o.keyMap[r].open == n && a.autoOpen && u(o.keyMap[r], e); else o.keyMap[r].open == n && a.autoOpen && u(o.keyMap[r], e) } } } }, listen: function () { a.replaceTab && s.addEvent(a.textarea, "keydown", i), a.autoIndent && s.addEvent(a.textarea, "keydown", c), a.autoStrip && s.addEvent(a.textarea, "keydown", l), s.addEvent(a.textarea, "keypress", g.filter), s.addEvent(a.textarea, "keydown", function () { s._callHook("keydown") }), s.addEvent(a.textarea, "keyup", function () { s._callHook("keyup") }), s.addEvent(a.textarea, "blur", function () { a.textarea.dispatchEvent(new Event("change", { bubbles: !0 })) }) } }; this.destroy = function () { s.removeEvent(a.textarea, "keydown", i), s.removeEvent(a.textarea, "keydown", c), s.removeEvent(a.textarea, "keydown", l), s.removeEvent(a.textarea, "keypress", g.filter) }, (n = e).textarea && (s._callHook("init:before", !1), s.deepExtend(a, n), s.defineNewLine(), a.softTabs ? t = " ".repeat(a.tabSize) : (t = "\t", s.defineTabSize(a.tabSize)), g.listen(), s._callHook("init:after", !1)) } \ No newline at end of file diff --git a/_content/Blazorise/vendors/Pickr.js b/_content/Blazorise/vendors/Pickr.js new file mode 100755 index 00000000..4b153006 --- /dev/null +++ b/_content/Blazorise/vendors/Pickr.js @@ -0,0 +1,18 @@ +!function (t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.Pickr = e() : t.Pickr = e() }(self, (function () { return (() => { "use strict"; var t = { d: (e, o) => { for (var n in o) t.o(o, n) && !t.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: o[n] }) }, o: (t, e) => Object.prototype.hasOwnProperty.call(t, e), r: t => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) } }, e = {}; t.d(e, { default: () => L }); var o = {}; function n(t, e, o, n, i = {}) { e instanceof HTMLCollection || e instanceof NodeList ? e = Array.from(e) : Array.isArray(e) || (e = [e]), Array.isArray(o) || (o = [o]); for (const s of e) for (const e of o) s[t](e, n, { capture: !1, ...i }); return Array.prototype.slice.call(arguments, 1) } t.r(o), t.d(o, { adjustableInputNumbers: () => p, createElementFromString: () => r, createFromTemplate: () => a, eventPath: () => l, off: () => s, on: () => i, resolveElement: () => c }); const i = n.bind(null, "addEventListener"), s = n.bind(null, "removeEventListener"); function r(t) { const e = document.createElement("div"); return e.innerHTML = t.trim(), e.firstElementChild } function a(t) { const e = (t, e) => { const o = t.getAttribute(e); return t.removeAttribute(e), o }, o = (t, n = {}) => { const i = e(t, ":obj"), s = e(t, ":ref"), r = i ? n[i] = {} : n; s && (n[s] = t); for (const n of Array.from(t.children)) { const t = e(n, ":arr"), i = o(n, t ? {} : r); t && (r[t] || (r[t] = [])).push(Object.keys(i).length ? i : n) } return n }; return o(r(t)) } function l(t) { let e = t.path || t.composedPath && t.composedPath(); if (e) return e; let o = t.target.parentElement; for (e = [t.target, o]; o = o.parentElement;)e.push(o); return e.push(document, window), e } function c(t) { return t instanceof Element ? t : "string" == typeof t ? t.split(/>>/g).reduce(((t, e, o, n) => (t = t.querySelector(e), o < n.length - 1 ? t.shadowRoot : t)), document) : null } function p(t, e = (t => t)) { function o(o) { const n = [.001, .01, .1][Number(o.shiftKey || 2 * o.ctrlKey)] * (o.deltaY < 0 ? 1 : -1); let i = 0, s = t.selectionStart; t.value = t.value.replace(/[\d.]+/g, ((t, o) => o <= s && o + t.length >= s ? (s = o, e(Number(t), n, i)) : (i++, t))), t.focus(), t.setSelectionRange(s, s), o.preventDefault(), t.dispatchEvent(new Event("input")) } i(t, "focus", (() => i(window, "wheel", o, { passive: !1 }))), i(t, "blur", (() => s(window, "wheel", o))) } const { min: u, max: h, floor: d, round: m } = Math; function f(t, e, o) { e /= 100, o /= 100; const n = d(t = t / 360 * 6), i = t - n, s = o * (1 - e), r = o * (1 - i * e), a = o * (1 - (1 - i) * e), l = n % 6; return [255 * [o, r, s, s, a, o][l], 255 * [a, o, o, r, s, s][l], 255 * [s, s, a, o, o, r][l]] } function v(t, e, o) { const n = (2 - (e /= 100)) * (o /= 100) / 2; return 0 !== n && (e = 1 === n ? 0 : n < .5 ? e * o / (2 * n) : e * o / (2 - 2 * n)), [t, 100 * e, 100 * n] } function b(t, e, o) { const n = u(t /= 255, e /= 255, o /= 255), i = h(t, e, o), s = i - n; let r, a; if (0 === s) r = a = 0; else { a = s / i; const n = ((i - t) / 6 + s / 2) / s, l = ((i - e) / 6 + s / 2) / s, c = ((i - o) / 6 + s / 2) / s; t === i ? r = c - l : e === i ? r = 1 / 3 + n - c : o === i && (r = 2 / 3 + l - n), r < 0 ? r += 1 : r > 1 && (r -= 1) } return [360 * r, 100 * a, 100 * i] } function y(t, e, o, n) { e /= 100, o /= 100; return [...b(255 * (1 - u(1, (t /= 100) * (1 - (n /= 100)) + n)), 255 * (1 - u(1, e * (1 - n) + n)), 255 * (1 - u(1, o * (1 - n) + n)))] } function g(t, e, o) { e /= 100; const n = 2 * (e *= (o /= 100) < .5 ? o : 1 - o) / (o + e) * 100, i = 100 * (o + e); return [t, isNaN(n) ? 0 : n, i] } function _(t) { return b(...t.match(/.{2}/g).map((t => parseInt(t, 16)))) } function w(t) { t = t.match(/^[a-zA-Z]+$/) ? function (t) { if ("black" === t.toLowerCase()) return "#000"; const e = document.createElement("canvas").getContext("2d"); return e.fillStyle = t, "#000" === e.fillStyle ? null : e.fillStyle }(t) : t; const e = { cmyk: /^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i, rgba: /^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i, hsla: /^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i, hsva: /^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i, hexa: /^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i }, o = t => t.map((t => /^(|\d+)\.\d+|\d+$/.test(t) ? Number(t) : void 0)); let n; t: for (const i in e) { if (!(n = e[i].exec(t))) continue; const s = t => !!n[2] == ("number" == typeof t); switch (i) { case "cmyk": { const [, t, e, s, r] = o(n); if (t > 100 || e > 100 || s > 100 || r > 100) break t; return { values: y(t, e, s, r), type: i } } case "rgba": { const [, , , t, e, r, a] = o(n); if (t > 255 || e > 255 || r > 255 || a < 0 || a > 1 || !s(a)) break t; return { values: [...b(t, e, r), a], a, type: i } } case "hexa": { let [, t] = n; 4 !== t.length && 3 !== t.length || (t = t.split("").map((t => t + t)).join("")); const e = t.substring(0, 6); let o = t.substring(6); return o = o ? parseInt(o, 16) / 255 : void 0, { values: [..._(e), o], a: o, type: i } } case "hsla": { const [, , , t, e, r, a] = o(n); if (t > 360 || e > 100 || r > 100 || a < 0 || a > 1 || !s(a)) break t; return { values: [...g(t, e, r), a], a, type: i } } case "hsva": { const [, , , t, e, r, a] = o(n); if (t > 360 || e > 100 || r > 100 || a < 0 || a > 1 || !s(a)) break t; return { values: [t, e, r, a], a, type: i } } } } return { values: null, type: null } } function A(t = 0, e = 0, o = 0, n = 1) { const i = (t, e) => (o = -1) => e(~o ? t.map((t => Number(t.toFixed(o)))) : t), s = { h: t, s: e, v: o, a: n, toHSVA() { const t = [s.h, s.s, s.v, s.a]; return t.toString = i(t, (t => `hsva(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`)), t }, toHSLA() { const t = [...v(s.h, s.s, s.v), s.a]; return t.toString = i(t, (t => `hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`)), t }, toRGBA() { const t = [...f(s.h, s.s, s.v), s.a]; return t.toString = i(t, (t => `rgba(${t[0]}, ${t[1]}, ${t[2]}, ${s.a})`)), t }, toCMYK() { const t = function (t, e, o) { const n = f(t, e, o), i = n[0] / 255, s = n[1] / 255, r = n[2] / 255, a = u(1 - i, 1 - s, 1 - r); return [100 * (1 === a ? 0 : (1 - i - a) / (1 - a)), 100 * (1 === a ? 0 : (1 - s - a) / (1 - a)), 100 * (1 === a ? 0 : (1 - r - a) / (1 - a)), 100 * a] }(s.h, s.s, s.v); return t.toString = i(t, (t => `cmyk(${t[0]}%, ${t[1]}%, ${t[2]}%, ${t[3]}%)`)), t }, toHEXA() { const t = function (t, e, o) { return f(t, e, o).map((t => m(t).toString(16).padStart(2, "0"))) }(s.h, s.s, s.v), e = s.a >= 1 ? "" : Number((255 * s.a).toFixed(0)).toString(16).toUpperCase().padStart(2, "0"); return e && t.push(e), t.toString = () => `#${t.join("").toUpperCase()}`, t }, clone: () => A(s.h, s.s, s.v, s.a) }; return s } const C = t => Math.max(Math.min(t, 1), 0); function $(t) { const e = { options: Object.assign({ lock: null, onchange: () => 0, onstop: () => 0 }, t), _keyboard(t) { const { options: o } = e, { type: n, key: i } = t; if (document.activeElement === o.wrapper) { const { lock: o } = e.options, s = "ArrowUp" === i, r = "ArrowRight" === i, a = "ArrowDown" === i, l = "ArrowLeft" === i; if ("keydown" === n && (s || r || a || l)) { let n = 0, i = 0; "v" === o ? n = s || r ? 1 : -1 : "h" === o ? n = s || r ? -1 : 1 : (i = s ? -1 : a ? 1 : 0, n = l ? -1 : r ? 1 : 0), e.update(C(e.cache.x + .01 * n), C(e.cache.y + .01 * i)), t.preventDefault() } else i.startsWith("Arrow") && (e.options.onstop(), t.preventDefault()) } }, _tapstart(t) { i(document, ["mouseup", "touchend", "touchcancel"], e._tapstop), i(document, ["mousemove", "touchmove"], e._tapmove), t.cancelable && t.preventDefault(), e._tapmove(t) }, _tapmove(t) { const { options: o, cache: n } = e, { lock: i, element: s, wrapper: r } = o, a = r.getBoundingClientRect(); let l = 0, c = 0; if (t) { const e = t && t.touches && t.touches[0]; l = t ? (e || t).clientX : 0, c = t ? (e || t).clientY : 0, l < a.left ? l = a.left : l > a.left + a.width && (l = a.left + a.width), c < a.top ? c = a.top : c > a.top + a.height && (c = a.top + a.height), l -= a.left, c -= a.top } else n && (l = n.x * a.width, c = n.y * a.height); "h" !== i && (s.style.left = `calc(${l / a.width * 100}% - ${s.offsetWidth / 2}px)`), "v" !== i && (s.style.top = `calc(${c / a.height * 100}% - ${s.offsetHeight / 2}px)`), e.cache = { x: l / a.width, y: c / a.height }; const p = C(l / a.width), u = C(c / a.height); switch (i) { case "v": return o.onchange(p); case "h": return o.onchange(u); default: return o.onchange(p, u) } }, _tapstop() { e.options.onstop(), s(document, ["mouseup", "touchend", "touchcancel"], e._tapstop), s(document, ["mousemove", "touchmove"], e._tapmove) }, trigger() { e._tapmove() }, update(t = 0, o = 0) { const { left: n, top: i, width: s, height: r } = e.options.wrapper.getBoundingClientRect(); "h" === e.options.lock && (o = t), e._tapmove({ clientX: n + s * t, clientY: i + r * o }) }, destroy() { const { options: t, _tapstart: o, _keyboard: n } = e; s(document, ["keydown", "keyup"], n), s([t.wrapper, t.element], "mousedown", o), s([t.wrapper, t.element], "touchstart", o, { passive: !1 }) } }, { options: o, _tapstart: n, _keyboard: r } = e; return i([o.wrapper, o.element], "mousedown", n), i([o.wrapper, o.element], "touchstart", n, { passive: !1 }), i(document, ["keydown", "keyup"], r), e } function k(t = {}) { t = Object.assign({ onchange: () => 0, className: "", elements: [] }, t); const e = i(t.elements, "click", (e => { t.elements.forEach((o => o.classList[e.target === o ? "add" : "remove"](t.className))), t.onchange(e), e.stopPropagation() })); return { destroy: () => s(...e) } } const S = { variantFlipOrder: { start: "sme", middle: "mse", end: "ems" }, positionFlipOrder: { top: "tbrl", right: "rltb", bottom: "btrl", left: "lrbt" }, position: "bottom", margin: 8 }, O = (t, e, o) => { const { container: n, margin: i, position: s, variantFlipOrder: r, positionFlipOrder: a } = { container: document.documentElement.getBoundingClientRect(), ...S, ...o }, { left: l, top: c } = e.style; e.style.left = "0", e.style.top = "0"; const p = t.getBoundingClientRect(), u = e.getBoundingClientRect(), h = { t: p.top - u.height - i, b: p.bottom + i, r: p.right + i, l: p.left - u.width - i }, d = { vs: p.left, vm: p.left + p.width / 2 + -u.width / 2, ve: p.left + p.width - u.width, hs: p.top, hm: p.bottom - p.height / 2 - u.height / 2, he: p.bottom - u.height }, [m, f = "middle"] = s.split("-"), v = a[m], b = r[f], { top: y, left: g, bottom: _, right: w } = n; for (const t of v) { const o = "t" === t || "b" === t, n = h[t], [i, s] = o ? ["top", "left"] : ["left", "top"], [r, a] = o ? [u.height, u.width] : [u.width, u.height], [l, c] = o ? [_, w] : [w, _], [p, m] = o ? [y, g] : [g, y]; if (!(n < p || n + r > l)) for (const r of b) { const l = d[(o ? "v" : "h") + r]; if (!(l < m || l + a > c)) return e.style[s] = l - u[s] + "px", e.style[i] = n - u[i] + "px", t + r } } return e.style.left = l, e.style.top = c, null }; function E(t, e, o) { return e in t ? Object.defineProperty(t, e, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = o, t } class L { constructor(t) { E(this, "_initializingActive", !0), E(this, "_recalc", !0), E(this, "_nanopop", null), E(this, "_root", null), E(this, "_color", A()), E(this, "_lastColor", A()), E(this, "_swatchColors", []), E(this, "_setupAnimationFrame", null), E(this, "_eventListener", { init: [], save: [], hide: [], show: [], clear: [], change: [], changestop: [], cancel: [], swatchselect: [] }), this.options = t = Object.assign({ ...L.DEFAULT_OPTIONS }, t); const { swatches: e, components: o, theme: n, sliders: i, lockOpacity: s, padding: r } = t;["nano", "monolith"].includes(n) && !i && (t.sliders = "h"), o.interaction || (o.interaction = {}); const { preview: a, opacity: l, hue: c, palette: p } = o; o.opacity = !s && l, o.palette = p || a || l || c, this._preBuild(), this._buildComponents(), this._bindEvents(), this._finalBuild(), e && e.length && e.forEach((t => this.addSwatch(t))); const { button: u, app: h } = this._root; this._nanopop = ((t, e, o) => { const n = "object" != typeof t || t instanceof HTMLElement ? { reference: t, popper: e, ...o } : t; return { update(t = n) { const { reference: e, popper: o } = Object.assign(n, t); if (!o || !e) throw new Error("Popper- or reference-element missing."); return O(e, o, n) } } })(u, h, { margin: r }), u.setAttribute("role", "button"), u.setAttribute("aria-label", this._t("btn:toggle")); const d = this; this._setupAnimationFrame = requestAnimationFrame((function e() { if (!h.offsetWidth) return requestAnimationFrame(e); d.setColor(t.default), d._rePositioningPicker(), t.defaultRepresentation && (d._representation = t.defaultRepresentation, d.setColorRepresentation(d._representation)), t.showAlways && d.show(), d._initializingActive = !1, d._emit("init") })) } _preBuild() { const { options: t } = this; for (const e of ["el", "container"]) t[e] = c(t[e]); this._root = (t => { const { components: e, useAsButton: o, inline: n, appClass: i, theme: s, lockOpacity: r } = t.options, l = t => t ? "" : 'style="display:none" hidden', c = e => t._t(e), p = a(`\n
\n\n ${o ? "" : ''}\n\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n
\n \n\n \n \n \n \n \n\n \n \n \n
\n
\n
\n `), u = p.interaction; return u.options.find((t => !t.hidden && !t.classList.add("active"))), u.type = () => u.options.find((t => t.classList.contains("active"))), p })(this), t.useAsButton && (this._root.button = t.el), t.container.appendChild(this._root.root) } _finalBuild() { const t = this.options, e = this._root; if (t.container.removeChild(e.root), t.inline) { const o = t.el.parentElement; t.el.nextSibling ? o.insertBefore(e.app, t.el.nextSibling) : o.appendChild(e.app) } else t.container.appendChild(e.app); t.useAsButton ? t.inline && t.el.remove() : t.el.parentNode.replaceChild(e.root, t.el), t.disabled && this.disable(), t.comparison || (e.button.style.transition = "none", t.useAsButton || (e.preview.lastColor.style.transition = "none")), this.hide() } _buildComponents() { const t = this, e = this.options.components, o = (t.options.sliders || "v").repeat(2), [n, i] = o.match(/^[vh]+$/g) ? o : [], s = () => this._color || (this._color = this._lastColor.clone()), r = { palette: $({ element: t._root.palette.picker, wrapper: t._root.palette.palette, onstop: () => t._emit("changestop", "slider", t), onchange(o, n) { if (!e.palette) return; const i = s(), { _root: r, options: a } = t, { lastColor: l, currentColor: c } = r.preview; t._recalc && (i.s = 100 * o, i.v = 100 - 100 * n, i.v < 0 && (i.v = 0), t._updateOutput("slider")); const p = i.toRGBA().toString(0); this.element.style.background = p, this.wrapper.style.background = `\n linear-gradient(to top, rgba(0, 0, 0, ${i.a}), transparent),\n linear-gradient(to left, hsla(${i.h}, 100%, 50%, ${i.a}), rgba(255, 255, 255, ${i.a}))\n `, a.comparison ? a.useAsButton || t._lastColor || l.style.setProperty("--pcr-color", p) : (r.button.style.setProperty("--pcr-color", p), r.button.classList.remove("clear")); const u = i.toHEXA().toString(); for (const { el: e, color: o } of t._swatchColors) e.classList[u === o.toHEXA().toString() ? "add" : "remove"]("pcr-active"); c.style.setProperty("--pcr-color", p) } }), hue: $({ lock: "v" === i ? "h" : "v", element: t._root.hue.picker, wrapper: t._root.hue.slider, onstop: () => t._emit("changestop", "slider", t), onchange(o) { if (!e.hue || !e.palette) return; const n = s(); t._recalc && (n.h = 360 * o), this.element.style.backgroundColor = `hsl(${n.h}, 100%, 50%)`, r.palette.trigger() } }), opacity: $({ lock: "v" === n ? "h" : "v", element: t._root.opacity.picker, wrapper: t._root.opacity.slider, onstop: () => t._emit("changestop", "slider", t), onchange(o) { if (!e.opacity || !e.palette) return; const n = s(); t._recalc && (n.a = Math.round(100 * o) / 100), this.element.style.background = `rgba(0, 0, 0, ${n.a})`, r.palette.trigger() } }), selectable: k({ elements: t._root.interaction.options, className: "active", onchange(e) { t._representation = e.target.getAttribute("data-type").toUpperCase(), t._recalc && t._updateOutput("swatch") } }) }; this._components = r } _bindEvents() { const { _root: t, options: e } = this, o = [i(t.interaction.clear, "click", (() => this._clearColor())), i([t.interaction.cancel, t.preview.lastColor], "click", (() => { this.setHSVA(...(this._lastColor || this._color).toHSVA(), !0), this._emit("cancel") })), i(t.interaction.save, "click", (() => { !this.applyColor() && !e.showAlways && this.hide() })), i(t.interaction.result, ["keyup", "input"], (t => { this.setColor(t.target.value, !0) && !this._initializingActive && (this._emit("change", this._color, "input", this), this._emit("changestop", "input", this)), t.stopImmediatePropagation() })), i(t.interaction.result, ["focus", "blur"], (t => { this._recalc = "blur" === t.type, this._recalc && this._updateOutput(null) })), i([t.palette.palette, t.palette.picker, t.hue.slider, t.hue.picker, t.opacity.slider, t.opacity.picker], ["mousedown", "touchstart"], (() => this._recalc = !0), { passive: !0 })]; if (!e.showAlways) { const n = e.closeWithKey; o.push(i(t.button, "click", (() => this.isOpen() ? this.hide() : this.show())), i(document, "keyup", (t => this.isOpen() && (t.key === n || t.code === n) && this.hide())), i(document, ["touchstart", "mousedown"], (e => { this.isOpen() && !l(e).some((e => e === t.app || e === t.button)) && this.hide() }), { capture: !0 })) } if (e.adjustableNumbers) { const e = { rgba: [255, 255, 255, 1], hsva: [360, 100, 100, 1], hsla: [360, 100, 100, 1], cmyk: [100, 100, 100, 100] }; p(t.interaction.result, ((t, o, n) => { const i = e[this.getColorRepresentation().toLowerCase()]; if (i) { const e = i[n], s = t + (e >= 100 ? 1e3 * o : o); return s <= 0 ? 0 : Number((s < e ? s : e).toPrecision(3)) } return t })) } if (e.autoReposition && !e.inline) { let t = null; const n = this; o.push(i(window, ["scroll", "resize"], (() => { n.isOpen() && (e.closeOnScroll && n.hide(), null === t ? (t = setTimeout((() => t = null), 100), requestAnimationFrame((function e() { n._rePositioningPicker(), null !== t && requestAnimationFrame(e) }))) : (clearTimeout(t), t = setTimeout((() => t = null), 100))) }), { capture: !0 })) } this._eventBindings = o } _rePositioningPicker() { const { options: t } = this; if (!t.inline) { if (!this._nanopop.update({ container: document.body.getBoundingClientRect(), position: t.position })) { const t = this._root.app, e = t.getBoundingClientRect(); t.style.top = (window.innerHeight - e.height) / 2 + "px", t.style.left = (window.innerWidth - e.width) / 2 + "px" } } } _updateOutput(t) { const { _root: e, _color: o, options: n } = this; if (e.interaction.type()) { const t = `to${e.interaction.type().getAttribute("data-type")}`; e.interaction.result.value = "function" == typeof o[t] ? o[t]().toString(n.outputPrecision) : "" } !this._initializingActive && this._recalc && this._emit("change", o, t, this) } _clearColor(t = !1) { const { _root: e, options: o } = this; o.useAsButton || e.button.style.setProperty("--pcr-color", "rgba(0, 0, 0, 0.15)"), e.button.classList.add("clear"), o.showAlways || this.hide(), this._lastColor = null, this._initializingActive || t || (this._emit("save", null), this._emit("clear")) } _parseLocalColor(t) { const { values: e, type: o, a: n } = w(t), { lockOpacity: i } = this.options, s = void 0 !== n && 1 !== n; return e && 3 === e.length && (e[3] = void 0), { values: !e || i && s ? null : e, type: o } } _t(t) { return this.options.i18n[t] || L.I18N_DEFAULTS[t] } _emit(t, ...e) { this._eventListener[t].forEach((t => t(...e, this))) } on(t, e) { return this._eventListener[t].push(e), this } off(t, e) { const o = this._eventListener[t] || [], n = o.indexOf(e); return ~n && o.splice(n, 1), this } addSwatch(t) { const { values: e } = this._parseLocalColor(t); if (e) { const { _swatchColors: t, _root: o } = this, n = A(...e), s = r(`', + primary_btn: { + text: 'Accept all', + role: 'accept_all' + }, + secondary_btn: { + text: 'Reject all', + role: 'accept_necessary' + } + }, + settings_modal: { + title: 'Cookie preferences', + save_settings_btn: 'Save settings', + accept_all_btn: 'Accept all', + reject_all_btn: 'Reject all', + close_btn_label: 'Close', + cookie_table_headers: [ + {col1: 'Name'}, + {col2: 'Domain'}, + {col3: 'Expiration'}, + {col4: 'Description'} + ], + blocks: [ + { + title: 'Cookie usage 📢', + description: 'You can choose for each category to opt-in/out whenever you want.' + }, + { + title: 'Strictly necessary cookies', + description: 'Strictly necessary cookies are used to make the site work.', + toggle: { + value: 'necessary', + enabled: true, + readonly: true + }, + cookie_table: [ + { + col1: 'cc_cookie', + col2: 'This site', + col3: '182 days', + col4: 'The settings of user\'s cookie consent' + } + ] + }, + { + title: 'Metrics cookies', + description: 'Metrics cookies are used by us to check how the site is used by users. AdBlockers will block the metrics cookies even if consent is given. No bypass is used by us.', + toggle: { + value: 'metrics', + enabled: false, + readonly: false + }, + cookie_table: [ + { + col1: '_ym_d', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Saves the date of the user\'s first site session' + }, + { + col1: '_ym_uid', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Used for identifying site users', + }, + { + col1: 'i', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Used for identifying site users', + }, + { + col1: 'yandexuid', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Used for identifying site users', + }, + { + col1: 'yuidss', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Used for identifying site users', + }, + { + col1: 'ymex', + col2: 'yandex.ru', + col3: '1 year', + col4: 'Stores auxiliary information for Yandex.Metrica performance: ID creation time and their alternative values', + }, + { + col1: '_ym_isad', + col2: 'yandex.ru', + col3: '2 days', + col4: 'Determines whether a user has ad blockers', + }, + { + col1: 'yabs-sid', + col2: 'yandex.ru', + col3: 'Session', + col4: 'Session ID', + } + ] + }, + { + title: 'More information', + description: 'For any questions about the cookies and your choices, open an issue in our repository!', + } + ] + } + }, + 'ru': { + consent_modal: { + title: 'Мы используем куки!', + description: 'Этот сайт использует базовые и метрические куки, чтобы получить базовое представление о нашей пользовательской базе. Последние будут использованы только после согласия. ', + primary_btn: { + text: 'Разрешить все', + role: 'accept_all' + }, + secondary_btn: { + text: 'Запретить все', + role: 'accept_necessary' + } + }, + settings_modal: { + title: 'Настройки', + save_settings_btn: 'Сохранить', + accept_all_btn: 'Разрешить все', + reject_all_btn: 'Запретить все', + close_btn_label: 'Закрыть', + cookie_table_headers: [ + {col1: 'Имя'}, + {col2: 'Домен'}, + {col3: 'Срок действия'}, + {col4: 'Описание'} + ], + blocks: [ + { + title: 'Использование куки 📢', + description: 'Вы можете выбрать для каждой категории разрешение/запрет в любое время.' + }, + { + title: 'Необходимые', + description: 'Необходимые куки для работы сайта.', + toggle: { + value: 'necessary', + enabled: true, + readonly: true + }, + cookie_table: [ + { + col1: 'cc_cookie', + col2: 'Этот сайт', + col3: '182 дня', + col4: 'Настроки предпочтений использования куки' + } + ] + }, + { + title: 'Метрики', + description: 'Метрические куки используются нами для того, чтобы получить базовое представление о нашей пользовательской базе. Блокировщики рекламы будут блокировать метрики, даже если будет дано согласие. Мы не обходим блокировщики. ', + toggle: { + value: 'metrics', + enabled: false, + readonly: false + }, + cookie_table: [ + { + col1: '_ym_d', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Хранит дату первого визита посетителя на сайт' + }, + { + col1: '_ym_uid', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Позволяет различать посетителей', + }, + { + col1: 'i', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Позволяет различать посетителей', + }, + { + col1: 'yandexuid', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Позволяет различать посетителей', + }, + { + col1: 'yuidss', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Позволяет различать посетителей', + }, + { + col1: 'ymex', + col2: 'yandex.ru', + col3: '1 год', + col4: 'Хранит вспомогательную информацию для работы Метрики: время создания идентификаторов и их альтернативные значения', + }, + { + col1: '_ym_isad', + col2: 'yandex.ru', + col3: '2 дня', + col4: 'Используется для определения наличия у посетителя блокировщиков рекламы', + }, + { + col1: 'yabs-sid', + col2: 'yandex.ru', + col3: 'Сессия', + col4: 'Идентификатор визита', + } + ] + }, + { + title: 'Больше информации', + description: 'Если у вас возникнут вопросы о куки, создайте issue в нашем репозиторий! ', + } + ] + } + } + } +}); \ No newline at end of file diff --git a/js/decode.min.js b/js/decode.min.js new file mode 100644 index 00000000..8201f8cc --- /dev/null +++ b/js/decode.min.js @@ -0,0 +1 @@ +export let BrotliDecode = (() => { function f(f) { this.data = f, this.offset = 0 } let w = Int32Array.from([256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080]), b = Int32Array.from([1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15]), j = Int32Array.from([0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3]), l = Int32Array.from([0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3]), m = Int32Array.from([131072, 131076, 131075, 196610, 131072, 131076, 131075, 262145, 131072, 131076, 131075, 196610, 131072, 131076, 131075, 262149]), p = Int32Array.from([1, 5, 9, 13, 17, 25, 33, 41, 49, 65, 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, 753, 1265, 2289, 4337, 8433, 16625]), q = Int32Array.from([2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 24]), o = Int16Array.from([0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24]), n = Int16Array.from([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24]), g = new Int16Array(2816); function k(f) { let w = -1, b = 16; for (; b > 0;)f >>> b != 0 && (w += b, f >>>= b), b >>= 1; return w + f } function s(f, w, b) { return 16 + w + 2 * (b << f) } function v(f, w, b) { if (f < b + (2 << w)) throw "maxDistance is too small"; let j = 4 + (f - b >> w), l = k(j) - 1; return ((l - 1 << 1 | j >> l & 1) - 1 << w) + (1 << w) + b + 16 } function t(f, w) { if (0 != f.j) throw "State MUST be uninitialized"; f.l = new Int32Array(3091), f.l[0] = 7, f.m = 3; let b = v(2147483644, 3, 120); f.p = new Int8Array(b), f.q = new Int32Array(b), f.input = w, function (f) { f.o = new Int8Array(4160), f.g = 0, f.k = new Int16Array(2080), f.s = 32, f.v = 2048, f.t = 0, E(f) }(f), f.j = 1 } function e(f) { if (f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), 0 != _(f, 1)) { let w = _(f, 3); return 0 == w ? 1 : _(f, w) + (1 << w) } return 0 } function d(f, w, b) { let j = f[w], l = b.g >>> b.s; j += 255 & l; let m = f[j] >> 16, p = 65535 & f[j]; return m <= 8 ? (b.s += m, p) : (j += p, j += (l & (1 << m) - 1) >>> 8, b.s += 8 + (f[j] >> 16), 65535 & f[j]) } function H(f, w, b) { b.s >= 16 && (b.g = b.k[b.v++] << 16 | b.g >>> 16, b.s -= 16); let j = d(f, w, b), l = q[j]; return b.s >= 16 && (b.g = b.k[b.v++] << 16 | b.g >>> 16, b.s -= 16), p[j] + (l <= 16 ? _(b, l) : X(b, l)) } function a(f, w) { let b = f[w]; for (; w > 0; w--)f[w] = f[w - 1]; f[0] = b } function u(f, w, j, l, p) { let q = new Int32Array(f), o = new Int32Array(18), n = 32, g = 0; for (let f = w; f < 18 && n > 0; f++) { let w = b[f]; p.s >= 16 && (p.g = p.k[p.v++] << 16 | p.g >>> 16, p.s -= 16); let j = p.g >>> p.s & 15; p.s += m[j] >> 16; let l = 65535 & m[j]; o[w] = l, 0 != l && (n -= 32 >> l, g++) } if (0 != n && 1 != g) throw "Corrupted Huffman code histogram"; return function (f, w, b, j) { let l = 0, m = 8, p = 0, q = 0, o = 32768, n = new Int32Array(33); for (c(n, n.length - 1, 5, f, 18); l < w && o > 0;) { j.v > 2030 && C(j), j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16); let f = j.g >>> j.s & 31; j.s += n[f] >> 16; let g = 65535 & n[f]; if (g < 16) p = 0, b[l++] = g, 0 != g && (m = g, o -= 32768 >> g); else { let f = g - 14, n = 0; 16 == g && (n = m), q != n && (p = 0, q = n); let k = p; p > 0 && (p -= 2, p <<= f), j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16), p += _(j, f) + 3; let s = p - k; if (l + s > w) throw "symbol + repeatDelta > numSymbols"; for (let f = 0; f < s; f++)b[l++] = q; 0 != q && (o -= s << 15 - q) } } if (0 != o) throw "Unused space"; b.fill(0, l, w) }(o, f, q, p), c(j, l, 8, q, f) } function z(f, w, b, j, l) { l.v > 2030 && C(l), l.s >= 16 && (l.g = l.k[l.v++] << 16 | l.g >>> 16, l.s -= 16); let m = _(l, 2); return 1 == m ? function (f, w, b, j, l) { let m = new Int32Array(w), p = new Int32Array(4), q = 1 + k(f - 1), o = _(l, 2) + 1; for (let f = 0; f < o; f++) { l.s >= 16 && (l.g = l.k[l.v++] << 16 | l.g >>> 16, l.s -= 16); let b = _(l, q); if (b >= w) throw "Can't readHuffmanCode"; p[f] = b } !function (f, w) { for (let b = 0; b < w - 1; ++b)for (let j = b + 1; j < w; ++j)if (f[b] == f[j]) throw "Duplicate simple Huffman code symbol" }(p, o); let n = o; switch (4 == o && (n += _(l, 1)), n) { case 1: m[p[0]] = 1; break; case 2: m[p[0]] = 1, m[p[1]] = 1; break; case 3: m[p[0]] = 1, m[p[1]] = 2, m[p[2]] = 2; break; case 4: m[p[0]] = 2, m[p[1]] = 2, m[p[2]] = 2, m[p[3]] = 2; break; case 5: m[p[0]] = 1, m[p[1]] = 2, m[p[2]] = 3, m[p[3]] = 3 }return c(b, j, 8, m, w) }(f, w, b, j, l) : u(w, m, b, j, l) } function h(f, b, j) { j.v > 2030 && C(j); let l = e(j) + 1; if (1 == l) return b.fill(0, 0, f), l; j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16); let m = 0; 0 != _(j, 1) && (m = _(j, 4) + 1); let p = l + m, q = w[p + 31 >> 5], o = new Int32Array(q + 1), n = o.length - 1; z(p, p, o, n, j); for (let w = 0; w < f;) { j.v > 2030 && C(j), j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16); let l = d(o, n, j); if (0 == l) b[w] = 0, w++; else if (l <= m) { j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16); let m = (1 << l) + _(j, l); for (; 0 != m;) { if (w >= f) throw "Corrupted context map"; b[w] = 0, w++, m-- } } else b[w] = l - m, w++ } return j.s >= 16 && (j.g = j.k[j.v++] << 16 | j.g >>> 16, j.s -= 16), 1 == _(j, 1) && function (f, w) { let b = new Int32Array(256); for (let f = 0; f < 256; f++)b[f] = f; for (let j = 0; j < w; j++) { let w = 255 & f[j]; f[j] = b[w], 0 != w && a(b, w) } }(b, f), l } function i(f, w, b) { let j = f.H, l = 4 + 2 * w; f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let m = d(f.l, 2 * w, f), p = H(f.l, 2 * w + 1, f); return 1 == m ? m = j[l + 1] + 1 : 0 == m ? m = j[l] : m -= 2, m >= b && (m -= b), j[l] = j[l + 1], j[l + 1] = m, p } function r(f) { f.u = i(f, 0, f.h); let w = f.H[5]; f.i = w << 6, f.I = 255 & f.R[f.i]; let b = f.K[w]; f.T = b << 9, f.W = f.T + 256 } function I(f) { f.B = i(f, 1, f.Y), f.S = f.H[7] } function R(f) { f.A = i(f, 2, f.V), f.D = f.H[9] << 2 } function K(f) { if (0 != f.F) return f.P = 10, void (f.j = 12); f.U = new Int32Array(0), f.C = new Int32Array(0), f.J = new Int32Array(0), f.v > 2030 && C(f), function (f) { if (f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), f.F = _(f, 1), f._ = 0, f.X = 0, f.M = 0, 0 != f.F && 0 != _(f, 1)) return; let w = _(f, 2) + 4; if (7 == w) { if (f.M = 1, 0 != _(f, 1)) throw "Corrupted reserved bit"; let w = _(f, 2); if (0 == w) return; for (let b = 0; b < w; b++) { f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let j = _(f, 8); if (0 == j && b + 1 == w && w > 1) throw "Exuberant nibble"; f._ |= j << 8 * b } } else for (let b = 0; b < w; b++) { f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let j = _(f, 4); if (0 == j && b + 1 == w && w > 4) throw "Exuberant nibble"; f._ |= j << 4 * b } f._++, 0 == f.F && (f.X = _(f, 1)) }(f), 0 == f._ && 0 == f.M || (0 != f.X || 0 != f.M ? (G(f), f.j = 0 != f.M ? 5 : 6) : f.j = 3, 0 == f.M && (f.G += f._, f.G > 1 << 30 && (f.G = 1 << 30), f.O < f.Z && function (f) { let w = f.Z; if (w > f.G) { let b = f.G; for (; w >> 1 > b;)w >>= 1; 0 == f.F && w < 16384 && f.Z >= 16384 && (w = 16384) } if (w <= f.O) return; let b = new Int8Array(w + 37); 0 != f.L.length && b.set(f.L.subarray(0, 0 + f.O), 0), f.L = b, f.O = w }(f))) } function T(f, w, b) { let j = f.l[2 * w]; if (b <= 1) return f.l[2 * w + 1] = j, f.l[2 * w + 2] = j, 1 << 28; let l = b + 2; j += z(l, l, f.l, 2 * w, f), f.l[2 * w + 1] = j; return j += z(26, 26, f.l, 2 * w + 1, f), f.l[2 * w + 2] = j, H(f.l, 2 * w + 1, f) } function y(f) { f.h = e(f) + 1, f.u = T(f, 0, f.h), f.Y = e(f) + 1, f.B = T(f, 1, f.Y), f.V = e(f) + 1, f.A = T(f, 2, f.V), f.v > 2030 && C(f), f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), f.N = _(f, 2), f.$ = _(f, 4) << f.N, f.K = new Int8Array(f.h); for (let w = 0; w < f.h;) { let b = ff(w + 96, f.h); for (; w < b; ++w)f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), f.K[w] = _(f, 2); f.v > 2030 && C(f) } f.R = new Int8Array(f.h << 6); let w = h(f.h << 6, f.R, f); f.ff = 1; for (let w = 0; w < f.h << 6; w++)if (f.R[w] != w >> 6) { f.ff = 0; break } f.wf = new Int8Array(f.V << 2); let b = h(f.V << 2, f.wf, f); f.U = Y(256, 256, w, f), f.C = Y(704, 704, f.Y, f); let j = s(f.N, f.$, 24), l = j; 1 == f.bf && (j = s(f.N, f.$, 62), l = v(2147483644, f.N, f.$)), f.J = Y(j, l, b, f), function (f, w) { let b = f.p, j = f.q, l = f.N, m = f.$, p = 1 << l, q = 1, o = 0, n = 16; for (let f = 0; f < m; ++f)b[n] = 0, j[n] = f + 1, ++n; for (; n < w;) { let f = m + ((2 + o << q) - 4 << l) + 1; for (let w = 0; w < p; ++w)b[n] = q, j[n] = f + w, ++n; q += o, o ^= 1 } }(f, l), f.i = 0, f.D = 0, f.T = 512 * f.K[0], f.W = f.T + 256, f.I = 0, f.S = 0, f.H[4] = 1, f.H[5] = 0, f.H[6] = 1, f.H[7] = 0, f.H[8] = 1, f.H[9] = 0 } function W(f) { let w = f.L; if (f._ <= 0) return M(f), void (f.j = 2); let b = ff(f.O - f.jf, f._); if (function (f, w, b, j) { if (0 != (7 & f.s)) throw "Unaligned copyBytes"; for (; 32 != f.s && 0 != j;)w[b++] = f.g >>> f.s, f.s += 8, j--; if (0 == j) return; let l = ff(x(f), j >> 1); if (l > 0) { let m = f.v << 1, p = l << 1; w.set(f.o.subarray(m, m + p), b), b += p, j -= p, f.v += l } if (0 == j) return; if (x(f) > 0) { for (f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); 0 != j;)w[b++] = f.g >>> f.s, f.s += 8, j--; return void J(f, 0) } for (; j > 0;) { let l = wf(f.input, w, b, j); if (-1 == l) throw "Unexpected end of input"; b += l, j -= l } }(f, w, f.jf, b), f._ -= b, f.jf += b, f.jf == f.O) return f.P = 6, void (f.j = 12); M(f), f.j = 2 } function B(f) { let w = ff(f.lf - f.mf, f.pf - f.qf); return 0 != w && (f.nf.set(f.L.subarray(f.qf, f.qf + w), f.gf + f.mf), f.mf += w, f.qf += w), f.mf < f.lf ? 1 : 0 } function Y(f, b, j, l) { let m = w[b + 31 >> 5], p = new Int32Array(j + j * m), q = j; for (let w = 0; w < j; ++w)p[w] = q, q += z(f, b, p, w, l); return p } function S(f) { let w = f.O; return 0 != f.kf && (w = ff(w, f.qf + f.lf - f.mf)), w } function A(f, w) { if (f.sf > 2147483644) throw "Invalid backward reference"; let b = f.sf - f.maxDistance - 1 - f.vf; if (b < 0) !function (f, w, b) { -1 == f.tf && function (f) { f.ef = new Int8Array(256); let w = 8; for (; f.vf - 1 >>> w != 0;)w++; w -= 8, f.tf = w; let b = 0, j = 0; for (; b < f.vf;) { for (; f.df[j + 1] < b;)j++; f.ef[b >>> w] = j, b += 1 << w } }(f); let j = f.ef[w >>> f.tf]; for (; w >= f.df[j + 1];)j++; if (f.vf > w + b) throw "Invalid backward reference"; f.m = f.m + 1 & 3, f.H[f.m] = f.sf, f._ -= b, f.Hf = j, f.af = w - f.df[j], f.uf = b, f.zf = 0 }(f, -b - 1, f.hf), f.j = 14; else { let j = L, l = f.hf; if (l > 31) throw "Invalid backward reference"; let m = $[l]; if (0 == m) throw "Invalid backward reference"; let p = N[l], q = b >>> m; p += (b & (1 << m) - 1) * l; let o = F; if (q >= o.if) throw "Invalid backward reference"; let n = function (f, w, b, j, l, m, p) { let q = w, o = m.rf, n = m.If, g = m.Rf, k = 3 * p, s = o[k], v = o[k + 1], t = o[k + 2], e = g[s], d = g[s + 1], H = g[t], a = g[t + 1], u = v - 11, z = v - 0; (u < 1 || u > 9) && (u = 0); (z < 1 || z > 9) && (z = 0); for (; e != d;)f[q++] = n[e++]; u > l && (u = l); j += u, l -= u; let h = l -= z; for (; h > 0;)f[q++] = b[j++], h--; if (10 == v || 11 == v) { let w = q - l; for (10 == v && (l = 1); l > 0;) { let b = 255 & f[w]; b < 192 ? (b >= 97 && b <= 122 && (f[w] ^= 32), w += 1, l -= 1) : b < 224 ? (f[w + 1] ^= 32, w += 2, l -= 2) : (f[w + 2] ^= 5, w += 3, l -= 3) } } else if (21 == v || 22 == v) { let w = q - l, b = m.Kf[p], j = 16777216 - (32768 & b) + (32767 & b); for (; l > 0;) { let b = 1, m = 255 & f[w]; if (m < 128) j += m, f[w] = 127 & j; else if (m < 192); else if (m < 224) if (l >= 2) { let l = f[w + 1]; j += 63 & l | (31 & m) << 6, f[w] = 192 | j >> 6 & 31, f[w + 1] = 192 & l | 63 & j, b = 2 } else b = l; else if (m < 240) if (l >= 3) { let l = f[w + 1], p = f[w + 2]; j += 63 & p | (63 & l) << 6 | (15 & m) << 12, f[w] = 224 | j >> 12 & 15, f[w + 1] = 192 & l | j >> 6 & 63, f[w + 2] = 192 & p | 63 & j, b = 3 } else b = l; else if (m < 248) if (l >= 4) { let l = f[w + 1], p = f[w + 2], q = f[w + 3]; j += 63 & q | (63 & p) << 6 | (63 & l) << 12 | (7 & m) << 18, f[w] = 240 | j >> 18 & 7, f[w + 1] = 192 & l | j >> 12 & 63, f[w + 2] = 192 & p | j >> 6 & 63, f[w + 3] = 192 & q | 63 & j, b = 4 } else b = l; w += b, l -= b, 21 == v && (l = 0) } } for (; H != a;)f[q++] = n[H++]; return q - w }(f.L, f.jf, j, p, l, o, q); if (f.jf += n, f._ -= n, f.jf >= w) return f.P = 4, void (f.j = 12); f.j = 4 } } function V(f, w) { let b = f.jf, j = b; for (; f.uf != f.zf;) { let j = w - b, n = f.df[f.Hf + 1] - f.df[f.Hf] - f.af, g = f.uf - f.zf; if (g > n && (g = n), g > j && (g = j), l = f.L, m = b, p = f.Tf[f.Hf], q = f.af, o = f.af + g, l.set(p.slice(q, o), m), b += g, f.af += g, f.zf += g, g == n && (f.Hf++, f.af = 0), b >= w) break } var l, m, p, q, o; return b - j } function D(f) { if (0 == f.j) throw "Can't decompress until initialized"; if (11 == f.j) throw "Can't decompress after close"; if (1 == f.j) { let w = function (f) { let w = f.bf; if (f.bf = 0, f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), 0 == _(f, 1)) return 16; let b = _(f, 3); return 0 != b ? 17 + b : (b = _(f, 3), 0 != b ? 1 == b ? 0 == w ? -1 : (f.bf = 1, 1 == _(f, 1) ? -1 : (b = _(f, 6), b < 10 || b > 30 ? -1 : b)) : 8 + b : 17) }(f); if (-1 == w) throw "Invalid 'windowBits' code"; f.Z = 1 << w, f.yf = f.Z - 16, f.j = 2 } let w = S(f), b = f.O - 1, m = f.L; for (; 10 != f.j;)switch (f.j) { case 2: if (f._ < 0) throw "Invalid metablock length"; K(f), w = S(f), b = f.O - 1, m = f.L; continue; case 3: y(f), f.j = 4; case 4: if (f._ <= 0) { f.j = 2; continue } f.v > 2030 && C(f), 0 == f.B && I(f), f.B--, f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let p = d(f.C, f.S, f) << 2, q = g[p], o = g[p + 1], n = g[p + 2]; f.Wf = g[p + 3], f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let k = 255 & q; f.Bf = o + (k <= 16 ? _(f, k) : X(f, k)), f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let s = q >> 8; f.hf = n + (s <= 16 ? _(f, s) : X(f, s)), f.Yf = 0, f.j = 7; case 7: if (0 != f.ff) { for (; f.Yf < f.Bf;)if (f.v > 2030 && C(f), 0 == f.u && r(f), f.u--, f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), m[f.jf] = d(f.U, f.I, f), f.jf++, f.Yf++, f.jf >= w) { f.P = 7, f.j = 12; break } } else { let j = 255 & m[f.jf - 1 & b], l = 255 & m[f.jf - 2 & b]; for (; f.Yf < f.Bf;) { f.v > 2030 && C(f), 0 == f.u && r(f); let b = O[f.T + j] | O[f.W + l], p = 255 & f.R[f.i + b]; if (f.u--, l = j, f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), j = d(f.U, p, f), m[f.jf] = j, f.jf++, f.Yf++, f.jf >= w) { f.P = 7, f.j = 12; break } } } if (7 != f.j) continue; if (f._ -= f.Bf, f._ <= 0) { f.j = 4; continue } let v = f.Wf; if (v < 0) f.sf = f.H[f.m]; else { f.v > 2030 && C(f), 0 == f.A && R(f), f.A--, f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16); let w = 255 & f.wf[f.D + v]; if (v = d(f.J, w, f), v < 16) { let w = f.m + j[v] & 3; if (f.sf = f.H[w] + l[v], f.sf < 0) throw "Negative distance" } else { let w, b = f.p[v]; f.s + b <= 32 ? w = _(f, b) : (f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), w = b <= 16 ? _(f, b) : X(f, b)), f.sf = f.q[v] + (w << f.N) } } if (f.maxDistance != f.yf && f.jf < f.yf ? f.maxDistance = f.jf : f.maxDistance = f.yf, f.sf > f.maxDistance) { f.j = 9; continue } if (v > 0 && (f.m = f.m + 1 & 3, f.H[f.m] = f.sf), f.hf > f._) throw "Invalid backward reference"; f.Yf = 0, f.j = 8; case 8: let t = f.jf - f.sf & b, e = f.jf, H = f.hf - f.Yf, a = t + H, u = e + H; if (a < b && u < b) { if (H < 12 || a > e && u > t) for (let f = 0; f < H; f += 4)m[e++] = m[t++], m[e++] = m[t++], m[e++] = m[t++], m[e++] = m[t++]; else m.copyWithin(e, t, a); f.Yf += H, f._ -= H, f.jf += H } else for (; f.Yf < f.hf;)if (m[f.jf] = m[f.jf - f.sf & b], f._--, f.jf++, f.Yf++, f.jf >= w) { f.P = 8, f.j = 12; break } 8 == f.j && (f.j = 4); continue; case 9: A(f, w); continue; case 14: if (f.jf += V(f, w), f.jf >= w) return f.P = 14, void (f.j = 12); f.j = 4; continue; case 5: for (; f._ > 0;)f.v > 2030 && C(f), f.s >= 16 && (f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16), _(f, 8), f._--; f.j = 2; continue; case 6: W(f); continue; case 12: f.pf = ff(f.jf, f.O), f.j = 13; case 13: if (0 == B(f)) return; f.jf >= f.yf && (f.maxDistance = f.yf), f.jf >= f.O && (f.jf > f.O && m.copyWithin(0, f.O, f.jf), f.jf &= b, f.qf = 0), f.j = f.P; continue; default: throw "Unexpected state " + f.j }if (10 == f.j) { if (f._ < 0) throw "Invalid metablock length"; G(f), J(f, 1) } } !function (f) { let w = new Int16Array(24), b = new Int16Array(24); b[0] = 2; for (let f = 0; f < 23; ++f)w[f + 1] = w[f] + (1 << o[f]), b[f + 1] = b[f] + (1 << n[f]); for (let j = 0; j < 704; ++j) { let l = j >>> 6, m = -4; l >= 2 && (l -= 2, m = 0); let p = (170064 >>> 2 * l & 3) << 3 | j >>> 3 & 7, q = (156228 >>> 2 * l & 3) << 3 | 7 & j, g = b[q], k = m + (g > 4 ? 3 : g - 2), s = 4 * j; f[s + 0] = o[p] | n[q] << 8, f[s + 1] = w[p], f[s + 2] = b[q], f[s + 3] = k } }(g); let F = new function (f, w, b) { this.if = 0, this.rf = new Int32Array(0), this.If = new Int8Array(0), this.Rf = new Int32Array(0), this.Kf = new Int16Array(0), this.if = f, this.rf = new Int32Array(3 * f), this.Kf = new Int16Array(f), this.If = new Int8Array(w), this.Rf = new Int32Array(b + 1) }(121, 167, 50); function Q(f, w) { let b = 1 << w - 1; for (; 0 != (f & b);)b >>= 1; return (f & b - 1) + b } function P(f, w, b, j, l) { do { f[w + (j -= b)] = l } while (j > 0) } function U(f, w, b) { let j = 1 << w - b; for (; w < 15 && (j -= f[w], !(j <= 0));)w++, j <<= 1; return w - b } function c(f, w, b, j, l) { let m, p, q = f[w], o = new Int32Array(l), n = new Int32Array(16), g = new Int32Array(16); for (p = 0; p < l; p++)n[j[p]]++; g[1] = 0; for (let f = 1; f < 15; f++)g[f + 1] = g[f] + n[f]; for (p = 0; p < l; p++)0 != j[p] && (o[g[j[p]]++] = p); let k = b, s = 1 << k, v = s; if (1 == g[15]) { for (m = 0; m < v; m++)f[q + m] = o[0]; return v } m = 0, p = 0; for (let w = 1, j = 2; w <= b; w++, j <<= 1)for (; n[w] > 0; n[w]--)P(f, q + m, j, s, w << 16 | o[p++]), m = Q(m, w); let t = v - 1, e = -1, d = q; for (let w = b + 1, j = 2; w <= 15; w++, j <<= 1)for (; n[w] > 0; n[w]--)(m & t) != e && (d += s, k = U(n, w, b), s = 1 << k, v += s, e = m & t, f[q + e] = k + b << 16 | d - q - e), P(f, d + (m >> b), j, s, w - b << 16 | o[p++]), m = Q(m, w); return v } function C(f) { if (0 != f.t) { if (x(f) >= -2) return; throw "No more input" } let w = f.v << 1, b = 4096 - w; for (f.o.copyWithin(0, w, 4096), f.v = 0; b < 4096;) { let w = 4096 - b, j = wf(f.input, f.o, b, w); if (j <= 0) { f.t = 1, f.Sf = b, b += 1; break } b += j } !function (f, w) { let b = f.o, j = w >> 1, l = f.k; for (let f = 0; f < j; ++f)l[f] = 255 & b[2 * f] | (255 & b[2 * f + 1]) << 8 }(f, b) } function J(f, w) { if (0 == f.t) return; let b = (f.v << 1) + (f.s + 7 >> 3) - 4; if (b > f.Sf) throw "Read after end"; if (0 != w && b != f.Sf) throw "Unused bytes after end" } function _(f, w) { let b = f.g >>> f.s & (1 << w) - 1; return f.s += w, b } function X(f, w) { let b = _(f, 16); return f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16, b | _(f, w - 16) << 16 } function E(f) { f.v > 2030 && C(f), J(f, 0), f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16, f.g = f.k[f.v++] << 16 | f.g >>> 16, f.s -= 16 } function M(f) { 32 == f.s && E(f) } function G(f) { let w = 32 - f.s & 7; if (0 != w) { if (0 != _(f, w)) throw "Corrupted padding bits" } } function x(f) { let w = 2048; return 0 != f.t && (w = f.Sf + 1 >> 1), w - f.v } !function (f, w, b, j, l) { let m = j.length, p = 1, q = 0; for (let b = 0; b < m; ++b) { let l = j.charCodeAt(b); 35 == l ? w[p++] = q : f[q++] = l } for (let f = 0; f < 363; ++f)b[f] = l.charCodeAt(f) - 32 }(F.If, F.Rf, F.rf, '# #s #, #e #.# the #.com/#\xc2\xa0# of # and # in # to #"#">#\n#]# for # a # that #. # with #\'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #="# of the #. This #,# not #er #al #=\'#ful #ive #less #est #ize #ous #', " !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K"); let O = new Int32Array(2048); function Z() { this.L = new Int8Array(0), this.K = new Int8Array(0), this.R = new Int8Array(0), this.wf = new Int8Array(0), this.p = new Int8Array(0), this.nf = new Int8Array(0), this.o = new Int8Array(0), this.k = new Int16Array(0), this.Af = new Int32Array(0), this.H = new Int32Array(0), this.l = new Int32Array(0), this.U = new Int32Array(0), this.C = new Int32Array(0), this.J = new Int32Array(0), this.q = new Int32Array(0), this.j = 0, this.P = 0, this.g = 0, this.s = 0, this.v = 0, this.Sf = 0, this.t = 0, this._ = 0, this.F = 0, this.X = 0, this.M = 0, this.u = 0, this.h = 0, this.B = 0, this.Y = 0, this.A = 0, this.V = 0, this.jf = 0, this.maxDistance = 0, this.m = 0, this.ff = 0, this.I = 0, this.S = 0, this.Yf = 0, this.Bf = 0, this.i = 0, this.D = 0, this.T = 0, this.W = 0, this.Wf = 0, this.$ = 0, this.N = 0, this.sf = 0, this.hf = 0, this.yf = 0, this.Z = 0, this.O = 0, this.G = 0, this.gf = 0, this.lf = 0, this.mf = 0, this.qf = 0, this.pf = 0, this.kf = 0, this.bf = 0, this.Vf = 0, this.vf = 0, this.Hf = 0, this.af = 0, this.uf = 0, this.zf = 0, this.Tf = new Array(0), this.df = new Int32Array(0), this.tf = 0, this.ef = new Int8Array(0), this.input = null, this.L = new Int8Array(0), this.H = new Int32Array(10), this.H[0] = 16, this.H[1] = 15, this.H[2] = 11, this.H[3] = 4 } !function (f, w, b) { for (let w = 0; w < 256; ++w)f[w] = 63 & w, f[512 + w] = w >> 2, f[1792 + w] = 2 + (w >> 6); for (let b = 0; b < 128; ++b)f[1024 + b] = 4 * (w.charCodeAt(b) - 32); for (let w = 0; w < 64; ++w)f[1152 + w] = 1 & w, f[1216 + w] = 2 + (1 & w); let j = 1280; for (let w = 0; w < 19; ++w) { let l = 3 & w, m = b.charCodeAt(w) - 32; for (let w = 0; w < m; ++w)f[j++] = l } for (let w = 0; w < 16; ++w)f[1792 + w] = 1, f[2032 + w] = 6; f[1792] = 0, f[2047] = 7; for (let w = 0; w < 256; ++w)f[1536 + w] = f[1792 + w] << 3 }(O, " !! ! \"#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# ", "A/* ': & : $ \x81 @"); let L = null, N = new Int32Array(32), $ = new Int32Array(32); { let f = new Int8Array(122784), w = new Int32Array(25); !function (f, w, b, j, l, m) { let p = function (f) { let w = f.length, b = new Int8Array(w); for (let j = 0; j < w; ++j)b[j] = f.charCodeAt(j); return b }(w + b); if (p.length != f.length) throw "Corrupted brotli dictionary"; let q = 0, o = j.length; for (let f = 0; f < o; f += 2) { let w = j.charCodeAt(f) - 36, b = j.charCodeAt(f + 1) - 36; for (let f = 0; f < w; ++f)p[q] ^= 3, q++; for (let f = 0; f < b; ++f)p[q] ^= 236, q++ } for (let f = 0; f < m.length; ++f)l[f] = m.charCodeAt(f) - 65; f.set(p) }(f, 'wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+"sj`hfujo\'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sksolpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\x0elupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8\x0eojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\x0elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\x7f"+njmfyk9\x04abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\vwbmhzbqgaltoavpk965YIbub03s{\t\x7f~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\x05rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd\'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\x0e\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\x7f.\t"331*mgltX2^8X^8\tOld#pbow\x0e\t\n\nabmdwqjnabwk*x\x0e\t33s{\t~*8hl9\0effpbg=\x0ep9,,#X^8wloosovd+*x\tx\x0e\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\x0e\t~\x0e1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\x0e\tabmgprvfvf>#x~8;3s{8`hjmdx\x0e\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\x7f\x7f#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\x0fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\x7fpvjwfpoj`fkbqqz213!#ptffwwq=\x0e\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\x0fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\x0e\t?"pwffo#zlv#k1=\x0e\telqn#ifpvp233&#nfmv-\x0e\t\n\x0e\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\x7f`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\x0e\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\x7f\x7f#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\x7ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\x7f\x7f#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\x0evpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\vBl\bQ\x7f\vUm\x05Gx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\vBM\v|j\x04BV\tqw\tcC\bWI\npa\tfM\n{Z\x05{X\bTF\bVV\bVK\t\x7fm\x04kF\t[]\bPm\bTv\nsI\vpg\t[I\bQp\x04mx\v_W\n^M\npe\vQ}\vGu\nel\npe\x04Ch\x04BV\bTA\tSo\nzk\vGL\vxD\nd[\x05Jz\x05MY\bQp\x04li\nfl\npC\x05{B\x05Nt\vwT\ti_\bTg\x04QQ\n|p\vXN\bQS\vxD\x04QC\bWZ\tpD\vVS\bTW\x05Nt\x04Yh\nzu\x04Kj\x05N}\twr\tHa\n_D\tj`\vQ}\vWp\nxZ\x04{c\tji\tBU\nbD\x04a|\tTn\tpV\nZd\nmC\vEV\x05{X\tc}\tTo\bWl\bUd\tIQ\tcg\vxs\nXW\twR\vek\tc}\t]y\tJn\nrp\neg\npV\nz\\\x05{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHv\x04Su\bTF\v_W\vWs\vsI\x05m\x7f\nTT\ndc\tUS\t}f\tiZ\bWz\tc}\x04MD\tBe\tiD\v@@\bTl\bPv\t}t\x04Sw\x04M`\vnU\tkW\ved\nqo\vxY\tA|\bTz\vy`\x04BR\x04BM\tia\x04XU\nyu\x04n^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\t\x7fm\tav\tBN\vb\\\tpD\bTf\nY[\tJn\bQy\t[^\vWc\vyu\x04Dl\x04CJ\vWj\vHR\t`V\vuW\tQy\np@\vGu\x05pl\x04Jm\bW[\nLP\nxC\n`m\twQ\x05ui\x05\x7fR\nbI\twQ\tBZ\tWV\x04BR\npg\tcg\x05ti\x04CW\n_y\tRg\bQa\vQB\vWc\nYb\x05le\ngE\x04Su\nL[\tQ\x7f\tea\tdj\v]W\nb~\x04M`\twL\bTV\bVH\nt\x7f\npl\t|b\x05s_\bU|\bTa\x04oQ\x05lv\x04Sk\x04M`\bTv\vK}\nfl\tcC\x04oQ\x04BR\tHk\t|d\bQp\tHK\tBZ\vHR\bPv\vLx\vEZ\bT\x7f\bTv\tiD\x05oD\x05MU\vwB\x04Su\x05k`\x04St\ntC\tPl\tKg\noi\tjY\vxY\x04h}\nzk\bWZ\t\x7fm\ve`\tTB\tfE\nzk\t`z\x04Yh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYc\x04Kd\nfy\x04Yh\t[I\vDg\x04Jm\n]n\nlb\bUd\n{Z\tlu\tfs\x04oQ\bTW\x04Jm\vwB\tea\x04Yh\x04BC\tsb\tTn\nzU\n_y\vxY\tQ]\ngw\x04mt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\vRb\twQ\n]Q\x04QJ\bWg\vWa\bQj\ntC\bVH\nYm\vxs\bVK\nel\bWI\vxY\x04Cq\ntR\vHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\vxs\v_W\td{\vQ}\tcg\tTz\tA|\tCj\vLm\x05N}\x05m\x7f\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\vQ}\bTf\x05ka\x04Jm\v@@\bV`\tzp\n@N\x04Sw\tiI\tcg\noi\x04Su\bVw\x04lo\x04Cy\tc}\vb\\\tsU\x04BA\bWI\bTf\nxS\tVp\nd|\bTV\vbC\tNo\x05Ju\nTC\t|`\n{Z\tD]\bU|\tc}\x05lm\bTl\tBv\tPl\tc}\bQp\t\x7fm\nLk\tkj\n@N\x04Sb\x04KO\tj_\tp\\\nzU\bTl\bTg\bWI\tcf\x04XO\bWW\ndz\x04li\tBN\nd[\bWO\x04MD\vKC\tdj\tI_\bVV\ny\\\vLm\x05xl\txB\tkV\vb\\\vJW\vVS\tVx\vxD\td{\x04MD\bTa\t|`\vPz\x04R}\vWs\x04BM\nsI\x04CN\bTa\x04Jm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\vWh\vWk\nxS\vAz\vwX\nbI\x04oQ\tfw\nqI\nV|\nun\x05z\x7f\vpg\td\\\voA\x05{D\ti_\x05xB\bT\x7f\t`V\x05qr\tTT\x04g]\x04CA\vuR\tVJ\tT`\npw\vRb\tI_\nCx\x04Ro\vsI\x04Cj\x04Kh\tBv\tWV\x04BB\x05oD\x05{D\nhc\x04Km\v^R\tQE\n{I\np@\nc|\x05Gt\tc}\x04Dl\nzU\x05qN\tsV\x05k}\tHh\v|j\nqo\x05u|\tQ]\vek\x05\x7fZ\x04M`\x04St\npe\tdj\bVG\veE\t\x7fm\vWc\x04|I\n[W\tfL\bT\x7f\tBZ\x04Su\vKa\x04Cq\x05Nt\x04Y[\nqI\bTv\tfM\ti@\t}f\x04B\\\tQy\vBl\bWg\x04XD\x05kc\vx[\bVV\tQ]\t\x7fa\tPy\vxD\nfI\t}f\x05oD\tdj\tSG\x05ls\t~D\x04CN\n{Z\t\\v\n_D\nhc\vx_\x04C[\tAJ\nLM\tVx\x04CI\tbj\tc^\tcF\ntC\x04Sx\twr\x04XA\bU\\\t|a\vK\\\bTV\bVj\nd|\tfs\x04CX\ntb\bRw\tVx\tAE\tA|\bT\x7f\x05Nt\vDg\tVc\bTl\x04d@\npo\t\x7fM\tcF\npe\tiZ\tBo\bSq\nfH\x04l`\bTx\bWf\tHE\vF{\tcO\tfD\nlm\vfZ\nlm\veU\tdG\x04BH\bTV\tSi\x05MW\nwX\nz\\\t\\c\x04CX\nd}\tl}\bQp\bTV\tF~\bQ\x7f\t`i\ng@\x05nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\vxY\x04Kj\tAJ\x05uN\ti[\npe\x04Sk\vDg\vx]\bVb\bVV\nea\tkV\nqI\bTa\x04Sk\nAO\tpD\ntb\nts\nyi\bVg\ti_\v_W\nLk\x05Nt\tyj\tfM\x04R\x7f\tiI\bTl\vwX\tsV\vMl\nyu\tAJ\bVj\x04KO\tWV\vA}\vW\x7f\nrp\tiD\v|o\x05lv\vsI\x04BM\td~\tCU\bVb\x04eV\npC\vwT\tj`\tc}\vxs\vps\vvh\tWV\vGg\vAe\vVK\v]W\trg\vWc\x05F`\tBr\vb\\\tdZ\bQp\nqI\x04kF\nLk\vAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_\x05{A\x05wj\twN\v@@\bTe\ti_\n_D\twL\nAH\viK\vek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\nps\x05Gt\vVK\npl\x04S}\vWP\t|d\x04MD\vHV\bT\x7f\x04R}\x04M`\bTV\bVH\x05lv\x04Ch\bW[\x04Ke\tR{\v^R\tab\tBZ\tVA\tB`\nd|\nhs\x04Ke\tBe\x04Oi\tR{\td\\\x05nB\bWZ\tdZ\tVJ\x05Os\t\x7fm\x04uQ\vhZ\x04Q@\x04QQ\nfI\bW[\x04B\\\x04li\nzU\nMd\x04M`\nxS\bVV\n\\}\vxD\t\x7fm\bTp\x04IS\nc|\tkV\x05i~\tV{\vhZ\t|b\bWt\n@R\voA\vnU\bWI\tea\tB`\tiD\tc}\tTz\x04BR\vQB\x05Nj\tCP\t[I\bTv\t`W\x05uN\vpg\vpg\vWc\tiT\tbs\twL\tU_\tc\\\t|h\vKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|b\x04m`\bTv\nyd\nrp\bWf\tUX\x04BV\nzk\nd}\twQ\t}f\x04Ce\ved\bTW\bSB\nxU\tcn\bTb\ne\x7f\ta\\\tSG\bU|\npV\nN\\\x04Kn\vnU\tAt\tpD\v^R\vIr\x04b[\tR{\tdE\vxD\vWK\vWA\bQL\bW@\x04Su\bUd\nDM\tPc\x04CA\x04Dl\x04oQ\tHs\x05wi\x04ub\n\x7fa\bQp\x05Ob\nLP\bTl\x04Y[\vK}\tAJ\bQ\x7f\x04n^\vsA\bSM\nqM\bWZ\n^W\vz{\x04S|\tfD\bVK\bTv\bPv\x04BB\tCP\x04dF\tid\vxs\x04mx\vws\tcC\ntC\tyc\x05M`\vW\x7f\nrh\bQp\vxD\x04\\o\nsI\x04_k\nzu\x04kF\tfD\x04Xs\x04XO\tjp\bTv\x04BS\x05{B\tBr\nzQ\nbI\tc{\x04BD\x04BV\x05nO\bTF\tca\x05Jd\tfL\tPV\tI_\nlK\x04`o\twX\npa\tgu\bP}\x05{^\bWf\n{I\tBN\npa\x04Kl\vpg\tcn\tfL\vvh\x04Cq\bTl\vnU\bSq\x04Cm\twR\bUJ\npe\nyd\nYg\x04Cy\vKW\tfD\nea\x04oQ\tj_\tBv\x04nM\vID\bTa\nzA\x05pl\n]n\bTa\tR{\tfr\n_y\bUg\x05{X\x05kk\vxD\x04|I\x05xl\nfy\x04Ce\vwB\nLk\vd]\noi\n}h\tQ]\npe\bVw\x04Hk\x04OQ\nzk\tAJ\npV\bPv\ny\\\tA{\x04Oi\bSB\x04XA\veE\tjp\nq}\tiD\x05qN\v^R\t\x7fm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\vHV\bTf\tTn\x04\\N\x04\\N\nuB\x05lv\nyu\tTd\bTf\bPL\v]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\\x05ia\bWZ\tcF\x04Jm\n{Z\bWO\x04_k\x04Df\x04RR\td\\\bVV\vxs\x04BN\x05ti\x04lm\tTd\t]y\vHV\tSo\v|j\x04XX\tA|\vZ^\vGu\bTW\x05M`\x04kF\vhZ\vVK\tdG\vBl\tay\nxU\x05qE\x05nO\bVw\nqI\x04CX\ne\x7f\tPl\bWO\vLm\tdL\x05uH\x04Cm\tdT\x04fn\vwB\x05ka\vnU\n@M\nyT\tHv\t\\}\x04Kh\td~\x04Yh\x05k}\neR\td\\\bWI\t|b\tHK\tiD\bTW\x05MY\npl\bQ_\twr\vAx\tHE\bTg\bSq\x05vp\vb\\\bWO\nOl\nsI\nfy\vID\t\\c\n{Z\n^~\npe\nAO\tTT\vxv\x04k_\bWO\v|j\vwB\tQy\ti@\tPl\tHa\tdZ\x05k}\x04ra\tUT\vJc\ved\np@\tQN\nd|\tkj\tHk\x04M`\noi\twr\td\\\nlq\no_\nlb\nL[\tac\x04BB\x04BH\x04Cm\npl\tIQ\bVK\vxs\n`e\viK\npa\x04Oi\tUS\bTp\tfD\nPG\x05kk\x04XA\nz\\\neg\vWh\twR\x05qN\nqS\tcn\x04lo\nxS\n^W\tBU\nt\x7f\tHE\tp\\\tfF\tfw\bVV\bW@\tak\vVK\x05ls\tVJ\bVV\veE\x04\\o\nyX\nYm\x04M`\x05lL\nd|\nzk\tA{\x05sE\twQ\x04XT\nt\x7f\tPl\t]y\vwT\x05{p\x04MD\vb\\\tQ]\x04Kj\tJn\nAH\vRb\tBU\tHK\t\\c\nfI\x05m\x7f\nqM\n@R\tSo\noi\x04BT\tHv\n_y\x04Kh\tBZ\t]i\bUJ\tV{\x04Sr\nbI\vGg\ta_\bTR\nfI\nfl\t[K\tII\x04S|\vuW\tiI\bWI\nqI\v|j\x04BV\bVg\bWZ\x04kF\vx]\bTA\tab\tfr\ti@\tJd\tJd\vps\nAO\bTa\x05xu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\vw}\vqO\ti[\bQ\x7f\bTz\vVF\twN\x05ts\tdw\bTv\neS\ngi\tNr\x05yS\npe\bVV\bSq\n`m\tyj\tBZ\vWX\bSB\tc\\\nUR\t[J\tc_\x04nM\bWQ\vAx\nMd\tBr\x05ui\vxY\bSM\vWc\v|j\vxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\veU\x04e^\bTg\nqI\tac\bPv\tcF\x04oQ\tQ\x7f\vhZ\x05ka\nz\\\tiK\tBU\n`k\tCP\x04S|\x04M`\n{I\tS{\x04_O\tBZ\x04Zi\x04Sk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\vGu\x05yS\nqA\t[r\neK\x04M`\tdZ\x05lL\bUg\bTl\nbD\tUS\vb\\\tpV\ncc\x04S\\\tct\t`z\bPL\vWs\nA`\neg\bSq\x05uE\x04CR\vDg\t`W\vz{\vWc\x04Sk\x04Sk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\vRb\bTQ\npl\x05Gt\vuW\x05uj\npF\nqI\tfL\t[I\tia\x04XO\nyu\vDg\ved\tq{\x04VG\bQ\x7f\x05ka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps\x04]j\tkV\toU\bTp\nzU\x05nB\vB]\ta{\bV@\n]n\x04m`\tcz\tR{\x04m`\bQa\vwT\bSM\x05MY\x05qN\tdj\x05~s\vQ}\x05MY\vMB\tBv\twR\bRg\vQ}\tql\vKC\nrm\x05xu\x04CC\vwB\vvh\tBq\x04Xq\npV\ti_\x05Ob\x05uE\nbd\nqo\v{i\nC~\tBL\veE\x05uH\bVj\x04Ey\x04Gz\vzR\v{i\tcf\n{Z\n]n\x04XA\vGu\vnU\thS\vGI\nCc\tHE\bTA\tHB\x04BH\x04Cj\nCc\bTF\tHE\nXI\tA{\bQ\x7f\tc\\\vmO\vWX\nfH\np@\x05MY\bTF\nlK\tBt\nzU\tTT\x04Km\vwT\npV\ndt\vyI\tVx\tQ\x7f\tRg\tTd\nzU\bRS\nLM\twA\x04nM\tTn\ndS\t]g\nLc\vwB\t}t\t[I\tCP\x04kX\vFm\vhZ\x05m\x7f\ti[\np@\vQ}\vW\x7f\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\vRb\tio\tPy\x04Y[\nxU\tct\v@@\tww\bPv\x04BM\x04FF\ntb\x05v|\vKm\tBq\tBq\x04Kh\x04`o\nZd\x04XU\ti]\t|`\tSt\x04B\\\bQ\x7f\v_W\tTJ\nqI\t|a\tA{\vuP\x04MD\tPl\nxR\tfL\vws\tc{\td\\\bV`\neg\tHK\x05kc\nd|\bVV\ny\\\x05kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\vW\x7f\nqs\x05lv\bSM\x04Zi\vVK\x05ia\vQB\tQ\x7f\n{Z\bPt\vKl\nlK\nhs\ndS\bVK\x05mf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\vDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\veU\nBf\tdj\x05Mr\n|p\t\\g\t]r\bVb\x05{D\nd[\x04XN\tfM\tO\\\x05s_\tcf\tiZ\x04XN\vWc\tqv\n`m\tU^\x05oD\nd|\vGg\tdE\vwf\x04lo\x04u}\nd|\x05oQ\t`i\x04Oi\vxD\ndZ\nCx\x04Yw\nzk\ntb\ngw\tyj\tB`\nyX\vps\ntC\vpP\vqw\bPu\bPX\tDm\npw\x05Nj\tss\taG\vxs\bPt\noL\x04Gz\tOk\ti@\ti]\x04eC\tIQ\tii\tdj\v@J\t|d\x05uh\bWZ\veU\vnU\bTa\tcC\x04g]\nzk\x04Yh\bVK\nLU\np@\ntb\ntR\tCj\vNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfD\x05ln\t|d\tbs\nqI\x05{B\vAx\np@\nzk\vRb\x05Os\vWS\x04e^\vD_\tBv\vWd\bVb\vxs\veE\bRw\n]n\n|p\vg|\tfw\x05kc\bTI\x05ka\n\\T\x04Sp\tju\vps\npe\x05u|\vGr\bVe\tCU\x04]M\x04XU\vxD\bTa\tIQ\vWq\tCU\tam\tdj\bSo\x04Sw\vnU\x04Ch\tQ]\x05s_\bPt\tfS\bTa\t\\}\n@O\x04Yc\tUZ\bTx\npe\vnU\nzU\t|}\tiD\nz\\\bSM\vxD\x04BR\nzQ\tQN\x04]M\x04Yh\nLP\vFm\vLX\x05vc\vql\x05ka\tHK\bVb\ntC\nCy\bTv\nuV\x04oQ\t`z\t[I\tB`\vRb\tyj\tsb\vWs\bTl\tkV\ved\ne\x7f\x05lL\vxN\t\x7fm\nJn\tjY\vxD\bVb\bSq\vyu\twL\vXL\bTA\tpg\tAt\tnD\x04XX\twR\npl\nhw\x05yS\nps\tcO\bW[\v|j\x04XN\tsV\tp\\\tBe\nb~\nAJ\n]e\x05k`\x05qN\tdw\tWV\tHE\vEV\x05Jz\tid\tB`\tzh\x05E]\tfD\bTg\x05qN\bTa\tja\x04Cv\bSM\nhc\bUe\x05t_\tie\x04g]\twQ\nPn\bVB\tjw\bVg\vbE\tBZ\vRH\bP{\tjp\n\\}\ta_\tcC\t|a\vD]\tBZ\ti[\tfD\vxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlK\x04oQ\x04lo\vLx\vM@\bWZ\x04Kn\vpg\nTi\nIv\n|r\v@}\x05Jz\x05Lm\x05Wh\x05k}\x05ln\vxD\n]s\x04gc\vps\tBr\bTW\vBM\x05tZ\nBY\x04DW\tjf\vSW\x04C}\nqo\tdE\tmv\tIQ\bPP\bUb\x05lv\x04BC\nzQ\t[I\vgl\nig\bUs\x04BT\vbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\vID\v|j\x04KO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\x0e\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\x0e\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\x0e\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\x0e\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\x0e\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\x0e\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\x7f\x7f#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsksbo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-iptfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\x0e\t?"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\x0e\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\x7f\x7fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\x0e\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\x0e\t\x0e\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\x0e\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl"..#fmgojfp#jm$^*8\x0e\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\x0e\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\x0e\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\x0e\t\x0e\t\x0e\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbmgjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\x0e\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\x0e\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\x0e\t\x0e\t?"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo\'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\x0e\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?"..#fmg?,psbm=??aq#,=\x0e\t\\slsvsp\x7fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\x0e\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8"..#wjwof!=?,irvfqz-?,elqn=\t+\vBl\bQ\x7f*+\vUm\x05Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\x0e\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\x0e\t?"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\x0e\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\x0e\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\x7fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\x0e\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@\x04Fr\vBl\bQ\x7f\tA{\vUm\x05Gx\tA{\x01yp\x06YA\0zX\bTV\bWl\bUd\x04BM\vB{\npV\v@x\x04B\\\np@\x04Db\x04Gz\tal\npa\tfM\tuD\bV~\x04mx\vQ}\ndS\tp\\\bVK\bS]\bU|\x05oD\tkV\ved\vHR\nb~\x04M`\nJp\x05oD\x04|Q\nLP\x04Sw\bTl\nAI\nxC\bWt\tBq\x05F`\x04Cm\vLm\tKx\t}t\bPv\ny\\\naB\tV\x7f\nZd\x04XU\x04li\tfr\ti@\tBH\x04BD\x04BV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\vxs\x04Zf\nqI\x04Zf\vBM\v|j\t}t\bSM\nmC\vQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\x0e\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\x0e\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\x0e\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\x0e\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\x0e\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\x0e\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\x0e,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\x0e?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\x0e\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw', 'fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\x7fwkvna\x7fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\x0e\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\x0e\t?kfbg=\x0e\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\x0e\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\x0e\t?,kfbg=\x0e\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\x0e\t\n?,gju=\x0e\t\x0e\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\x0e\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\x7fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\x0e\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\x0e\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\x0e\t?kfbg=\x0e\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\x0epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\x0e\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\x7f_p(\',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\x0e\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\x7f%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw"Xfmgje^..=\x0e\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?"Xfmgje^..=\x0e\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\x0e\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\x0e#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\x0e\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\x0e\t?,p`qjsw=\x0e\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\x0e\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\x0eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\x0e\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\x0e\t\x0e\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\x7f#?b#kqfe>!?"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\x0e\t?,p`qjsw=\x0e\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\x0e\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\x0e\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\vBl\bQ\x7f*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\x0e\t?,p`qjsw=\x0e\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\x7fwkvna\x7fofew\x7fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\x0e\t?-ip!=?,p`qjsw=\x0e\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*"y"W"W"["Q"U"V"@=i=l<^<\\=n=m!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\x7fqjdkw\x7fwkvna\x7f-ip!=?,p`qjsw=\x0e\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\x0e\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\x0e\t?,gju=\x0e\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\x0e\t?,gju=\x0e\t\x0e\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\x0e\t?,kwno=\x0e"y"W"W"["Q"U"V"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\x7fwkvna\x7fqjdkw\x7f1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\x0e\t?,kwno=\x0e\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?"GL@WZSF#kwno=\x0e\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\x7f#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\x0e\t?,gju=\x0e\t\x0e\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\x0e\t?,algz=\x0e\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\x0e\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\x0e\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\x0e\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\x0e\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\x0e\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\x0e\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?"GL@WZSF#kwno=\t?"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAO\x05Gx\bTA\nzk#+\vUm\x05Gx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=&*&'&^&\x88\u0178\u0c3e&\u01ad&\u0192&)&^&%&'&\x82&P&1&\xb1&3&]&m&u&E&t&C&\xcf&V&V&/&>&6&\u0f76\u177co&p&@&E&M&P&x&@&F&e&\xcc&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\u025e*\u03ea\u21f3&\u1372&K&;&)&E&H&P&0&?&9&V&\x81&-&v&a&,&E&)&?&=&'&'&B&\u0d2e&\u0503&\u0316*&*8&%&%&&&%,)&\x9a&>&\x86&7&]&F&2&>&J&6&n&2&%&?&\x8e&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\u053c\x84(,(<&,&\u03da&\u18c7&-&,(%&(&%&(\u013b0&X&D&\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\xc6-\u0360\u1ef3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\u072c\u2a25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\u1e78\xcc-&7&1&F&7&t&W&7&I&.&.&^&=\u0f9c\u19d3&8(>&/&/&\u077b')'\u1065')'%@/&0&%\u043e\u09c0*&*@&C\u053d\u05d4\u0274\u05eb4\u0dd7\u071a\u04d16\u0d84&/\u0178\u0303Z&*%\u0246\u03ff&\u0134&1\xa8\u04b4\u0174", w, "AAAAKKLLKKKKKJJIHHIHHGGFF"), function (f, w) { if (w.length > 31) throw "sizeBits length must be at most 31"; for (let f = 0; f < 4; ++f)if (0 != w[f]) throw "first 4 must be 0"; let b = N, j = $; j.set(w.subarray(0, 0 + w.length), 0); let l = 0, m = f.length; for (let f = 0; f < w.length; ++f) { b[f] = l; let w = j[f]; if (0 != w) { if (w >= 31) throw "newSizeBits values must be less than 31"; if (l += f << w, l <= 0 || l > m) throw "newSizeBits is inconsistent: overflow" } } for (let f = w.length; f < 32; ++f)b[f] = l; if (l != m) throw "newSizeBits is inconsistent: underflow"; L = f }(f, w) } function ff(f, w) { return f <= w ? f : w } function wf(f, w, b, j) { if (null == f) return -1; let l = ff(f.offset + j, f.data.length), m = l - f.offset; return w.set(f.data.subarray(f.offset, l), b), f.offset += m, m } return function (w, b) { let j = new Z; if (t(j, new f(w)), b) { let f = b.customDictionary; f && function (f, w) { if (1 != f.j) throw "State MUST be freshly initialized"; if (0 == f.Vf && (f.Tf = new Array(16), f.df = new Int32Array(16), f.tf = -1), 15 == f.Vf) throw "Too many dictionary chunks"; f.Tf[f.Vf] = w, f.Vf++, f.vf += w.length, f.df[f.Vf] = f.vf }(j, f) } let l = 0, m = []; for (; ;) { let f = new Int8Array(16384); if (m.push(f), j.nf = f, j.gf = 0, j.lf = 16384, j.mf = 0, D(j), l += j.mf, j.mf < 16384) break } !function (f) { if (0 == f.j) throw "State MUST be initialized"; 11 != f.j && (f.j = 11, null != f.input && (f.input, f.input = null)) }(j); let p = new Int8Array(l), q = 0; for (let f = 0; f < m.length; ++f) { let w = m[f], b = ff(l, q + 16384) - q; b < 16384 ? p.set(w.subarray(0, b), q) : p.set(w, q), q += b } return p } })(); \ No newline at end of file diff --git a/js/diff2html-ui-slim.min.js b/js/diff2html-ui-slim.min.js new file mode 100644 index 00000000..6807c498 --- /dev/null +++ b/js/diff2html-ui-slim.min.js @@ -0,0 +1 @@ +!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var i in t)("object"==typeof exports?exports:e)[i]=t[i]}}(this,(()=>{return e={696:(e,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.convertChangesToDMP=function(e){for(var n,t,i=[],a=0;a{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.convertChangesToXML=function(e){for(var n=[],t=0;t"):i.removed&&n.push(""),n.push(i.value.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")),i.added?n.push(""):i.removed&&n.push("")}return n.join("")}},6976:(e,n,t)=>{"use strict";var i;Object.defineProperty(n,"__esModule",{value:!0}),n.diffArrays=function(e,n,t){return a.diff(e,n,t)},n.arrayDiff=void 0;var a=new(((i=t(5913))&&i.__esModule?i:{default:i}).default);n.arrayDiff=a,a.tokenize=function(e){return e.slice()},a.join=a.removeEmpty=function(e){return e}},5913:(e,n)=>{"use strict";function t(){}function i(e,n,t,i,a){for(var r=0,s=n.length,o=0,l=0;re.length?t:e})),c.value=e.join(u)}else c.value=e.join(t.slice(o,o+c.count));o+=c.count,c.added||(l+=c.count)}}var g=n[s-1];return s>1&&"string"==typeof g.value&&(g.added||g.removed)&&e.equals("",g.value)&&(n[s-2].value+=g.value,n.pop()),n}function a(e){return{newPos:e.newPos,components:e.components.slice(0)}}Object.defineProperty(n,"__esModule",{value:!0}),n.default=t,t.prototype={diff:function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.callback;"function"==typeof t&&(r=t,t={}),this.options=t;var s=this;function o(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),n=this.castInput(n),e=this.removeEmpty(this.tokenize(e));var l=(n=this.removeEmpty(this.tokenize(n))).length,c=e.length,d=1,u=l+c;t.maxEditLength&&(u=Math.min(u,t.maxEditLength));var g=[{newPos:-1,components:[]}],b=this.extractCommon(g[0],n,e,0);if(g[0].newPos+1>=l&&b+1>=c)return o([{value:this.join(n),count:n.length}]);function p(){for(var t=-1*d;t<=d;t+=2){var r=void 0,u=g[t-1],b=g[t+1],p=(b?b.newPos:0)-t;u&&(g[t-1]=void 0);var f=u&&u.newPos+1=l&&p+1>=c)return o(i(s,r.components,n,e,s.useLongestToken));g[t]=r}else g[t]=void 0}d++}if(r)!function e(){setTimeout((function(){if(d>u)return r();p()||e()}),0)}();else for(;d<=u;){var f=p();if(f)return f}},pushComponent:function(e,n,t){var i=e[e.length-1];i&&i.added===n&&i.removed===t?e[e.length-1]={count:i.count+1,added:n,removed:t}:e.push({count:1,added:n,removed:t})},extractCommon:function(e,n,t,i){for(var a=n.length,r=t.length,s=e.newPos,o=s-i,l=0;s+1{"use strict";var i;Object.defineProperty(n,"__esModule",{value:!0}),n.diffChars=function(e,n,t){return a.diff(e,n,t)},n.characterDiff=void 0;var a=new(((i=t(5913))&&i.__esModule?i:{default:i}).default);n.characterDiff=a},4852:(e,n,t)=>{"use strict";var i;Object.defineProperty(n,"__esModule",{value:!0}),n.diffCss=function(e,n,t){return a.diff(e,n,t)},n.cssDiff=void 0;var a=new(((i=t(5913))&&i.__esModule?i:{default:i}).default);n.cssDiff=a,a.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)}},4276:(e,n,t)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.diffJson=function(e,n,t){return l.diff(e,n,t)},n.canonicalize=c,n.jsonDiff=void 0;var i,a=(i=t(5913))&&i.__esModule?i:{default:i},r=t(8187);function s(e){return s="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},s(e)}var o=Object.prototype.toString,l=new a.default;function c(e,n,t,i,a){var r,l;for(n=n||[],t=t||[],i&&(e=i(a,e)),r=0;r{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.diffLines=function(e,n,t){return s.diff(e,n,t)},n.diffTrimmedLines=function(e,n,t){var i=(0,r.generateOptions)(t,{ignoreWhitespace:!0});return s.diff(e,n,i)},n.lineDiff=void 0;var i,a=(i=t(5913))&&i.__esModule?i:{default:i},r=t(8009),s=new a.default;n.lineDiff=s,s.tokenize=function(e){var n=[],t=e.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i{"use strict";var i;Object.defineProperty(n,"__esModule",{value:!0}),n.diffSentences=function(e,n,t){return a.diff(e,n,t)},n.sentenceDiff=void 0;var a=new(((i=t(5913))&&i.__esModule?i:{default:i}).default);n.sentenceDiff=a,a.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)}},5303:(e,n,t)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.diffWords=function(e,n,t){return t=(0,r.generateOptions)(t,{ignoreWhitespace:!0}),l.diff(e,n,t)},n.diffWordsWithSpace=function(e,n,t){return l.diff(e,n,t)},n.wordDiff=void 0;var i,a=(i=t(5913))&&i.__esModule?i:{default:i},r=t(8009),s=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,o=/\S/,l=new a.default;n.wordDiff=l,l.equals=function(e,n){return this.options.ignoreCase&&(e=e.toLowerCase(),n=n.toLowerCase()),e===n||this.options.ignoreWhitespace&&!o.test(e)&&!o.test(n)},l.tokenize=function(e){for(var n=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"Diff",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(n,"diffChars",{enumerable:!0,get:function(){return r.diffChars}}),Object.defineProperty(n,"diffWords",{enumerable:!0,get:function(){return s.diffWords}}),Object.defineProperty(n,"diffWordsWithSpace",{enumerable:!0,get:function(){return s.diffWordsWithSpace}}),Object.defineProperty(n,"diffLines",{enumerable:!0,get:function(){return o.diffLines}}),Object.defineProperty(n,"diffTrimmedLines",{enumerable:!0,get:function(){return o.diffTrimmedLines}}),Object.defineProperty(n,"diffSentences",{enumerable:!0,get:function(){return l.diffSentences}}),Object.defineProperty(n,"diffCss",{enumerable:!0,get:function(){return c.diffCss}}),Object.defineProperty(n,"diffJson",{enumerable:!0,get:function(){return d.diffJson}}),Object.defineProperty(n,"canonicalize",{enumerable:!0,get:function(){return d.canonicalize}}),Object.defineProperty(n,"diffArrays",{enumerable:!0,get:function(){return u.diffArrays}}),Object.defineProperty(n,"applyPatch",{enumerable:!0,get:function(){return g.applyPatch}}),Object.defineProperty(n,"applyPatches",{enumerable:!0,get:function(){return g.applyPatches}}),Object.defineProperty(n,"parsePatch",{enumerable:!0,get:function(){return b.parsePatch}}),Object.defineProperty(n,"merge",{enumerable:!0,get:function(){return p.merge}}),Object.defineProperty(n,"structuredPatch",{enumerable:!0,get:function(){return f.structuredPatch}}),Object.defineProperty(n,"createTwoFilesPatch",{enumerable:!0,get:function(){return f.createTwoFilesPatch}}),Object.defineProperty(n,"createPatch",{enumerable:!0,get:function(){return f.createPatch}}),Object.defineProperty(n,"convertChangesToDMP",{enumerable:!0,get:function(){return m.convertChangesToDMP}}),Object.defineProperty(n,"convertChangesToXML",{enumerable:!0,get:function(){return E.convertChangesToXML}});var i,a=(i=t(5913))&&i.__esModule?i:{default:i},r=t(7630),s=t(5303),o=t(8187),l=t(4146),c=t(4852),d=t(4276),u=t(6976),g=t(3690),b=t(3719),p=t(3051),f=t(1286),m=t(696),E=t(5826)},3690:(e,n,t)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.applyPatch=s,n.applyPatches=function(e,n){"string"==typeof e&&(e=(0,a.parsePatch)(e));var t=0;!function i(){var a=e[t++];if(!a)return n.complete();n.loadFile(a,(function(e,t){if(e)return n.complete(e);var r=s(t,a,n);n.patched(a,r,(function(e){if(e)return n.complete(e);i()}))}))}()};var i,a=t(3719),r=(i=t(8169))&&i.__esModule?i:{default:i};function s(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n&&(n=(0,a.parsePatch)(n)),Array.isArray(n)){if(n.length>1)throw new Error("applyPatch only works with a single input.");n=n[0]}var i,s,o=e.split(/\r\n|[\n\v\f\r\x85]/),l=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],c=n.hunks,d=t.compareLine||function(e,n,t,i){return n===i},u=0,g=t.fuzzFactor||0,b=0,p=0;function f(e,n){for(var t=0;t0?i[0]:" ",r=i.length>0?i.substr(1):i;if(" "===a||"-"===a){if(!d(n+1,o[n],a,r)&&++u>g)return!1;n++}}return!0}for(var m=0;m0?R[0]:" ",I=R.length>0?R.substr(1):R,C=A.linedelimiters[S];if(" "===w)y++;else if("-"===w)o.splice(y,1),l.splice(y,1);else if("+"===w)o.splice(y,0,I),l.splice(y,0,C),y++;else if("\\"===w){var L=A.lines[S-1]?A.lines[S-1][0]:null;"+"===L?i=!0:"-"===L&&(s=!0)}}}if(i)for(;!o[o.length-1];)o.pop(),l.pop();else s&&(o.push(""),l.push("\n"));for(var M=0;M{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.structuredPatch=s,n.formatPatch=o,n.createTwoFilesPatch=l,n.createPatch=function(e,n,t,i,a,r){return l(e,e,n,t,i,a,r)};var i=t(8187);function a(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return r(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(e,n):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 r(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,i=new Array(n);t0?h(o.lines.slice(-l.context)):[],u-=b.length,g-=b.length)}(s=b).push.apply(s,a(i.map((function(e){return(n.added?"+":"-")+e})))),n.added?f+=i.length:p+=i.length}else{if(u)if(i.length<=2*l.context&&e=c.length-2&&i.length<=l.context){var T=/\n$/.test(t),O=/\n$/.test(r),v=0==i.length&&b.length>N.oldLines;!T&&v&&t.length>0&&b.splice(N.oldLines,0,"\\ No newline at end of file"),(T||v)&&O||b.push("\\ No newline at end of file")}d.push(N),u=0,g=0,b=[]}p+=i.length,f+=i.length}},E=0;E{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.calcLineCount=l,n.merge=function(e,n,t){e=c(e,t),n=c(n,t);var i={};(e.index||n.index)&&(i.index=e.index||n.index),(e.newFileName||n.newFileName)&&(d(e)?d(n)?(i.oldFileName=u(i,e.oldFileName,n.oldFileName),i.newFileName=u(i,e.newFileName,n.newFileName),i.oldHeader=u(i,e.oldHeader,n.oldHeader),i.newHeader=u(i,e.newHeader,n.newHeader)):(i.oldFileName=e.oldFileName,i.newFileName=e.newFileName,i.oldHeader=e.oldHeader,i.newHeader=e.newHeader):(i.oldFileName=n.oldFileName||e.oldFileName,i.newFileName=n.newFileName||e.newFileName,i.oldHeader=n.oldHeader||e.oldHeader,i.newHeader=n.newHeader||e.newHeader)),i.hunks=[];for(var a=0,r=0,s=0,o=0;ae.length)&&(n=e.length);for(var t=0,i=new Array(n);t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.parsePatch=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.split(/\r\n|[\n\v\f\r\x85]/),i=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],a=[],r=0;function s(){var e={};for(a.push(e);r{"use strict";function t(e,n){if(n.length>e.length)return!1;for(var t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,n,t){var i=!0,a=!1,r=!1,s=1;return function o(){if(i&&!r){if(a?s++:i=!1,e+s<=t)return s;r=!0}if(!a)return r||(i=!0),n<=e-s?-s++:(a=!0,o())}}},8009:(e,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.generateOptions=function(e,n){if("function"==typeof e)n.callback=e;else if(e)for(var t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}},9397:(e,n)=>{!function(e){var n=/\S/,t=/\"/g,i=/\n/g,a=/\r/g,r=/\\/g,s=/\u2028/,o=/\u2029/;function l(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function c(e,n,t){if(n.charAt(t)!=e.charAt(0))return!1;for(var i=1,a=e.length;i":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(t,i){var a,r=t.length,s=0,o=null,d=null,u="",g=[],b=!1,p=0,f=0,m="{{",E="}}";function h(){u.length>0&&(g.push({tag:"_t",text:new String(u)}),u="")}function _(t,i){if(h(),t&&function(){for(var t=!0,i=f;i"==a.tag&&(a.indent=g[r].text.toString()),g.splice(r,1));else i||g.push({tag:"\n"});b=!1,f=g.length}function N(e,n){var t="="+E,i=e.indexOf(t,n),a=l(e.substring(e.indexOf("=",n)+1,i)).split(" ");return m=a[0],E=a[a.length-1],i+t.length-1}for(i&&(i=i.split(" "),m=i[0],E=i[1]),p=0;p0;){if(l=n.shift(),r&&"<"==r.tag&&!(l.tag in d))throw new Error("Illegal content in < super tag.");if(e.tags[l.tag]<=e.tags.$||g(l,a))i.push(l),l.nodes=u(n,l.tag,i,a);else{if("/"==l.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+l.n);if(o=i.pop(),l.n!=o.n&&!b(l.n,o.n,a))throw new Error("Nesting error: "+o.n+" vs. "+l.n);return o.end=l.i,s}"\n"==l.tag&&(l.last=0==n.length||"\n"==n[0].tag)}s.push(l)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return s}function g(e,n){for(var t=0,i=n.length;t":h,"<":function(n,t){var i={partials:{},code:"",subs:{},inPartial:!0};e.walk(n.nodes,i);var a=t.partials[h(n,t)];a.subs=i.subs,a.partials=i.partials},$:function(n,t){var i={subs:{},code:"",partials:t.partials,prefix:n.n};e.walk(n.nodes,i),t.subs[n.n]=i.code,t.inPartial||(t.code+='t.sub("'+m(n.n)+'",c,p,i);')},"\n":function(e,n){n.code+=N('"\\n"'+(e.last?"":" + i"))},_v:function(e,n){n.code+="t.b(t.v(t."+E(e.n)+'("'+m(e.n)+'",c,p,0)));'},_t:function(e,n){n.code+=N('"'+m(e.text)+'"')},"{":_,"&":_},e.walk=function(n,t){for(var i,a=0,r=n.length;a{var i=t(9397);i.Template=t(2882).Template,i.template=i.Template,e.exports=i},2882:(e,n)=>{!function(e){function n(e,n,t){var i;return n&&"object"==typeof n&&(void 0!==n[e]?i=n[e]:t&&n.get&&"function"==typeof n.get&&(i=n.get(e))),i}e.Template=function(e,n,t,i){e=e||{},this.r=e.code||this.r,this.c=t,this.options=i||{},this.text=n||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(e,n,t){return""},v:function(e){return e=l(e),o.test(e)?e.replace(t,"&").replace(i,"<").replace(a,">").replace(r,"'").replace(s,"""):e},t:l,render:function(e,n,t){return this.ri([e],n||{},t)},ri:function(e,n,t){return this.r(e,n,t)},ep:function(e,n){var t=this.partials[e],i=n[t.name];if(t.instance&&t.base==i)return t.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,t.subs){for(key in n.stackText||(n.stackText={}),t.subs)n.stackText[key]||(n.stackText[key]=void 0!==this.activeSub&&n.stackText[this.activeSub]?n.stackText[this.activeSub]:this.text);i=function(e,n,t,i,a,r){function s(){}function o(){}var l;s.prototype=e,o.prototype=e.subs;var c=new s;for(l in c.subs=new o,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=r,n)i[l]||(i[l]=n[l]);for(l in i)c.subs[l]=i[l];for(l in a=a||{},c.stackPartials=a,t)a[l]||(a[l]=t[l]);for(l in a)c.partials[l]=a[l];return c}(i,t.subs,t.partials,this.stackSubs,this.stackPartials,n.stackText)}return this.partials[e].instance=i,i},rp:function(e,n,t,i){var a=this.ep(e,t);return a?a.ri(n,t,i):""},rs:function(e,n,t){var i=e[e.length-1];if(c(i))for(var a=0;a=0;l--)if(void 0!==(r=n(e,t[l],o))){s=!0;break}return s?(a||"function"!=typeof r||(r=this.mv(r,t,i)),r):!a&&""},ls:function(e,n,t,i,a){var r=this.options.delimiters;return this.options.delimiters=a,this.b(this.ct(l(e.call(n,i)),n,t)),this.options.delimiters=r,!1},ct:function(e,n,t){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(n,t)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,n,t,i,a,r,s){var o,l=n[n.length-1],c=e.call(l);return"function"==typeof c?!!i||(o=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,t,o.substring(a,r),s)):c},mv:function(e,n,t){var i=n[n.length-1],a=e.call(i);return"function"==typeof a?this.ct(l(a.call(i)),i,t):a},sub:function(e,n,t,i){var a=this.subs[e];a&&(this.activeSub=e,a(n,t,this,i),this.activeSub=!1)}};var t=/&/g,i=//g,r=/\'/g,s=/\"/g,o=/[&<>\"\']/;function l(e){return String(null==e?"":e)}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(n)},8468:function(e,n,t){"use strict";var i=this&&this.__spreadArray||function(e,n,t){if(t||2===arguments.length)for(var i,a=0,r=n.length;a1?t[t.length-1]:n}function o(e,n){return n.reduce((function(n,t){return n||e.startsWith(t)}),!1)}var l=["a/","b/","i/","w/","c/","o/"];function c(e,n,t){var a=void 0!==t?i(i([],l,!0),[t],!1):l,s=((n?new RegExp("^".concat((0,r.escapeForRegExp)(n),' "?(.+?)"?$')):new RegExp('^"?(.+?)"?$')).exec(e)||[])[1],o=void 0===s?"":s,c=a.find((function(e){return 0===o.indexOf(e)}));return(c?o.slice(c.length):o).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}n.parse=function(e,n){void 0===n&&(n={});var t=[],i=null,r=null,l=null,d=null,u=null,g=null,b=null,p="--- ",f="+++ ",m="@@",E=/^old mode (\d{6})/,h=/^new mode (\d{6})/,_=/^deleted file mode (\d{6})/,N=/^new file mode (\d{6})/,T=/^copy from "?(.+)"?/,O=/^copy to "?(.+)"?/,v=/^rename from "?(.+)"?/,A=/^rename to "?(.+)"?/,y=/^similarity index (\d+)%/,S=/^dissimilarity index (\d+)%/,R=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,w=/^Binary files (.*) and (.*) differ/,I=/^GIT binary patch/,C=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,L=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,M=/^new file mode (\d{6})/,D=/^deleted file mode (\d{6}),(\d{6})/,x=e.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,"\n").split("\n");function k(){null!==r&&null!==i&&(i.blocks.push(r),r=null)}function P(){null!==i&&(i.oldName||null===g||(i.oldName=g),i.newName||null===b||(i.newName=b),i.newName&&(t.push(i),i=null)),g=null,b=null}function U(){k(),P(),i={blocks:[],deletedLines:0,addedLines:0}}function B(e){var n;k(),null!==i&&((n=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(e))?(i.isCombined=!1,l=parseInt(n[1],10),u=parseInt(n[2],10)):(n=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(e))?(i.isCombined=!0,l=parseInt(n[1],10),d=parseInt(n[2],10),u=parseInt(n[3],10)):(e.startsWith(m)&&console.error("Failed to parse lines, starting in 0!"),l=0,u=0,i.isCombined=!1)),r={lines:[],oldStartLine:l,oldStartLine2:d,newStartLine:u,header:e}}return x.forEach((function(e,d){if(e&&!e.startsWith("*")){var k,P=x[d-1],F=x[d+1],j=x[d+2];if(e.startsWith("diff")){if(U(),(k=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(e))&&(g=c(k[1],void 0,n.dstPrefix),b=c(k[2],void 0,n.srcPrefix)),null===i)throw new Error("Where is my file !!!");i.isGitDiff=!0}else if((!i||!i.isGitDiff&&i&&e.startsWith(p)&&F.startsWith(f)&&j.startsWith(m))&&U(),!(null==i?void 0:i.isTooBig)){if(i&&("number"==typeof n.diffMaxChanges&&i.addedLines+i.deletedLines>n.diffMaxChanges||"number"==typeof n.diffMaxLineLength&&e.length>n.diffMaxLineLength))return i.isTooBig=!0,i.addedLines=0,i.deletedLines=0,i.blocks=[],r=null,void B("function"==typeof n.diffTooBigMessage?n.diffTooBigMessage(t.length):"Diff too big to be displayed");if(e.startsWith(p)&&F.startsWith(f)||e.startsWith(f)&&P.startsWith(p)){if(i&&!i.oldName&&e.startsWith("--- ")&&(k=function(e,n){return c(e,"---",n)}(e,n.srcPrefix)))return i.oldName=k,void(i.language=s(i.oldName,i.language));if(i&&!i.newName&&e.startsWith("+++ ")&&(k=function(e,n){return c(e,"+++",n)}(e,n.dstPrefix)))return i.newName=k,void(i.language=s(i.newName,i.language))}if(i&&(e.startsWith(m)||i.isGitDiff&&i.oldName&&i.newName&&!r))B(e);else if(r&&(e.startsWith("+")||e.startsWith("-")||e.startsWith(" ")))!function(e){if(null!==i&&null!==r&&null!==l&&null!==u){var n={content:e},t=i.isCombined?["+ "," +","++"]:["+"],s=i.isCombined?["- "," -","--"]:["-"];o(e,t)?(i.addedLines++,n.type=a.LineType.INSERT,n.oldNumber=void 0,n.newNumber=u++):o(e,s)?(i.deletedLines++,n.type=a.LineType.DELETE,n.oldNumber=l++,n.newNumber=void 0):(n.type=a.LineType.CONTEXT,n.oldNumber=l++,n.newNumber=u++),r.lines.push(n)}}(e);else{var H=!function(e,n){for(var t=n;t'),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(i.rp("'),i.b(i.v(i.f("fileName",e,n,0))),i.b(""),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(' '),i.b(i.v(i.f("addedLines",e,n,0))),i.b(""),i.b("\n"+t),i.b(' '),i.b(i.v(i.f("deletedLines",e,n,0))),i.b(""),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(""),i.fl()},partials:{"'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(' Files changed ('),i.b(i.v(i.f("filesNumber",e,n,0))),i.b(")"),i.b("\n"+t),i.b(' hide'),i.b("\n"+t),i.b(' show'),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b('
    '),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("files",e,n,0))),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b(""),i.fl()},partials:{},subs:{}}),n.defaultTemplates["generic-block-header"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b(""),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b('
'),i.b(i.t(i.f("blockHeader",e,n,0))),i.b("
"),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(""),i.fl()},partials:{},subs:{}}),n.defaultTemplates["generic-empty-diff"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b(""),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(" File without changes"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(""),i.fl()},partials:{},subs:{}}),n.defaultTemplates["generic-file-path"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b(''),i.b("\n"+t),i.b(i.rp("'),i.b(i.v(i.f("fileDiffName",e,n,0))),i.b(""),i.b("\n"+t),i.b(i.rp(""),i.b("\n"+t),i.b('"),i.fl()},partials:{""),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("lineNumber",e,n,0))),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.s(i.f("prefix",e,n,1),e,n,0,162,238,"{{ }}")&&(i.rs(e,n,(function(e,n,i){i.b(' '),i.b(i.t(i.f("prefix",e,n,0))),i.b(""),i.b("\n"+t)})),e.pop()),i.s(i.f("prefix",e,n,1),e,n,1,0,0,"")||(i.b('  '),i.b("\n"+t)),i.s(i.f("content",e,n,1),e,n,0,371,445,"{{ }}")&&(i.rs(e,n,(function(e,n,i){i.b(' '),i.b(i.t(i.f("content",e,n,0))),i.b(""),i.b("\n"+t)})),e.pop()),i.s(i.f("content",e,n,1),e,n,1,0,0,"")||(i.b('
'),i.b("\n"+t)),i.b("
"),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b(""),i.fl()},partials:{},subs:{}}),n.defaultTemplates["generic-wrapper"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('
'),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("content",e,n,0))),i.b("\n"+t),i.b("
"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["icon-file-added"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["icon-file-changed"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["icon-file-deleted"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["icon-file-renamed"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["icon-file"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["line-by-line-file-diff"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("filePath",e,n,0))),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("diffs",e,n,0))),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["line-by-line-numbers"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('
'),i.b(i.v(i.f("oldNumber",e,n,0))),i.b("
"),i.b("\n"+t),i.b('
'),i.b(i.v(i.f("newNumber",e,n,0))),i.b("
"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["side-by-side-file-diff"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(" "),i.b(i.t(i.f("filePath",e,n,0))),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(" "),i.b(i.t(i.d("diffs.left",e,n,0))),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b('
'),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(' '),i.b("\n"+t),i.b(" "),i.b(i.t(i.d("diffs.right",e,n,0))),i.b("\n"+t),i.b(" "),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.b("\n"+t),i.b("
"),i.fl()},partials:{},subs:{}}),n.defaultTemplates["tag-file-added"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('ADDED'),i.fl()},partials:{},subs:{}}),n.defaultTemplates["tag-file-changed"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('CHANGED'),i.fl()},partials:{},subs:{}}),n.defaultTemplates["tag-file-deleted"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('DELETED'),i.fl()},partials:{},subs:{}}),n.defaultTemplates["tag-file-renamed"]=new s.Template({code:function(e,n,t){var i=this;return i.b(t=t||""),i.b('RENAMED'),i.fl()},partials:{},subs:{}})},6834:function(e,n,t){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var n,t=1,i=arguments.length;t0)&&(n.push([[],t,i]),t=[],i=[]),r.type===c.LineType.CONTEXT?n.push([[r],[],[]]):r.type===c.LineType.INSERT&&0===t.length?n.push([[],[],[r]]):r.type===c.LineType.INSERT&&t.length>0?i.push(r):r.type===c.LineType.DELETE&&t.push(r)}return(t.length||i.length)&&(n.push([[],t,i]),t=[],i=[]),n},e.prototype.applyRematchMatching=function(e,n,t){var i=e.length*n.length,a=Math.max.apply(null,[0].concat(e.concat(n).map((function(e){return e.content.length}))));return i{"use strict";function t(e,n){if(0===e.length)return n.length;if(0===n.length)return e.length;var t,i,a=[];for(t=0;t<=n.length;t++)a[t]=[t];for(i=0;i<=e.length;i++)a[0][i]=i;for(t=1;t<=n.length;t++)for(i=1;i<=e.length;i++)n.charAt(t-1)===e.charAt(i-1)?a[t][i]=a[t-1][i-1]:a[t][i]=Math.min(a[t-1][i-1]+1,Math.min(a[t][i-1]+1,a[t-1][i]+1));return a[n.length][e.length]}Object.defineProperty(n,"__esModule",{value:!0}),n.newMatcherFn=n.newDistanceFn=n.levenshtein=void 0,n.levenshtein=t,n.newDistanceFn=function(e){return function(n,i){var a=e(n).trim(),r=e(i).trim();return t(a,r)/(a.length+r.length)}},n.newMatcherFn=function(e){return function n(t,i,a,r){void 0===a&&(a=0),void 0===r&&(r=new Map);var s=function(n,t,i){void 0===i&&(i=new Map);for(var a,r=1/0,s=0;s0||s.indexB>0)&&(h=f.concat(h)),(t.length>u||i.length>g)&&(h=h.concat(E)),h}}},5741:function(e,n,t){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var n,t=1,i=arguments.length;t]*>((.|\n)*?)<\/del>)/g,"")}function m(e){return e.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function E(e,n,t){void 0===t&&(t=!0);var i=function(e){return e?2:1}(n);return{prefix:e.substring(0,i),content:t?m(e.substring(i)):e.substring(i)}}function h(e){var n=(0,l.unifyPath)(e.oldName),t=(0,l.unifyPath)(e.newName);if(n===t||p(n)||p(t))return p(t)?n:t;for(var i=[],a=[],r=n.split(u),s=t.split(u),o=0,c=r.length-1,d=s.length-1;oo&&d>o&&r[c]===s[d];)a.unshift(s[d]),c-=1,d-=1;var g=i.join(u),b=a.join(u),f=r.slice(o,c+1).join(u),m=s.slice(o,d+1).join(u);return g.length&&b.length?g+u+"{"+f+" → "+m+"}"+u+b:g.length?g+u+"{"+f+" → "+m+"}":b.length?"{"+f+" → "+m+"}"+u+b:n+" → "+t}n.toCSSClass=function(e){switch(e){case d.LineType.CONTEXT:return n.CSSLineClass.CONTEXT;case d.LineType.INSERT:return n.CSSLineClass.INSERTS;case d.LineType.DELETE:return n.CSSLineClass.DELETES}},n.escapeForHtml=m,n.deconstructLine=E,n.filenameDiff=h,n.getHtmlId=function(e){return"d2h-".concat((0,l.hashCode)(h(e)).toString().slice(-6))},n.getFileIcon=function(e){var n="file-changed";return e.isRename||e.isCopy?n="file-renamed":e.isNew?n="file-added":e.isDeleted?n="file-deleted":e.newName!==e.oldName&&(n="file-renamed"),n},n.diffHighlight=function(e,t,a,r){void 0===r&&(r={});var s=i(i({},n.defaultRenderConfig),r),l=s.matching,c=s.maxLineLengthHighlight,d=s.matchWordsThreshold,u=s.diffStyle,p=E(e,a,!1),h=E(t,a,!1);if(p.content.length>c||h.content.length>c)return{oldLine:{prefix:p.prefix,content:m(p.content)},newLine:{prefix:h.prefix,content:m(h.content)}};var _="char"===u?o.diffChars(p.content,h.content):o.diffWordsWithSpace(p.content,h.content),N=[];if("word"===u&&"words"===l){var T=_.filter((function(e){return e.removed})),O=_.filter((function(e){return e.added}));b(O,T).forEach((function(e){1===e[0].length&&1===e[1].length&&g(e[0][0],e[1][0])-1?' class="d2h-change"':"",a=m(n.value);return null!==t?"".concat(e,"<").concat(t).concat(i,">").concat(a,""):"".concat(e).concat(a)}),"");return{oldLine:{prefix:p.prefix,content:(v=A,v.replace(/(]*>((.|\n)*?)<\/ins>)/g,""))},newLine:{prefix:h.prefix,content:f(A)}}}},170:function(e,n,t){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var n,t=1,i=arguments.length;t0)&&(n.push([[],t,i]),t=[],i=[]),r.type===c.LineType.CONTEXT?n.push([[r],[],[]]):r.type===c.LineType.INSERT&&0===t.length?n.push([[],[],[r]]):r.type===c.LineType.INSERT&&t.length>0?i.push(r):r.type===c.LineType.DELETE&&t.push(r)}return(t.length||i.length)&&(n.push([[],t,i]),t=[],i=[]),n},e.prototype.applyRematchMatching=function(e,n,t){var i=e.length*n.length,a=Math.max.apply(null,[0].concat(e.concat(n).map((function(e){return e.content.length}))));return i{"use strict";var t;Object.defineProperty(n,"__esModule",{value:!0}),n.DiffStyleType=n.LineMatchingType=n.OutputFormatType=n.LineType=void 0,(t=n.LineType||(n.LineType={})).INSERT="insert",t.DELETE="delete",t.CONTEXT="context",n.OutputFormatType={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},n.LineMatchingType={LINES:"lines",WORDS:"words",NONE:"none"},n.DiffStyleType={WORD:"word",CHAR:"char"}},4169:function(e,n,t){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var n,t=1,i=arguments.length;t{"use strict";function t(e){return e.replace(/&/gm,"&").replace(//gm,">")}function i(e){return e.nodeName.toLowerCase()}Object.defineProperty(n,"__esModule",{value:!0}),n.getLanguage=n.closeTags=n.mergeStreams=n.nodeStream=void 0,n.nodeStream=function(e){var n=[],t=function(e,a){for(var r=e.firstChild;r;r=r.nextSibling)3===r.nodeType&&null!==r.nodeValue?a+=r.nodeValue.length:1===r.nodeType&&(n.push({event:"start",offset:a,node:r}),a=t(r,a),i(r).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:r}));return a};return t(e,0),n},n.mergeStreams=function(e,n,a){var r=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset")}function d(e){s+=""}function u(e){("start"===e.event?c:d)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(a.substring(r,g[0].offset)),r=g[0].offset,g===e){o.reverse().forEach(d);do{u(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===r);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),u(g.splice(0,1)[0])}return s+t(a.substr(r))},n.closeTags=function(e){var n=new Array;return e.value=e.value.split("\n").map((function(e){var t=n.map((function(e){return'')})).join(""),i=e.matchAll(/(|<\/span>)/g);return Array.from(i).forEach((function(e){""===e[0]?n.shift():n.unshift(e[2])})),t+e+"".repeat(n.length)})).join("\n"),e};var a={"1c":"1c",abnf:"abnf",accesslog:"accesslog",as:"actionscript",adb:"ada",ada:"ada",ads:"ada",angelscript:"angelscript",apache:"apache",applescript:"applescript",scpt:"applescript",arcade:"arcade",cpp:"cpp",hpp:"cpp",arduino:"arduino",ino:"arduino",armasm:"armasm",arm:"armasm",xml:"xml",html:"xml",xhtml:"xml",rss:"xml",atom:"xml",xjb:"xml",xsd:"xml",xsl:"xml",plist:"xml",svg:"xml",asciidoc:"asciidoc",adoc:"asciidoc",asc:"asciidoc",aspectj:"aspectj",ahk:"autohotkey",ahkl:"autohotkey",au3:"autoit",avrasm:"avrasm",awk:"awk",axapta:"axapta","x++":"axapta",bash:"bash",sh:"bash",zsh:"bash",b:"basic",bnf:"bnf",bf:"brainfuck",c:"c",h:"c",cats:"c",idc:"c",cal:"cal",capnproto:"capnproto",capnp:"capnproto",ceylon:"ceylon",clean:"clean",clj:"clojure",boot:"clojure",cl2:"clojure",cljc:"clojure",cljs:"clojure","cljs.hl":"clojure",cljscm:"clojure",cljx:"clojure",hic:"clojure","clojure-repl":"clojure-repl",cmake:"cmake","cmake.in":"cmake",coffee:"coffeescript",_coffee:"coffeescript",cake:"coffeescript",cjsx:"coffeescript",iced:"coffeescript",cson:"coffeescript",coq:"coq",cos:"cos",cls:"cos",crmsh:"crmsh",crm:"crmsh",pcmk:"crmsh",cr:"crystal",cs:"csharp",csx:"csharp",csp:"csp",css:"css",d:"d",di:"d",md:"markdown",markdown:"markdown",mdown:"markdown",mdwn:"markdown",mkd:"markdown",mkdn:"markdown",mkdown:"markdown",ronn:"markdown",workbook:"markdown",dart:"dart",dpr:"delphi",dfm:"delphi",pas:"delphi",pascal:"delphi",diff:"diff",patch:"diff",django:"django",jinja:"django",dns:"dns",zone:"dns",bind:"dns",dockerfile:"dockerfile",docker:"dockerfile",dos:"dos",bat:"dos",cmd:"dos",dsconfig:"dsconfig",dts:"dts",dust:"dust",dst:"dust",ebnf:"ebnf",ex:"elixir",exs:"elixir",elm:"elm",rb:"ruby",builder:"ruby",eye:"ruby",gemspec:"ruby",god:"ruby",jbuilder:"ruby",mspec:"ruby",pluginspec:"ruby",podspec:"ruby",rabl:"ruby",rake:"ruby",rbuild:"ruby",rbw:"ruby",rbx:"ruby",ru:"ruby",ruby:"ruby",spec:"ruby",thor:"ruby",watchr:"ruby",erb:"erb","erlang-repl":"erlang-repl",erl:"erlang","app.src":"erlang",escript:"erlang",hrl:"erlang",xrl:"erlang",yrl:"erlang",excel:"excel",xls:"excel",xlsx:"excel",fix:"fix",flix:"flix",f90:"fortran",f:"fortran",f03:"fortran",f08:"fortran",f77:"fortran",f95:"fortran",for:"fortran",fpp:"fortran",fs:"fsharp",fsx:"fsharp",gams:"gams",gms:"gams",gauss:"gauss",gss:"gauss",gcode:"gcode",nc:"gcode",gherkin:"gherkin",glsl:"glsl",fp:"glsl",frag:"glsl",frg:"glsl",fsh:"glsl",fshader:"glsl",geo:"glsl",geom:"glsl",glslv:"glsl",gshader:"glsl",shader:"glsl",tesc:"glsl",tese:"glsl",vert:"glsl",vrx:"glsl",vsh:"glsl",vshader:"glsl",gml:"gml",go:"go",bal:"go",golo:"golo",gololang:"golo",gradle:"gradle",groovy:"groovy",grt:"groovy",gtpl:"groovy",gvy:"groovy",haml:"haml","haml.deface":"haml",handlebars:"handlebars",hbs:"handlebars","html.hbs":"handlebars","html.handlebars":"handlebars",hs:"haskell",hsc:"haskell",idr:"haskell",purs:"haskell",hx:"haxe",hxsl:"haxe",hsp:"hsp",htmlbars:"htmlbars",http:"http",https:"http",hy:"hy",inform7:"inform7",i7:"inform7",ini:"ini",toml:"ini",cfg:"ini",prefs:"ini",irpf90:"irpf90",isbl:"isbl",java:"java",jsp:"java",js:"javascript",jsx:"javascript",_js:"javascript",bones:"javascript",es:"javascript",es6:"javascript",gs:"javascript",jake:"javascript",jsb:"javascript",jscad:"javascript",jsfl:"javascript",jsm:"javascript",jss:"javascript",mjs:"javascript",njs:"javascript",pac:"javascript",sjs:"javascript",ssjs:"javascript",xsjs:"javascript",xsjslib:"javascript",cfc:"javascript","jboss-cli":"jboss-cli",json:"json",avsc:"json",geojson:"json",gltf:"json","JSON-tmLanguage":"json",jsonl:"json",tfstate:"json","tfstate.backup":"json",topojson:"json",webapp:"json",webmanifest:"json",jl:"julia","julia-repl":"julia-repl",kt:"kotlin",ktm:"kotlin",kts:"kotlin",lasso:"lasso",lassoscript:"lasso",tex:"latex",ldif:"ldif",leaf:"leaf",less:"less",lisp:"lisp",factor:"lisp",livecodeserver:"livecodeserver",ls:"livescript",_ls:"livescript",llvm:"llvm",lsl:"lsl",lua:"lua",nse:"lua",p8:"lua",pd_lua:"lua",rbxs:"lua",wlua:"lua",mak:"makefile",make:"makefile",mk:"makefile",mkfile:"makefile",mathematica:"mathematica",mma:"mathematica",wl:"mathematica",matlab:"matlab",maxima:"maxima",mel:"mel",mercury:"mercury",mipsasm:"mipsasm",miz:"mizar",voc:"mizar",al:"perl",cgi:"perl",fcgi:"perl",perl:"perl",ph:"perl",plx:"perl",pl:"perl",pm:"perl",psgi:"perl",t:"perl",mojolicious:"mojolicious",monkey:"monkey",monkey2:"monkey",moonscript:"moonscript",moon:"moonscript",n1ql:"n1ql",nginxconf:"nginx",nim:"nim",nimrod:"nim",nix:"nix",nsi:"nsis",nsh:"nsis",m:"objectivec",objc:"objectivec",mm:"objectivec","obj-c":"objectivec","obj-c++":"objectivec","objective-c++":"objectivec",fun:"ocaml",sig:"ocaml",ml:"ocaml",mli:"ocaml",eliom:"ocaml",eliomi:"ocaml",ml4:"ocaml",mll:"ocaml",mly:"ocaml",openscad:"openscad",oxygene:"oxygene",parser3:"parser3",pf:"pf","pf.conf":"pf",pgsql:"pgsql",postgres:"pgsql",postgresql:"pgsql",php:"php",aw:"php",ctp:"php",inc:"php",php3:"php",php4:"php",php5:"php",phps:"php",phpt:"php","php-template":"php-template",plaintext:"plaintext",txt:"plaintext",text:"plaintext",pony:"pony",ps:"powershell",ps1:"powershell",psd1:"powershell",psm1:"powershell",pde:"processing",profile:"profile",pro:"prolog",prolog:"prolog",yap:"prolog",properties:"properties",proto:"protobuf",puppet:"puppet",pp:"puppet",purebasic:"purebasic",py:"python",bzl:"python",gyp:"python",gypi:"python",lmi:"python",py3:"python",pyde:"python",pyi:"python",pyp:"python",pyt:"python",pyw:"python",rpy:"python",tac:"python",wsgi:"python",xpy:"python","python-repl":"python-repl",pycon:"python-repl",q:"q",k:"q",kdb:"q",qml:"qml",r:"r",rd:"r",rsx:"r",reasonml:"reasonml",re:"reasonml",rib:"rib",roboconf:"roboconf",graph:"roboconf",instances:"roboconf",routeros:"routeros",rsl:"rsl",ruleslanguage:"ruleslanguage",rs:"rust","rs.in":"rust",sas:"sas",scala:"scala",kojo:"scala",sbt:"scala",sc:"scala",scm:"scheme",sch:"scheme",sld:"scheme",sls:"scheme",sps:"scheme",ss:"scheme",rkt:"scheme",scilab:"scilab",scss:"scss",shell:"shell",smali:"smali",st:"smalltalk",sml:"sml",sqf:"sqf",sql:"sql",cql:"sql",ddl:"sql",mysql:"sql",prc:"sql",tab:"sql",udf:"sql",viw:"sql",stan:"stan",stanfuncs:"stan",stata:"stata",step21:"step21",step:"step21",stp:"step21",styl:"stylus",subunit:"subunit",swift:"swift",taggerscript:"taggerscript",yml:"yaml",mir:"yaml",reek:"yaml",rviz:"yaml","sublime-syntax":"yaml",syntax:"yaml",yaml:"yaml","yaml-tmlanguage":"yaml","yml.mysql":"yaml",tap:"tap",tcl:"tcl",adp:"tcl",tm:"tcl",thrift:"thrift",tp:"tp",twig:"twig",craftcms:"twig",ts:"typescript",tsx:"typescript",vala:"vala",vbnet:"vbnet",vb:"vbnet",vbscript:"vbscript",vbs:"vbscript","vbscript-html":"vbscript-html",v:"verilog",veo:"verilog",vhdl:"vhdl",vhd:"vhdl",vhf:"vhdl",vhi:"vhdl",vho:"vhdl",vhs:"vhdl",vht:"vhdl",vhw:"vhdl",vim:"vim",x86asm:"x86asm",xl:"xl",xquery:"xquery",xpath:"xquery",xq:"xquery",zephir:"zephir",zep:"zephir"};n.getLanguage=function(e){var n;return null!==(n=a[e])&&void 0!==n?n:"plaintext"}},1761:function(e,n,t){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.hljs=void 0;var a=i(t(3390)),r=i(t(6248)),s=i(t(4610)),o=i(t(4868)),l=i(t(8780)),c=i(t(612)),d=i(t(2177)),u=i(t(3147)),g=i(t(3707)),b=i(t(9534)),p=i(t(5064)),f=i(t(2003)),m=i(t(6642)),E=i(t(7731)),h=i(t(7360)),_=i(t(2543)),N=i(t(5658)),T=i(t(7905)),O=i(t(7569)),v=i(t(6652)),A=i(t(2399)),y=i(t(9878)),S=i(t(4658)),R=i(t(1407)),w=i(t(7077)),I=i(t(4762)),C=i(t(8257)),L=i(t(978)),M=i(t(14)),D=i(t(5812)),x=i(t(4210)),k=i(t(1943)),P=i(t(4981)),U=i(t(7903)),B=i(t(2482)),F=i(t(4028)),j=i(t(2446)),H=i(t(9814)),G=i(t(2656)),z=i(t(2437)),$=i(t(5040)),V=i(t(7546)),K=i(t(5559)),W=i(t(8245)),q=i(t(9880)),X=i(t(729)),Y=i(t(1062)),Z=i(t(7874)),Q=i(t(8935)),J=i(t(7690)),ee=i(t(1392)),ne=i(t(8987));a.default.registerLanguage("cpp",r.default),a.default.registerLanguage("xml",s.default),a.default.registerLanguage("awk",o.default),a.default.registerLanguage("bash",l.default),a.default.registerLanguage("c",c.default),a.default.registerLanguage("clojure",d.default),a.default.registerLanguage("crystal",u.default),a.default.registerLanguage("csharp",g.default),a.default.registerLanguage("csp",b.default),a.default.registerLanguage("css",p.default),a.default.registerLanguage("markdown",f.default),a.default.registerLanguage("dart",m.default),a.default.registerLanguage("diff",E.default),a.default.registerLanguage("dockerfile",h.default),a.default.registerLanguage("elixir",_.default),a.default.registerLanguage("elm",N.default),a.default.registerLanguage("ruby",T.default),a.default.registerLanguage("erlang",O.default),a.default.registerLanguage("fsharp",v.default),a.default.registerLanguage("go",A.default),a.default.registerLanguage("gradle",y.default),a.default.registerLanguage("groovy",S.default),a.default.registerLanguage("handlebars",R.default),a.default.registerLanguage("haskell",w.default),a.default.registerLanguage("ini",I.default),a.default.registerLanguage("java",C.default),a.default.registerLanguage("javascript",L.default),a.default.registerLanguage("json",M.default),a.default.registerLanguage("kotlin",D.default),a.default.registerLanguage("less",x.default),a.default.registerLanguage("lisp",k.default),a.default.registerLanguage("lua",P.default),a.default.registerLanguage("makefile",U.default),a.default.registerLanguage("perl",B.default),a.default.registerLanguage("nginx",F.default),a.default.registerLanguage("objectivec",j.default),a.default.registerLanguage("pgsql",H.default),a.default.registerLanguage("php",G.default),a.default.registerLanguage("plaintext",z.default),a.default.registerLanguage("powershell",$.default),a.default.registerLanguage("properties",V.default),a.default.registerLanguage("protobuf",K.default),a.default.registerLanguage("python",W.default),a.default.registerLanguage("rust",q.default),a.default.registerLanguage("scala",X.default),a.default.registerLanguage("scss",Y.default),a.default.registerLanguage("shell",Z.default),a.default.registerLanguage("sql",Q.default),a.default.registerLanguage("swift",J.default),a.default.registerLanguage("yaml",ee.default),a.default.registerLanguage("typescript",ne.default),n.hljs=a.default},8593:(e,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.hashCode=n.unifyPath=n.escapeForRegExp=void 0;var t=RegExp("["+["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"].join("\\")+"]","g");n.escapeForRegExp=function(e){return e.replace(t,"\\$&")},n.unifyPath=function(e){return e?e.replace(/\\/g,"/"):e},n.hashCode=function(e){var n,t,i=0;for(n=0,t=e.length;n{var n={exports:{}};function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(n){var i=e[n];"object"!=typeof i||Object.isFrozen(i)||t(i)})),e}n.exports=t,n.exports.default=t;class i{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function a(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=a(e)}openNode(e){if(!s(e))return;let n="";n=e.sublanguage?`language-${e.language}`:((e,{prefix:n})=>{if(e.includes(".")){const t=e.split(".");return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")}return`${n}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(n)}closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const l=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class c{constructor(){this.rootNode=l(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=l({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{c._collapse(e)})))}}class d extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.sublanguage=!0,t.language=n,this.add(t)}toHTML(){return new o(this,this.options).value()}finalize(){return!0}}function u(e){return e?"string"==typeof e?e:e.source:null}function g(e){return f("(?=",e,")")}function b(e){return f("(?:",e,")*")}function p(e){return f("(?:",e,")?")}function f(...e){return e.map((e=>u(e))).join("")}function m(...e){const n=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(n.capture?"":"?:")+e.map((e=>u(e))).join("|")+")"}function E(e){return new RegExp(e.toString()+"|").exec("").length-1}const h=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t;let i=u(e),a="";for(;i.length>0;){const e=h.exec(i);if(!e){a+=i;break}a+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?a+="\\"+String(Number(e[1])+n):(a+=e[0],"("===e[0]&&t++)}return a})).map((e=>`(${e})`)).join(n)}const N="[a-zA-Z]\\w*",T="[a-zA-Z_]\\w*",O="\\b\\d+(\\.\\d+)?",v="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",A="\\b(0b[01]+)",y={begin:"\\\\[\\s\\S]",relevance:0},S={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[y]},R={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[y]},w=function(e,n,t={}){const i=r({scope:"comment",begin:e,end:n,contains:[]},t);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:f(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},I=w("//","$"),C=w("/\\*","\\*/"),L=w("#","$"),M={scope:"number",begin:O,relevance:0},D={scope:"number",begin:v,relevance:0},x={scope:"number",begin:A,relevance:0},k={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[y,{begin:/\[/,end:/\]/,relevance:0,contains:[y]}]}]},P={scope:"title",begin:N,relevance:0},U={scope:"title",begin:T,relevance:0};var B=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:N,UNDERSCORE_IDENT_RE:T,NUMBER_RE:O,C_NUMBER_RE:v,BINARY_NUMBER_RE:A,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=f(n,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:y,APOS_STRING_MODE:S,QUOTE_STRING_MODE:R,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:w,C_LINE_COMMENT_MODE:I,C_BLOCK_COMMENT_MODE:C,HASH_COMMENT_MODE:L,NUMBER_MODE:M,C_NUMBER_MODE:D,BINARY_NUMBER_MODE:x,REGEXP_MODE:k,TITLE_MODE:P,UNDERSCORE_TITLE_MODE:U,METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}});function F(e,n){"."===e.input[e.index-1]&&n.ignoreMatch()}function j(e,n){void 0!==e.className&&(e.scope=e.className,delete e.className)}function H(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=F,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function G(e,n){Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function z(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function $(e,n){void 0===e.relevance&&(e.relevance=1)}const V=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]})),e.keywords=t.keywords,e.begin=f(t.beforeMatch,g(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},K=["of","and","for","in","not","or","if","then","parent","list","value"];function W(e,n,t="keyword"){const i=Object.create(null);return"string"==typeof e?a(t,e.split(" ")):Array.isArray(e)?a(t,e):Object.keys(e).forEach((function(t){Object.assign(i,W(e[t],n,t))})),i;function a(e,t){n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((function(n){const t=n.split("|");i[t[0]]=[e,q(t[0],t[1])]}))}}function q(e,n){return n?Number(n):function(e){return K.includes(e.toLowerCase())}(e)?0:1}const X={},Y=e=>{console.error(e)},Z=(e,...n)=>{console.log(`WARN: ${e}`,...n)},Q=(e,n)=>{X[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),X[`${e}/${n}`]=!0)},J=new Error;function ee(e,n,{key:t}){let i=0;const a=e[t],r={},s={};for(let e=1;e<=n.length;e++)s[e+i]=a[e],r[e+i]=!0,i+=E(n[e-1]);e[t]=s,e[t]._emit=r,e[t]._multi=!0}function ne(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Y("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),J;if("object"!=typeof e.beginScope||null===e.beginScope)throw Y("beginScope must be object"),J;ee(e,e.begin,{key:"beginScope"}),e.begin=_(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Y("skip, excludeEnd, returnEnd not compatible with endScope: {}"),J;if("object"!=typeof e.endScope||null===e.endScope)throw Y("endScope must be object"),J;ee(e,e.end,{key:"endScope"}),e.end=_(e.end,{joinWith:""})}}(e)}function te(e){function n(n,t){return new RegExp(u(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=E(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=n(_(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),i=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,i)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&this.considerAll()),t}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=r(e.classNameAliases||{}),function t(a,s){const o=a;if(a.isCompiled)return o;[j,z,ne,V].forEach((e=>e(a,s))),e.compilerExtensions.forEach((e=>e(a,s))),a.__beforeBegin=null,[H,G,$].forEach((e=>e(a,s))),a.isCompiled=!0;let l=null;return"object"==typeof a.keywords&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),l=a.keywords.$pattern,delete a.keywords.$pattern),l=l||/\w+/,a.keywords&&(a.keywords=W(a.keywords,e.case_insensitive)),o.keywordPatternRe=n(l,!0),s&&(a.begin||(a.begin=/\B|\b/),o.beginRe=n(o.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(o.endRe=n(o.end)),o.terminatorEnd=u(o.end)||"",a.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(a.end?"|":"")+s.terminatorEnd)),a.illegal&&(o.illegalRe=n(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cachedVariants?e.cachedVariants:ie(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?a:e)}))),a.contains.forEach((function(e){t(e,o)})),a.starts&&t(a.starts,s),o.matcher=function(e){const n=new i;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(o),o}(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}class ae extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const re=a,se=r,oe=Symbol("nomatch");var le=function(e){const t=Object.create(null),a=Object.create(null),r=[];let s=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:d};function u(e){return c.noHighlightRe.test(e)}function E(e,n,t){let i="",a="";"object"==typeof n?(i=e,t=n.ignoreIllegals,a=n.language):(Q("10.7.0","highlight(lang, code, ...args) has been deprecated."),Q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),a=e,i=n),void 0===t&&(t=!0);const r={code:i,language:a};S("before:highlight",r);const s=r.result?r.result:h(r.language,r.code,t);return s.code=r.code,S("after:highlight",s),s}function h(e,n,a,r){const l=Object.create(null);function d(){if(!y.keywords)return void R.addText(w);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(w),t="";for(;n;){t+=w.substring(e,n.index);const a=T.case_insensitive?n[0].toLowerCase():n[0],r=(i=a,y.keywords[i]);if(r){const[e,i]=r;if(R.addText(t),t="",l[a]=(l[a]||0)+1,l[a]<=7&&(I+=i),e.startsWith("_"))t+=n[0];else{const t=T.classNameAliases[e]||e;R.addKeyword(n[0],t)}}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(w)}var i;t+=w.substring(e),R.addText(t)}function u(){null!=y.subLanguage?function(){if(""===w)return;let e=null;if("string"==typeof y.subLanguage){if(!t[y.subLanguage])return void R.addText(w);e=h(y.subLanguage,w,!0,S[y.subLanguage]),S[y.subLanguage]=e._top}else e=_(w,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),R.addSublanguage(e._emitter,e.language)}():d(),w=""}function g(e,n){let t=1;const i=n.length-1;for(;t<=i;){if(!e._emit[t]){t++;continue}const i=T.classNameAliases[e[t]]||e[t],a=n[t];i?R.addKeyword(a,i):(w=a,d(),w=""),t++}}function b(e,n){return e.scope&&"string"==typeof e.scope&&R.openNode(T.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(R.addKeyword(w,T.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),w=""):e.beginScope._multi&&(g(e.beginScope,n),w="")),y=Object.create(e,{parent:{value:y}}),y}function p(e,n,t){let a=function(e,n){const t=e&&e.exec(n);return t&&0===t.index}(e.endRe,t);if(a){if(e["on:end"]){const t=new i(e);e["on:end"](n,t),t.isMatchIgnored&&(a=!1)}if(a){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return p(e.parent,n,t)}function f(e){return 0===y.matcher.regexIndex?(w+=e[0],1):(M=!0,0)}function m(e){const t=e[0],i=n.substring(e.index),a=p(y,e,i);if(!a)return oe;const r=y;y.endScope&&y.endScope._wrap?(u(),R.addKeyword(t,y.endScope._wrap)):y.endScope&&y.endScope._multi?(u(),g(y.endScope,e)):r.skip?w+=t:(r.returnEnd||r.excludeEnd||(w+=t),u(),r.excludeEnd&&(w=t));do{y.scope&&R.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&b(a.starts,e),r.returnEnd?0:t.length}let E={};function N(t,r){const o=r&&r[0];if(w+=t,null==o)return u(),0;if("begin"===E.type&&"end"===r.type&&E.index===r.index&&""===o){if(w+=n.slice(r.index,r.index+1),!s){const n=new Error(`0 width match regex (${e})`);throw n.languageName=e,n.badRule=E.rule,n}return 1}if(E=r,"begin"===r.type)return function(e){const n=e[0],t=e.rule,a=new i(t),r=[t.__beforeBegin,t["on:begin"]];for(const t of r)if(t&&(t(e,a),a.isMatchIgnored))return f(n);return t.skip?w+=n:(t.excludeBegin&&(w+=n),u(),t.returnBegin||t.excludeBegin||(w=n)),b(t,e),t.returnBegin?0:n.length}(r);if("illegal"===r.type&&!a){const e=new Error('Illegal lexeme "'+o+'" for mode "'+(y.scope||"")+'"');throw e.mode=y,e}if("end"===r.type){const e=m(r);if(e!==oe)return e}if("illegal"===r.type&&""===o)return 1;if(L>1e5&&L>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return w+=o,o.length}const T=v(e);if(!T)throw Y(o.replace("{}",e)),new Error('Unknown language: "'+e+'"');const O=te(T);let A="",y=r||O;const S={},R=new c.__emitter(c);!function(){const e=[];for(let n=y;n!==T;n=n.parent)n.scope&&e.unshift(n.scope);e.forEach((e=>R.openNode(e)))}();let w="",I=0,C=0,L=0,M=!1;try{for(y.matcher.considerAll();;){L++,M?M=!1:y.matcher.considerAll(),y.matcher.lastIndex=C;const e=y.matcher.exec(n);if(!e)break;const t=N(n.substring(C,e.index),e);C=e.index+t}return N(n.substring(C)),R.closeAllNodes(),R.finalize(),A=R.toHTML(),{language:e,value:A,relevance:I,illegal:!1,_emitter:R,_top:y}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:re(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:C,context:n.slice(C-100,C+100),mode:t.mode,resultSoFar:A},_emitter:R};if(s)return{language:e,value:re(n),illegal:!1,relevance:0,errorRaised:t,_emitter:R,_top:y};throw t}}function _(e,n){n=n||c.languages||Object.keys(t);const i=function(e){const n={value:re(e),illegal:!1,relevance:0,_top:l,_emitter:new c.__emitter(c)};return n._emitter.addText(e),n}(e),a=n.filter(v).filter(y).map((n=>h(n,e,!1)));a.unshift(i);const r=a.sort(((e,n)=>{if(e.relevance!==n.relevance)return n.relevance-e.relevance;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,d=s;return d.secondBest=o,d}function N(e){let n=null;const t=function(e){let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=c.languageDetectRe.exec(n);if(t){const n=v(t[1]);return n||(Z(o.replace("{}",t[1])),Z("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}return n.split(/\s+/).find((e=>u(e)||v(e)))}(e);if(u(t))return;if(S("before:highlightElement",{el:e,language:t}),e.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),c.throwUnescapedHTML))throw new ae("One of your code blocks includes unescaped HTML.",e.innerHTML);n=e;const i=n.textContent,r=t?E(i,{language:t,ignoreIllegals:!0}):_(i);e.innerHTML=r.value,function(e,n,t){const i=n&&a[n]||t;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,t,r.language),e.result={language:r.language,re:r.relevance,relevance:r.relevance},r.secondBest&&(e.secondBest={language:r.secondBest.language,relevance:r.secondBest.relevance}),S("after:highlightElement",{el:e,result:r,text:i})}let T=!1;function O(){"loading"!==document.readyState?document.querySelectorAll(c.cssSelector).forEach(N):T=!0}function v(e){return e=(e||"").toLowerCase(),t[e]||t[a[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{a[e.toLowerCase()]=n}))}function y(e){const n=v(e);return n&&!n.disableAutodetect}function S(e,n){const t=e;r.forEach((function(e){e[t]&&e[t](n)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){T&&O()}),!1),Object.assign(e,{highlight:E,highlightAuto:_,highlightAll:O,highlightElement:N,highlightBlock:function(e){return Q("10.7.0","highlightBlock will be removed entirely in v12.0"),Q("10.7.0","Please use highlightElement now."),N(e)},configure:function(e){c=se(c,e)},initHighlighting:()=>{O(),Q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){O(),Q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,i){let a=null;try{a=i(e)}catch(e){if(Y("Language definition for '{}' could not be registered.".replace("{}",n)),!s)throw e;Y(e),a=l}a.name||(a.name=n),t[n]=a,a.rawDefinition=i.bind(null,e),a.aliases&&A(a.aliases,{languageName:n})},unregisterLanguage:function(e){delete t[e];for(const n of Object.keys(a))a[n]===e&&delete a[n]},listLanguages:function(){return Object.keys(t)},getLanguage:v,registerAliases:A,autoDetection:y,inherit:se,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{e["before:highlightBlock"](Object.assign({block:n.el},n))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{e["after:highlightBlock"](Object.assign({block:n.el},n))})}(e),r.push(e)}}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString="11.6.0",e.regex={concat:f,lookahead:g,either:m,optional:p,anyNumberOfTimes:b};for(const e in B)"object"==typeof B[e]&&n.exports(B[e]);return Object.assign(e,B),e}({});e.exports=le,le.HighlightJS=le,le.default=le},4868:e=>{e.exports=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},8780:e=>{e.exports=function(e){const n=e.regex,t={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(s);const o={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},l=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}},612:e=>{e.exports=function(e){const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0},d=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},g=[l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u,contains:g.concat(["self"]),relevance:0}]),relevance:0},p={begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}]},r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l,strings:s,keywords:u}}}},2177:e=>{e.exports=function(e){const n="a-zA-Z_\\-!.?+*=<>&'",t="[#]?["+n+"]["+n+"0-9/;:$#]*",i="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",a={$pattern:t,built_in:i+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},r={begin:t,relevance:0},s={scope:"number",relevance:0,variants:[{match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{match:/[-+]?([1-9][0-9]*|0)N?/}]},o={scope:"character",variants:[{match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/,relevance:0}]},l={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),d={scope:"punctuation",match:/,/,relevance:0},u=e.COMMENT(";","$",{relevance:0}),g={className:"literal",begin:/\b(true|false|nil)\b/},b={begin:"\\[|(#::?"+t+")?\\{",end:"[\\]\\}]",relevance:0},p={className:"symbol",begin:"[:]{1,2}"+t},f={begin:"\\(",end:"\\)"},m={endsWithParent:!0,relevance:0},E={keywords:a,className:"name",begin:t,relevance:0,starts:m},h=[d,f,o,l,c,u,p,b,s,g,r],_={beginKeywords:i,keywords:{$pattern:t,keyword:i},end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:t,relevance:0,excludeEnd:!0,endsParent:!0}].concat(h)};return f.contains=[_,E,m],m.contains=h,b.contains=h,{name:"Clojure",aliases:["clj","edn"],illegal:/\S/,contains:[d,f,o,l,c,u,p,b,s,g]}}},6248:e=>{e.exports=function(e){const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="[a-zA-Z_]\\w*::",a="(?!struct)(decltype\\(auto\\)|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0},d=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},g={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},b=[g,l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],p={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,contains:b.concat(["self"]),relevance:0}]),relevance:0},f={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}]},r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}},3147:e=>{e.exports=function(e){const n="(_?[ui](8|16|32|64|128))?",t="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",i="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",a={$pattern:"[a-zA-Z_]\\w*[!?=]?",keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},r={className:"subst",begin:/#\{/,end:/\}/,keywords:a},s={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:a};function o(e,n){const t=[{begin:e,end:n}];return t[0].contains=t,t}const l={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:o("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},c={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%q<",end:">",contains:o("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},d={begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},u=[s,l,c,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"%r\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%r<",end:">",contains:o("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},d,{className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:i})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})],relevance:2},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[l,{begin:t}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{begin:"\\b0x([A-Fa-f0-9_]+)"+n},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+n}],relevance:0}];return r.contains=u,s.contains=u.slice(1),{name:"Crystal",aliases:["cr"],keywords:a,contains:u}}},3707:e=>{e.exports=function(e){const n={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},a={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(a,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]});s.contains=[c,l,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const u={variants:[c,l,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},g={begin:"<",end:">",contains:[{beginKeywords:"in out"},t]},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",p={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},u,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},t,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[t,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,g],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[u,i,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},p]}}},9534:e=>{e.exports=function(e){return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"]},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}},5064:e=>{const n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();e.exports=function(e){const s=e.regex,o=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[o.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+i.join("|")+")"},{begin:":(:)?("+a.join("|")+")"}]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[o.BLOCK_COMMENT,o.HEXCOLOR,o.IMPORTANT,o.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},o.FUNCTION_DISPATCH]},{begin:s.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,o.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+n.join("|")+")\\b"}]}}},6642:e=>{e.exports=function(e){const n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},t={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},i={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,n,t]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,n,t]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n,t]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n,t]}]};t.contains=[e.C_NUMBER_MODE,i];const a=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=a.map((e=>`${e}?`));return{name:"Dart",keywords:{keyword:["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"],built_in:a.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/},contains:[i,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}},7731:e=>{e.exports=function(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}},7360:e=>{e.exports=function(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{e.exports=function(e){const n=e.regex,t="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",i={$pattern:t,keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],literal:["false","nil","true"]},a={className:"subst",begin:/#\{/,end:/\}/,keywords:i},r={match:/\\[\s\S]/,scope:"char.escape",relevance:0},s=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}],o=e=>({scope:"char.escape",begin:n.concat(/\\/,e),relevance:0}),l={className:"string",begin:"~[a-z](?=[/|([{<\"'])",contains:s.map((n=>e.inherit(n,{contains:[o(n.end),r,a]})))},c={className:"string",begin:"~[A-Z](?=[/|([{<\"'])",contains:s.map((n=>e.inherit(n,{contains:[o(n.end)]})))},d={className:"regex",variants:[{begin:"~r(?=[/|([{<\"'])",contains:s.map((t=>e.inherit(t,{end:n.concat(t.end,/[uismxfU]{0,7}/),contains:[o(t.end),r,a]})))},{begin:"~R(?=[/|([{<\"'])",contains:s.map((t=>e.inherit(t,{end:n.concat(t.end,/[uismxfU]{0,7}/),contains:[o(t.end)]})))}]},u={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},g={className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},b=e.inherit(g,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),p=[u,d,c,l,e.HASH_COMMENT_MODE,b,g,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[u,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:t+":(?!:)",relevance:0},{className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}];return a.contains=p,{name:"Elixir",aliases:["ex","exs"],keywords:i,contains:p}}},5658:e=>{e.exports=function(e){const n={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},t={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},i={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},n]};return{name:"Elm",keywords:["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"],contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[i,n],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[i,n],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[t,i,{begin:/\{/,end:/\}/,contains:i.contains},n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"port",end:"$",keywords:"port",contains:[n]},{className:"string",begin:"'\\\\?.",end:"'",illegal:"."},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,t,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}],illegal:/;/}}},7569:e=>{e.exports=function(e){const n="[a-z'][a-zA-Z0-9_']*",t="("+n+":"+n+"|"+n+")",i={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},a=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:t+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:t,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:/\{/,end:/\}/,relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:i};g.contains=[a,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];const b=[a,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=b,l.contains=b,u.contains[1].contains=b;const p={className:"params",begin:"\\(",end:"\\)",contains:b};return{name:"Erlang",aliases:["erl"],keywords:i,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[p,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:i,contains:b}},a,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map((e=>`${e}|1.5`)).join(" ")},contains:[p]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}},6652:e=>{function n(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function t(e){return e?"string"==typeof e?e:e.source:null}function i(e){return a("(?=",e,")")}function a(...e){return e.map((e=>t(e))).join("")}function r(...e){const n=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(n.capture?"":"?:")+e.map((e=>t(e))).join("|")+")"}e.exports=function(e){const t={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},s=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],o={keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},l={variants:[e.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),e.C_LINE_COMMENT_MODE]},c={scope:"variable",begin:/``/,end:/``/},d=/\B('|\^)/,u={scope:"symbol",variants:[{match:a(d,/``.*?``/)},{match:a(d,e.UNDERSCORE_IDENT_RE)}],relevance:0},g=function({includeEqual:e}){let t;t=e?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?";const s=a("[",...Array.from(t).map(n),"]"),o=r(s,/\./),l=a(o,i(o)),c=r(a(l,o,"*"),a(s,"+"));return{scope:"operator",match:r(c,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},b=g({includeEqual:!0}),p=g({includeEqual:!1}),f=function(n,t){return{begin:a(n,i(a(/\s*/,r(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:t,end:i(r(/\n/,/=/)),relevance:0,keywords:e.inherit(o,{type:s}),contains:[l,u,e.inherit(c,{scope:null}),p]}},m=f(/:/,"operator"),E=f(/\bof\b/,"keyword"),h={begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword",4:"title.class"},end:i(/\(|=|$/),keywords:o,contains:[l,e.inherit(c,{scope:null}),u,{scope:"operator",match:/<|>/},m]},_={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},N={begin:[/^\s*/,a(/#/,r("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/],beginScope:{2:"meta"},end:i(/\s|$/)},T={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},O={scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},v={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},e.BACKSLASH_ESCAPE]},A={scope:"string",begin:/"""/,end:/"""/,relevance:2},y={scope:"subst",begin:/\{/,end:/\}/,keywords:o},S={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},e.BACKSLASH_ESCAPE,y]},R={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,y]},w={scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},y],relevance:2},I={scope:"string",match:a(/'/,r(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return y.contains=[R,S,v,O,I,t,l,c,m,_,N,T,u,b],{name:"F#",aliases:["fs","f#"],keywords:o,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[t,{variants:[w,R,S,A,v,O,I]},l,c,h,{scope:"meta",begin:/\[\]/,relevance:2,contains:[c,A,v,O,I,T]},E,m,_,N,T,u,b]}}},2399:e=>{e.exports=function(e){const n={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{e.exports=function(e){return{name:"Gradle",case_insensitive:!0,keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"],contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}},4658:e=>{function n(e,n={}){return n.variants=e,n}e.exports=function(e){const t=e.regex,i="[A-Za-z0-9_$]+",a=n([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),r={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},s=n([e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]),o=n([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],{className:"string"}),l={match:[/(class|interface|trait|enum|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE],scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{"variable.language":"this super",literal:"true false null",type:["byte","short","char","int","long","boolean","float","double","void"],keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof"]},contains:[e.SHEBANG({binary:"groovy",relevance:10}),a,o,r,s,l,{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:i+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[a,o,r,s,"self"]},{className:"symbol",begin:"^[ \t]*"+t.lookahead(i+":"),excludeBegin:!0,end:i+":",relevance:0}],illegal:/#|<\//}}},1407:e=>{e.exports=function(e){const n=e.regex,t={$pattern:/[\w.\/]+/,built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},i=/\[\]|\[[^\]]+\]/,a=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,r=n.either(/""|"[^"]+"/,/''|'[^']+'/,i,a),s=n.concat(n.optional(/\.|\.\/|\//),r,n.anyNumberOfTimes(n.concat(/(\.|\/)/,r))),o=n.concat("(",i,"|",a,")(?==)"),l={begin:s},c=e.inherit(l,{keywords:{$pattern:/[\w.\/]+/,literal:["true","false","undefined","null"]}}),d={begin:/\(/,end:/\)/},u={className:"attr",begin:o,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,c,d]}}},g={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},u,c,d],returnEnd:!0},b=e.inherit(l,{className:"name",keywords:t,starts:e.inherit(g,{end:/\)/})});d.contains=[b];const p=e.inherit(l,{keywords:t,className:"name",starts:e.inherit(g,{end:/\}\}/})}),f=e.inherit(l,{keywords:t,className:"name"}),m=e.inherit(l,{className:"name",keywords:t,starts:e.inherit(g,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[p],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[f]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[p]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[f]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[m]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[m]}]}}},7077:e=>{e.exports=function(e){const n={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},t={className:"meta",begin:/\{-#/,end:/#-\}/},i={className:"meta",begin:"^#",end:"$"},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[t,i,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]},s="([0-9a-fA-F]_*)+",o={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:`\\b0[xX]_*(${s})(\\.(${s}))?([pP][+-]?(([0-9]_*)+))?\\b`},{match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[r,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[r,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[a,r,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[t,a,r,{begin:/\{/,end:/\}/,contains:r.contains},n]},{beginKeywords:"default",end:"$",contains:[a,r,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[a,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},t,i,e.QUOTE_STRING_MODE,o,a,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}},4762:e=>{e.exports=function(e){const n=e.regex,t={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},i=e.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const a={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},s={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},o={begin:/\[/,end:/\]/,contains:[i,r,a,s,t,"self"],relevance:0},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),className:"attr",starts:{end:/$/,contains:[i,o,r,a,s,t]}}]}}},8257:e=>{var n="\\.([0-9](_*[0-9])*)",t="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b([0-9](_*[0-9])*)((${n})|\\.)?|(${n}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`},{begin:`\\b([0-9](_*[0-9])*)((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{begin:`\\b0[xX]((${t})\\.?|(${t})?\\.(${t}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${t})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function a(e,n,t){return-1===t?"":e.replace(n,(i=>a(e,n,t-1)))}e.exports=function(e){const n=e.regex,t="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=t+a("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),s={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},o={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:s,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:s,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i,o]}}},978:e=>{const n="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],i=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],r=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],s=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],o=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(s,a,r);e.exports=function(e){const c=e.regex,d=n,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const t=e[0].length+e.index,i=e.input[t];if("<"===i||","===i)return void n.ignoreMatch();let a;">"===i&&(((e,{after:n})=>{const t="",D={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,h,_,N,f,S,{className:"attr",begin:d+c.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[N,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},R,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},C,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},y,L,{match:/\$[(.]/}]}}},14:e=>{e.exports=function(e){const n=["true","false","null"],t={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}},5812:e=>{var n="\\.([0-9](_*[0-9])*)",t="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b([0-9](_*[0-9])*)((${n})|\\.)?|(${n}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`},{begin:`\\b([0-9](_*[0-9])*)((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{begin:`\\b0[xX]((${t})\\.?|(${t})?\\.(${t}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${t})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};e.exports=function(e){const n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},r={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[r,a]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,r,a]}]};a.contains.push(s);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},c=i,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},g=u;return g.variants[1].contains=[u],u.variants[1].contains=[g],{name:"Kotlin",aliases:["kt","kts"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},t,o,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,o,l,s,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,l]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},c]}}},4210:e=>{const n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),s=i.concat(a);e.exports=function(e){const o=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),l=s,c="([\\w-]+|@\\{[\\w-]+\\})",d=[],u=[],g=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},b=function(e,n,t){return{className:e,begin:n,relevance:t}},p={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},f={begin:"\\(",end:"\\)",contains:u,keywords:p,relevance:0};u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g("'"),g('"'),o.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},o.HEXCOLOR,f,b("variable","@@?[\\w-]+",10),b("variable","@\\{[\\w-]+\\}"),b("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},o.IMPORTANT,{beginKeywords:"and not"},o.FUNCTION_DISPATCH);const m=u.concat({begin:/\{/,end:/\}/,contains:d}),E={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(u)},h={begin:c+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+r.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:u}}]},_={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:p,returnEnd:!0,contains:u,relevance:0}},N={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:m}},T={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:c,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,E,b("keyword","all\\b"),b("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+n.join("|")+")\\b",className:"selector-tag"},o.CSS_NUMBER_MODE,b("selector-tag",c,0),b("selector-id","#"+c),b("selector-class","\\."+c,0),b("selector-tag","&",0),o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+i.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:m},{begin:"!important"},o.FUNCTION_DISPATCH]},O={begin:`[\\w-]+:(:)?(${l.join("|")})`,returnBegin:!0,contains:[T]};return d.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,_,N,O,h,T,E,o.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:d}}},1943:e=>{e.exports=function(e){const n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",t="\\|[^]*?\\|",i="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",a={className:"literal",begin:"\\b(t{1}|nil)\\b"},r={className:"number",variants:[{begin:i,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+i+" +"+i,end:"\\)"}]},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+n},d={begin:n,relevance:0},u={begin:t},g={contains:[r,s,l,c,{begin:"\\(",end:"\\)",contains:["self",a,s,r,d]},d],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+t}]},b={variants:[{begin:"'"+n},{begin:"#'"+n+"(::"+n+")*"}]},p={begin:"\\(\\s*",end:"\\)"},f={endsWithParent:!0,relevance:0};return p.contains=[{className:"name",variants:[{begin:n,relevance:0},{begin:t}]},f],f.contains=[g,b,p,a,r,s,o,l,c,u,d],{name:"Lisp",illegal:/\S/,contains:[r,e.SHEBANG(),a,s,o,g,b,p,d]}}},4981:e=>{e.exports=function(e){const n="\\[=*\\[",t="\\]=*\\]",i={begin:n,end:t,contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",t,{contains:[i],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:n,end:t,contains:[i],relevance:5}])}}},7903:e=>{e.exports=function(e){const n={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{e.exports=function(e){const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},a={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]},r=e.inherit(i,{contains:[]}),s=e.inherit(a,{contains:[]});i.contains.push(s),a.contains.push(r);let o=[n,t];return[i,a,r,s].forEach((e=>{e.contains=e.contains.concat(o)})),o=o.concat(i,a),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,a,{className:"quote",begin:"^>\\s+",contains:o,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},4028:e=>{e.exports=function(e){const n=e.regex,t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:n.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},i={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},t]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:i.contains,keywords:{section:"upstream location"}},{className:"section",begin:n.concat(e.UNDERSCORE_IDENT_RE+n.lookahead(/\s+\{/)),relevance:0},{begin:n.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:i}],relevance:0}],illegal:"[^\\s\\}\\{]"}}},2446:e=>{e.exports=function(e){const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}},2482:e=>{e.exports=function(e){const n=e.regex,t=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},r={begin:/->\{/,end:/\}/},s={variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},o=[e.BACKSLASH_ESCAPE,a,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,i,a="\\1")=>{const r="\\1"===a?a:n.concat(a,i);return n.concat(n.concat("(?:",e,")"),i,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,a,t)},d=(e,i,a)=>n.concat(n.concat("(?:",e,")"),i,/(?:\\.|[^\\\/])*?/,a,t),u=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:o,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=u,r.contains=u,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:u}}},9814:e=>{e.exports=function(e){const n=e.COMMENT("--","$"),t="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",i="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",a=i.trim().split(" ").map((function(e){return e.split("|")[0]})).join("|"),r="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map((function(e){return e.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+r+")\\s*\\("},{begin:"\\.("+a+")\\b"},{begin:"\\b("+a+")\\s+PATH\\b",keywords:{keyword:"PATH",type:i.replace("PATH ","")}},{className:"type",begin:"\\b("+a+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:t,end:t,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}}},2656:e=>{e.exports=function(e){const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,i=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),a=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={scope:"variable",match:"\\$+"+i},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s)})]},d={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},u=["false","null","true"],g=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={keyword:g,literal:(e=>{const n=[];return e.forEach((e=>{n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())})),n})(u),built_in:b},f=e=>e.map((e=>e.replace(/\|\d+$/,""))),m={variants:[{match:[/new/,n.concat(l,"+"),n.concat("(?!",f(b).join("\\b|"),"\\b)"),a],scope:{1:"keyword",4:"title.class"}}]},E=n.concat(i,"\\b(?!\\()"),h={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),E],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[a,n.concat(/::/,n.lookahead(/(?!class\b)/)),E],scope:{1:"title.class",3:"variable.constant"}},{match:[a,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[a,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},_={scope:"attr",match:n.concat(i,n.lookahead(":"),n.lookahead(/(?!::)/))},N={relevance:0,begin:/\(/,end:/\)/,keywords:p,contains:[_,r,h,e.C_BLOCK_COMMENT_MODE,c,d,m]},T={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",f(g).join("\\b|"),"|",f(b).join("\\b|"),"\\b)"),i,n.concat(l,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[N]};N.contains.push(T);const O=[_,h,e.C_BLOCK_COMMENT_MODE,c,d,m];return{case_insensitive:!1,keywords:p,contains:[{begin:n.concat(/#\[\s*/,a),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},contains:["self",...O]},...O,{scope:"meta",match:a}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,T,h,{match:[/const/,/\s/,i],scope:{1:"keyword",3:"variable.constant"}},m,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,contains:["self",r,h,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}}},2437:e=>{e.exports=function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}},5040:e=>{e.exports=function(e){const n={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},t={begin:"`[\\s\\S]",relevance:0},i={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},a={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[t,i,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},r={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},s=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]}]}),o={className:"built_in",variants:[{begin:"(".concat("Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",")+(-)[\\w\\d]+")}]},l={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},c={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[i]}]},d={begin:/using\s/,end:/$/,returnBegin:!0,contains:[a,r,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},u={variants:[{className:"operator",begin:"(".concat("-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},g={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(n.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},b=[g,s,t,e.NUMBER_MODE,a,r,o,i,{className:"literal",begin:/\$(null|true|false)\b/},{className:"selector-tag",begin:/@\B/,relevance:0}],p={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",b,{begin:"("+["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"].join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return g.contains.unshift(p),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:n,contains:b.concat(l,c,d,u,p)}}},7546:e=>{e.exports=function(e){const n="[ \\t\\f]*",t="([^\\\\:= \\t\\f\\n]|\\\\.)+";return{name:".properties",disableAutodetect:!0,case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:t+"[ \\t\\f]*[:=][ \\t\\f]*"},{begin:t+"[ \\t\\f]+"}],contains:[{className:"attr",begin:t,endsParent:!0}],starts:{end:"([ \\t\\f]*[:=][ \\t\\f]*|[ \\t\\f]+)",relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}}},{className:"attr",begin:t+n+"$"}]}}},5559:e=>{e.exports=function(e){const n={match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword",2:"title.class"}};return{name:"Protocol Buffers",keywords:{keyword:["package","import","option","optional","required","repeated","group","oneof"],type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}},8245:e=>{e.exports=function(e){const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},o={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,u=`\\b|${i.join("|")}`,g={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\b(${c})[jJ](?=${u})`}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},p={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",r,g,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,g,r],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|->|\?)|=>/,contains:[r,g,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[p]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,p,l]}]}}},7905:e=>{e.exports=function(e){const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),a=n.concat(i,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__"],"variable.language":["self","super"],keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"],built_in:["proc","lambda"],literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},u="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${u}))?([eE][+-]?(${u})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},p=[d,{variants:[{match:[/class\s+/,a,/\s+<\s+/,a]},{match:[/class\s+/,a]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{relevance:0,match:[a,/\.new[ (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l);c.contains=p,b.contains=p;const f=[{begin:/^\s*=>/,starts:{end:"$",contains:p}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:r,contains:p}}];return l.unshift(o),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(f).concat(l).concat(p)}}},9880:e=>{e.exports=function(e){const n=e.regex,t={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let\b)/,e.IDENT_RE,n.lookahead(/\s*\(/))},i="([ui](8|16|32|64|128|size)|f(32|64))?",a=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:a},illegal:""},t]}}},729:e=>{e.exports=function(e){const n=e.regex,t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},i={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[t],relevance:10}]},a={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},r={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},s={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[a]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[a]},r]},o={className:"function",beginKeywords:"def",end:n.lookahead(/[:={\[(\n;]/),contains:[r]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a,o,s,e.C_NUMBER_MODE,{begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},{begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"}},{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"},{begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}},{className:"meta",begin:"@[A-Za-z]+"}]}}},1062:e=>{const n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();e.exports=function(e){const s=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),o=a,l=i,c="@[a-z-]+",d={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+n.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+o.join("|")+")"},d,{begin:/\(/,end:/\)/,contains:[s.CSS_NUMBER_MODE]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[s.BLOCK_COMMENT,d,s.HEXCOLOR,s.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,s.IMPORTANT,s.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:c,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:c,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,s.HEXCOLOR,s.CSS_NUMBER_MODE]},s.FUNCTION_DISPATCH]}}},7874:e=>{e.exports=function(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}},8935:e=>{e.exports=function(e){const n=e.regex,t=e.COMMENT("--","$"),i=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:n,when:t}={}){const i=t;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:i(e)?`${e}|0`:e))}(l,{when:e=>e.length<3}),literal:i,type:a,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:l.concat(s),literal:i,type:a}},{className:"type",begin:n.either("double precision","large object","with timezone","without timezone")},c,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}},7690:e=>{function n(e){return e?"string"==typeof e?e:e.source:null}function t(e){return i("(?=",e,")")}function i(...e){return e.map((e=>n(e))).join("")}function a(...e){const t=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>n(e))).join("|")+")"}const r=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(r),o=["init","self"].map(r),l=["Any","Self"],c=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],d=["false","nil","true"],u=["assignment","associativity","higherThan","left","lowerThan","none","right"],g=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],b=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=a(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),f=a(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),m=i(p,f,"*"),E=a(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),h=a(E,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),_=i(E,h,"*"),N=i(/[A-Z]/,h,"*"),T=["autoclosure",i(/convention\(/,a("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",i(/objc\(/,_,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],O=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];e.exports=function(e){const n={match:/\s+/,relevance:0},p=e.COMMENT("/\\*","\\*/",{contains:["self"]}),E=[e.C_LINE_COMMENT_MODE,p],v={match:[/\./,a(...s,...o)],className:{2:"keyword"}},A={match:i(/\./,a(...c)),relevance:0},y=c.filter((e=>"string"==typeof e)).concat(["_|0"]),S={variants:[{className:"keyword",match:a(...c.filter((e=>"string"!=typeof e)).concat(l).map(r),...o)}]},R={$pattern:a(/\b\w+/,/#\w+/),keyword:y.concat(g),literal:d},w=[v,A,S],I=[{match:i(/\./,a(...b)),relevance:0},{className:"built_in",match:i(/\b/,a(...b),/(?=\()/)}],C={match:/->/,relevance:0},L=[C,{className:"operator",relevance:0,variants:[{match:m},{match:`\\.(\\.|${f})+`}]}],M="([0-9a-fA-F]_*)+",D={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:`\\b0x(${M})(\\.(${M}))?([pP][+-]?(([0-9]_*)+))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},x=(e="")=>({className:"subst",variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),k=(e="")=>({className:"subst",match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),P=(e="")=>({className:"subst",label:"interpol",begin:i(/\\/,e,/\(/),end:/\)/}),U=(e="")=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[x(e),k(e),P(e)]}),B=(e="")=>({begin:i(e,/"/),end:i(/"/,e),contains:[x(e),P(e)]}),F={className:"string",variants:[U(),U("#"),U("##"),U("###"),B(),B("#"),B("##"),B("###")]},j={match:i(/`/,_,/`/)},H=[j,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${h}+`}],G=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:O,contains:[...L,D,F]}]}},{className:"keyword",match:i(/@/,a(...T))},{className:"meta",match:i(/@/,_)}],z={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,h,"+")},{className:"type",match:N,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,t(N)),relevance:0}]},$={begin://,keywords:R,contains:[...E,...w,...G,C,z]};z.contains.push($);const V={begin:/\(/,end:/\)/,relevance:0,keywords:R,contains:["self",{match:i(_,/\s*:/),keywords:"_|0",relevance:0},...E,...w,...I,...L,D,F,...H,...G,z]},K={begin://,contains:[...E,z]},W={begin:/\(/,end:/\)/,keywords:R,contains:[{begin:a(t(i(_,/\s*:/)),t(i(_,/\s+/,_,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:_}]},...E,...w,...L,D,F,...G,z,V],endsParent:!0,illegal:/["']/},q={match:[/func/,/\s+/,a(j.match,_,m)],className:{1:"keyword",3:"title.function"},contains:[K,W,n],illegal:[/\[/,/%/]},X={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[K,W,n],illegal:/\[|%/},Y={match:[/operator/,/\s+/,m],className:{1:"keyword",3:"title"}},Z={begin:[/precedencegroup/,/\s+/,N],className:{1:"keyword",3:"title"},contains:[z],keywords:[...u,...d],end:/}/};for(const e of F.variants){const n=e.contains.find((e=>"interpol"===e.label));n.keywords=R;const t=[...w,...I,...L,D,F,...H];n.contains=[...t,{begin:/\(/,end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:R,contains:[...E,q,X,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:R,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...w]},Y,Z,{beginKeywords:"import",end:/$/,contains:[...E],relevance:0},...w,...I,...L,D,F,...H,...G,z,V]}}},8987:e=>{const n="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],i=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],r=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],s=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],o=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(s,a,r);function c(e){const c=e.regex,d=n,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const t=e[0].length+e.index,i=e.input[t];if("<"===i||","===i)return void n.ignoreMatch();let a;">"===i&&(((e,{after:n})=>{const t="",D={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,h,_,N,f,S,{className:"attr",begin:d+c.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[N,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},R,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},C,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},y,L,{match:/\$[(.]/}]}}e.exports=function(e){const a=c(e),r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[a.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[a.exports.CLASS_REFERENCE]},u={$pattern:n,keyword:t.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:i,built_in:l.concat(r),"variable.language":o},g={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},b=(e,n,t)=>{const i=e.contains.findIndex((e=>e.label===n));if(-1===i)throw new Error("can not find mode to replace");e.contains.splice(i,1,t)};return Object.assign(a.keywords,u),a.exports.PARAMS_CONTAINS.push(g),a.contains=a.contains.concat([g,s,d]),b(a,"shebang",e.SHEBANG()),b(a,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),a.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(a,{name:"TypeScript",aliases:["ts","tsx"]}),a}},4610:e=>{e.exports=function(e){const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[a,o,s,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[a,r,o,s]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}},1392:e=>{e.exports=function(e){const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},a=e.inherit(i,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,i],c=[...l];return c.pop(),c.push(a),r.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:l}}}},n={},function t(i){var a=n[i];if(void 0!==a)return a.exports;var r=n[i]={exports:{}};return e[i].call(r.exports,r,r.exports,t),r.exports}(8384);var e,n})); \ No newline at end of file diff --git a/js/diff2html.js b/js/diff2html.js new file mode 100644 index 00000000..385a8ce7 --- /dev/null +++ b/js/diff2html.js @@ -0,0 +1,43 @@ +import { makeid, loadCss, loadJs, removeElements } from './loader.js'; + +const cssGitHub = '//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css'; +const css = '//cdn.jsdelivr.net/npm/diff2html@3.4.35/bundles/css/diff2html.min.css'; +const js = '//cdn.jsdelivr.net/npm/diff2html@3.4.35/bundles/js/diff2html-ui.min.js'; +//const js = '../js/diff2html-ui-slim.min.js'; + +let state = { }; + +/** + * @param {string} baseUri + * @param {DotNetObject} delegate + * @return Promise + */ +export async function init(baseUri, delegate) { + state.scopeId = makeid(5); + loadCss(cssGitHub, state.scopeId); + loadCss(css, state.scopeId); + loadJs(js, state.scopeId, delegate); +} + +/** + * @return Promise + */ +export async function deinit() { + removeElements(state.scopeId); + state.scopeId = undefined; +} + +/** + * @param {string} elementId + * @param {string} diffString + * @param {Object} configuration + * @return Promise + */ +export async function render(elementId, diffString, configuration) { + const targetElement = document.getElementById(elementId); + if (targetElement) { + const diff2htmlUi = new window.Diff2HtmlUI(targetElement, diffString, configuration); + diff2htmlUi.draw(); + diff2htmlUi.highlightCode(); + } +} \ No newline at end of file diff --git a/js/highlight.js b/js/highlight.js new file mode 100644 index 00000000..c7e13a6a --- /dev/null +++ b/js/highlight.js @@ -0,0 +1,35 @@ +import { makeid, loadCss, loadJs, removeElements } from './loader.js'; + +const css = '//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/styles/default.min.css'; +const js = '//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/highlight.min.js'; + +let state = { }; + +/** + * @param {string} baseUri + * @param {DotNetObject} delegate + * @return Promise + */ +export async function init(baseUri, delegate) { + state.scopeId = makeid(5); + loadCss(css, state.scopeId); + loadJs(js, state.scopeId, delegate); +} + +/** + * @return Promise + */ +export async function deinit() { + removeElements(state.scopeId); + state.scopeId = undefined; +} + +/** + * @param {Element} element + * @return Promise + */ +export async function render(element) { + if (element) { + window.hljs.highlightElement(element); + } +} \ No newline at end of file diff --git a/js/loader.js b/js/loader.js new file mode 100644 index 00000000..0de96fe5 --- /dev/null +++ b/js/loader.js @@ -0,0 +1,64 @@ +Object.defineProperty(HTMLElement.prototype, 'setAttribute2', { + value: function(name, value) { + this.setAttribute(name, value); + return this; + }, + writable: true, + configurable: true +}); + +/** + * @param {number} length + * @return string + */ +export function makeid(length) { + let result = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + const charactersLength = characters.length; + for (let i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} + +/** + * @param {string} path + * @param {string} scopeId + * @return void + */ +export function loadCss(path, scopeId) { + const element = document.createElement('link') + .setAttribute2('name', scopeId) + .setAttribute2('rel', 'stylesheet') + .setAttribute2('type', 'text/css') + .setAttribute2('href', path); + document.head.appendChild(element); +} + +/** + * @param {string} path + * @param {string} scopeId + * @param {DotNetObject} delegate + * @return void + */ +export function loadJs(path, scopeId, delegate) { + const tag = document.createElement('script') + .setAttribute2('name', scopeId) + .setAttribute2('type', 'text/javascript') + .setAttribute2('src', path); + tag.onload = async function () { + await delegate.invokeMethodAsync('OnLoad'); + } + tag.onerror = async function () { + await delegate.invokeMethodAsync('OnError'); + } + document.body.appendChild(tag); +} + +/** + * @param {string} scopeId + * @return void + */ +export function removeElements(scopeId) { + Array.from(document.getElementsByName(scopeId)).forEach(x => x.remove()); +} \ No newline at end of file diff --git a/js/prismjs-custom.js b/js/prismjs-custom.js new file mode 100644 index 00000000..0cf7e47b --- /dev/null +++ b/js/prismjs-custom.js @@ -0,0 +1,5 @@ +/* https://prismjs.com/download.html#themes=prism&languages=cil&plugins=line-highlight+line-numbers */ +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); +Prism.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}; +!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var e,t="line-numbers",i="linkable-line-numbers",n=/\n(?!$)/g,r=!0;Prism.plugins.lineHighlight={highlightLines:function(o,u,c){var h=(u="string"==typeof u?u:o.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+o.getAttribute("data-line-offset")||0,f=(function(){if(void 0===e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding="0",t.style.border="0",t.innerHTML=" 
 ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}()?parseInt:parseFloat)(getComputedStyle(o).lineHeight),p=Prism.util.isActive(o,t),g=o.querySelector("code"),m=p?o:g||o,v=[],y=g.textContent.match(n),b=y?y.length+1:1,A=g&&m!=g?function(e,t){var i=getComputedStyle(e),n=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(n.borderTopWidth)+r(n.paddingTop)-r(i.paddingTop)}(o,g):0;h.forEach((function(e){var t=e.split("-"),i=+t[0],n=+t[1]||i;if(!((n=Math.min(b+d,n))i&&r.setAttribute("data-end",String(n)),r.style.top=(i-d-1)*f+A+"px",r.textContent=new Array(n-i+2).join(" \n")}));v.push((function(){r.style.width=o.scrollWidth+"px"})),v.push((function(){m.appendChild(r)}))}}));var P=o.id;if(p&&Prism.util.isActive(o,i)&&P){l(o,i)||v.push((function(){o.classList.add(i)}));var E=parseInt(o.getAttribute("data-start")||"1");s(".line-numbers-rows > span",o).forEach((function(e,t){var i=t+E;e.onclick=function(){var e=P+"."+i;r=!1,location.hash=e,setTimeout((function(){r=!0}),1)}}))}return function(){v.forEach(a)}}};var o=0;Prism.hooks.add("before-sanity-check",(function(e){var t=e.element.parentElement;if(u(t)){var i=0;s(".line-highlight",t).forEach((function(e){i+=e.textContent.length,e.parentNode.removeChild(e)})),i&&/^(?: \n)+$/.test(e.code.slice(-i))&&(e.code=e.code.slice(0,-i))}})),Prism.hooks.add("complete",(function e(i){var n=i.element.parentElement;if(u(n)){clearTimeout(o);var r=Prism.plugins.lineNumbers,s=i.plugins&&i.plugins.lineNumbers;l(n,t)&&r&&!s?Prism.hooks.add("line-numbers",e):(Prism.plugins.lineHighlight.highlightLines(n)(),o=setTimeout(c,1))}})),window.addEventListener("hashchange",c),window.addEventListener("resize",(function(){s("pre").filter(u).map((function(e){return Prism.plugins.lineHighlight.highlightLines(e)})).forEach(a)}))}function s(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function l(e,t){return e.classList.contains(t)}function a(e){e()}function u(e){return!!(e&&/pre/i.test(e.nodeName)&&(e.hasAttribute("data-line")||e.id&&Prism.util.isActive(e,i)))}function c(){var e=location.hash.slice(1);s(".temporary.line-highlight").forEach((function(e){e.parentNode.removeChild(e)}));var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var i=e.slice(0,e.lastIndexOf(".")),n=document.getElementById(i);n&&(n.hasAttribute("data-line")||n.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(n,t,"temporary ")(),r&&document.querySelector(".temporary.line-highlight").scrollIntoView())}}}(); +!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;r element and click on it + const a = document.createElement('a'); + document.body.appendChild(a); + a.href = exportUrl; + a.download = filename; + a.target = '_self'; + a.click(); + + // We don't need to keep the object URL, let's release the memory + // On older versions of Safari, it seems you need to comment this line... + URL.revokeObjectURL(exportUrl); +} \ No newline at end of file diff --git a/reports/2AE0EA.html.br b/reports/2AE0EA.html.br new file mode 100644 index 00000000..9fd60ab5 Binary files /dev/null and b/reports/2AE0EA.html.br differ diff --git a/reports/4DDA8D.html.br b/reports/4DDA8D.html.br new file mode 100644 index 00000000..2a161e37 Binary files /dev/null and b/reports/4DDA8D.html.br differ diff --git a/reports/6FB0EF.html.br b/reports/6FB0EF.html.br new file mode 100644 index 00000000..528151c5 Binary files /dev/null and b/reports/6FB0EF.html.br differ diff --git a/reports/F966E3.html.br b/reports/F966E3.html.br new file mode 100644 index 00000000..29e8fac5 Binary files /dev/null and b/reports/F966E3.html.br differ