diff --git a/.github/workflows/postgresql.yaml b/.github/workflows/postgresql.yaml index 9a56382c4e..b235767110 100644 --- a/.github/workflows/postgresql.yaml +++ b/.github/workflows/postgresql.yaml @@ -27,6 +27,7 @@ jobs: INVENTREE_DEBUG: info INVENTREE_MEDIA_ROOT: ./media INVENTREE_STATIC_ROOT: ./static + INVENTREE_CACHE_HOST: localhost services: postgres: @@ -37,6 +38,11 @@ jobs: ports: - 5432:5432 + redis: + image: redis + ports: + - 6379:6379 + steps: - name: Checkout Code uses: actions/checkout@v2 @@ -49,6 +55,7 @@ jobs: sudo apt-get install libpq-dev pip3 install invoke pip3 install psycopg2 + pip3 install django-redis>=5.0.0 invoke install - name: Run Tests run: invoke test diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 944736e61d..c5a90ac7f3 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -15,6 +15,7 @@ import logging import os import random +import socket import string import shutil import sys @@ -361,30 +362,6 @@ REST_FRAMEWORK = { WSGI_APPLICATION = 'InvenTree.wsgi.application' -background_workers = os.environ.get('INVENTREE_BACKGROUND_WORKERS', None) - -if background_workers is not None: - try: - background_workers = int(background_workers) - except ValueError: - background_workers = None - -if background_workers is None: - # Sensible default? - background_workers = 4 - -# django-q configuration -Q_CLUSTER = { - 'name': 'InvenTree', - 'workers': background_workers, - 'timeout': 90, - 'retry': 120, - 'queue_limit': 50, - 'bulk': 10, - 'orm': 'default', - 'sync': False, -} - """ Configure the database backend based on the user-specified values. @@ -562,12 +539,84 @@ DATABASES = { } -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - }, +_cache_config = CONFIG.get("cache", {}) +_cache_host = _cache_config.get("host", os.getenv("INVENTREE_CACHE_HOST")) +_cache_port = _cache_config.get( + "port", os.getenv("INVENTREE_CACHE_PORT", "6379") +) + +if _cache_host: + # We are going to rely upon a possibly non-localhost for our cache, + # so don't wait too long for the cache as nothing in the cache should be + # irreplacable. Django Q Cluster will just try again later. + _cache_options = { + "CLIENT_CLASS": "django_redis.client.DefaultClient", + "SOCKET_CONNECT_TIMEOUT": int(os.getenv("CACHE_CONNECT_TIMEOUT", "2")), + "SOCKET_TIMEOUT": int(os.getenv("CACHE_SOCKET_TIMEOUT", "2")), + "CONNECTION_POOL_KWARGS": { + "socket_keepalive": _is_true( + os.getenv("CACHE_TCP_KEEPALIVE", "1") + ), + "socket_keepalive_options": { + socket.TCP_KEEPCNT: int( + os.getenv("CACHE_KEEPALIVES_COUNT", "5") + ), + socket.TCP_KEEPIDLE: int( + os.getenv("CACHE_KEEPALIVES_IDLE", "1") + ), + socket.TCP_KEEPINTVL: int( + os.getenv("CACHE_KEEPALIVES_INTERVAL", "1") + ), + socket.TCP_USER_TIMEOUT: int( + os.getenv("CACHE_TCP_USER_TIMEOUT", "1000") + ), + }, + }, + } + CACHES = { + # Connection configuration for Django Q Cluster + "worker": { + "BACKEND": "django_redis.cache.RedisCache", + "LOCATION": f"redis://{_cache_host}:{_cache_port}/0", + "OPTIONS": _cache_options, + }, + "default": { + "BACKEND": "django_redis.cache.RedisCache", + "LOCATION": f"redis://{_cache_host}:{_cache_port}/1", + "OPTIONS": _cache_options, + }, + } +else: + CACHES = { + "default": { + "BACKEND": "django.core.cache.backends.locmem.LocMemCache", + }, + } + +try: + # 4 background workers seems like a sensible default + background_workers = int(os.environ.get('INVENTREE_BACKGROUND_WORKERS', 4)) +except ValueError: + background_workers = 4 + +# django-q configuration +Q_CLUSTER = { + 'name': 'InvenTree', + 'workers': background_workers, + 'timeout': 90, + 'retry': 120, + 'queue_limit': 50, + 'bulk': 10, + 'orm': 'default', + 'sync': False, } +if _cache_host: + # If using external redis cache, make the cache the broker for Django Q + # as well + Q_CLUSTER["django_redis"] = "worker" + + # Password validation # https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators @@ -614,6 +663,7 @@ LANGUAGES = [ ('nl', _('Dutch')), ('no', _('Norwegian')), ('pl', _('Polish')), + ('pt', _('Portugese')), ('ru', _('Russian')), ('sv', _('Swedish')), ('th', _('Thai')), diff --git a/InvenTree/InvenTree/static/css/color-themes/dark-reader.css b/InvenTree/InvenTree/static/css/color-themes/dark-reader.css index e963c4b411..5270d5ead5 100644 --- a/InvenTree/InvenTree/static/css/color-themes/dark-reader.css +++ b/InvenTree/InvenTree/static/css/color-themes/dark-reader.css @@ -18,6 +18,9 @@ _______|_______/__/ ____ \__\__|___\__\__|___\__\____ |__| \__\____/__/ \__\_______/ |______|__| \__\ https://darkreader.org */ + +/*! Dark reader generated CSS | Licensed under MIT https://github.com/darkreader/darkreader/blob/master/LICENSE */ + /* User-Agent Style */ html { background-color: #181a1b !important; @@ -70,7 +73,7 @@ select:-webkit-autofill { } /* Invert Style */ -.jfk-bubble.gtx-bubble, .captcheck_answer_label > input + img, span#closed_text > img[src^="https://www.gstatic.com/images/branding/googlelogo"], span[data-href^="https://www.hcaptcha.com/"] > #icon { +.jfk-bubble.gtx-bubble, .captcheck_answer_label > input + img, span#closed_text > img[src^="https://www.gstatic.com/images/branding/googlelogo"], span[data-href^="https://www.hcaptcha.com/"] > #icon, #bit-notification-bar-iframe, ::-webkit-calendar-picker-indicator { filter: invert(100%) hue-rotate(180deg) contrast(90%) !important; } @@ -96,208 +99,90 @@ select:-webkit-autofill { .sr-only { border-color: initial; } -.svg-inline--fa .fa-primary { - fill: currentcolor; -} -.svg-inline--fa .fa-secondary { - fill: currentcolor; -} .svg-inline--fa mask .fa-primary, .svg-inline--fa mask .fa-secondary { fill: rgb(232, 230, 227); } .fad.fa-inverse { - color: rgb(232, 230, 227); + color: rgb(232, 230, 227); } -.treegrid-expander-expanded { - background-image: url("/static/treegrid/img/collapse.png"); -} -.treegrid-expander-collapsed { - background-image: url("/static/treegrid/img/expand.png"); -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline-color: initial; -} -abbr[title] { - border-bottom-color: initial; -} -mark { - color: rgb(232, 230, 227); - background-image: initial; - background-color: rgb(204, 204, 0); -} -img { - border-color: initial; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; -} -fieldset { - border-color: rgb(66, 71, 74); -} -legend { - border-color: initial; -} -html { - -webkit-tap-highlight-color: rgba(232, 230, 227, 0); +:root { + --bs-blue: #0d6efd; --bs-indigo: #6610f2; --bs-purple: #6f42c1; --bs-pink: #d63384; --bs-red: #dc3545; --bs-orange: #fd7e14; --bs-yellow: #ffc107; --bs-green: #198754; --bs-teal: #20c997; --bs-cyan: #0dcaf0; --bs-white: #fff; --bs-gray: #6c757d; --bs-gray-dark: #343a40; --bs-gray-100: #f8f9fa; --bs-gray-200: #e9ecef; --bs-gray-300: #dee2e6; --bs-gray-400: #ced4da; --bs-gray-500: #adb5bd; --bs-gray-600: #6c757d; --bs-gray-700: #495057; --bs-gray-800: #343a40; --bs-gray-900: #212529; --bs-primary: #0d6efd; --bs-secondary: #6c757d; --bs-success: #198754; --bs-info: #0dcaf0; --bs-warning: #ffc107; --bs-danger: #dc3545; --bs-light: #f8f9fa; --bs-dark: #212529; --darkreader-bg--bs-primary-rgb: 13,110,253; --darkreader-text--bs-primary-rgb: 13,110,253; --darkreader-bg--bs-secondary-rgb: 108,117,125; --darkreader-text--bs-secondary-rgb: 108,117,125; --darkreader-bg--bs-success-rgb: 25,135,84; --darkreader-text--bs-success-rgb: 25,135,84; --darkreader-bg--bs-info-rgb: 13,202,240; --darkreader-text--bs-info-rgb: 13,202,240; --darkreader-bg--bs-warning-rgb: 255,193,7; --darkreader-text--bs-warning-rgb: 255,193,7; --darkreader-bg--bs-danger-rgb: 220,53,69; --darkreader-text--bs-danger-rgb: 220,53,69; --darkreader-bg--bs-light-rgb: 248,249,250; --darkreader-text--bs-light-rgb: 248,249,250; --darkreader-bg--bs-dark-rgb: 33,37,41; --darkreader-text--bs-dark-rgb: 33,37,41; --darkreader-bg--bs-white-rgb: 255,255,255; --darkreader-text--bs-white-rgb: 255,255,255; --darkreader-bg--bs-black-rgb: 0,0,0; --darkreader-text--bs-black-rgb: 0,0,0; --darkreader-text--bs-body-color-rgb: 33,37,41; --darkreader-bg--bs-body-bg-rgb: 255,255,255; --bs-font-sans-serif: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; --bs-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New", + monospace; + --darkreader-bgimg--bs-gradient: linear-gradient(180deg, + rgba(24, 26, 27, 0.15), + rgba(24, 26, 27, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --darkreader-bg--bs-body-color: #1c1e1f; + --darkreader-text--bs-body-color: #d1cdc7; + --darkreader-border--bs-body-color: #807769; + --darkreader-bg--bs-body-bg: #181a1b; } body { - color: rgb(200, 195, 188); - background-color: rgb(24, 26, 27); -} -a { - color: rgb(105, 166, 213); - text-decoration-color: initial; -} -a:focus, -a:hover { - color: rgb(141, 187, 223); - text-decoration-color: initial; -} -a:focus { - outline-color: rgb(186, 123, 0); -} -.img-thumbnail { - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); + color: var(--darkreader-text--bs-body-color); + background-color: var(--darkreader-bg--bs-body-bg); + -webkit-tap-highlight-color: transparent; } hr { - border-right-color: initial; - border-bottom-color: initial; - border-left-color: initial; - border-top-color: rgb(53, 57, 59); -} -.sr-only { + color: inherit; + background-color: currentcolor; border-color: initial; } -.h1, -.h2, -.h3, -.h4, -.h5, -.h6, -h1, -h2, -h3, -h4, -h5, -h6 { - color: inherit; -} -.h1 .small, -.h1 small, -.h2 .small, -.h2 small, -.h3 .small, -.h3 small, -.h4 .small, -.h4 small, -.h5 .small, -.h5 small, -.h6 .small, -.h6 small, -h1 .small, -h1 small, -h2 .small, -h2 small, -h3 .small, -h3 small, -h4 .small, -h4 small, -h5 .small, -h5 small, -h6 .small, -h6 small { - color: rgb(157, 148, 136); +abbr[data-bs-original-title], +abbr[title] { + text-decoration-color: initial; } .mark, mark { background-color: rgb(63, 54, 7); } -.text-muted { - color: rgb(157, 148, 136); +a { + color: rgb(35, 148, 253); + text-decoration-color: initial; } -.text-primary { - color: rgb(105, 166, 213); +a:hover { + color: rgb(85, 169, 247); } -a.text-primary:focus, -a.text-primary:hover { - color: rgb(129, 180, 220); +a:not([href]):not([class]), +a:not([href]):not([class]):hover { + color: inherit; + text-decoration-color: initial; } -.text-success { - color: rgb(139, 196, 140); +pre code { + color: inherit; } -a.text-success:focus, -a.text-success:hover { - color: rgb(162, 208, 164); +code { + color: rgb(218, 70, 143); } -.text-info { - color: rgb(117, 178, 208); +a > code { + color: inherit; } -a.text-info:focus, -a.text-info:hover { - color: rgb(144, 192, 217); -} -.text-warning { - color: rgb(198, 171, 123); -} -a.text-warning:focus, -a.text-warning:hover { - color: rgb(209, 187, 148); -} -.text-danger { - color: rgb(194, 102, 100); -} -a.text-danger:focus, -a.text-danger:hover { - color: rgb(204, 127, 126); -} -.bg-primary { +kbd { color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); + background-color: rgb(28, 30, 31); } -a.bg-primary:focus, -a.bg-primary:hover { - background-color: rgb(32, 77, 115); +caption { + color: rgb(158, 150, 137); } -.bg-success { - background-color: rgb(41, 60, 23); +tbody, +td, +tfoot, +th, +thead, +tr { + border-color: inherit; } -a.bg-success:focus, -a.bg-success:hover { - background-color: rgb(56, 83, 31); +button:focus:not(:focus-visible) { + outline-color: initial; } -.bg-info { - background-color: rgb(14, 48, 65); +fieldset { + border-color: initial; } -a.bg-info:focus, -a.bg-info:hover { - background-color: rgb(19, 66, 90); -} -.bg-warning { - background-color: rgb(63, 54, 7); -} -a.bg-warning:focus, -a.bg-warning:hover { - background-color: rgb(90, 77, 10); -} -.bg-danger { - background-color: rgb(56, 22, 22); -} -a.bg-danger:focus, -a.bg-danger:hover { - background-color: rgb(79, 30, 30); -} -.page-header { - border-bottom-color: rgb(53, 57, 59); +iframe { + border-color: initial; } .list-unstyled { list-style-image: initial; @@ -305,1379 +190,1811 @@ a.bg-danger:hover { .list-inline { list-style-image: initial; } -abbr[data-original-title], -abbr[title] { - border-bottom-color: rgb(101, 94, 83); +.blockquote-footer { + color: rgb(158, 150, 137); } -blockquote { - border-left-color: rgb(53, 57, 59); -} -blockquote .small, -blockquote footer, -blockquote small { - color: rgb(157, 148, 136); -} -.blockquote-reverse, -blockquote.pull-right { - border-right-color: rgb(53, 57, 59); - border-left-color: initial; -} -code { - color: rgb(221, 73, 110); - background-color: rgb(43, 20, 26); -} -kbd { - color: rgb(232, 230, 227); - background-color: rgb(38, 42, 43); - box-shadow: rgba(0, 0, 0, 0.25) 0px -1px 0px inset; -} -kbd kbd { - box-shadow: none; -} -pre { - color: rgb(200, 195, 188); - background-color: rgb(30, 32, 33); - border-color: rgb(62, 68, 70); -} -pre code { - color: inherit; - background-color: transparent; -} -table { - background-color: transparent; -} -caption { - color: rgb(157, 148, 136); -} -.table > tbody > tr > td, -.table > tbody > tr > th, -.table > tfoot > tr > td, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > thead > tr > th { - border-top-color: rgb(58, 62, 65); -} -.table > thead > tr > th { - border-bottom-color: rgb(58, 62, 65); -} -.table > caption + thead > tr:first-child > td, -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > td, -.table > thead:first-child > tr:first-child > th { - border-top-color: initial; -} -.table > tbody + tbody { - border-top-color: rgb(58, 62, 65); -} -.table .table { +.img-thumbnail { background-color: rgb(24, 26, 27); + border-color: rgb(56, 61, 63); } -.table-bordered { - border-color: rgb(58, 62, 65); +.figure-caption { + color: rgb(158, 150, 137); } -.table-bordered > tbody > tr > td, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > td, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > thead > tr > th { - border-color: rgb(58, 62, 65); +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; } -.table-striped > tbody > tr:nth-of-type(2n+1) { - background-color: rgb(27, 30, 31); +.g-0, +.gx-0 { + --bs-gutter-x: 0; } -.table-hover > tbody > tr:hover { - background-color: rgb(30, 32, 33); +.g-0, +.gy-0 { + --bs-gutter-y: 0; } -.table > tbody > tr.active > td, -.table > tbody > tr.active > th, -.table > tbody > tr > td.active, -.table > tbody > tr > th.active, -.table > tfoot > tr.active > td, -.table > tfoot > tr.active > th, -.table > tfoot > tr > td.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > thead > tr.active > th, -.table > thead > tr > td.active, -.table > thead > tr > th.active { - background-color: rgb(30, 32, 33); +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; } -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr.active:hover > th, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover { - background-color: rgb(37, 40, 42); +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; } -.table > tbody > tr.success > td, -.table > tbody > tr.success > th, -.table > tbody > tr > td.success, -.table > tbody > tr > th.success, -.table > tfoot > tr.success > td, -.table > tfoot > tr.success > th, -.table > tfoot > tr > td.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > thead > tr.success > th, -.table > thead > tr > td.success, -.table > thead > tr > th.success { - background-color: rgb(41, 60, 23); +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; } -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr.success:hover > th, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover { - background-color: rgb(48, 71, 27); +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; } -.table > tbody > tr.info > td, -.table > tbody > tr.info > th, -.table > tbody > tr > td.info, -.table > tbody > tr > th.info, -.table > tfoot > tr.info > td, -.table > tfoot > tr.info > th, -.table > tfoot > tr > td.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > thead > tr.info > th, -.table > thead > tr > td.info, -.table > thead > tr > th.info { - background-color: rgb(14, 48, 65); +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; } -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr.info:hover > th, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover { - background-color: rgb(44, 48, 50); +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; } -.table > tbody > tr.warning > td, -.table > tbody > tr.warning > th, -.table > tbody > tr > td.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr.warning > td, -.table > tfoot > tr.warning > th, -.table > tfoot > tr > td.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > thead > tr.warning > th, -.table > thead > tr > td.warning, -.table > thead > tr > th.warning { - background-color: rgb(63, 54, 7); +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; } -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr.warning:hover > th, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover { - background-color: rgb(77, 65, 8); +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; } -.table > tbody > tr.danger > td, -.table > tbody > tr.danger > th, -.table > tbody > tr > td.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr.danger > td, -.table > tfoot > tr.danger > th, -.table > tfoot > tr > td.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > thead > tr.danger > th, -.table > thead > tr > td.danger, -.table > thead > tr > th.danger { - background-color: rgb(56, 22, 22); +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; } -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr.danger:hover > th, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover { - background-color: rgb(67, 26, 26); +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; } -@media screen and (max-width: 767px) { - .table-responsive { - border-color: rgb(58, 62, 65); +@media (min-width: 576px) { + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; } - .table-responsive > .table-bordered { - border-color: initial; + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; } - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > thead > tr > th:first-child { - border-left-color: initial; + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; } - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > thead > tr > th:last-child { - border-right-color: initial; + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; } - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom-color: initial; + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; } } -fieldset { - border-color: initial; +@media (min-width: 768px) { + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } } -legend { - color: rgb(200, 195, 188); - border-top-color: initial; - border-right-color: initial; - border-left-color: initial; - border-bottom-color: rgb(55, 60, 62); +@media (min-width: 992px) { + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } } -input[type="file"]:focus, input[type="checkbox"]:focus, input[type="radio"]:focus { - outline-color: rgb(186, 123, 0); +@media (min-width: 1200px) { + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } } -output { - color: rgb(178, 172, 162); +@media (min-width: 1400px) { + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --darkreader-bg--bs-table-bg: rgba(0, 0, 0, 0); + --darkreader-bg--bs-table-accent-bg: rgba(0, 0, 0, 0); + --darkreader-text--bs-table-striped-color: #d1cdc7; + --darkreader-bg--bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --darkreader-text--bs-table-active-color: #d1cdc7; + --darkreader-bg--bs-table-active-bg: rgba(0, 0, 0, 0.1); + --darkreader-text--bs-table-hover-color: #d1cdc7; + --darkreader-bg--bs-table-hover-bg: rgba(0, 0, 0, 0.07); + color: rgb(209, 205, 199); + border-color: rgb(56, 61, 63); +} +.table > :not(caption) > * > * { + background-color: var(--darkreader-bg--bs-table-bg); + box-shadow: inset 0 0 0 9999px var(--darkreader-bg--bs-table-accent-bg); +} +.table > :not(:first-child) { + border-top-color: currentcolor; +} +.table-striped > tbody > tr:nth-of-type(2n+1) > * { + --darkreader-bg--bs-table-accent-bg: var(--darkreader-bg--bs-table-striped-bg); + color: var(--darkreader-text--bs-table-striped-color); +} +.table-active { + --darkreader-bg--bs-table-accent-bg: var(--darkreader-bg--bs-table-active-bg); + color: var(--darkreader-text--bs-table-active-color); +} +.table-hover > tbody > tr:hover > * { + --darkreader-bg--bs-table-accent-bg: var(--darkreader-bg--bs-table-hover-bg); + color: var(--darkreader-text--bs-table-hover-color); +} +.table-primary { + --darkreader-bg--bs-table-bg: #26292a; + --darkreader-bg--bs-table-striped-bg: #2c3032; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #333739; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #2f3335; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(35, 58, 96); +} +.table-secondary { + --darkreader-bg--bs-table-bg: #282b2c; + --darkreader-bg--bs-table-striped-bg: #2e3233; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #35393b; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #313537; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(62, 67, 70); +} +.table-success { + --darkreader-bg--bs-table-bg: #203d33; + --darkreader-bg--bs-table-striped-bg: #2a4139; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #31463f; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #2d443c; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(64, 69, 72); +} +.table-info { + --darkreader-bg--bs-table-bg: #05404d; + --darkreader-bg--bs-table-striped-bg: #15424b; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #20464e; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #1a444c; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(38, 84, 93); +} +.table-warning { + --darkreader-bg--bs-table-bg: #513e00; + --darkreader-bg--bs-table-striped-bg: #4e4011; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #50431c; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #4e4117; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(96, 81, 34); +} +.table-danger { + --darkreader-bg--bs-table-bg: #430c11; + --darkreader-bg--bs-table-striped-bg: #44191d; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #462527; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #442023; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(85, 45, 47); +} +.table-light { + --darkreader-bg--bs-table-bg: #1b1e1f; + --darkreader-bg--bs-table-striped-bg: #222526; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #2a2d2f; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #26292b; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(57, 61, 64); +} +.table-dark { + --darkreader-bg--bs-table-bg: #1c1e1f; + --darkreader-bg--bs-table-striped-bg: #242729; + --darkreader-text--bs-table-striped-color: #e8e6e3; + --darkreader-bg--bs-table-active-bg: #2c3032; + --darkreader-text--bs-table-active-color: #e8e6e3; + --darkreader-bg--bs-table-hover-bg: #282c2d; + --darkreader-text--bs-table-hover-color: #e8e6e3; + color: rgb(232, 230, 227); + border-color: rgb(121, 112, 99); +} +.form-text { + color: rgb(158, 150, 137); } .form-control { - color: rgb(178, 172, 162); + color: rgb(209, 205, 199); background-color: rgb(24, 26, 27); - background-image: none; - border-color: rgb(62, 68, 70); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset; + border-color: rgb(60, 65, 68); } .form-control:focus { - border-color: rgb(19, 84, 135); + color: rgb(209, 205, 199); + background-color: rgb(24, 26, 27); + border-color: rgb(1, 57, 137); outline-color: initial; - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset, - rgba(20, 85, 136, 0.6) 0px 0px 8px; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; } -.form-control::-webkit-input-placeholder { - color: rgb(168, 160, 149); +.form-control::placeholder { + color: rgb(158, 150, 137); } -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: rgb(34, 36, 38); +.form-control:disabled, +.form-control[readonly] { + background-color: rgb(35, 38, 39); } -.has-success .checkbox, -.has-success .checkbox-inline, -.has-success .control-label, -.has-success .help-block, -.has-success .radio, -.has-success .radio-inline, -.has-success.checkbox label, -.has-success.checkbox-inline label, -.has-success.radio label, -.has-success.radio-inline label { - color: rgb(139, 196, 140); +.form-control::-webkit-file-upload-button { + color: rgb(209, 205, 199); + background-color: rgb(35, 38, 39); + border-color: inherit; } -.has-success .form-control { - border-color: rgb(68, 134, 69); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset; +.form-control::file-selector-button { + color: rgb(209, 205, 199); + background-color: rgb(35, 38, 39); + border-color: inherit; } -.has-success .form-control:focus { - border-color: rgb(73, 143, 75); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset, - rgb(64, 125, 80) 0px 0px 6px; +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: rgb(42, 45, 47); } -.has-success .input-group-addon { - color: rgb(139, 196, 140); - background-color: rgb(41, 60, 23); - border-color: rgb(68, 134, 69); +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: rgb(42, 45, 47); } -.has-success .form-control-feedback { - color: rgb(139, 196, 140); +.form-control::-webkit-file-upload-button { + color: rgb(209, 205, 199); + background-color: rgb(35, 38, 39); + border-color: inherit; } -.has-warning .checkbox, -.has-warning .checkbox-inline, -.has-warning .control-label, -.has-warning .help-block, -.has-warning .radio, -.has-warning .radio-inline, -.has-warning.checkbox label, -.has-warning.checkbox-inline label, -.has-warning.radio label, -.has-warning.radio-inline label { - color: rgb(198, 171, 123); +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: rgb(42, 45, 47); } -.has-warning .form-control { - border-color: rgb(137, 108, 59); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset; -} -.has-warning .form-control:focus { - border-color: rgb(148, 117, 64); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset, - rgb(125, 98, 53) 0px 0px 6px; -} -.has-warning .input-group-addon { - color: rgb(198, 171, 123); - background-color: rgb(63, 54, 7); - border-color: rgb(137, 108, 59); -} -.has-warning .form-control-feedback { - color: rgb(198, 171, 123); -} -.has-error .checkbox, -.has-error .checkbox-inline, -.has-error .control-label, -.has-error .help-block, -.has-error .radio, -.has-error .radio-inline, -.has-error.checkbox label, -.has-error.checkbox-inline label, -.has-error.radio label, -.has-error.radio-inline label { - color: rgb(194, 102, 100); -} -.has-error .form-control { - border-color: rgb(133, 53, 52); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset; -} -.has-error .form-control:focus { - border-color: rgb(143, 58, 56); - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px inset, - rgb(111, 45, 44) 0px 0px 6px; -} -.has-error .input-group-addon { - color: rgb(194, 102, 100); - background-color: rgb(56, 22, 22); - border-color: rgb(133, 53, 52); -} -.has-error .form-control-feedback { - color: rgb(194, 102, 100); -} -.help-block { - color: rgb(159, 151, 139); -} -.btn { - background-image: none; +.form-control-plaintext { + color: rgb(209, 205, 199); + background-color: transparent; border-color: transparent; } -.btn.active.focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn:active:focus, -.btn:focus { - outline-color: rgb(186, 123, 0); +.form-select { + color: rgb(209, 205, 199); + background-color: rgb(24, 26, 27); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + border-color: rgb(60, 65, 68); } -.btn.focus, -.btn:focus, -.btn:hover { - color: rgb(200, 195, 188); - text-decoration-color: initial; -} -.btn.active, -.btn:active { - background-image: none; +.form-select:focus { + border-color: rgb(1, 57, 137); outline-color: initial; - box-shadow: rgba(0, 0, 0, 0.13) 0px 3px 5px inset; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; } -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - box-shadow: none; -} -.btn-default { - color: rgb(200, 195, 188); - background-color: rgb(24, 26, 27); - border-color: rgb(62, 68, 70); -} -.btn-default.focus, -.btn-default:focus { - color: rgb(200, 195, 188); - background-color: rgb(38, 41, 43); - border-color: rgb(80, 87, 91); -} -.btn-default:hover { - color: rgb(200, 195, 188); - background-color: rgb(38, 41, 43); - border-color: rgb(71, 77, 80); -} -.btn-default.active, -.btn-default:active, -.open > .dropdown-toggle.btn-default { - color: rgb(200, 195, 188); - background-color: rgb(38, 41, 43); - border-color: rgb(71, 77, 80); -} -.btn-default.active.focus, -.btn-default.active:focus, -.btn-default.active:hover, -.btn-default:active.focus, -.btn-default:active:focus, -.btn-default:active:hover, -.open > .dropdown-toggle.btn-default.focus, -.open > .dropdown-toggle.btn-default:focus, -.open > .dropdown-toggle.btn-default:hover { - color: rgb(200, 195, 188); - background-color: rgb(48, 52, 54); - border-color: rgb(80, 87, 91); -} -.btn-default.active, -.btn-default:active, -.open > .dropdown-toggle.btn-default { +.form-select[multiple], +.form-select[size]:not([size="1"]) { background-image: none; } -.btn-default.disabled.focus, -.btn-default.disabled:focus, -.btn-default.disabled:hover, -.btn-default[disabled].focus, -.btn-default[disabled]:focus, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default.focus, -fieldset[disabled] .btn-default:focus, -fieldset[disabled] .btn-default:hover { - background-color: rgb(24, 26, 27); - border-color: rgb(62, 68, 70); +.form-select:disabled { + background-color: rgb(35, 38, 39); } -.btn-default .badge { +.form-check-input { + background-color: rgb(24, 26, 27); + border-color: rgba(140, 130, 115, 0.25); +} +.form-check-input:focus { + border-color: rgb(1, 57, 137); + outline-color: initial; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.form-check-input:checked { + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); +} +.form-check-input:checked[type="checkbox"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type="radio"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type="checkbox"]:indeterminate { + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-range { + background-color: transparent; +} +.form-range:focus { + outline-color: initial; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: rgb(24, 26, 27) 0px 0px 0px 1px, + rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.form-range::-webkit-slider-thumb { + background-color: rgb(2, 80, 196); + border-color: initial; +} +.form-range::-webkit-slider-thumb:active { + background-color: rgb(45, 49, 51); +} +.form-range::-webkit-slider-runnable-track { + color: transparent; + background-color: rgb(40, 44, 45); + border-color: transparent; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: rgb(66, 71, 74); +} +.form-floating > label { + border-color: transparent; +} +.form-floating > .form-control::placeholder { + color: transparent; +} +.input-group-text { + color: rgb(209, 205, 199); + background-color: rgb(35, 38, 39); + border-color: rgb(60, 65, 68); +} +.valid-feedback { + color: rgb(117, 230, 178); +} +.valid-tooltip { color: rgb(232, 230, 227); - background-color: rgb(38, 42, 43); + background-color: rgba(20, 108, 67, 0.9); +} +.form-control.is-valid, +.was-validated .form-control:valid { + border-color: rgb(32, 175, 109); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); +} +.form-control.is-valid:focus, +.was-validated .form-control:valid:focus { + border-color: rgb(32, 175, 109); + box-shadow: rgba(20, 108, 67, 0.25) 0px 0px 0px 0.25rem; +} +.form-select.is-valid, +.was-validated .form-select:valid { + border-color: rgb(32, 175, 109); +} +.form-select.is-valid:not([multiple]):not([size]), +.form-select.is-valid:not([multiple])[size="1"], +.was-validated .form-select:valid:not([multiple]):not([size]), +.was-validated .form-select:valid:not([multiple])[size="1"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); +} +.form-select.is-valid:focus, +.was-validated .form-select:valid:focus { + border-color: rgb(32, 175, 109); + box-shadow: rgba(20, 108, 67, 0.25) 0px 0px 0px 0.25rem; +} +.form-check-input.is-valid, +.was-validated .form-check-input:valid { + border-color: rgb(32, 175, 109); +} +.form-check-input.is-valid:checked, +.was-validated .form-check-input:valid:checked { + background-color: rgb(20, 108, 67); +} +.form-check-input.is-valid:focus, +.was-validated .form-check-input:valid:focus { + box-shadow: rgba(20, 108, 67, 0.25) 0px 0px 0px 0.25rem; +} +.form-check-input.is-valid ~ .form-check-label, +.was-validated .form-check-input:valid ~ .form-check-label { + color: rgb(117, 230, 178); +} +.invalid-feedback { + color: rgb(223, 70, 85); +} +.invalid-tooltip { + color: rgb(232, 230, 227); + background-color: rgba(165, 29, 42, 0.9); +} +.form-control.is-invalid, +.was-validated .form-control:invalid { + border-color: rgb(148, 26, 37); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); +} +.form-control.is-invalid:focus, +.was-validated .form-control:invalid:focus { + border-color: rgb(148, 26, 37); + box-shadow: rgba(165, 29, 42, 0.25) 0px 0px 0px 0.25rem; +} +.form-select.is-invalid, +.was-validated .form-select:invalid { + border-color: rgb(148, 26, 37); +} +.form-select.is-invalid:not([multiple]):not([size]), +.form-select.is-invalid:not([multiple])[size="1"], +.was-validated .form-select:invalid:not([multiple]):not([size]), +.was-validated .form-select:invalid:not([multiple])[size="1"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), + url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxkZWZzPjxmaWx0ZXIgaWQ9ImRhcmtyZWFkZXItaW1hZ2UtZmlsdGVyIj48ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMC4yNDkgLTAuNjE0IC0wLjY3MiAwLjAwMCAxLjAzNSAtMC42NDYgMC4yODggLTAuNjY0IDAuMDAwIDEuMDIwIC0wLjYzNiAtMC42MDkgMC4yNTAgMC4wMDAgMC45OTQgMC4wMDAgMC4wMDAgMC4wMDAgMS4wMDAgMC4wMDAiIC8+PC9maWx0ZXI+PC9kZWZzPjxpbWFnZSB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbHRlcj0idXJsKCNkYXJrcmVhZGVyLWltYWdlLWZpbHRlcikiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); +} +.form-select.is-invalid:focus, +.was-validated .form-select:invalid:focus { + border-color: rgb(148, 26, 37); + box-shadow: rgba(165, 29, 42, 0.25) 0px 0px 0px 0.25rem; +} +.form-check-input.is-invalid, +.was-validated .form-check-input:invalid { + border-color: rgb(148, 26, 37); +} +.form-check-input.is-invalid:checked, +.was-validated .form-check-input:invalid:checked { + background-color: rgb(165, 29, 42); +} +.form-check-input.is-invalid:focus, +.was-validated .form-check-input:invalid:focus { + box-shadow: rgba(165, 29, 42, 0.25) 0px 0px 0px 0.25rem; +} +.form-check-input.is-invalid ~ .form-check-label, +.was-validated .form-check-input:invalid ~ .form-check-label { + color: rgb(223, 70, 85); +} +.btn { + color: rgb(209, 205, 199); + text-decoration-color: initial; + background-color: transparent; + border-color: transparent; +} +.btn:hover { + color: rgb(209, 205, 199); +} +.btn-check:focus + .btn, +.btn:focus { + outline-color: initial; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; } .btn-primary { color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); - border-color: rgb(42, 100, 150); -} -.btn-primary.focus, -.btn-primary:focus { - color: rgb(232, 230, 227); - background-color: rgb(32, 77, 115); - border-color: rgb(126, 117, 104); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); } .btn-primary:hover { color: rgb(232, 230, 227); - background-color: rgb(32, 77, 115); - border-color: rgb(46, 110, 165); + background-color: rgb(9, 75, 172); + border-color: rgb(9, 79, 182); } +.btn-check:focus + .btn-primary, +.btn-primary:focus { + color: rgb(232, 230, 227); + background-color: rgb(9, 75, 172); + border-color: rgb(9, 79, 182); + box-shadow: rgba(2, 72, 174, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-primary, +.btn-check:checked + .btn-primary, .btn-primary.active, .btn-primary:active, -.open > .dropdown-toggle.btn-primary { +.show > .btn-primary.dropdown-toggle { color: rgb(232, 230, 227); - background-color: rgb(32, 77, 115); - border-color: rgb(46, 110, 165); + background-color: rgb(8, 70, 162); + border-color: rgb(10, 81, 185); } -.btn-primary.active.focus, +.btn-check:active + .btn-primary:focus, +.btn-check:checked + .btn-primary:focus, .btn-primary.active:focus, -.btn-primary.active:hover, -.btn-primary:active.focus, .btn-primary:active:focus, -.btn-primary:active:hover, -.open > .dropdown-toggle.btn-primary.focus, -.open > .dropdown-toggle.btn-primary:focus, -.open > .dropdown-toggle.btn-primary:hover { +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: rgba(2, 72, 174, 0.5) 0px 0px 0px 0.25rem; +} +.btn-primary.disabled, +.btn-primary:disabled { color: rgb(232, 230, 227); - background-color: rgb(26, 62, 93); - border-color: rgb(126, 117, 104); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); } -.btn-primary.active, -.btn-primary:active, -.open > .dropdown-toggle.btn-primary { - background-image: none; +.btn-secondary { + color: rgb(232, 230, 227); + background-color: rgb(88, 95, 99); + border-color: rgb(102, 94, 83); } -.btn-primary.disabled.focus, -.btn-primary.disabled:focus, -.btn-primary.disabled:hover, -.btn-primary[disabled].focus, -.btn-primary[disabled]:focus, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary.focus, -fieldset[disabled] .btn-primary:focus, -fieldset[disabled] .btn-primary:hover { - background-color: rgb(41, 98, 146); - border-color: rgb(42, 100, 150); +.btn-secondary:hover { + color: rgb(232, 230, 227); + background-color: rgb(75, 81, 84); + border-color: rgb(109, 102, 90); } -.btn-primary .badge { - color: rgb(105, 166, 213); - background-color: rgb(24, 26, 27); +.btn-check:focus + .btn-secondary, +.btn-secondary:focus { + color: rgb(232, 230, 227); + background-color: rgb(75, 81, 84); + border-color: rgb(109, 102, 90); + box-shadow: rgba(90, 98, 102, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-secondary, +.btn-check:checked + .btn-secondary, +.btn-secondary.active, +.btn-secondary:active, +.show > .btn-secondary.dropdown-toggle { + color: rgb(232, 230, 227); + background-color: rgb(70, 76, 79); + border-color: rgb(111, 103, 91); +} +.btn-check:active + .btn-secondary:focus, +.btn-check:checked + .btn-secondary:focus, +.btn-secondary.active:focus, +.btn-secondary:active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: rgba(90, 98, 102, 0.5) 0px 0px 0px 0.25rem; +} +.btn-secondary.disabled, +.btn-secondary:disabled { + color: rgb(232, 230, 227); + background-color: rgb(88, 95, 99); + border-color: rgb(102, 94, 83); } .btn-success { color: rgb(232, 230, 227); - background-color: rgb(77, 133, 58); - border-color: rgb(55, 125, 55); -} -.btn-success.focus, -.btn-success:focus { - color: rgb(232, 230, 227); - background-color: rgb(54, 126, 54); - border-color: rgb(66, 152, 66); + background-color: rgb(20, 108, 67); + border-color: rgb(32, 175, 109); } .btn-success:hover { color: rgb(232, 230, 227); - background-color: rgb(54, 126, 54); - border-color: rgb(60, 138, 60); + background-color: rgb(17, 92, 57); + border-color: rgb(34, 183, 113); } +.btn-check:focus + .btn-success, +.btn-success:focus { + color: rgb(232, 230, 227); + background-color: rgb(17, 92, 57); + border-color: rgb(34, 183, 113); + box-shadow: rgba(48, 122, 88, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-success, +.btn-check:checked + .btn-success, .btn-success.active, .btn-success:active, -.open > .dropdown-toggle.btn-success { +.show > .btn-success.dropdown-toggle { color: rgb(232, 230, 227); - background-color: rgb(54, 126, 54); - border-color: rgb(60, 138, 60); + background-color: rgb(16, 86, 54); + border-color: rgb(35, 184, 115); } -.btn-success.active.focus, +.btn-check:active + .btn-success:focus, +.btn-check:checked + .btn-success:focus, .btn-success.active:focus, -.btn-success.active:hover, -.btn-success:active.focus, .btn-success:active:focus, -.btn-success:active:hover, -.open > .dropdown-toggle.btn-success.focus, -.open > .dropdown-toggle.btn-success:focus, -.open > .dropdown-toggle.btn-success:hover { +.show > .btn-success.dropdown-toggle:focus { + box-shadow: rgba(48, 122, 88, 0.5) 0px 0px 0px 0.25rem; +} +.btn-success.disabled, +.btn-success:disabled { color: rgb(232, 230, 227); - background-color: rgb(46, 106, 46); - border-color: rgb(66, 152, 66); -} -.btn-success.active, -.btn-success:active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled.focus, -.btn-success.disabled:focus, -.btn-success.disabled:hover, -.btn-success[disabled].focus, -.btn-success[disabled]:focus, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success.focus, -fieldset[disabled] .btn-success:focus, -fieldset[disabled] .btn-success:hover { - background-color: rgb(77, 133, 58); - border-color: rgb(55, 125, 55); -} -.btn-success .badge { - color: rgb(105, 190, 105); - background-color: rgb(24, 26, 27); + background-color: rgb(20, 108, 67); + border-color: rgb(32, 175, 109); } .btn-info { color: rgb(232, 230, 227); - background-color: rgb(28, 115, 141); - border-color: rgb(28, 115, 140); -} -.btn-info.focus, -.btn-info:focus { - color: rgb(232, 230, 227); - background-color: rgb(34, 136, 166); - border-color: rgb(35, 141, 172); + background-color: rgb(10, 162, 192); + border-color: rgb(9, 143, 170); } .btn-info:hover { color: rgb(232, 230, 227); - background-color: rgb(34, 136, 166); - border-color: rgb(31, 128, 156); + background-color: rgb(11, 145, 172); + border-color: rgb(10, 136, 162); } +.btn-check:focus + .btn-info, +.btn-info:focus { + color: rgb(232, 230, 227); + background-color: rgb(11, 145, 172); + border-color: rgb(10, 136, 162); + box-shadow: rgba(9, 138, 163, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-info, +.btn-check:checked + .btn-info, .btn-info.active, .btn-info:active, -.open > .dropdown-toggle.btn-info { +.show > .btn-info.dropdown-toggle { color: rgb(232, 230, 227); - background-color: rgb(34, 136, 166); - border-color: rgb(31, 128, 156); + background-color: rgb(10, 139, 164); + border-color: rgb(10, 136, 162); } -.btn-info.active.focus, +.btn-check:active + .btn-info:focus, +.btn-check:checked + .btn-info:focus, .btn-info.active:focus, -.btn-info.active:hover, -.btn-info:active.focus, .btn-info:active:focus, -.btn-info:active:hover, -.open > .dropdown-toggle.btn-info.focus, -.open > .dropdown-toggle.btn-info:focus, -.open > .dropdown-toggle.btn-info:hover { +.show > .btn-info.dropdown-toggle:focus { + box-shadow: rgba(9, 138, 163, 0.5) 0px 0px 0px 0.25rem; +} +.btn-info.disabled, +.btn-info:disabled { color: rgb(232, 230, 227); - background-color: rgb(30, 123, 150); - border-color: rgb(35, 141, 172); -} -.btn-info.active, -.btn-info:active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled.focus, -.btn-info.disabled:focus, -.btn-info.disabled:hover, -.btn-info[disabled].focus, -.btn-info[disabled]:focus, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info.focus, -fieldset[disabled] .btn-info:focus, -fieldset[disabled] .btn-info:hover { - background-color: rgb(28, 115, 141); - border-color: rgb(28, 115, 140); -} -.btn-info .badge { - color: rgb(98, 195, 223); - background-color: rgb(24, 26, 27); + background-color: rgb(10, 162, 192); + border-color: rgb(9, 143, 170); } .btn-warning { color: rgb(232, 230, 227); - background-color: rgb(153, 95, 13); - border-color: rgb(154, 96, 13); -} -.btn-warning.focus, -.btn-warning:focus { - color: rgb(232, 230, 227); - background-color: rgb(181, 113, 15); - border-color: rgb(189, 118, 16); + background-color: rgb(200, 150, 0); + border-color: rgb(176, 132, 0); } .btn-warning:hover { color: rgb(232, 230, 227); - background-color: rgb(181, 113, 15); - border-color: rgb(171, 107, 14); + background-color: rgb(178, 133, 0); + border-color: rgb(169, 126, 0); } +.btn-check:focus + .btn-warning, +.btn-warning:focus { + color: rgb(232, 230, 227); + background-color: rgb(178, 133, 0); + border-color: rgb(169, 126, 0); + box-shadow: rgba(174, 131, 5, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-warning, +.btn-check:checked + .btn-warning, .btn-warning.active, .btn-warning:active, -.open > .dropdown-toggle.btn-warning { +.show > .btn-warning.dropdown-toggle { color: rgb(232, 230, 227); - background-color: rgb(181, 113, 15); - border-color: rgb(171, 107, 14); + background-color: rgb(170, 127, 0); + border-color: rgb(169, 126, 0); } -.btn-warning.active.focus, +.btn-check:active + .btn-warning:focus, +.btn-check:checked + .btn-warning:focus, .btn-warning.active:focus, -.btn-warning.active:hover, -.btn-warning:active.focus, .btn-warning:active:focus, -.btn-warning:active:hover, -.open > .dropdown-toggle.btn-warning.focus, -.open > .dropdown-toggle.btn-warning:focus, -.open > .dropdown-toggle.btn-warning:hover { +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: rgba(174, 131, 5, 0.5) 0px 0px 0px 0.25rem; +} +.btn-warning.disabled, +.btn-warning:disabled { color: rgb(232, 230, 227); - background-color: rgb(170, 106, 14); - border-color: rgb(189, 118, 16); -} -.btn-warning.active, -.btn-warning:active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled.focus, -.btn-warning.disabled:focus, -.btn-warning.disabled:hover, -.btn-warning[disabled].focus, -.btn-warning[disabled]:focus, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning.focus, -fieldset[disabled] .btn-warning:focus, -fieldset[disabled] .btn-warning:hover { - background-color: rgb(153, 95, 13); - border-color: rgb(154, 96, 13); -} -.btn-warning .badge { - color: rgb(241, 176, 84); - background-color: rgb(24, 26, 27); + background-color: rgb(200, 150, 0); + border-color: rgb(176, 132, 0); } .btn-danger { color: rgb(232, 230, 227); - background-color: rgb(148, 35, 32); - border-color: rgb(143, 35, 31); -} -.btn-danger.focus, -.btn-danger:focus { - color: rgb(232, 230, 227); - background-color: rgb(161, 38, 35); - border-color: rgb(175, 42, 37); + background-color: rgb(165, 29, 42); + border-color: rgb(148, 26, 37); } .btn-danger:hover { color: rgb(232, 230, 227); - background-color: rgb(161, 38, 35); - border-color: rgb(158, 38, 34); + background-color: rgb(150, 36, 47); + border-color: rgb(153, 37, 48); } +.btn-check:focus + .btn-danger, +.btn-danger:focus { + color: rgb(232, 230, 227); + background-color: rgb(150, 36, 47); + border-color: rgb(153, 37, 48); + box-shadow: rgba(147, 26, 38, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-danger, +.btn-check:checked + .btn-danger, .btn-danger.active, .btn-danger:active, -.open > .dropdown-toggle.btn-danger { +.show > .btn-danger.dropdown-toggle { color: rgb(232, 230, 227); - background-color: rgb(161, 38, 35); - border-color: rgb(158, 38, 34); + background-color: rgb(141, 34, 44); + border-color: rgb(156, 38, 49); } -.btn-danger.active.focus, +.btn-check:active + .btn-danger:focus, +.btn-check:checked + .btn-danger:focus, .btn-danger.active:focus, -.btn-danger.active:hover, -.btn-danger:active.focus, .btn-danger:active:focus, -.btn-danger:active:hover, -.open > .dropdown-toggle.btn-danger.focus, -.open > .dropdown-toggle.btn-danger:focus, -.open > .dropdown-toggle.btn-danger:hover { +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: rgba(147, 26, 38, 0.5) 0px 0px 0px 0.25rem; +} +.btn-danger.disabled, +.btn-danger:disabled { color: rgb(232, 230, 227); - background-color: rgb(138, 33, 30); - border-color: rgb(175, 42, 37); + background-color: rgb(165, 29, 42); + border-color: rgb(148, 26, 37); } -.btn-danger.active, -.btn-danger:active, -.open > .dropdown-toggle.btn-danger { - background-image: none; +.btn-light { + color: rgb(232, 230, 227); + background-color: rgb(27, 30, 31); + border-color: rgb(50, 54, 56); } -.btn-danger.disabled.focus, -.btn-danger.disabled:focus, -.btn-danger.disabled:hover, -.btn-danger[disabled].focus, -.btn-danger[disabled]:focus, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger.focus, -fieldset[disabled] .btn-danger:focus, -fieldset[disabled] .btn-danger:hover { - background-color: rgb(148, 35, 32); - border-color: rgb(143, 35, 31); +.btn-light:hover { + color: rgb(232, 230, 227); + background-color: rgb(27, 29, 30); + border-color: rgb(49, 54, 56); } -.btn-danger .badge { - color: rgb(219, 94, 90); +.btn-check:focus + .btn-light, +.btn-light:focus { + color: rgb(232, 230, 227); + background-color: rgb(27, 29, 30); + border-color: rgb(49, 54, 56); + box-shadow: rgba(48, 52, 54, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-light, +.btn-check:checked + .btn-light, +.btn-light.active, +.btn-light:active, +.show > .btn-light.dropdown-toggle { + color: rgb(232, 230, 227); + background-color: rgb(27, 29, 30); + border-color: rgb(49, 54, 56); +} +.btn-check:active + .btn-light:focus, +.btn-check:checked + .btn-light:focus, +.btn-light.active:focus, +.btn-light:active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: rgba(48, 52, 54, 0.5) 0px 0px 0px 0.25rem; +} +.btn-light.disabled, +.btn-light:disabled { + color: rgb(232, 230, 227); + background-color: rgb(27, 30, 31); + border-color: rgb(50, 54, 56); +} +.btn-dark { + color: rgb(232, 230, 227); + background-color: rgb(28, 30, 31); + border-color: rgb(128, 119, 105); +} +.btn-dark:hover { + color: rgb(232, 230, 227); background-color: rgb(24, 26, 27); + border-color: rgb(130, 121, 107); +} +.btn-check:focus + .btn-dark, +.btn-dark:focus { + color: rgb(232, 230, 227); + background-color: rgb(24, 26, 27); + border-color: rgb(130, 121, 107); + box-shadow: rgba(52, 57, 59, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-dark, +.btn-check:checked + .btn-dark, +.btn-dark.active, +.btn-dark:active, +.show > .btn-dark.dropdown-toggle { + color: rgb(232, 230, 227); + background-color: rgb(22, 24, 25); + border-color: rgb(131, 121, 107); +} +.btn-check:active + .btn-dark:focus, +.btn-check:checked + .btn-dark:focus, +.btn-dark.active:focus, +.btn-dark:active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: rgba(52, 57, 59, 0.5) 0px 0px 0px 0.25rem; +} +.btn-dark.disabled, +.btn-dark:disabled { + color: rgb(232, 230, 227); + background-color: rgb(28, 30, 31); + border-color: rgb(128, 119, 105); +} +.btn-outline-primary { + color: rgb(35, 148, 253); + border-color: rgb(1, 71, 174); +} +.btn-outline-primary:hover { + color: rgb(232, 230, 227); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); +} +.btn-check:focus + .btn-outline-primary, +.btn-outline-primary:focus { + box-shadow: rgba(2, 80, 196, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-primary, +.btn-check:checked + .btn-outline-primary, +.btn-outline-primary.active, +.btn-outline-primary.dropdown-toggle.show, +.btn-outline-primary:active { + color: rgb(232, 230, 227); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); +} +.btn-check:active + .btn-outline-primary:focus, +.btn-check:checked + .btn-outline-primary:focus, +.btn-outline-primary.active:focus, +.btn-outline-primary.dropdown-toggle.show:focus, +.btn-outline-primary:active:focus { + box-shadow: rgba(2, 80, 196, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: rgb(35, 148, 253); + background-color: transparent; +} +.btn-outline-secondary { + color: rgb(158, 150, 137); + border-color: rgb(102, 94, 83); +} +.btn-outline-secondary:hover { + color: rgb(232, 230, 227); + background-color: rgb(88, 95, 99); + border-color: rgb(102, 94, 83); +} +.btn-check:focus + .btn-outline-secondary, +.btn-outline-secondary:focus { + box-shadow: rgba(88, 95, 99, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-secondary, +.btn-check:checked + .btn-outline-secondary, +.btn-outline-secondary.active, +.btn-outline-secondary.dropdown-toggle.show, +.btn-outline-secondary:active { + color: rgb(232, 230, 227); + background-color: rgb(88, 95, 99); + border-color: rgb(102, 94, 83); +} +.btn-check:active + .btn-outline-secondary:focus, +.btn-check:checked + .btn-outline-secondary:focus, +.btn-outline-secondary.active:focus, +.btn-outline-secondary.dropdown-toggle.show:focus, +.btn-outline-secondary:active:focus { + box-shadow: rgba(88, 95, 99, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: rgb(158, 150, 137); + background-color: transparent; +} +.btn-outline-success { + color: rgb(117, 230, 178); + border-color: rgb(32, 175, 109); +} +.btn-outline-success:hover { + color: rgb(232, 230, 227); + background-color: rgb(20, 108, 67); + border-color: rgb(32, 175, 109); +} +.btn-check:focus + .btn-outline-success, +.btn-outline-success:focus { + box-shadow: rgba(20, 108, 67, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-success, +.btn-check:checked + .btn-outline-success, +.btn-outline-success.active, +.btn-outline-success.dropdown-toggle.show, +.btn-outline-success:active { + color: rgb(232, 230, 227); + background-color: rgb(20, 108, 67); + border-color: rgb(32, 175, 109); +} +.btn-check:active + .btn-outline-success:focus, +.btn-check:checked + .btn-outline-success:focus, +.btn-outline-success.active:focus, +.btn-outline-success.dropdown-toggle.show:focus, +.btn-outline-success:active:focus { + box-shadow: rgba(20, 108, 67, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: rgb(117, 230, 178); + background-color: transparent; +} +.btn-outline-info { + color: rgb(39, 209, 243); + border-color: rgb(9, 143, 170); +} +.btn-outline-info:hover { + color: rgb(232, 230, 227); + background-color: rgb(10, 162, 192); + border-color: rgb(9, 143, 170); +} +.btn-check:focus + .btn-outline-info, +.btn-outline-info:focus { + box-shadow: rgba(10, 162, 192, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-info, +.btn-check:checked + .btn-outline-info, +.btn-outline-info.active, +.btn-outline-info.dropdown-toggle.show, +.btn-outline-info:active { + color: rgb(232, 230, 227); + background-color: rgb(10, 162, 192); + border-color: rgb(9, 143, 170); +} +.btn-check:active + .btn-outline-info:focus, +.btn-check:checked + .btn-outline-info:focus, +.btn-outline-info.active:focus, +.btn-outline-info.dropdown-toggle.show:focus, +.btn-outline-info:active:focus { + box-shadow: rgba(10, 162, 192, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: rgb(39, 209, 243); + background-color: transparent; +} +.btn-outline-warning { + color: rgb(255, 199, 30); + border-color: rgb(176, 132, 0); +} +.btn-outline-warning:hover { + color: rgb(232, 230, 227); + background-color: rgb(200, 150, 0); + border-color: rgb(176, 132, 0); +} +.btn-check:focus + .btn-outline-warning, +.btn-outline-warning:focus { + box-shadow: rgba(200, 150, 0, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-warning, +.btn-check:checked + .btn-outline-warning, +.btn-outline-warning.active, +.btn-outline-warning.dropdown-toggle.show, +.btn-outline-warning:active { + color: rgb(232, 230, 227); + background-color: rgb(200, 150, 0); + border-color: rgb(176, 132, 0); +} +.btn-check:active + .btn-outline-warning:focus, +.btn-check:checked + .btn-outline-warning:focus, +.btn-outline-warning.active:focus, +.btn-outline-warning.dropdown-toggle.show:focus, +.btn-outline-warning:active:focus { + box-shadow: rgba(200, 150, 0, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: rgb(255, 199, 30); + background-color: transparent; +} +.btn-outline-danger { + color: rgb(223, 70, 85); + border-color: rgb(148, 26, 37); +} +.btn-outline-danger:hover { + color: rgb(232, 230, 227); + background-color: rgb(165, 29, 42); + border-color: rgb(148, 26, 37); +} +.btn-check:focus + .btn-outline-danger, +.btn-outline-danger:focus { + box-shadow: rgba(165, 29, 42, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-danger, +.btn-check:checked + .btn-outline-danger, +.btn-outline-danger.active, +.btn-outline-danger.dropdown-toggle.show, +.btn-outline-danger:active { + color: rgb(232, 230, 227); + background-color: rgb(165, 29, 42); + border-color: rgb(148, 26, 37); +} +.btn-check:active + .btn-outline-danger:focus, +.btn-check:checked + .btn-outline-danger:focus, +.btn-outline-danger.active:focus, +.btn-outline-danger.dropdown-toggle.show:focus, +.btn-outline-danger:active:focus { + box-shadow: rgba(165, 29, 42, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: rgb(223, 70, 85); + background-color: transparent; +} +.btn-outline-light { + color: rgb(228, 226, 222); + border-color: rgb(50, 54, 56); +} +.btn-outline-light:hover { + color: rgb(232, 230, 227); + background-color: rgb(27, 30, 31); + border-color: rgb(50, 54, 56); +} +.btn-check:focus + .btn-outline-light, +.btn-outline-light:focus { + box-shadow: rgba(27, 30, 31, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-light, +.btn-check:checked + .btn-outline-light, +.btn-outline-light.active, +.btn-outline-light.dropdown-toggle.show, +.btn-outline-light:active { + color: rgb(232, 230, 227); + background-color: rgb(27, 30, 31); + border-color: rgb(50, 54, 56); +} +.btn-check:active + .btn-outline-light:focus, +.btn-check:checked + .btn-outline-light:focus, +.btn-outline-light.active:focus, +.btn-outline-light.dropdown-toggle.show:focus, +.btn-outline-light:active:focus { + box-shadow: rgba(27, 30, 31, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: rgb(228, 226, 222); + background-color: transparent; +} +.btn-outline-dark { + color: rgb(209, 205, 199); + border-color: rgb(128, 119, 105); +} +.btn-outline-dark:hover { + color: rgb(232, 230, 227); + background-color: rgb(28, 30, 31); + border-color: rgb(128, 119, 105); +} +.btn-check:focus + .btn-outline-dark, +.btn-outline-dark:focus { + box-shadow: rgba(28, 30, 31, 0.5) 0px 0px 0px 0.25rem; +} +.btn-check:active + .btn-outline-dark, +.btn-check:checked + .btn-outline-dark, +.btn-outline-dark.active, +.btn-outline-dark.dropdown-toggle.show, +.btn-outline-dark:active { + color: rgb(232, 230, 227); + background-color: rgb(28, 30, 31); + border-color: rgb(128, 119, 105); +} +.btn-check:active + .btn-outline-dark:focus, +.btn-check:checked + .btn-outline-dark:focus, +.btn-outline-dark.active:focus, +.btn-outline-dark.dropdown-toggle.show:focus, +.btn-outline-dark:active:focus { + box-shadow: rgba(28, 30, 31, 0.5) 0px 0px 0px 0.25rem; +} +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: rgb(209, 205, 199); + background-color: transparent; } .btn-link { - color: rgb(105, 166, 213); -} -.btn-link, -.btn-link.active, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - box-shadow: none; -} -.btn-link, -.btn-link:active, -.btn-link:focus, -.btn-link:hover { - border-color: transparent; -} -.btn-link:focus, -.btn-link:hover { - color: rgb(141, 187, 223); - text-decoration-color: initial; - background-color: transparent; -} -.btn-link[disabled]:focus, -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:focus, -fieldset[disabled] .btn-link:hover { - color: rgb(157, 148, 136); + color: rgb(35, 148, 253); text-decoration-color: initial; } -.caret { +.btn-link:hover { + color: rgb(85, 169, 247); +} +.btn-link.disabled, +.btn-link:disabled { + color: rgb(158, 150, 137); +} +.dropdown-toggle::after { border-top-color: initial; border-right-color: transparent; + border-bottom-color: initial; border-left-color: transparent; } -.dropdown-toggle:focus { - outline-color: initial; -} .dropdown-menu { + color: rgb(209, 205, 199); list-style-image: initial; background-color: rgb(24, 26, 27); border-color: rgba(140, 130, 115, 0.15); - box-shadow: rgba(0, 0, 0, 0.18) 0px 6px 12px; } -.dropdown-menu .divider { - background-color: rgb(39, 42, 44); +.dropdown-menu-start { + --bs-position: start; } -.dropdown-menu > li > a { - color: rgb(200, 195, 188); +.dropdown-menu-end { + --bs-position: end; } -.dropdown-menu > li > a:focus, -.dropdown-menu > li > a:hover { - color: rgb(208, 204, 198); - text-decoration-color: initial; - background-color: rgb(30, 32, 33); +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-end { + --bs-position: end; + } } -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:focus, -.dropdown-menu > .active > a:hover { - color: rgb(232, 230, 227); - text-decoration-color: initial; - background-color: rgb(41, 98, 146); - outline-color: initial; +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-end { + --bs-position: end; + } } -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:focus, -.dropdown-menu > .disabled > a:hover { - color: rgb(157, 148, 136); +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-end { + --bs-position: end; + } } -.dropdown-menu > .disabled > a:focus, -.dropdown-menu > .disabled > a:hover { +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-end { + --bs-position: end; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } +} +.dropup .dropdown-toggle::after { + border-top-color: initial; + border-right-color: transparent; + border-bottom-color: initial; + border-left-color: transparent; +} +.dropend .dropdown-toggle::after { + border-top-color: transparent; + border-right-color: initial; + border-bottom-color: transparent; + border-left-color: initial; +} +.dropstart .dropdown-toggle::before { + border-top-color: transparent; + border-right-color: initial; + border-bottom-color: transparent; +} +.dropdown-divider { + border-top-color: rgba(140, 130, 115, 0.15); +} +.dropdown-item { + color: rgb(209, 205, 199); text-decoration-color: initial; background-color: transparent; - background-image: none; + border-color: initial; } -.open > a { - outline-color: initial; +.dropdown-item:focus, +.dropdown-item:hover { + color: rgb(211, 207, 201); + background-color: rgb(35, 38, 39); +} +.dropdown-item.active, +.dropdown-item:active { + color: rgb(232, 230, 227); + text-decoration-color: initial; + background-color: rgb(2, 80, 196); +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: rgb(185, 179, 170); + background-color: transparent; } .dropdown-header { - color: rgb(157, 148, 136); + color: rgb(158, 150, 137); } -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top-color: initial; - border-bottom-color: initial; +.dropdown-item-text { + color: rgb(209, 205, 199); } -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline-color: initial; +.dropdown-menu-dark { + color: rgb(214, 210, 205); + background-color: rgb(44, 47, 49); + border-color: rgba(140, 130, 115, 0.15); } -.btn-group.open .dropdown-toggle { - box-shadow: rgba(0, 0, 0, 0.13) 0px 3px 5px inset; +.dropdown-menu-dark .dropdown-item { + color: rgb(214, 210, 205); } -.btn-group.open .dropdown-toggle.btn-link { - box-shadow: none; +.dropdown-menu-dark .dropdown-item:focus, +.dropdown-menu-dark .dropdown-item:hover { + color: rgb(232, 230, 227); + background-color: rgba(24, 26, 27, 0.15); } -.input-group-addon { - color: rgb(178, 172, 162); - background-color: rgb(34, 36, 38); - border-color: rgb(62, 68, 70); +.dropdown-menu-dark .dropdown-item.active, +.dropdown-menu-dark .dropdown-item:active { + color: rgb(232, 230, 227); + background-color: rgb(2, 80, 196); } -.input-group-addon:first-child { - border-right-color: initial; +.dropdown-menu-dark .dropdown-item.disabled, +.dropdown-menu-dark .dropdown-item:disabled { + color: rgb(185, 179, 170); } -.input-group-addon:last-child { - border-left-color: initial; +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(140, 130, 115, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: rgb(214, 210, 205); +} +.dropdown-menu-dark .dropdown-header { + color: rgb(185, 179, 170); } .nav { list-style-image: initial; } -.nav > li > a:focus, -.nav > li > a:hover { +.nav-link { + color: rgb(35, 148, 253); text-decoration-color: initial; - background-color: rgb(34, 36, 38); } -.nav > li.disabled > a { - color: rgb(157, 148, 136); +.nav-link:focus, +.nav-link:hover { + color: rgb(85, 169, 247); } -.nav > li.disabled > a:focus, -.nav > li.disabled > a:hover { - color: rgb(157, 148, 136); - text-decoration-color: initial; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:focus, -.nav .open > a:hover { - background-color: rgb(34, 36, 38); - border-color: rgb(40, 96, 145); -} -.nav .nav-divider { - background-color: rgb(39, 42, 44); +.nav-link.disabled { + color: rgb(158, 150, 137); } .nav-tabs { - border-bottom-color: rgb(58, 62, 65); + border-bottom-color: rgb(56, 61, 63); } -.nav-tabs > li > a { +.nav-tabs .nav-link { + background-image: initial; + background-color: initial; border-color: transparent; } -.nav-tabs > li > a:hover { - border-color: rgb(53, 57, 59) rgb(53, 57, 59) rgb(58, 62, 65); +.nav-tabs .nav-link:focus, +.nav-tabs .nav-link:hover { + border-color: rgb(53, 58, 60) rgb(53, 58, 60) rgb(56, 61, 63); } -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:focus, -.nav-tabs > li.active > a:hover { - color: rgb(178, 172, 162); +.nav-tabs .nav-link.disabled { + color: rgb(158, 150, 137); + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link.active { + color: rgb(181, 175, 166); background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65) rgb(58, 62, 65) transparent; + border-color: rgb(56, 61, 63) rgb(56, 61, 63) rgb(48, 52, 54); } -.nav-tabs.nav-justified { - border-bottom-color: initial; +.nav-pills .nav-link { + background-image: initial; + background-color: initial; + border-color: initial; } -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:focus, -.nav-tabs.nav-justified > .active > a:hover { - border-color: rgb(58, 62, 65); -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom-color: rgb(58, 62, 65); - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:focus, - .nav-tabs.nav-justified > .active > a:hover { - border-bottom-color: rgb(48, 52, 54); - } -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:focus, -.nav-pills > li.active > a:hover { +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); + background-color: rgb(2, 80, 196); } -.nav-tabs-justified { - border-bottom-color: initial; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:focus, -.nav-tabs-justified > .active > a:hover { - border-color: rgb(58, 62, 65); -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom-color: rgb(58, 62, 65); - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:focus, - .nav-tabs-justified > .active > a:hover { - border-bottom-color: rgb(48, 52, 54); - } -} -.navbar { - border-color: transparent; -} -.navbar-collapse { - border-top-color: transparent; - box-shadow: rgba(24, 26, 27, 0.1) 0px 1px 0px inset; -} -@media (min-width: 768px) { - .navbar-collapse { - border-top-color: initial; - box-shadow: none; - } -} -.navbar-brand:focus, -.navbar-brand:hover { +.navbar-brand { text-decoration-color: initial; } -.navbar-toggle { +.navbar-nav { + list-style-image: initial; +} +.navbar-toggler { background-color: transparent; - background-image: none; border-color: transparent; } -.navbar-toggle:focus { +.navbar-toggler:hover { + text-decoration-color: initial; +} +.navbar-toggler:focus { + text-decoration-color: initial; outline-color: initial; } -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { +@media (min-width: 576px) { + .navbar-expand-sm .offcanvas { background-color: transparent; - border-color: initial; - box-shadow: none; + border-right-color: initial; + border-left-color: initial; } - .navbar-nav .open .dropdown-menu > li > a:focus, - .navbar-nav .open .dropdown-menu > li > a:hover { - background-image: none; + .navbar-expand-sm .offcanvas-bottom, + .navbar-expand-sm .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; } } -.navbar-form { - border-top-color: transparent; - border-bottom-color: transparent; - box-shadow: rgba(24, 26, 27, 0.1) 0px 1px 0px inset, - rgba(24, 26, 27, 0.1) 0px 1px 0px; -} @media (min-width: 768px) { - .navbar-form { - border-color: initial; - box-shadow: none; - } -} -.navbar-default { - background-color: rgb(28, 30, 31); - border-color: rgb(55, 59, 62); -} -.navbar-default .navbar-brand { - color: rgb(157, 148, 136); -} -.navbar-default .navbar-brand:focus, -.navbar-default .navbar-brand:hover { - color: rgb(173, 165, 155); - background-color: transparent; -} -.navbar-default .navbar-text { - color: rgb(157, 148, 136); -} -.navbar-default .navbar-nav > li > a { - color: rgb(157, 148, 136); -} -.navbar-default .navbar-nav > li > a:focus, -.navbar-default .navbar-nav > li > a:hover { - color: rgb(200, 195, 188); - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:focus, -.navbar-default .navbar-nav > .active > a:hover { - color: rgb(178, 172, 162); - background-color: rgb(38, 41, 42); -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:focus, -.navbar-default .navbar-nav > .disabled > a:hover { - color: rgb(200, 195, 188); - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: rgb(58, 62, 65); -} -.navbar-default .navbar-toggle:focus, -.navbar-default .navbar-toggle:hover { - background-color: rgb(43, 47, 49); -} -.navbar-default .navbar-toggle .icon-bar { - background-color: rgb(91, 99, 103); -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: rgb(55, 59, 62); -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:focus, -.navbar-default .navbar-nav > .open > a:hover { - color: rgb(178, 172, 162); - background-color: rgb(38, 41, 42); -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: rgb(157, 148, 136); - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { - color: rgb(200, 195, 188); + .navbar-expand-md .offcanvas { background-color: transparent; + border-right-color: initial; + border-left-color: initial; } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover { - color: rgb(178, 172, 162); - background-color: rgb(38, 41, 42); + .navbar-expand-md .offcanvas-bottom, + .navbar-expand-md .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover { - color: rgb(200, 195, 188); +} +@media (min-width: 992px) { + .navbar-expand-lg .offcanvas { background-color: transparent; + border-right-color: initial; + border-left-color: initial; + } + .navbar-expand-lg .offcanvas-bottom, + .navbar-expand-lg .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; } } -.navbar-default .navbar-link { - color: rgb(157, 148, 136); +@media (min-width: 1200px) { + .navbar-expand-xl .offcanvas { + background-color: transparent; + border-right-color: initial; + border-left-color: initial; + } + .navbar-expand-xl .offcanvas-bottom, + .navbar-expand-xl .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; + } } -.navbar-default .navbar-link:hover { - color: rgb(200, 195, 188); +@media (min-width: 1400px) { + .navbar-expand-xxl .offcanvas { + background-color: transparent; + border-right-color: initial; + border-left-color: initial; + } + .navbar-expand-xxl .offcanvas-bottom, + .navbar-expand-xxl .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; + } } -.navbar-default .btn-link { - color: rgb(157, 148, 136); -} -.navbar-default .btn-link:focus, -.navbar-default .btn-link:hover { - color: rgb(200, 195, 188); -} -.navbar-default .btn-link[disabled]:focus, -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:focus, -fieldset[disabled] .navbar-default .btn-link:hover { - color: rgb(200, 195, 188); -} -.navbar-inverse { - background-color: rgb(26, 28, 29); - border-color: rgb(137, 128, 113); -} -.navbar-inverse .navbar-brand { - color: rgb(170, 163, 152); -} -.navbar-inverse .navbar-brand:focus, -.navbar-inverse .navbar-brand:hover { - color: rgb(232, 230, 227); +.navbar-expand .offcanvas { background-color: transparent; + border-right-color: initial; + border-left-color: initial; } -.navbar-inverse .navbar-text { - color: rgb(170, 163, 152); +.navbar-expand .offcanvas-bottom, +.navbar-expand .offcanvas-top { + border-top-color: initial; + border-bottom-color: initial; } -.navbar-inverse .navbar-nav > li > a { - color: rgb(170, 163, 152); +.navbar-light .navbar-brand { + color: rgba(232, 230, 227, 0.9); } -.navbar-inverse .navbar-nav > li > a:focus, -.navbar-inverse .navbar-nav > li > a:hover { +.navbar-light .navbar-brand:focus, +.navbar-light .navbar-brand:hover { + color: rgba(232, 230, 227, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(232, 230, 227, 0.55); +} +.navbar-light .navbar-nav .nav-link:focus, +.navbar-light .navbar-nav .nav-link:hover { + color: rgba(232, 230, 227, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(232, 230, 227, 0.3); +} +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .show > .nav-link { + color: rgba(232, 230, 227, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(232, 230, 227, 0.55); + border-color: rgba(140, 130, 115, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(232, 230, 227, 0.55); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:focus, +.navbar-light .navbar-text a:hover { + color: rgba(232, 230, 227, 0.9); +} +.navbar-dark .navbar-brand { color: rgb(232, 230, 227); - background-color: transparent; } -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:focus, -.navbar-inverse .navbar-nav > .active > a:hover { +.navbar-dark .navbar-brand:focus, +.navbar-dark .navbar-brand:hover { color: rgb(232, 230, 227); - background-color: rgb(6, 7, 7); } -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:focus, -.navbar-inverse .navbar-nav > .disabled > a:hover { - color: rgb(189, 183, 175); - background-color: transparent; +.navbar-dark .navbar-nav .nav-link { + color: rgba(232, 230, 227, 0.55); } -.navbar-inverse .navbar-toggle { - border-color: rgb(123, 114, 101); +.navbar-dark .navbar-nav .nav-link:focus, +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(232, 230, 227, 0.75); } -.navbar-inverse .navbar-toggle:focus, -.navbar-inverse .navbar-toggle:hover { - background-color: rgb(38, 42, 43); +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(232, 230, 227, 0.25); } -.navbar-inverse .navbar-toggle .icon-bar { +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .show > .nav-link { + color: rgb(232, 230, 227); +} +.navbar-dark .navbar-toggler { + color: rgba(232, 230, 227, 0.55); + border-color: rgba(48, 52, 54, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: rgba(232, 230, 227, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:focus, +.navbar-dark .navbar-text a:hover { + color: rgb(232, 230, 227); +} +.card { background-color: rgb(24, 26, 27); + border-color: rgba(140, 130, 115, 0.13); } -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: rgb(135, 125, 111); +.card > .list-group { + border-top-color: inherit; + border-bottom-color: inherit; } -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:focus, -.navbar-inverse .navbar-nav > .open > a:hover { - color: rgb(232, 230, 227); - background-color: rgb(6, 7, 7); +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top-color: initial; } -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: rgb(137, 128, 113); - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: rgb(6, 7, 7); - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: rgb(170, 163, 152); - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover { - color: rgb(232, 230, 227); - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover { - color: rgb(232, 230, 227); - background-color: rgb(6, 7, 7); - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover { - color: rgb(189, 183, 175); - background-color: transparent; +.card-header { + background-color: rgba(0, 0, 0, 0.03); + border-bottom-color: rgba(140, 130, 115, 0.13); +} +.card-footer { + background-color: rgba(0, 0, 0, 0.03); + border-top-color: rgba(140, 130, 115, 0.13); +} +.card-header-tabs { + border-bottom-color: initial; +} +@media (min-width: 576px) { + .card-group > .card + .card { + border-left-color: initial; } } -.navbar-inverse .navbar-link { - color: rgb(170, 163, 152); +.accordion-button { + color: rgb(209, 205, 199); + background-color: rgb(24, 26, 27); + border-color: initial; } -.navbar-inverse .navbar-link:hover { - color: rgb(232, 230, 227); +.accordion-button:not(.collapsed) { + color: rgb(70, 160, 245); + background-color: rgb(31, 33, 35); + box-shadow: rgba(0, 0, 0, 0.13) 0px -1px 0px inset; } -.navbar-inverse .btn-link { - color: rgb(170, 163, 152); +.accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } -.navbar-inverse .btn-link:focus, -.navbar-inverse .btn-link:hover { - color: rgb(232, 230, 227); +.accordion-button::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } -.navbar-inverse .btn-link[disabled]:focus, -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:focus, -fieldset[disabled] .navbar-inverse .btn-link:hover { - color: rgb(189, 183, 175); +.accordion-button:focus { + border-color: rgb(1, 57, 137); + outline-color: initial; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.accordion-item { + background-color: rgb(24, 26, 27); + border-color: rgba(140, 130, 115, 0.13); +} +.accordion-item:not(:first-of-type) { + border-top-color: initial; +} +.accordion-flush .accordion-item { + border-right-color: initial; + border-left-color: initial; +} +.accordion-flush .accordion-item:first-child { + border-top-color: initial; +} +.accordion-flush .accordion-item:last-child { + border-bottom-color: initial; } .breadcrumb { list-style-image: initial; - background-color: rgb(30, 32, 33); } -.breadcrumb > li + li::before { - color: rgb(200, 195, 188); +.breadcrumb-item + .breadcrumb-item::before { + color: rgb(158, 150, 137); } -.breadcrumb > .active { - color: rgb(157, 148, 136); +.breadcrumb-item.active { + color: rgb(158, 150, 137); } -.pagination > li > a, -.pagination > li > span { - color: rgb(105, 166, 213); - text-decoration-color: initial; - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); -} -.pagination > li > a:focus, -.pagination > li > a:hover, -.pagination > li > span:focus, -.pagination > li > span:hover { - color: rgb(141, 187, 223); - background-color: rgb(34, 36, 38); - border-color: rgb(58, 62, 65); -} -.pagination > .active > a, -.pagination > .active > a:focus, -.pagination > .active > a:hover, -.pagination > .active > span, -.pagination > .active > span:focus, -.pagination > .active > span:hover { - color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); - border-color: rgb(40, 96, 145); -} -.pagination > .disabled > a, -.pagination > .disabled > a:focus, -.pagination > .disabled > a:hover, -.pagination > .disabled > span, -.pagination > .disabled > span:focus, -.pagination > .disabled > span:hover { - color: rgb(157, 148, 136); - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); -} -.pager { +.pagination { list-style-image: initial; } -.pager li > a, -.pager li > span { - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); -} -.pager li > a:focus, -.pager li > a:hover { +.page-link { + color: rgb(35, 148, 253); text-decoration-color: initial; - background-color: rgb(34, 36, 38); -} -.pager .disabled > a, -.pager .disabled > a:focus, -.pager .disabled > a:hover, -.pager .disabled > span { - color: rgb(157, 148, 136); background-color: rgb(24, 26, 27); + border-color: rgb(56, 61, 63); } -.label { +.page-link:hover { + color: rgb(85, 169, 247); + background-color: rgb(35, 38, 39); + border-color: rgb(56, 61, 63); +} +.page-link:focus { + color: rgb(85, 169, 247); + background-color: rgb(35, 38, 39); + outline-color: initial; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.page-item.active .page-link { color: rgb(232, 230, 227); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); } -a.label:focus, -a.label:hover { - color: rgb(232, 230, 227); - text-decoration-color: initial; -} -.label-default { - background-color: rgb(90, 97, 101); -} -.label-default[href]:focus, -.label-default[href]:hover { - background-color: rgb(71, 77, 80); -} -.label-primary { - background-color: rgb(41, 98, 146); -} -.label-primary[href]:focus, -.label-primary[href]:hover { - background-color: rgb(32, 77, 115); -} -.label-success { - background-color: rgb(77, 133, 58); -} -.label-success[href]:focus, -.label-success[href]:hover { - background-color: rgb(54, 126, 54); -} -.label-info { - background-color: rgb(28, 115, 141); -} -.label-info[href]:focus, -.label-info[href]:hover { - background-color: rgb(34, 136, 166); -} -.label-warning { - background-color: rgb(153, 95, 13); -} -.label-warning[href]:focus, -.label-warning[href]:hover { - background-color: rgb(181, 113, 15); -} -.label-danger { - background-color: rgb(148, 35, 32); -} -.label-danger[href]:focus, -.label-danger[href]:hover { - background-color: rgb(161, 38, 35); +.page-item.disabled .page-link { + color: rgb(158, 150, 137); + background-color: rgb(24, 26, 27); + border-color: rgb(56, 61, 63); } .badge { color: rgb(232, 230, 227); - background-color: rgb(90, 97, 101); -} -a.badge:focus, -a.badge:hover { - color: rgb(232, 230, 227); - text-decoration-color: initial; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: rgb(105, 166, 213); - background-color: rgb(24, 26, 27); -} -.jumbotron { - color: inherit; - background-color: rgb(34, 36, 38); -} -.jumbotron .h1, -.jumbotron h1 { - color: inherit; -} -.jumbotron > hr { - border-top-color: rgb(60, 65, 67); -} -.thumbnail { - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); -} -a.thumbnail.active, -a.thumbnail:focus, -a.thumbnail:hover { - border-color: rgb(40, 96, 145); -} -.thumbnail .caption { - color: rgb(200, 195, 188); } .alert { border-color: transparent; } -.alert h4 { +.alert-heading { color: inherit; } -.alert-dismissable .close, -.alert-dismissible .close { - color: inherit; +.alert-primary { + color: rgb(115, 184, 248); + background-color: rgb(38, 41, 42); + border-color: rgb(2, 52, 123); +} +.alert-primary .alert-link { + color: rgb(133, 193, 249); +} +.alert-secondary { + color: rgb(188, 182, 173); + background-color: rgb(40, 43, 44); + border-color: rgb(60, 65, 67); +} +.alert-secondary .alert-link { + color: rgb(197, 192, 184); } .alert-success { - color: rgb(139, 196, 140); - background-color: rgb(41, 60, 23); - border-color: rgb(60, 91, 35); -} -.alert-success hr { - border-top-color: rgb(65, 97, 37); + color: rgb(202, 197, 190); + background-color: rgb(32, 61, 51); + border-color: rgb(46, 88, 69); } .alert-success .alert-link { - color: rgb(162, 208, 164); + color: rgb(208, 204, 197); } .alert-info { - color: rgb(117, 178, 208); - background-color: rgb(14, 48, 65); - border-color: rgb(22, 90, 104); -} -.alert-info hr { - border-top-color: rgb(24, 97, 111); + color: rgb(200, 195, 188); + background-color: rgb(5, 64, 77); + border-color: rgb(6, 99, 119); } .alert-info .alert-link { - color: rgb(144, 192, 217); + color: rgb(206, 202, 196); } .alert-warning { - color: rgb(198, 171, 123); - background-color: rgb(63, 54, 7); - border-color: rgb(108, 76, 11); -} -.alert-warning hr { - border-top-color: rgb(114, 80, 12); + color: rgb(251, 222, 134); + background-color: rgb(81, 62, 0); + border-color: rgb(124, 92, 0); } .alert-warning .alert-link { - color: rgb(209, 187, 148); + color: rgb(205, 201, 195); } .alert-danger { - color: rgb(194, 102, 100); - background-color: rgb(56, 22, 22); - border-color: rgb(89, 35, 43); -} -.alert-danger hr { - border-top-color: rgb(95, 36, 46); + color: rgb(223, 122, 131); + background-color: rgb(67, 12, 17); + border-color: rgb(106, 17, 26); } .alert-danger .alert-link { - color: rgb(204, 127, 126); + color: rgb(227, 140, 147); +} +.alert-light { + color: rgb(169, 162, 151); + background-color: rgb(25, 27, 28); + border-color: rgb(34, 34, 69); +} +.alert-light .alert-link { + color: rgb(182, 175, 166); +} +.alert-dark { + color: rgb(218, 215, 210); + background-color: rgb(49, 53, 55); + border-color: rgb(66, 72, 75); +} +.alert-dark .alert-link { + color: rgb(221, 218, 213); } .progress { - background-color: rgb(30, 32, 33); - box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px inset; + background-color: rgb(35, 38, 39); } .progress-bar { color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); - box-shadow: rgba(0, 0, 0, 0.15) 0px -1px 0px inset; + background-color: rgb(2, 80, 196); } -.progress-bar-striped, -.progress-striped .progress-bar { +.progress-bar-striped { background-image: linear-gradient(45deg, rgba(24, 26, 27, 0.15) 25%, rgba(0, 0, 0, 0) 25%, @@ -1687,483 +2004,170 @@ a.thumbnail:hover { rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0)); } -.progress-bar-success { - background-color: rgb(77, 133, 58); +.list-group-item-action { + color: rgb(181, 175, 166); } -.progress-striped .progress-bar-success { - background-image: linear-gradient(45deg, - rgba(24, 26, 27, 0.15) 25%, - rgba(0, 0, 0, 0) 25%, - rgba(0, 0, 0, 0) 50%, - rgba(24, 26, 27, 0.15) 50%, - rgba(24, 26, 27, 0.15) 75%, - rgba(0, 0, 0, 0) 75%, - rgba(0, 0, 0, 0)); +.list-group-item-action:focus, +.list-group-item-action:hover { + color: rgb(181, 175, 166); + text-decoration-color: initial; + background-color: rgb(27, 30, 31); } -.progress-bar-info { - background-color: rgb(28, 115, 141); -} -.progress-striped .progress-bar-info { - background-image: linear-gradient(45deg, - rgba(24, 26, 27, 0.15) 25%, - rgba(0, 0, 0, 0) 25%, - rgba(0, 0, 0, 0) 50%, - rgba(24, 26, 27, 0.15) 50%, - rgba(24, 26, 27, 0.15) 75%, - rgba(0, 0, 0, 0) 75%, - rgba(0, 0, 0, 0)); -} -.progress-bar-warning { - background-color: rgb(153, 95, 13); -} -.progress-striped .progress-bar-warning { - background-image: linear-gradient(45deg, - rgba(24, 26, 27, 0.15) 25%, - rgba(0, 0, 0, 0) 25%, - rgba(0, 0, 0, 0) 50%, - rgba(24, 26, 27, 0.15) 50%, - rgba(24, 26, 27, 0.15) 75%, - rgba(0, 0, 0, 0) 75%, - rgba(0, 0, 0, 0)); -} -.progress-bar-danger { - background-color: rgb(148, 35, 32); -} -.progress-striped .progress-bar-danger { - background-image: linear-gradient(45deg, - rgba(24, 26, 27, 0.15) 25%, - rgba(0, 0, 0, 0) 25%, - rgba(0, 0, 0, 0) 50%, - rgba(24, 26, 27, 0.15) 50%, - rgba(24, 26, 27, 0.15) 75%, - rgba(0, 0, 0, 0) 75%, - rgba(0, 0, 0, 0)); -} -.media-list { - list-style-image: initial; +.list-group-item-action:active { + color: rgb(209, 205, 199); + background-color: rgb(35, 38, 39); } .list-group-item { - background-color: rgb(24, 26, 27); - border-color: rgb(58, 62, 65); -} -a.list-group-item, -button.list-group-item { - color: rgb(178, 172, 162); -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: rgb(200, 195, 188); -} -a.list-group-item:focus, -a.list-group-item:hover, -button.list-group-item:focus, -button.list-group-item:hover { - color: rgb(178, 172, 162); + color: rgb(209, 205, 199); text-decoration-color: initial; - background-color: rgb(30, 32, 33); + background-color: rgb(24, 26, 27); + border-color: rgba(140, 130, 115, 0.13); } .list-group-item.disabled, -.list-group-item.disabled:focus, -.list-group-item.disabled:hover { - color: rgb(157, 148, 136); - background-color: rgb(34, 36, 38); +.list-group-item:disabled { + color: rgb(158, 150, 137); + background-color: rgb(24, 26, 27); } -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text { - color: rgb(157, 148, 136); -} -.list-group-item.active, -.list-group-item.active:focus, -.list-group-item.active:hover { +.list-group-item.active { color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); - border-color: rgb(40, 96, 145); + background-color: rgb(2, 80, 196); + border-color: rgb(1, 71, 174); } -.list-group-item.active .list-group-item-heading, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > small { - color: inherit; +.list-group-item-primary { + color: rgb(115, 184, 248); + background-color: rgb(38, 41, 42); } -.list-group-item.active .list-group-item-text, -.list-group-item.active:focus .list-group-item-text, -.list-group-item.active:hover .list-group-item-text { - color: rgb(176, 208, 232); +.list-group-item-primary.list-group-item-action:focus, +.list-group-item-primary.list-group-item-action:hover { + color: rgb(115, 184, 248); + background-color: rgb(51, 55, 57); +} +.list-group-item-primary.list-group-item-action.active { + color: rgb(232, 230, 227); + background-color: rgb(6, 53, 122); + border-color: rgb(10, 85, 197); +} +.list-group-item-secondary { + color: rgb(188, 182, 173); + background-color: rgb(40, 43, 44); +} +.list-group-item-secondary.list-group-item-action:focus, +.list-group-item-secondary.list-group-item-action:hover { + color: rgb(188, 182, 173); + background-color: rgb(53, 57, 59); +} +.list-group-item-secondary.list-group-item-action.active { + color: rgb(232, 230, 227); + background-color: rgb(53, 57, 59); + border-color: rgb(117, 109, 96); } .list-group-item-success { - color: rgb(139, 196, 140); - background-color: rgb(41, 60, 23); + color: rgb(202, 197, 190); + background-color: rgb(32, 61, 51); } -a.list-group-item-success, -button.list-group-item-success { - color: rgb(139, 196, 140); +.list-group-item-success.list-group-item-action:focus, +.list-group-item-success.list-group-item-action:hover { + color: rgb(202, 197, 190); + background-color: rgb(49, 70, 63); } -a.list-group-item-success .list-group-item-heading, -button.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:focus, -a.list-group-item-success:hover, -button.list-group-item-success:focus, -button.list-group-item-success:hover { - color: rgb(139, 196, 140); - background-color: rgb(48, 71, 27); -} -a.list-group-item-success.active, -a.list-group-item-success.active:focus, -a.list-group-item-success.active:hover, -button.list-group-item-success.active, -button.list-group-item-success.active:focus, -button.list-group-item-success.active:hover { +.list-group-item-success.list-group-item-action.active { color: rgb(232, 230, 227); - background-color: rgb(48, 94, 49); - border-color: rgb(68, 134, 69); + background-color: rgb(12, 65, 40); + border-color: rgb(124, 115, 102); } .list-group-item-info { - color: rgb(117, 178, 208); - background-color: rgb(14, 48, 65); + color: rgb(200, 195, 188); + background-color: rgb(5, 64, 77); } -a.list-group-item-info, -button.list-group-item-info { - color: rgb(117, 178, 208); +.list-group-item-info.list-group-item-action:focus, +.list-group-item-info.list-group-item-action:hover { + color: rgb(200, 195, 188); + background-color: rgb(32, 70, 78); } -a.list-group-item-info .list-group-item-heading, -button.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:focus, -a.list-group-item-info:hover, -button.list-group-item-info:focus, -button.list-group-item-info:hover { - color: rgb(117, 178, 208); - background-color: rgb(44, 48, 50); -} -a.list-group-item-info.active, -a.list-group-item-info.active:focus, -a.list-group-item-info.active:hover, -button.list-group-item-info.active, -button.list-group-item-info.active:focus, -button.list-group-item-info.active:hover { +.list-group-item-info.list-group-item-action.active { color: rgb(232, 230, 227); - background-color: rgb(39, 90, 114); - border-color: rgb(50, 115, 147); + background-color: rgb(4, 65, 77); + border-color: rgb(123, 115, 101); } .list-group-item-warning { - color: rgb(198, 171, 123); - background-color: rgb(63, 54, 7); + color: rgb(251, 222, 134); + background-color: rgb(81, 62, 0); } -a.list-group-item-warning, -button.list-group-item-warning { - color: rgb(198, 171, 123); +.list-group-item-warning.list-group-item-action:focus, +.list-group-item-warning.list-group-item-action:hover { + color: rgb(251, 222, 134); + background-color: rgb(80, 67, 28); } -a.list-group-item-warning .list-group-item-heading, -button.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:focus, -a.list-group-item-warning:hover, -button.list-group-item-warning:focus, -button.list-group-item-warning:hover { - color: rgb(198, 171, 123); - background-color: rgb(77, 65, 8); -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:focus, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active, -button.list-group-item-warning.active:focus, -button.list-group-item-warning.active:hover { +.list-group-item-warning.list-group-item-action.active { color: rgb(232, 230, 227); - background-color: rgb(110, 87, 47); - border-color: rgb(137, 108, 59); + background-color: rgb(82, 62, 2); + border-color: rgb(217, 164, 6); } .list-group-item-danger { - color: rgb(194, 102, 100); - background-color: rgb(56, 22, 22); + color: rgb(223, 122, 131); + background-color: rgb(67, 12, 17); } -a.list-group-item-danger, -button.list-group-item-danger { - color: rgb(194, 102, 100); +.list-group-item-danger.list-group-item-action:focus, +.list-group-item-danger.list-group-item-action:hover { + color: rgb(223, 122, 131); + background-color: rgb(70, 37, 39); } -a.list-group-item-danger .list-group-item-heading, -button.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:focus, -a.list-group-item-danger:hover, -button.list-group-item-danger:focus, -button.list-group-item-danger:hover { - color: rgb(194, 102, 100); - background-color: rgb(67, 26, 26); -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:focus, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active, -button.list-group-item-danger.active:focus, -button.list-group-item-danger.active:hover { +.list-group-item-danger.list-group-item-action.active { color: rgb(232, 230, 227); - background-color: rgb(135, 54, 53); - border-color: rgb(133, 53, 52); + background-color: rgb(106, 26, 33); + border-color: rgb(166, 40, 51); } -.panel { - background-color: rgb(24, 26, 27); - border-color: transparent; - box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 1px; +.list-group-item-light { + color: rgb(169, 162, 151); + background-color: rgb(25, 27, 28); } -.panel-heading { - border-bottom-color: transparent; +.list-group-item-light.list-group-item-action:focus, +.list-group-item-light.list-group-item-action:hover { + color: rgb(169, 162, 151); + background-color: rgb(39, 42, 44); } -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; +.list-group-item-light.list-group-item-action.active { + color: rgb(232, 230, 227); + background-color: rgb(75, 81, 84); + border-color: rgb(107, 100, 88); } -.panel-title { - color: inherit; +.list-group-item-dark { + color: rgb(218, 215, 210); + background-color: rgb(49, 53, 55); } -.panel-title > .small, -.panel-title > .small > a, -.panel-title > a, -.panel-title > small, -.panel-title > small > a { - color: inherit; +.list-group-item-dark.list-group-item-action:focus, +.list-group-item-dark.list-group-item-action:hover { + color: rgb(218, 215, 210); + background-color: rgb(60, 65, 68); } -.panel-footer { - background-color: rgb(30, 32, 33); - border-top-color: rgb(58, 62, 65); +.list-group-item-dark.list-group-item-action.active { + color: rgb(232, 230, 227); + background-color: rgb(17, 18, 19); + border-color: rgb(133, 123, 109); } -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top-color: initial; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom-color: initial; -} -.panel > .panel-content + .table, -.panel > .panel-content + .table-responsive, -.panel > .table + .panel-content, -.panel > .table-responsive + .panel-content { - border-top-color: rgb(58, 62, 65); -} -.panel > .table > tbody:first-child > tr:first-child td, -.panel > .table > tbody:first-child > tr:first-child th { - border-top-color: initial; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { +.btn-close { + color: rgb(232, 230, 227); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; border-color: initial; } -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child { - border-left-color: initial; -} -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child { - border-right-color: initial; -} -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th { - border-bottom-color: initial; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom-color: initial; -} -.panel > .table-responsive { - border-color: initial; -} -.panel-group .panel-heading { - border-bottom-color: initial; -} -.panel-group .panel-heading + .panel-collapse > .list-group, -.panel-group .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(58, 62, 65); -} -.panel-group .panel-footer { - border-top-color: initial; -} -.panel-group .panel-footer + .panel-collapse .panel-content { - border-bottom-color: rgb(58, 62, 65); -} -.panel-default { - border-color: rgb(58, 62, 65); -} -.panel-default > .panel-heading { - color: rgb(200, 195, 188); - background-color: rgb(30, 32, 33); - border-color: rgb(58, 62, 65); -} -.panel-default > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(58, 62, 65); -} -.panel-default > .panel-heading .badge { - color: rgb(226, 223, 219); - background-color: rgb(38, 42, 43); -} -.panel-default > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(58, 62, 65); -} -.panel-primary { - border-color: rgb(40, 96, 145); -} -.panel-primary > .panel-heading { - color: rgb(232, 230, 227); - background-color: rgb(41, 98, 146); - border-color: rgb(40, 96, 145); -} -.panel-primary > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(40, 96, 145); -} -.panel-primary > .panel-heading .badge { - color: rgb(105, 166, 213); - background-color: rgb(24, 26, 27); -} -.panel-primary > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(40, 96, 145); -} -.panel-success { - border-color: rgb(60, 91, 35); -} -.panel-success > .panel-heading { - color: rgb(139, 196, 140); - background-color: rgb(41, 60, 23); - border-color: rgb(60, 91, 35); -} -.panel-success > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(60, 91, 35); -} -.panel-success > .panel-heading .badge { - color: rgb(202, 230, 191); - background-color: rgb(48, 94, 49); -} -.panel-success > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(60, 91, 35); -} -.panel-info { - border-color: rgb(22, 90, 104); -} -.panel-info > .panel-heading { - color: rgb(117, 178, 208); - background-color: rgb(14, 48, 65); - border-color: rgb(22, 90, 104); -} -.panel-info > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(22, 90, 104); -} -.panel-info > .panel-heading .badge { - color: rgb(186, 222, 241); - background-color: rgb(39, 90, 114); -} -.panel-info > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(22, 90, 104); -} -.panel-warning { - border-color: rgb(108, 76, 11); -} -.panel-warning > .panel-heading { - color: rgb(198, 171, 123); - background-color: rgb(63, 54, 7); - border-color: rgb(108, 76, 11); -} -.panel-warning > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(108, 76, 11); -} -.panel-warning > .panel-heading .badge { - color: rgb(248, 239, 189); - background-color: rgb(110, 87, 47); -} -.panel-warning > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(108, 76, 11); -} -.panel-danger { - border-color: rgb(89, 35, 43); -} -.panel-danger > .panel-heading { - color: rgb(194, 102, 100); - background-color: rgb(56, 22, 22); - border-color: rgb(89, 35, 43); -} -.panel-danger > .panel-heading + .panel-collapse > .panel-content { - border-top-color: rgb(89, 35, 43); -} -.panel-danger > .panel-heading .badge { - color: rgb(231, 195, 195); - background-color: rgb(135, 54, 53); -} -.panel-danger > .panel-footer + .panel-collapse > .panel-content { - border-bottom-color: rgb(89, 35, 43); -} -.embed-responsive .embed-responsive-item, -.embed-responsive embed, -.embed-responsive iframe, -.embed-responsive object, -.embed-responsive video { - border-color: initial; -} -.well { - background-color: rgb(30, 32, 33); - border-color: rgb(56, 61, 63); - box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 1px inset; -} -.well blockquote { - border-color: rgba(140, 130, 115, 0.15); -} -.close { - color: rgb(232, 230, 227); - text-shadow: rgb(24, 26, 27) 0px 1px 0px; -} -.close:focus, -.close:hover { +.btn-close:hover { color: rgb(232, 230, 227); text-decoration-color: initial; } -button.close { - background-image: initial; - background-color: initial; - border-color: initial; +.btn-close:focus { + outline-color: initial; + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.toast { + background-color: rgba(24, 26, 27, 0.85); + border-color: rgba(140, 130, 115, 0.1); + box-shadow: rgba(0, 0, 0, 0.15) 0px 0.5rem 1rem; +} +.toast-header { + color: rgb(158, 150, 137); + background-color: rgba(24, 26, 27, 0.85); + border-bottom-color: rgba(140, 130, 115, 0.05); } .modal { outline-color: initial; @@ -2172,143 +2176,503 @@ button.close { background-color: rgb(24, 26, 27); border-color: rgba(140, 130, 115, 0.2); outline-color: initial; - box-shadow: rgba(0, 0, 0, 0.5) 0px 3px 9px; } .modal-backdrop { background-color: rgb(0, 0, 0); } .modal-header { - border-bottom-color: rgb(55, 60, 62); + border-bottom-color: rgb(56, 61, 63); } .modal-footer { - border-top-color: rgb(55, 60, 62); + border-top-color: rgb(56, 61, 63); } -@media (min-width: 768px) { - .modal-content { - box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px; +.modal-fullscreen .modal-content { + border-color: initial; +} +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down .modal-content { + border-color: initial; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down .modal-content { + border-color: initial; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down .modal-content { + border-color: initial; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down .modal-content { + border-color: initial; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down .modal-content { + border-color: initial; } } .tooltip { - text-decoration-color: initial; - text-shadow: none; + text-decoration-color: initial; text-shadow: none; +} +.tooltip .tooltip-arrow::before { + border-color: transparent; +} +.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before, +.bs-tooltip-top .tooltip-arrow::before { + border-top-color: rgb(140, 130, 115); +} +.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before, +.bs-tooltip-end .tooltip-arrow::before { + border-right-color: rgb(140, 130, 115); +} +.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before, +.bs-tooltip-bottom .tooltip-arrow::before { + border-bottom-color: rgb(140, 130, 115); +} +.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before, +.bs-tooltip-start .tooltip-arrow::before { + border-left-color: rgb(140, 130, 115); } .tooltip-inner { color: rgb(232, 230, 227); background-color: rgb(0, 0, 0); } -.tooltip-arrow { - border-color: transparent; -} -.tooltip.top .tooltip-arrow { - border-top-color: rgb(140, 130, 115); -} -.tooltip.top-left .tooltip-arrow { - border-top-color: rgb(140, 130, 115); -} -.tooltip.top-right .tooltip-arrow { - border-top-color: rgb(140, 130, 115); -} -.tooltip.right .tooltip-arrow { - border-right-color: rgb(140, 130, 115); -} -.tooltip.left .tooltip-arrow { - border-left-color: rgb(140, 130, 115); -} -.tooltip.bottom .tooltip-arrow { - border-bottom-color: rgb(140, 130, 115); -} -.tooltip.bottom-left .tooltip-arrow { - border-bottom-color: rgb(140, 130, 115); -} -.tooltip.bottom-right .tooltip-arrow { - border-bottom-color: rgb(140, 130, 115); -} .popover { text-decoration-color: initial; text-shadow: none; background-color: rgb(24, 26, 27); - border-color: rgba(140, 130, 115, 0.2); - box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 10px; + border-color: rgba(140, 130, 115, 0.2); } -.popover-title { - background-color: rgb(29, 31, 32); - border-bottom-color: rgb(54, 58, 60); +.popover .popover-arrow::after, .popover .popover-arrow::before { + border-color: transparent; } -.popover > .arrow, -.popover > .arrow::after { - border-color: transparent; +.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, +.bs-popover-top > .popover-arrow::before { + border-top-color: rgba(140, 130, 115, 0.25); } -.popover.top > .arrow { - border-top-color: rgba(140, 130, 115, 0.25); +.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after, +.bs-popover-top > .popover-arrow::after { + border-top-color: rgb(48, 52, 54); } -.popover.top > .arrow::after { - border-top-color: rgb(48, 52, 54); +.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, +.bs-popover-end > .popover-arrow::before { + border-right-color: rgba(140, 130, 115, 0.25); } -.popover.right > .arrow { - border-right-color: rgba(140, 130, 115, 0.25); +.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after, +.bs-popover-end > .popover-arrow::after { + border-right-color: rgb(48, 52, 54); } -.popover.right > .arrow::after { - border-right-color: rgb(48, 52, 54); +.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, +.bs-popover-bottom > .popover-arrow::before { + border-bottom-color: rgba(140, 130, 115, 0.25); } -.popover.bottom > .arrow { - border-bottom-color: rgba(140, 130, 115, 0.25); +.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after, +.bs-popover-bottom > .popover-arrow::after { + border-bottom-color: rgb(48, 52, 54); } -.popover.bottom > .arrow::after { - border-bottom-color: rgb(48, 52, 54); +.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before, +.bs-popover-bottom .popover-header::before { + border-bottom-color: rgb(52, 57, 59); } -.popover.left > .arrow { - border-left-color: rgba(140, 130, 115, 0.25); +.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, +.bs-popover-start > .popover-arrow::before { + border-left-color: rgba(140, 130, 115, 0.25); } -.popover.left > .arrow::after { +.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after, +.bs-popover-start > .popover-arrow::after { border-left-color: rgb(48, 52, 54); } -.carousel-control { +.popover-header { + background-color: rgb(32, 35, 37); + border-bottom-color: rgba(140, 130, 115, 0.2); +} +.popover-body { + color: rgb(209, 205, 199); +} +.carousel-control-next, +.carousel-control-prev { color: rgb(232, 230, 227); - text-shadow: rgba(0, 0, 0, 0.6) 0px 1px 2px; - background-color: rgba(0, 0, 0, 0); + background-image: initial; + background-color: initial; + border-color: initial; } -.carousel-control.left { - background-image: linear-gradient(to right, - rgba(0, 0, 0, 0.5) 0px, - rgba(0, 0, 0, 0) 100%); -} -.carousel-control.right { - background-image: linear-gradient(to right, - rgba(0, 0, 0, 0) 0px, - rgba(0, 0, 0, 0.5) 100%); -} -.carousel-control:focus, -.carousel-control:hover { +.carousel-control-next:focus, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-prev:hover { color: rgb(232, 230, 227); text-decoration-color: initial; outline-color: initial; } +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} .carousel-indicators { list-style-image: initial; } -.carousel-indicators li { - background-color: rgba(0, 0, 0, 0); - border-color: rgb(48, 52, 54); -} -.carousel-indicators .active { +.carousel-indicators [data-bs-target] { background-color: rgb(24, 26, 27); + border-right-color: initial; + border-left-color: initial; + border-top-color: transparent; + border-bottom-color: transparent; } .carousel-caption { color: rgb(232, 230, 227); - text-shadow: rgba(0, 0, 0, 0.6) 0px 1px 2px; } -.carousel-caption .btn { - text-shadow: none; +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: rgb(0, 0, 0); } -.text-hide { - color: transparent; - text-shadow: none; - background-color: transparent; - border-color: initial; +.carousel-dark .carousel-caption { + color: rgb(232, 230, 227); +} +.spinner-border { + border-color: currentcolor transparent currentcolor currentcolor; +} +.spinner-grow { + background-color: currentcolor; +} +.offcanvas { + background-color: rgb(24, 26, 27); + outline-color: initial; +} +.offcanvas-backdrop { + background-color: rgb(0, 0, 0); +} +.offcanvas-start { + border-right-color: rgba(140, 130, 115, 0.2); +} +.offcanvas-end { + border-left-color: rgba(140, 130, 115, 0.2); +} +.offcanvas-top { + border-bottom-color: rgba(140, 130, 115, 0.2); +} +.offcanvas-bottom { + border-top-color: rgba(140, 130, 115, 0.2); +} +.placeholder { + background-color: currentcolor; +} +.link-primary { + color: rgb(35, 148, 253); +} +.link-primary:focus, +.link-primary:hover { + color: rgb(85, 169, 247); +} +.link-secondary { + color: rgb(158, 150, 137); +} +.link-secondary:focus, +.link-secondary:hover { + color: rgb(173, 166, 156); +} +.link-success { + color: rgb(117, 230, 178); +} +.link-success:focus, +.link-success:hover { + color: rgb(136, 233, 188); +} +.link-info { + color: rgb(39, 209, 243); +} +.link-info:focus, +.link-info:hover { + color: rgb(71, 215, 244); +} +.link-warning { + color: rgb(255, 199, 30); +} +.link-warning:focus, +.link-warning:hover { + color: rgb(255, 207, 65); +} +.link-danger { + color: rgb(223, 70, 85); +} +.link-danger:focus, +.link-danger:hover { + color: rgb(216, 91, 103); +} +.link-light { + color: rgb(228, 226, 222); +} +.link-light:focus, +.link-light:hover { + color: rgb(229, 227, 223); +} +.link-dark { + color: rgb(209, 205, 199); +} +.link-dark:focus, +.link-dark:hover { + color: rgb(213, 210, 204); +} +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} +.ratio-21x9 { + --bs-aspect-ratio: 42.8571%; +} +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + border-color: initial !important; +} +.vr { + background-color: currentcolor; +} +.shadow { + box-shadow: rgba(0, 0, 0, 0.15) 0px 0.5rem 1rem !important; +} +.shadow-sm { + box-shadow: rgba(0, 0, 0, 0.07) 0px 0.125rem 0.25rem !important; +} +.shadow-lg { + box-shadow: rgba(0, 0, 0, 0.18) 0px 1rem 3rem !important; +} +.shadow-none { + box-shadow: none !important; +} +.border { + border-color: rgb(56, 61, 63) !important; +} +.border-0 { + border-color: initial !important; +} +.border-top { + border-top-color: rgb(56, 61, 63) !important; +} +.border-top-0 { + border-top-color: initial !important; +} +.border-end { + border-right-color: rgb(56, 61, 63) !important; +} +.border-end-0 { + border-right-color: initial !important; +} +.border-bottom { + border-bottom-color: rgb(56, 61, 63) !important; +} +.border-bottom-0 { + border-bottom-color: initial !important; +} +.border-start { + border-left-color: rgb(56, 61, 63) !important; +} +.border-start-0 { + border-left-color: initial !important; +} +.border-primary { + border-color: rgb(1, 71, 174) !important; +} +.border-secondary { + border-color: rgb(102, 94, 83) !important; +} +.border-success { + border-color: rgb(32, 175, 109) !important; +} +.border-info { + border-color: rgb(9, 143, 170) !important; +} +.border-warning { + border-color: rgb(176, 132, 0) !important; +} +.border-danger { + border-color: rgb(148, 26, 37) !important; +} +.border-light { + border-color: rgb(50, 54, 56) !important; +} +.border-dark { + border-color: rgb(128, 119, 105) !important; +} +.border-white { + border-color: rgb(48, 52, 54) !important; +} +.text-decoration-none { + text-decoration-color: initial !important; +} +.text-decoration-underline { + text-decoration-color: initial !important; +} +.text-decoration-line-through { + text-decoration-color: initial !important; +} +.text-primary { + --darkreader-text--bs-text-opacity: 1; + color: rgb(35, 148, 253) !important; +} +.text-secondary { + --darkreader-text--bs-text-opacity: 1; + color: rgb(158, 150, 137) !important; +} +.text-success { + --darkreader-text--bs-text-opacity: 1; + color: rgb(117, 230, 178) !important; +} +.text-info { + --darkreader-text--bs-text-opacity: 1; + color: rgb(39, 209, 243) !important; +} +.text-warning { + --darkreader-text--bs-text-opacity: 1; + color: rgb(255, 199, 30) !important; +} +.text-danger { + --darkreader-text--bs-text-opacity: 1; + color: rgb(223, 70, 85) !important; +} +.text-light { + --darkreader-text--bs-text-opacity: 1; + color: rgb(228, 226, 222) !important; +} +.text-dark { + --darkreader-text--bs-text-opacity: 1; + color: rgb(209, 205, 199) !important; +} +.text-black { + --darkreader-text--bs-text-opacity: 1; + color: rgb(232, 230, 227) !important; +} +.text-white { + --darkreader-text--bs-text-opacity: 1; + color: rgb(232, 230, 227) !important; +} +.text-body { + --darkreader-text--bs-text-opacity: 1; + color: rgb(209, 205, 199) !important; +} +.text-muted { + --darkreader-text--bs-text-opacity: 1; + color: rgb(158, 150, 137) !important; +} +.text-black-50 { + --darkreader-text--bs-text-opacity: 1; + color: rgba(232, 230, 227, 0.5) !important; +} +.text-white-50 { + --darkreader-text--bs-text-opacity: 1; + color: rgba(232, 230, 227, 0.5) !important; +} +.text-reset { + --darkreader-text--bs-text-opacity: 1; + color: inherit !important; +} +.text-opacity-25 { + --darkreader-text--bs-text-opacity: 0.25; +} +.text-opacity-50 { + --darkreader-text--bs-text-opacity: 0.5; +} +.text-opacity-75 { + --darkreader-text--bs-text-opacity: 0.75; +} +.text-opacity-100 { + --darkreader-text--bs-text-opacity: 1; +} +.bg-primary { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(2, 80, 196) !important; +} +.bg-secondary { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(88, 95, 99) !important; +} +.bg-success { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(20, 108, 67) !important; +} +.bg-info { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(10, 162, 192) !important; +} +.bg-warning { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(200, 150, 0) !important; +} +.bg-danger { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(165, 29, 42) !important; +} +.bg-light { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(27, 30, 31) !important; +} +.bg-dark { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(28, 30, 31) !important; +} +.bg-black { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(0, 0, 0) !important; +} +.bg-white { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(24, 26, 27) !important; +} +.bg-body { + --darkreader-bg--bs-bg-opacity: 1; + background-color: rgb(24, 26, 27) !important; +} +.bg-transparent { + --darkreader-bg--bs-bg-opacity: 1; + background-color: transparent !important; +} +.bg-opacity-10 { + --darkreader-bg--bs-bg-opacity: 0.1; +} +.bg-opacity-25 { + --darkreader-bg--bs-bg-opacity: 0.25; +} +.bg-opacity-50 { + --darkreader-bg--bs-bg-opacity: 0.5; +} +.bg-opacity-75 { + --darkreader-bg--bs-bg-opacity: 0.75; +} +.bg-opacity-100 { + --darkreader-bg--bs-bg-opacity: 1; +} +.bg-gradient { + background-image: var(--darkreader-bgimg--bs-gradient) !important; +} +.bootstrap-table .fixed-table-container .table thead th:focus { + outline-color: transparent; +} +.bootstrap-table .fixed-table-container .table thead th .both { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC"); +} +.bootstrap-table .fixed-table-container .table thead th .asc { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg=="); +} +.bootstrap-table .fixed-table-container .table thead th .desc { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= "); +} +.bootstrap-table .fixed-table-container .table tbody tr.selected td { + background-color: rgba(0, 0, 0, 0.07); } .bootstrap-table .fixed-table-container.fixed-height:not(.has-footer) { border-bottom-color: rgb(56, 61, 63); } +.bootstrap-table .fixed-table-container.fixed-height.has-card-view { + border-top-color: rgb(56, 61, 63); + border-bottom-color: rgb(56, 61, 63); +} .bootstrap-table .fixed-table-container.fixed-height .fixed-table-border { border-left-color: rgb(56, 61, 63); border-right-color: rgb(56, 61, 63); @@ -2339,21 +2703,6 @@ button.close { background-image: initial; background-color: rgb(24, 26, 27); } -.bootstrap-table .fixed-table-container .table thead th:focus { - outline-color: transparent; -} -.bootstrap-table .fixed-table-container .table thead th .both { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC"); -} -.bootstrap-table .fixed-table-container .table thead th .asc { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg=="); -} -.bootstrap-table .fixed-table-container .table thead th .desc { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= "); -} -.bootstrap-table .fixed-table-container .table tbody tr.selected td { - background-color: rgba(0, 0, 0, 0.07); -} .bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a { color: rgb(197, 192, 185); } @@ -2361,6 +2710,12 @@ button.close { background-image: initial; background-color: rgb(24, 26, 27); } +.treegrid-expander-expanded { + background-image: url("http://127.0.0.1:8000/static/treegrid/img/collapse.png"); +} +.treegrid-expander-collapsed { + background-image: url("http://127.0.0.1:8000/static/treegrid/img/expand.png"); +} .select2-container .select2-search--inline .select2-search__field { border-color: initial; } @@ -2413,9 +2768,6 @@ button.close { .select2-container--default .select2-selection--multiple .select2-selection__rendered li { list-style-image: initial; } -.select2-container--default .select2-selection--multiple .select2-selection__placeholder { - color: rgb(168, 160, 149); -} .select2-container--default .select2-selection--multiple .select2-selection__choice { background-color: rgb(39, 43, 44); border-color: rgb(72, 78, 81); @@ -2561,11 +2913,211 @@ button.close { .select2-container--classic.select2-container--open .select2-dropdown { border-color: rgb(4, 60, 150); } -.toggle-on { +.select2-container--bootstrap-5 :focus { + outline-color: initial; +} +.select2-container--bootstrap-5 .select2-selection { + color: rgb(209, 205, 199); + background-color: rgb(24, 26, 27); + border-color: rgb(60, 65, 68); +} +.select2-container--bootstrap-5.select2-container--focus .select2-selection, +.select2-container--bootstrap-5.select2-container--open .select2-selection { + border-color: rgb(1, 57, 137); + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection { + border-bottom-color: transparent; +} +.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection { + border-top-color: transparent; +} +.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear, +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover, +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2-dropdown { + border-color: rgb(60, 65, 68); +} +.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--below { + border-top-color: transparent; +} +.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field { + color: rgb(209, 205, 199); + background-color: rgb(24, 26, 27); + border-color: rgb(60, 65, 68); +} +.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field:focus { + border-color: rgb(1, 57, 137); + box-shadow: rgba(2, 80, 196, 0.25) 0px 0px 0px 0.25rem; +} +.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__message { + color: rgb(158, 150, 137); +} +.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted { + color: rgb(232, 230, 227); + background-color: rgb(27, 30, 31); +} +.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected, .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected="true"] { + color: rgb(232, 230, 227); + background-color: rgb(2, 80, 196); +} +.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled, .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-disabled="true"] { + color: rgb(158, 150, 137); +} +.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role="group"] .select2-results__group { + color: rgb(158, 150, 137); +} +.select2-container--bootstrap-5 .select2-selection--single { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); +} +.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered { + color: rgb(209, 205, 199); +} +.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered .select2-selection__placeholder { + color: rgb(158, 150, 137); +} +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered { + list-style-image: initial; +} +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice { + color: rgb(209, 205, 199); + border-color: rgb(60, 65, 68); +} +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; border-color: initial; } -.toggle-off { - border-color: initial; +.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2-selection--multiple .select2-search .select2-search__field { + background-color: transparent; +} +.select2-container--bootstrap-5.select2-container--disabled .select2-selection, +.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection { + color: rgb(158, 150, 137); + background-color: rgb(35, 38, 39); + border-color: rgb(60, 65, 68); + box-shadow: none; +} +.is-valid + .select2-container--bootstrap-5 .select2-selection, +form.was-validated select:valid + .select2-container--bootstrap-5 .select2-selection { + border-color: rgb(32, 175, 109); +} +.is-valid + .select2-container--bootstrap-5.select2-container--focus .select2-selection, +.is-valid + .select2-container--bootstrap-5.select2-container--open .select2-selection, +form.was-validated select:valid + .select2-container--bootstrap-5.select2-container--focus .select2-selection, +form.was-validated select:valid + .select2-container--bootstrap-5.select2-container--open .select2-selection { + border-color: rgb(32, 175, 109); + box-shadow: rgba(20, 108, 67, 0.25) 0px 0px 0px 0.25rem; +} +.is-valid + .select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection, +form.was-validated select:valid + .select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection { + border-bottom-color: transparent; +} +.is-valid + .select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection, +form.was-validated select:valid + .select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection { + border-top-color: transparent; +} +.is-invalid + .select2-container--bootstrap-5 .select2-selection, +form.was-validated select:invalid + .select2-container--bootstrap-5 .select2-selection { + border-color: rgb(148, 26, 37); +} +.is-invalid + .select2-container--bootstrap-5.select2-container--focus .select2-selection, +.is-invalid + .select2-container--bootstrap-5.select2-container--open .select2-selection, +form.was-validated select:invalid + .select2-container--bootstrap-5.select2-container--focus .select2-selection, +form.was-validated select:invalid + .select2-container--bootstrap-5.select2-container--open .select2-selection { + border-color: rgb(148, 26, 37); + box-shadow: rgba(165, 29, 42, 0.25) 0px 0px 0px 0.25rem; +} +.is-invalid + .select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection, +form.was-validated select:invalid + .select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection { + border-bottom-color: transparent; +} +.is-invalid + .select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection, +form.was-validated select:invalid + .select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection { + border-top-color: transparent; +} +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--single .select2-selection__clear, +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--multiple .select2-selection__clear { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--single .select2-selection__clear:hover, +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--multiple .select2-selection__clear:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--small ~ .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--single .select2-selection__clear, +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--multiple .select2-selection__clear { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--single .select2-selection__clear:hover, +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--multiple .select2-selection__clear:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.select2-container--bootstrap-5 .select2--large ~ .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear, +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover, +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.form-select-sm ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear, +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover, +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; +} +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + background-color: transparent; +} +.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMDExLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxMTEuNDE0IDEuNDE0TDkuNDE0IDhsNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAxMC0xLjQxNHonLyUzZSUzYy9zdmclM2UiIC8+PC9zdmc+"); + background-color: transparent; } .fc-unselectable { -webkit-tap-highlight-color: rgba(232, 230, 227, 0); @@ -2575,7 +3127,7 @@ button.close { } .fc-theme-standard td, .fc-theme-standard th { - border-color: rgb(58, 62, 65); + border: 1px solid var(--darkreader-border--fc-border-color, #d3cfc9); } .fc .fc-button:focus { outline-color: rgb(186, 123, 0); @@ -2592,56 +3144,55 @@ button.close { box-shadow: rgba(35, 50, 64, 0.25) 0px 0px 0px 0.2rem; } .fc .fc-button-primary { - color: rgb(232, 230, 227); - background-color: rgb(35, 50, 64); - border-color: rgb(77, 109, 141); + color: var(--darkreader-text--fc-button-text-color, #e8e6e3); + background-color: var(--darkreader-bg--fc-button-bg-color, #233240); + border-color: var(--darkreader-border--fc-button-border-color, #aec2d3); } .fc .fc-button-primary:hover { - color: rgb(232, 230, 227); - background-color: rgb(24, 34, 44); - border-color: rgb(128, 119, 105); + color: var(--darkreader-text--fc-button-text-color, #e8e6e3); + background-color: var(--darkreader-bg--fc-button-hover-bg-color, #18222c); + border-color: var(--darkreader-border--fc-button-hover-border-color, #d1cdc7); } .fc .fc-button-primary:disabled { - color: rgb(232, 230, 227); - background-color: rgb(35, 50, 64); - border-color: rgb(77, 109, 141); + color: var(--darkreader-text--fc-button-text-color, #e8e6e3); + background-color: var(--darkreader-bg--fc-button-bg-color, #233240); + border-color: var(--darkreader-border--fc-button-border-color, #aec2d3); } .fc .fc-button-primary:focus { box-shadow: rgba(61, 73, 85, 0.5) 0px 0px 0px 0.2rem; } .fc .fc-button-primary:not(:disabled):active, .fc .fc-button-primary:not(:disabled).fc-button-active { - color: rgb(232, 230, 227); - background-color: rgb(21, 30, 38); - border-color: rgb(130, 121, 107); + color: var(--darkreader-text--fc-button-text-color, #e8e6e3); + background-color: var(--darkreader-bg--fc-button-active-bg-color, #151e26); + border-color: var(--darkreader-border--fc-button-active-border-color, #d5d1cc); } .fc .fc-button-primary:not(:disabled):active:focus, .fc .fc-button-primary:not(:disabled).fc-button-active:focus { box-shadow: rgba(61, 73, 85, 0.5) 0px 0px 0px 0.2rem; } .fc-theme-standard .fc-scrollgrid { - border-color: rgb(58, 62, 65); + border: 1px solid var(--darkreader-border--fc-border-color, #d3cfc9); } .fc .fc-scrollgrid-section-sticky > * { - background-image: initial; - background-color: rgb(24, 26, 27); + background: var(--darkreader-bg--fc-page-bg-color, #181a1b); } .fc .fc-non-business { - background-image: initial; - background-color: rgba(47, 50, 52, 0.3); + background: var(--fc-non-business-color, + rgba(215, 215, 215, 0.3)); } .fc .fc-bg-event { - background-image: initial; - background-color: rgb(60, 116, 30); + background: var(--fc-bg-event-color, + rgb(143, 223, 130)); } .fc .fc-highlight { - background-image: initial; - background-color: rgba(17, 71, 82, 0.3); + background: var(--fc-highlight-color, + rgba(188, 232, 241, 0.3)); } .fc .fc-cell-shaded, .fc .fc-day-disabled { - background-image: initial; - background-color: rgba(51, 55, 57, 0.3); + background: var(--darkreader-bg--fc-neutral-bg-color, + rgba(51, 55, 57, 0.3)); } a.fc-event, a.fc-event:hover { @@ -2652,41 +3203,44 @@ a.fc-event:hover { } .fc-event-selected .fc-event-resizer { border-color: inherit; - background-image: initial; - background-color: rgb(24, 26, 27); + background: var(--darkreader-bg--fc-page-bg-color, #181a1b) ; } .fc-event-selected { box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 5px; } .fc-event-selected::after { - background-image: initial; - background-color: rgba(0, 0, 0, 0.25); + background: var(--fc-event-selected-overlay-color, + rgba(0, 0, 0, 0.25)); } .fc-h-event { - border-color: rgb(28, 87, 145); - background-color: rgb(32, 98, 163); + background-color: var(--darkreader-bg--fc-event-bg-color, #2062a3); + border: 1px solid var(--darkreader-border--fc-event-border-color, #489adb); } .fc-h-event .fc-event-main { - color: rgb(232, 230, 227); + color: var(--darkreader-text--fc-event-text-color, #e8e6e3); +} +:root { + --darkreader-border--fc-daygrid-event-dot-width: 8px; } .fc .fc-popover { box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 6px; } .fc-theme-standard .fc-popover { - border-color: rgb(58, 62, 65); - background-image: initial; - background-color: rgb(24, 26, 27); + background: var(--darkreader-bg--fc-page-bg-color, #181a1b); + border: 1px solid var(--darkreader-border--fc-border-color, #d3cfc9); } .fc-theme-standard .fc-popover-header { - background-image: initial; - background-color: rgba(51, 55, 57, 0.3); + background: var(--darkreader-bg--fc-neutral-bg-color, + rgba(51, 55, 57, 0.3)); } .fc .fc-daygrid-day.fc-day-today { - background-color: rgba(180, 151, 0, 0.15); + background-color: var(--darkreader-bg--fc-today-bg-color, + rgba(180, 151, 0, 0.15)); } .fc .fc-daygrid-week-number { - background-color: rgba(51, 55, 57, 0.3); - color: rgb(152, 143, 129); + background-color: var(--darkreader-bg--fc-neutral-bg-color, + rgba(51, 55, 57, 0.3)); + color: var(--darkreader-text--fc-neutral-text-color, #988f81); } .fc-daygrid-dot-event:hover, .fc-daygrid-dot-event.fc-event-mirror { @@ -2694,30 +3248,31 @@ a.fc-event:hover { background-color: rgba(0, 0, 0, 0.1); } .fc-daygrid-event-dot { - border-color: rgb(28, 87, 145); + border: calc(var(--darkreader-border--fc-daygrid-event-dot-width, 8px) / 2) solid var(--darkreader-border--fc-event-border-color, #489adb); } .fc-v-event { - border-color: rgb(28, 87, 145); - background-color: rgb(32, 98, 163); + background-color: var(--darkreader-bg--fc-event-bg-color, #2062a3); + border: 1px solid var(--darkreader-border--fc-event-border-color, #489adb); } .fc-v-event .fc-event-main { - color: rgb(232, 230, 227); + color: var(--darkreader-text--fc-event-text-color, #e8e6e3); } .fc .fc-timegrid-slot { border-bottom-color: initial; } .fc .fc-timegrid-col.fc-day-today { - background-color: rgba(180, 151, 0, 0.15); + background-color: var(--darkreader-bg--fc-today-bg-color, + rgba(180, 151, 0, 0.15)); } .fc-timegrid-event-harness-inset .fc-timegrid-event, .fc-timegrid-event.fc-event-mirror { - box-shadow: rgb(24, 26, 27) 0px 0px 0px 1px; + box-shadow: 0px 0px 0px 1px var(--darkreader-bg--fc-page-bg-color, #181a1b); } .fc .fc-timegrid-now-indicator-line { - border-color: rgb(179, 0, 0); + border-color: var(--darkreader-border--fc-now-indicator-color, #ff1a1a); } .fc .fc-timegrid-now-indicator-arrow { - border-color: rgb(179, 0, 0); + border-color: var(--darkreader-border--fc-now-indicator-color, #ff1a1a); } .fc-direction-ltr .fc-timegrid-now-indicator-arrow { border-top-color: transparent; @@ -2727,28 +3282,33 @@ a.fc-event:hover { border-top-color: transparent; border-bottom-color: transparent; } +:root { + --darkreader-border--fc-list-event-dot-width: 10px; + --darkreader-bg--fc-list-event-hover-bg-color: #1e2021; +} .fc-theme-standard .fc-list { - border-color: rgb(58, 62, 65); + border: 1px solid var(--darkreader-border--fc-border-color, #d3cfc9); } .fc .fc-list-empty { - background-color: rgba(51, 55, 57, 0.3); + background-color: var(--darkreader-bg--fc-neutral-bg-color, + rgba(51, 55, 57, 0.3)); } .fc .fc-list-table tr > * { border-left-color: initial; border-right-color: initial; } .fc .fc-list-sticky .fc-list-day > * { - background-image: initial; - background-color: rgb(24, 26, 27); + background: var(--darkreader-bg--fc-page-bg-color, #181a1b); } .fc-theme-standard .fc-list-day-cushion { - background-color: rgba(51, 55, 57, 0.3); + background-color: var(--darkreader-bg--fc-neutral-bg-color, + rgba(51, 55, 57, 0.3)); } .fc .fc-list-event:hover td { - background-color: rgb(30, 32, 33); + background-color: var(--darkreader-bg--fc-list-event-hover-bg-color, #1e2021); } .fc .fc-list-event-dot { - border-color: rgb(28, 87, 145); + border: calc(var(--darkreader-border--fc-list-event-dot-width, 10px) / 2) solid var(--darkreader-border--fc-event-border-color, #489adb); } .fc .fc-list-event-title a { color: inherit; @@ -2769,6 +3329,13 @@ a.fc-event:hover { text-decoration-color: initial; list-style-image: initial; } +.ui-menu { + list-style-image: initial; + outline-color: initial; +} +.ui-menu .ui-menu-item { + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} .ui-widget.ui-widget-content { border-color: rgb(64, 70, 72); } @@ -2903,6 +3470,34 @@ a.ui-button:active, .ui-widget-header .ui-state-disabled { background-image: none; } +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI0MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIyNTYiIGhlaWdodD0iMjQwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRHdDQVFBQUFCRm5uSkFBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFBbUpMUjBRQVJOczhwcnNBQUFBSGRFbE5SUWZsQnhJU05UVXBUUkllQUFBYWxVbEVRVlI0MnUyZGE0d2xSM1hIZjIwN3NRangyaUhFWHV6MXJyQVNiQkl3MlJsYkVZOUlXTVM1azBpYkFQSTZkd2NGQ0RnN0RvU255TTdnelBpRFp6RnpoOFQ0Z2FOZHl5Ykkwanl5NndDeHBmZ094aGlac0FMTTdQS01ReEpzWm5IWWhROGhMQjhpQitIT2grcFhkZGVydSsrZGUrZDIvVWQzYnQ4K1ZkVlZkVTQ5dXM2cFU4SHY0ZEZrbkRYb0RIZ01GbDRBR2c0dkFETGFoTFFIblluTmhCZUFMTnFzQUN0TkVvRmVDOERnMjArYnNITE1GV0FmT2hHSVV4NThHWHNJV1FETUhXQ1kvSmxnYXovNitHSDA5TFkyak8zWk1ST3JsVUN3ZnpVU0FWUEtJOVJIWkFXZ0Z4M2d2aG9weEhIamRsZ2VkZUpDUU1BcXNFcEFZRWk1VGhtSERrR3lEaEFYTVc0SE9vUlFxSjRzUkRwQnBmaHhLOU05My9ic3NHYmVYVk8ybFhFTEllMEJ6QjJnSzB4dDBENThpS2ViV0doT3BWN2JOQTFCMlpUcjlUTkRocUQwU3FDNUZabmFZRnFwVmR1T1BRVnoyelRuM2R3SHBpbmIrcGt0aGZJQ1lFWTQ4S3BwczFKWndNeERVSnp5NE12WVEvUmFBTFk2MnF5TUVudnQ4QUxRY1BpVndJYkRDMERENFFXZzRmQUMwSEI0QVdnNHZBQTBIRjRBR2c1dkQ1Q1BPK2o4YnpMSzJBTzRXUVRZbERGdG96MkErUWwyOXRTeEI3Q3J3MFhlUjBwSXl0a0R1R25BekZXb1o5QSt6YlZyMmpiMjIxSmZ5WDNyVXg4WmE0Q2lQWUNBZmpVOERtWFN0K25wdHRndTlnQ20zSm1mYm85dlJoaWxIWCtQQkdSN0FOVzFqRlduWGtBZHh0NCtYZXdCVE8zUExXOTY4UW10MWdabG5yUWxVRVVaWkZLNERyczlnRW00YlAxUFhIS3ZEalpnOEpWVDF4NWcwUG5mWkhoMWNNUGhGNElhRGk4QURZY1hnSWJEQzBERDRRV2c0ZkFDMEhCNEFXZzR6aGwwQm9ZTzRRQlgrZXV2bFpiTy96bjFvdmVsRWdhWmc5Q2FnK3FxSUh2TUFaUmNIZ0pDTU9yNlhmd0RoQlVvWlZIMUdiYjhDOVlIeGxUc3dsRTF0bHNKWEVLVmlIdVdGTUJXL01DaEFQcjRnVU1GdVJRaE5DaDdYUElYR0dqeWQ3bG54QlI3RFpoTGFCYWcwQkliYkkxWXluOTJDSEF0dnM1YXgxNUpRUTg2K05Db2liU05vblZ5RUNheEF5VTErM1RWVStMbXBjOURhS0NiMDA1TFoyNEcyVndHVUhZU0dEcTBIbHNvRittczFzYmRtQnM0cEc1aWtFdTZWV3ZBMUFSZDByYlhRWUZlNWpVdzdlSmNRcWxwNWk3UUxzSG1OR3hkckZzWGJXdEJ0cWU3VENLcndpN2lkcnFVZ3pJOWdGdlhXVytXR3pqMk12M0tZMkRzWU4zU0RSekNWSVY1bURZUGdNcTQ1MmdDRFE2RHpzRldmbjZGdUg0bHNPSHdBdEJ3ZUFGb09Md0FOQnhlQUJvT0x3QU5oeGVBaGtQZUhCbzdTeDBjN1A3QSt3bVhHbkRSaUZhTFo5c2I3ZnFVVWtnRklONFk1ZUx1dlZvRjlBN1YwckxsM0swR1RLNW1VMjFjdTNSc29hZU0vL1JsYUZldWdUQ1hTMEM5T2RTOGhkTkZvOTFXM091ZENPalNjbk1Ob2MrL1d3M29udEhPYmE5dGw0cWRsc0RXQTlYYm1sN1lvQ3R2RFhOeHAyN2JncTNiSU9wbVNXUFBnUzRkdXd0M2U4N2RITktyTlFaRjFnWTV1bTFqZWNvYzFmN0VVRXJackREV0theURZcGl5QXVCZUFVR0p1RzQ1TUZlaHkvUHRlL3YxejdmRnRnbUF2UTdNRExRTGdGbUFOQUpRN2kwZ3JZQXFLb3NnazRZNjlWRDZOajIvQ3RKOFY1MURtSjYrTDZMR0k3amFnNERwK1hGTTlSekFsbkxxdThHMHZ6bWZ5NUwyQUtZS2tDY3dwdUtiTTJjcW9pbU5iTkhzWmw4cUZ0Z0YwRlNDMVp3RGlkWFNLYmpCeE43VjVOZ2J0MXhTZGdod002Y0tyUzRpektOZ25kaHUxYXN1aDlzWVhOK2t6WlJPOVVOdDdITUFKYngvZ0N6YTFoT1RSZzVlQUJvT3Z4VGNjSGdCYURpOEFEUWNYZ0FhRGk4QURZY1hnRjVqa09yc0NzamJBOWhnMGxlNUZMMWRVOS9kYjlUUFhXQlo3QjZ5c2hmdEFVd3dhY3hkVmdsampkMCtodzJtZXRUZFhHWGVIaDVZdDcvYUdheUxiMHA5UUVnWGdyTFpzbnY3TFM0MlpyZEdWanY5MjNXaEdVd2FPMXZzUUJzdWUxZW43VFJ0SGcyZHFPNGwzUlNvNXdBNm93T3p2aW9kR3FvWUxZaVdZemViMHZzd0NISFY5UVVsN3FxZXEzcStmV2Z6VUNKL1hrQmFoV1ZQNE00UElVR0p1REhWYlF1MGZmTjJkUmNTSmpiYWVnajNsRTArQWpZWmFRK1FWUlJXeVpydEpBRzdzclh1NkJoa2VoQjFEeUYvcTBMMHBoV3JuaUQzSGtQQ2Zua0lXRTB5cGVyQVJRY3Z6TDNVV0RYYUE3aG8rKzN1SWN4SWJRSFVKaFhtcWs4SEliMTNrVGhrVUpLYURWSFZvS1l2VUdzRFEyMEg3cUlzMVUwQ2U2RnNkYk5hckRyUmRKbEVBaFlCSFJybXVzQ3JnMlVNVGRlOFdmQXJnVElheG40dkFJMkhGNENHd3d0QXcrRUZvT0h3QXRCd0RKOEF0SVpMV3picXlBdUFteTdicExJSm5haTZFQzI2bS9JcU5tZy9DRU9EY3U3aVhkeEpCMHpVeUUrWFdFaGF4bkJWWGRhbkdLRVR3T3RBRmdEektyVjV0VHR1MVMyNlNoRUlrNFZTOWQ0OTBmVlBKQ0c2bXZqeFZUV242dG5leCsybytSRkhLZ0N5dS9jaVVuMjR6bVY2UUJDeGYwMzVMSFBYTHJyK05TWU1lMmZqcDZ1Zkwxc1U1Rk54Y3gvUk9NUytndE1xTTN1OHRtbXlZdlpYSDhmWG5GdzU2N1QxT291QTJGb2hwWS9RRWZCMWtEVUpDM0wvVmRDYk1yZ1pST2lOeW1KNjNIL29URExVT2JTNVQ1QmIvNGdkQVY4SHFiZndiSlhwSFl6WVQ3MXdQVlpDUnhjaUVCYm1FYkVpV08yVlg4NVByOXpLTndCbDNnTFNLdGJaNU5tT1pETFJKeEpxRndnSzg0Z2c4M1RWUUdTMko1TGRSM2dra004THNGbXFtY3d1NjU1a3NaYWs3ZklhR1RqZWk3R0tuL1VyTVd3R0lhSDJIY0tqTHhpMmswTjk5N3pKR0Q1ZGdNZW13Z3RBdytFRm9PSHdBdEJ3akpJQXpDWXJEYk45U2Y4eXhxSy95d1pkMU41QkNNQ2hxT0kyT0ZRNXBVY3RtbjRiUXA2UXJBWEtNbkdXK2VSNlhobDd0cFo0WE1aVFhNczY2MXpMVTBvUm1MWG1mbjlFM2E5NWhwNXVpd24zNXY3TVQwaTRKTllCUWg3aVNlQjhwaktCMDFleVE4bjl3OXlvU1RwZEpEcktYc1BPb21McUFrczhtV0VoTFBNbXFYTG5jK0huT0ZpQ0x1ZFFsYnY5SEpaK1QzR1A5SHVNYTFsZ0hGaG5oa2M0cnEwQjlUTmNuRW5yVC82MEhZb3RRcVExYnl0anN1UVhDOEFpQUorVGdxOWxFaThLeUVsMmFhcjNLQ2hGSUdROHVWNVhGUEdyWEpYNUxRdUEwQVJNSnJUOEZyR1FPVWtFNXBqWDd0L1ZLYlBHcGQvNUhJNnh6amc3Z0pmeEljWTFBbkFLZ0JkVjNHRVVFaTlwQjg2VWJBaXpBT1JGUElCMElTaG1mVGNmSU1LVHdBbCt6S2NNMlIrTHZ2ZHFRMnd6eEY3bVNVa0E4amdzYmY4K0xQVlZBQWNoRVlFNUR1WjZoTFFDOVJXNWpjZVM2MnVVZWRqQlJRUTgzNURMdnpUUXpEMmdXUjBmS0ZJcEoySXgrLytHRDJSdnB5dUJYVXNDSi9oeElZeWNoUmRHdXJ4UVljOGo4S3VHOUNmNXF2SDVqNU9xakEvemVFRUFVaEVvZHY0Q3JkeDNNWGZYR1hNNnd6OXhKL0J1WnBUeFR3TlBaNjZMbUdNKytXd3VZdmJmeC9Oa0VYQmRDbGF4UDQ4WEFIQVd6MmxEWEFDZ21hRFllb0JZQk9Bd2oydkRCS0NkNUYyZCs4NWpHeCtQcnQ2bW9GNUNCMWdBWnVpd3B6QUU1RFdwVmJlWjJyMGsyRUo4Z3JjVzdnbjJIK1Y1d0RzQm9rRy9oQzZneVA1OEFTK3dwdkZMeWRWNGdXYnJBZUN5aVBHUGN4bFBLZWl6UE1VaDRIRm1OWDJBR2IvTXU1T3JQTnJzNGtIMk13T2NUY2dNenpjWWxNeHhVTW1rWFptUERtUFlZQXZ4Rm9VQVRIRVkyTXZSYUI2MXlMUWdWRmNHRmVYNytkWTRkMGJmNHdxYXJRY1FUQmNpb0hvTm01WG9xbDVnUis1YlZVVXdnMmpuOGhDeml3WEl2QmNzYUlZQmdma2FYZng2elJCcW00NTdJQklCeUxEZkpBQnptZXRpcDFOay8rZjRHK2xYRWVZdTBkd0R6Q2xlODhyUUlSNmkwdTk4RmQwRGhQd0M4NFZYUUNFUytUdWRYT2xza3p5NElmTXBZamw1eTRIbGlpSDBpRVZBWXY4dzJRUE1BaS9OL0g2eVVqZGVGeUVvMk4vTDFBVUdvL2JlejJHWi9jTWtBQjREd1NqcEFqd3F3QXRBdytFRm9PSHdBdEJ3ZUFFWUxUeVcwV2M0UVJhQWxzUEdiRDFjVHQ1MHc2eFNvejZYMFdVWDMvSVBFVXAvZWN1R0l6bjZFY1Z6czlyeS9YMmdBM3plVWorZDNQcENHYncyK2pOamlTV1c0aC9aMThBV1hlYUFlWVZ0L2dadmlGYWdIdVVSWHN5VVVwMzdOSHVCbzd5WXEzTEtXbkIvOTQxMSszTDRPVzZKN29yVWJsYm8rNDRtdi9ZVzRydnE0OFVLMzBKZjZIR1lBRmlTMU4wQUhRNHdRUmVZb0p0L1g2ZEZGempLOVJ4aEx5ajNUM3lmSGNBelhHcW8zYVZvTVdtWnozRmZWZ0FFKzRVMnJTZ0NJZnNzM3NCdGE0VmlQK0VuZVNPZjVJMDh4QjVOQmMxeWtFTk1GWFI2NlpHcjZzTlhYWTV2L3k4dTRZZGN4RFBzMEd3K25hRkRTTUEwQzFvNllLQi9tVE5zNDNlVTlMajZsNEhKa2pVWVU0OG02dllzL1VoQkNYK1U2eFhQUDhRVXk5eFBON2EzeUtxRDQrWFVlZVlxT1dySmJ1bFNhdzV2NFh0c2NJSlRyUE1EWlloWjV0bkJqVHpUaDNYQXA3bVk3M0loMytVU3ZxY05KZGJTWjR4MFpKMjZoRE1jMTZwcjR0WTNxYVJPU0xXbTJ5Q250cmI0TlljN0FIOEFuTWViQVdpeGxnckFFOUpxK2p4elBLRlZtK3F3aHMyWjg4MDh4QjQrdysvemVWNnJNQzZiWlo3RFRQV0YvZkJpL3BYZjVELzREYjdCV3hVcWxYY0JzYkhVdENKK1RBY005RzJNYVF4ZmxpVEc1OWZ5T3h4STBoZGJaQmVWVDFIakd2NkZWMmQrZjFGaDB2SjJZQ2V3aDR5OVZTd0FWeE1iVTRqdmczMWh3UzE4ai8vbVM1emlTMndVcURINzU0elBEZzM2OEluRVBZMnFCL28yTCtWYi9EcmY0cmZTU1ZDQ05uY1M2L3VuRmNxZmxINDJQemZRMHptQWpIVHNGZmhDeWJxYnlKVXAzME84UnFxVjEyaWZuMnVnMlVsZzNIclZObW5qN09kRzNoNlpjeFNsTTVUaUZrZllvdGxtVUtDYjJKOTNBYUVhSTJNQldGUFMzODRIbWVFMjNzK0grVHMrS3RFbkN5SWhxNFRxMGxQMjU2ZCtLVnE1SVdETlFOZFJuMEdvdS9QMEpTYWpzVDlueStrdUFHNWUrbHZFUTBIWk9ZUmdzTDcxeDI4Qk1WUnZBUk9KaXhxMWdNZ292cWQ4Z0w4MTVxNE9QU0Ewc3Q4K2pVNUZRUFVHY0J2djVRR3VCNDV3SGJmemZvbTZ4Q1FQOFZNbTgzSHpUcUxTZC9teU9FcElTSmN1WVdRWnJDK2lMblZUNXovUHpabGZOeGY2a3lsRXg5K055akNsb0p0K3d6NHQrK3JUbDYzc0YwWmFvbU9mSURIWmtyREdCR2cyMFArTWowZnovdXY1T0Q5VGhOakRKTXY1dUs3cTRPa2F5eE1lWmRDQkVwTS9kNGdocWlDQzNoNmc0ZkM2Z0liREMwREQ0UVdnNGZBQzBIQTBUd0NFMmxqMVR0TkpWTG52Y2tqblBPWGRvVHNlM29hc0FFd25GVkQ5TmFTNmY0QzZhQkVtMjdXT2E2MGFQaHU5L3g4b2lNQkhPTUE5M01NN2VBZDM4dDVDVEZFN0QwYS96Z1BPaS80RWJ1SmpoTnpDTFlSOGpKc0s4YzN1Sy9MV0RIbDdoaUxkRnFMbzZVR21SMGhmQTZkWjRDUVBBMi9sM0VUdFdVekVkc28yOU12cWZZbEpadWd3ellKaVVVVTgrUVJqSEdlM0poZnhndXdOM0V0eHBmQ1Z5ZlVadnExWUN6M0JWNWhpaGs2VWpyd2NibGVIeDZ2M1hhVWkyYnoycW5LZjJjMkZDQkpEbVhtRnk4K1FpVXlNUkoyZHFvTVhvbFhpNDV6THM0VjlMOE9BU1dDQks1a0VKZ3NDY0lMZHdPNkUvU2NVS1Z3VWZhdTNwejdGTC9JVDRIeitUMG4vQ2pjeXhRc1NuWDc1ZnZMcWFQMHlSTFhxT2N0OHNxdFExWVRXZURCalJWSHM0WVFJWHBtNUx1SlArVGtBMzQ5dlpJZUFoNEhqN09ZRW55aGROUGNqWlV5eGxaMVVBcUZubTh4Y1p6RVdzVHhtZjFFbjMrSjF4ano4THo4QjRDZThYa0U5eGhRaDBJN1lYMXpXSGMvOHFUR3Z1UmI1bndmbUdXT2NjYVZGUVlzOXdDR0VZcmNJczd2dmdDNHo3R0FYbDNKcGFqTWs3dzBVN0I5VGVnb0tjMWZWbEQybUxOclFpVm8vTEN2N3A3Rk02MWV4dnl2WlBPVFgyci9ObVl3am5HT0YrSyttQXh4Z0p6cWQzamJPbEM1VGlrdVM3d2VCUDFLRStDdEE2RENtRUhvL0dTR3BXQldienl6d0ErRG5uTTBPYnVWUmNUdDdYc0N6bkJ0VjNRWTdLNWg4WVF6aFp2Qmtla0pXUzYrYW8zdzk2djZnYUJjbnMxL0Z3R24rSlBQcmJ1NHpQRjBsWU1JMWhoZzh6aWhkNEV4SW8zWitqTDlCdWg5eVgyRU9rRlVXbitDRHBlY0FOMEZraGJHVTFtNDZCTXh3THMveUZRNnh3VTVGRjVzNldsZTdYTS9lVllVSWNuOW1xdW9KQ3hIejB1c3NZdmFMZ1dCSE9zb0JxY0hiSWhNRXl2YmI0UUYyUjM5RjlzTUNKM2dJZUJReDB5aGlqYy93ZWM3alhLVTUxcHpGd2NZRlhNQzlYTUN2UlAvTjJLMjRGODhCcmtUZG9IWnhOcnZZeFM3Z3BqaEVPZ1FJL3hlaUU1d1p3aW1nMkJ3OVE0ZHZzS0RZSEMzWS93eGprVzFzM2d1QVlMOXA0bllyMS9HZndNVUs5Z004d2pRaDYzeUVMcnUxbG44UGFWSS9tSEVhc2Irdy8vaHd0TGsrL1g4NEYySkhibE41MGN0QjFsSktiVFdsOEl4UVZoczR5TmRBTTFwMGs0Ny8rK3pJYWMzVjgyNTE3dFg1Ri9PTFovbGoxaUxEakczOE5CZDNsWC9uU1ZhMXRSUVNKUHNGRGhlOGtQMGg4NUZKM2h6L25PdGpEaW5zRjJTWGZma1FSWWQrU3Y4RlhoMmN4UjcrR3ZpUXBoVXZjUjUzUjJMVjRoaXZLb2hZRmlvQnlKckYyY1Z4VStBRm9PRm9uaTdBUTRJWGdJYkRDMEREa1JlQVExcC80WGZ4dFdTUjltdmNOZWlNZS9RRzhsTHd2M0U1OEZxdUtJVDdsTFErL2dwZXdRN2VNT2pNZTlSSHRnZTRnOHNCdUp3N2NxSHVTdGlmcnRDOVh0a0xuQ0tNUEdhcjhEOVJEMkpmWmhyR2hhaFRHVVhWcWZySkRRZXlBdEFDSnBpZ3FHcDhsVEt1NnU3MjZLUEcrZEgzQVV1dU9ncUREVmlLS245Skc4OFd3a1lQT1pXWWF4UlovQ0xOOVpaR0tnQ2kvYSt4UnJFUFNCYzlzMnBhdTFmYlBBSUNoM05CeFQ3WnZBaWtteHNuTlF5MGhWaGlranNZNXc1dENyQ2QrVWhJOUdJOFVrZ1hnc1Q0UDRIWVlQVWRhUjRnZTdnMCticzh3bDZOYXdJQnNZaDZVdUV1dVJPdDA4ZmJwUFByOW5aSHJDR3d6UDI4bVVsbGlKQTdJbE92MjNtUE5vWFRDZXZMbk9peFpSSDNBSjFvL085R09xdkxLNDdDVDVQNnpGZWhDL3hJNFQ4bjd2UjE3SGZGL2F4eHY0RXFmNmR3TVdHWkJVNXptdFBRcDJPcEJvQzRCOGlxUVlvcUVmY2V3QWF4aHplL3VURmx1NTc5Zys4QlRtV0doZE9qTWdzUVBVRGEybHVaQ1dCNjk4dkt1S3E3SGNzY1AxQWNEQS9Ua1gyT3FmVXZhNjdsdTVOMEV5ODhSZnA3dUoweGJ1YzlCbC9iMjUwb0l6TkRpQStOMGxDajc5dDRuNEw2MGR3ZTlEUWxmYytnVnlmYk8zKzdrd1ZiQ0JzOTVEUjNSMXE2VTVvMlh2VWtrQ0dGRUlCVFNvbk9kbk1ydEhQVVZmWXA0blE0WUJ5L1RmWUV0cmpEZ1pFVUFCY3M4THZKbS84eHZtQThNV09VMFZnQjhCaEplRzFndytFRm9PSHdBdEJ3ZUFGb09Md0FOQnhlQVBMb0dIVUNIYXZHWUlzaEt3QWhHeFlWVU8rT2hCZ1VudUFKSTcxanRGWG9XQzBadGh6a0htQW5CNnhDb0VZcVBDMXRDaDAySWsxRGg0MkNDTW5pZDBSQlB5S2xwQkpCL2RieU9ONVZYR1Vvbnp2N1hheWF0Z1R5dm9JRlRyS3FYSkxWZXhNT3BYZ2grVFY5VVhrQjBLSE5UdkZzUXdwSDJGdWdDenNEWFh5NUJQclRPblJVMlJtMW5Ub2lLNEpxQVFEMWlSTTJBWURZMkVOV0NxVy9OaUxtWVVsQkp3RDYrSElhdldDeG5ob3F0bDl2VWFnbmdTZFpORmoxNkhHU3hZVDlpNWtLQ2xpTTd1NWlrWk1PS2VoZ2k3ODVHQW5XQ3hRRlFMQ2d2RTR1anRkaWc4WENtUnZUQkN5eVFZdHBMUlBkbmp4ZFdRaE12Z2NFZGRFWU4wc05EV0czRk9RaFFEZjJweUgwSndvTVA4eWR2RUE2VnlsUDNaTEliZ3l4Rnl4d0RqbU1jTW4xTkNhamRUTjFTOEtyZ3hzT3Z4TFljSGdCYURpOEFEUWNYZ0FhRGk4QURVZGVBRXg3YnoxR0VLa0F0UGcwQUJmeU5vMnZmYUZuKzZ5RzZyRWxFUXRBaTI3aWZ2Unl1a29tejdESU1WNUgxMkdoT0srUVBaTHpCSDVraytrZUdzUUxRY2ZaelpkNEpTR2Y1VnBDcFR0a2dSYjNzTlBxVExib3Fqai9XM2FVMkcrNmh3WkNBRnAwK1JFWEFZOXduR2wreUlXS1Bid2hjSUs3dVk4TmRtb09NQlhoVkw2cXh5TjM2dHM0dzdhQ1ArMlFhM2lNYXpJTzE5WDB4eEpmL0NyNk9PdlJCNFcvYmc4RmhDN2dhdUNiQUZ3THdEZDVIVmNYR0R6RGxVeHlMN0NmTHUvVUNvQWFWd0FYQTdDZHN4UjdFWVZ6bWUyY0JUeW5lRHU1T1BwY0FUeW5TSDg3OEpLSS9oTC9kdU1LSVFCUEFDL1AzSDE1ZEU5R0I3aWZMamV6aXhQc1VhYW5ONU80VVByMTBjaXpmWXJ0dkM4akZrWDZoYnd2K3BqaWl6RGJGWFFQSmVJNXdBWTdrMDNUUzB3cW5iZ0lKZkFocHJpQnE1blMrc05XRFFGSDJDdjl6dHNiOVp2dW9VRXNBT0k4akIveFRWN09oYWhQREVpdEFSYUJBOHB6cnNMUk1wZ2FmV1NQamZ1enlFL1FkL2o3VWJGNTliREIyd00wSEg2MjNIQjRBV2c0dkFBMEhGNEFHbzVVQUd6bkFkU2xML0RGaFA1RnhibC8vYWIzdTN5RHBsZEUvQmJ3cWNKNXVaK1d6Z09vUzdlNW1lczN2ZC9sR3pTOU1zNitET0F1M2x5Z1hNRUxlVGk2cmt1L2pUOHYwRi9HK1lrMm9kLzBmcGR2MFBRYUVFTkE2dmsvdTIzcVZZcXJMUEwwMWVSbzJWVnQvTUFRMzVaK1BvVit4TGVWMzVaL2MvelQwc1kwWFh3VFBac0xkYWxMSXU4cVZ1ME0ydVpLTnQzOXV3THNRNzA3dUc3Nkx2SHQ2YXZjWWJ2R0QxQnZNQXRML0E0enFSVHBSd0hZcTYyLytPNEh1WldlN05CU2JRM0xGek5QUjBNUG8zRzNPQjduMHdrMTk4M3Ayd3NjOTBDMjJJRlc1RnhTMStYUEpmMFFzMmVCNjR3NXVJbGJNK3p2Q2M2cG4wUUd6MlgrbDBkbzdSSE02QTJEOVEzQW5uOTdYSnVhN0FFRDdTWSt6SWZwS2Z0N1B3UXNBVytpK2hCUXY0dlg1NitZUXJVdTNKUytLWC9GOHhmSzBZVUlaTm5mZ3lGQVRBSnQ1d0c0MFZlQVNTYWpxeXc5ZXhKMnFMaDdQRU8xMFRIU1VkTGwvSWVGdTErV0tEWjYxZnFKeXhkV3B0OHFzVi85MUpJUUFuQk15a0NNWTRxckxQTDBkbEtCYlczODBCRGZsbjQraFg3RXQ1WGZsbjlUL0x6enFySjBRT3I4MWFVdUNiRU9zTVlWdkN4SFdjMmM3Rk9YL2pDL1hUaU04dE84WmRQby9TN2ZvT2sxSUFRQS9wSG5jUmFYUm5lUHNjeGZTT0hxMHYrQkYzSnVZdlAzZFI3SXNHY3o2UDB1MzZEcGxlRU5RaG9Pcncxc09Md0FOQnhlQUJvT0x3QU5oeGVBaHNNTFFNT1JWUWJaVHVjZGRycEhCY2phd1BIa2FsMFp1aTdkWStoUUhBTHFzVzdkbWtLOWxodlVUc0ZEUWw0QWJBeGNaOTFJajkwejZHQmpvTTZYZDR5d29xN2ZRNE84QUl5RGtZSGpqQnZwd2tPSEhpRm1nd25UZ1M5Z042andLSW5pRURCZUlSVTV0am1GZXUzWEprQWVKYUUvTW1iNFp2bitMYUFQS0hOZXdMRFRQU3JBTHdRMUhGNEFHZzR2QUEySEY0Q0d3d3RBdytFRm9PSFl1Z0xROWd0Q3ZZQXNBUFhYMlVKbUNabnRlNzdickVnT0lEd3FRaGFBZmRGbjBMQzFic0grMVVGbmN4UWdDOEFLOGI2K1FjTFd1ajM3ZXdqWEhpQ2tYZmlVUTFqNFUwT3dWeStHTWZ2OUhLQW5rQzJDVmxobFJkbTJBbUExOXlrSE4vZnRNZnYzR2VtcmZnN1FLOGdDWU9vQjlpV3NpVC9saEdDK2NLZDRwRXM3azc0cWRabjlmaERvQWVTOWdmVWR2WWZNTWE4OHI2ZjRacEFQazJXL0tnK2UvWDJBYXc5UUgvWWpuTXF4djYwSjUxRUt3L1FXRUxBYWZZcFFzZC9QQVhvQWVRaG9zMHA3S0R2WE1PcjA4OThlTmVIOUF6UWNXMWNYNE5FVC9EOXJ3YWNaNVlJcXlRQUFBQ1YwUlZoMFpHRjBaVHBqY21WaGRHVUFNakF5TVMwd05pMHhNbFF5TVRveU5UbzFOeXN3TURvd01JbVV1RVlBQUFBbGRFVllkR1JoZEdVNmJXOWthV1o1QURFNU9EVXRNVEF0TWpaVU1EZzZNVFU2TURBck1EQTZNREFpekZNSEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBQUJKUlU1RXJrSmdnZz09IiAvPjwvc3ZnPg=="); +} +.ui-widget-header .ui-icon { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI0MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIyNTYiIGhlaWdodD0iMjQwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRHdDQVFBQUFCRm5uSkFBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFBbUpMUjBRQVJOczhwcnNBQUFBSGRFbE5SUWZsQnhJU05UVXBUUkllQUFBYWxVbEVRVlI0MnUyZGE0d2xSM1hIZjIwN3NRangyaUhFWHV6MXJyQVNiQkl3MlJsYkVZOUlXTVM1azBpYkFQSTZkd2NGQ0RnN0RvU255TTdnelBpRFp6RnpoOFQ0Z2FOZHl5Ykkwanl5NndDeHBmZ094aGlac0FMTTdQS01ReEpzWm5IWWhROGhMQjhpQitIT2grcFhkZGVydSsrZGUrZDIvVWQzYnQ4K1ZkVlZkVTQ5dXM2cFU4SHY0ZEZrbkRYb0RIZ01GbDRBR2c0dkFETGFoTFFIblluTmhCZUFMTnFzQUN0TkVvRmVDOERnMjArYnNITE1GV0FmT2hHSVV4NThHWHNJV1FETUhXQ1kvSmxnYXovNitHSDA5TFkyak8zWk1ST3JsVUN3ZnpVU0FWUEtJOVJIWkFXZ0Z4M2d2aG9weEhIamRsZ2VkZUpDUU1BcXNFcEFZRWk1VGhtSERrR3lEaEFYTVc0SE9vUlFxSjRzUkRwQnBmaHhLOU05My9ic3NHYmVYVk8ybFhFTEllMEJ6QjJnSzB4dDBENThpS2ViV0doT3BWN2JOQTFCMlpUcjlUTkRocUQwU3FDNUZabmFZRnFwVmR1T1BRVnoyelRuM2R3SHBpbmIrcGt0aGZJQ1lFWTQ4S3BwczFKWndNeERVSnp5NE12WVEvUmFBTFk2MnF5TUVudnQ4QUxRY1BpVndJYkRDMERENFFXZzRmQUMwSEI0QVdnNHZBQTBIRjRBR2c1dkQ1Q1BPK2o4YnpMSzJBTzRXUVRZbERGdG96MkErUWwyOXRTeEI3Q3J3MFhlUjBwSXl0a0R1R25BekZXb1o5QSt6YlZyMmpiMjIxSmZ5WDNyVXg4WmE0Q2lQWUNBZmpVOERtWFN0K25wdHRndTlnQ20zSm1mYm85dlJoaWxIWCtQQkdSN0FOVzFqRlduWGtBZHh0NCtYZXdCVE8zUExXOTY4UW10MWdabG5yUWxVRVVaWkZLNERyczlnRW00YlAxUFhIS3ZEalpnOEpWVDF4NWcwUG5mWkhoMWNNUGhGNElhRGk4QURZY1hnSWJEQzBERDRRV2c0ZkFDMEhCNEFXZzR6aGwwQm9ZTzRRQlgrZXV2bFpiTy96bjFvdmVsRWdhWmc5Q2FnK3FxSUh2TUFaUmNIZ0pDTU9yNlhmd0RoQlVvWlZIMUdiYjhDOVlIeGxUc3dsRTF0bHNKWEVLVmlIdVdGTUJXL01DaEFQcjRnVU1GdVJRaE5DaDdYUElYR0dqeWQ3bG54QlI3RFpoTGFCYWcwQkliYkkxWXluOTJDSEF0dnM1YXgxNUpRUTg2K05Db2liU05vblZ5RUNheEF5VTErM1RWVStMbXBjOURhS0NiMDA1TFoyNEcyVndHVUhZU0dEcTBIbHNvRittczFzYmRtQnM0cEc1aWtFdTZWV3ZBMUFSZDByYlhRWUZlNWpVdzdlSmNRcWxwNWk3UUxzSG1OR3hkckZzWGJXdEJ0cWU3VENLcndpN2lkcnFVZ3pJOWdGdlhXVytXR3pqMk12M0tZMkRzWU4zU0RSekNWSVY1bURZUGdNcTQ1MmdDRFE2RHpzRldmbjZGdUg0bHNPSHdBdEJ3ZUFGb09Md0FOQnhlQUJvT0x3QU5oeGVBaGtQZUhCbzdTeDBjN1A3QSt3bVhHbkRSaUZhTFo5c2I3ZnFVVWtnRklONFk1ZUx1dlZvRjlBN1YwckxsM0swR1RLNW1VMjFjdTNSc29hZU0vL1JsYUZldWdUQ1hTMEM5T2RTOGhkTkZvOTFXM091ZENPalNjbk1Ob2MrL1d3M29udEhPYmE5dGw0cWRsc0RXQTlYYm1sN1lvQ3R2RFhOeHAyN2JncTNiSU9wbVNXUFBnUzRkdXd0M2U4N2RITktyTlFaRjFnWTV1bTFqZWNvYzFmN0VVRXJackREV0theURZcGl5QXVCZUFVR0p1RzQ1TUZlaHkvUHRlL3YxejdmRnRnbUF2UTdNRExRTGdGbUFOQUpRN2kwZ3JZQXFLb3NnazRZNjlWRDZOajIvQ3RKOFY1MURtSjYrTDZMR0k3amFnNERwK1hGTTlSekFsbkxxdThHMHZ6bWZ5NUwyQUtZS2tDY3dwdUtiTTJjcW9pbU5iTkhzWmw4cUZ0Z0YwRlNDMVp3RGlkWFNLYmpCeE43VjVOZ2J0MXhTZGdod002Y0tyUzRpektOZ25kaHUxYXN1aDlzWVhOK2t6WlJPOVVOdDdITUFKYngvZ0N6YTFoT1RSZzVlQUJvT3Z4VGNjSGdCYURpOEFEUWNYZ0FhRGk4QURZY1hnRjVqa09yc0NzamJBOWhnMGxlNUZMMWRVOS9kYjlUUFhXQlo3QjZ5c2hmdEFVd3dhY3hkVmdsampkMCtodzJtZXRUZFhHWGVIaDVZdDcvYUdheUxiMHA5UUVnWGdyTFpzbnY3TFM0MlpyZEdWanY5MjNXaEdVd2FPMXZzUUJzdWUxZW43VFJ0SGcyZHFPNGwzUlNvNXdBNm93T3p2aW9kR3FvWUxZaVdZemViMHZzd0NISFY5UVVsN3FxZXEzcStmV2Z6VUNKL1hrQmFoV1ZQNE00UElVR0p1REhWYlF1MGZmTjJkUmNTSmpiYWVnajNsRTArQWpZWmFRK1FWUlJXeVpydEpBRzdzclh1NkJoa2VoQjFEeUYvcTBMMHBoV3JuaUQzSGtQQ2Zua0lXRTB5cGVyQVJRY3Z6TDNVV0RYYUE3aG8rKzN1SWN4SWJRSFVKaFhtcWs4SEliMTNrVGhrVUpLYURWSFZvS1l2VUdzRFEyMEg3cUlzMVUwQ2U2RnNkYk5hckRyUmRKbEVBaFlCSFJybXVzQ3JnMlVNVGRlOFdmQXJnVElheG40dkFJMkhGNENHd3d0QXcrRUZvT0h3QXRCd0RKOEF0SVpMV3picXlBdUFteTdicExJSm5haTZFQzI2bS9JcU5tZy9DRU9EY3U3aVhkeEpCMHpVeUUrWFdFaGF4bkJWWGRhbkdLRVR3T3RBRmdEektyVjV0VHR1MVMyNlNoRUlrNFZTOWQ0OTBmVlBKQ0c2bXZqeFZUV242dG5leCsybytSRkhLZ0N5dS9jaVVuMjR6bVY2UUJDeGYwMzVMSFBYTHJyK05TWU1lMmZqcDZ1Zkwxc1U1Rk54Y3gvUk9NUytndE1xTTN1OHRtbXlZdlpYSDhmWG5GdzU2N1QxT291QTJGb2hwWS9RRWZCMWtEVUpDM0wvVmRDYk1yZ1pST2lOeW1KNjNIL29URExVT2JTNVQ1QmIvNGdkQVY4SHFiZndiSlhwSFl6WVQ3MXdQVlpDUnhjaUVCYm1FYkVpV08yVlg4NVByOXpLTndCbDNnTFNLdGJaNU5tT1pETFJKeEpxRndnSzg0Z2c4M1RWUUdTMko1TGRSM2dra004THNGbXFtY3d1NjU1a3NaYWs3ZklhR1RqZWk3R0tuL1VyTVd3R0lhSDJIY0tqTHhpMmswTjk5N3pKR0Q1ZGdNZW13Z3RBdytFRm9PSHdBdEJ3akpJQXpDWXJEYk45U2Y4eXhxSy95d1pkMU41QkNNQ2hxT0kyT0ZRNXBVY3RtbjRiUXA2UXJBWEtNbkdXK2VSNlhobDd0cFo0WE1aVFhNczY2MXpMVTBvUm1MWG1mbjlFM2E5NWhwNXVpd24zNXY3TVQwaTRKTllCUWg3aVNlQjhwaktCMDFleVE4bjl3OXlvU1RwZEpEcktYc1BPb21McUFrczhtV0VoTFBNbXFYTG5jK0huT0ZpQ0x1ZFFsYnY5SEpaK1QzR1A5SHVNYTFsZ0hGaG5oa2M0cnEwQjlUTmNuRW5yVC82MEhZb3RRcVExYnl0anN1UVhDOEFpQUorVGdxOWxFaThLeUVsMmFhcjNLQ2hGSUdROHVWNVhGUEdyWEpYNUxRdUEwQVJNSnJUOEZyR1FPVWtFNXBqWDd0L1ZLYlBHcGQvNUhJNnh6amc3Z0pmeEljWTFBbkFLZ0JkVjNHRVVFaTlwQjg2VWJBaXpBT1JGUElCMElTaG1mVGNmSU1LVHdBbCt6S2NNMlIrTHZ2ZHFRMnd6eEY3bVNVa0E4amdzYmY4K0xQVlZBQWNoRVlFNUR1WjZoTFFDOVJXNWpjZVM2MnVVZWRqQlJRUTgzNURMdnpUUXpEMmdXUjBmS0ZJcEoySXgrLytHRDJSdnB5dUJYVXNDSi9oeElZeWNoUmRHdXJ4UVljOGo4S3VHOUNmNXF2SDVqNU9xakEvemVFRUFVaEVvZHY0Q3JkeDNNWGZYR1hNNnd6OXhKL0J1WnBUeFR3TlBaNjZMbUdNKytXd3VZdmJmeC9Oa0VYQmRDbGF4UDQ4WEFIQVd6MmxEWEFDZ21hRFllb0JZQk9Bd2oydkRCS0NkNUYyZCs4NWpHeCtQcnQ2bW9GNUNCMWdBWnVpd3B6QUU1RFdwVmJlWjJyMGsyRUo4Z3JjVzdnbjJIK1Y1d0RzQm9rRy9oQzZneVA1OEFTK3dwdkZMeWRWNGdXYnJBZUN5aVBHUGN4bFBLZWl6UE1VaDRIRm1OWDJBR2IvTXU1T3JQTnJzNGtIMk13T2NUY2dNenpjWWxNeHhVTW1rWFptUERtUFlZQXZ4Rm9VQVRIRVkyTXZSYUI2MXlMUWdWRmNHRmVYNytkWTRkMGJmNHdxYXJRY1FUQmNpb0hvTm01WG9xbDVnUis1YlZVVXdnMmpuOGhDeml3WEl2QmNzYUlZQmdma2FYZng2elJCcW00NTdJQklCeUxEZkpBQnptZXRpcDFOay8rZjRHK2xYRWVZdTBkd0R6Q2xlODhyUUlSNmkwdTk4RmQwRGhQd0M4NFZYUUNFUytUdWRYT2xza3p5NElmTXBZamw1eTRIbGlpSDBpRVZBWXY4dzJRUE1BaS9OL0g2eVVqZGVGeUVvMk4vTDFBVUdvL2JlejJHWi9jTWtBQjREd1NqcEFqd3F3QXRBdytFRm9PSHdBdEJ3ZUFFWUxUeVcwV2M0UVJhQWxzUEdiRDFjVHQ1MHc2eFNvejZYMFdVWDMvSVBFVXAvZWN1R0l6bjZFY1Z6czlyeS9YMmdBM3plVWorZDNQcENHYncyK2pOamlTV1c0aC9aMThBV1hlYUFlWVZ0L2dadmlGYWdIdVVSWHN5VVVwMzdOSHVCbzd5WXEzTEtXbkIvOTQxMSszTDRPVzZKN29yVWJsYm8rNDRtdi9ZVzRydnE0OFVLMzBKZjZIR1lBRmlTMU4wQUhRNHdRUmVZb0p0L1g2ZEZGempLOVJ4aEx5ajNUM3lmSGNBelhHcW8zYVZvTVdtWnozRmZWZ0FFKzRVMnJTZ0NJZnNzM3NCdGE0VmlQK0VuZVNPZjVJMDh4QjVOQmMxeWtFTk1GWFI2NlpHcjZzTlhYWTV2L3k4dTRZZGN4RFBzMEd3K25hRkRTTUEwQzFvNllLQi9tVE5zNDNlVTlMajZsNEhKa2pVWVU0OG02dllzL1VoQkNYK1U2eFhQUDhRVXk5eFBON2EzeUtxRDQrWFVlZVlxT1dySmJ1bFNhdzV2NFh0c2NJSlRyUE1EWlloWjV0bkJqVHpUaDNYQXA3bVk3M0loMytVU3ZxY05KZGJTWjR4MFpKMjZoRE1jMTZwcjR0WTNxYVJPU0xXbTJ5Q250cmI0TlljN0FIOEFuTWViQVdpeGxnckFFOUpxK2p4elBLRlZtK3F3aHMyWjg4MDh4QjQrdysvemVWNnJNQzZiWlo3RFRQV0YvZkJpL3BYZjVELzREYjdCV3hVcWxYY0JzYkhVdENKK1RBY005RzJNYVF4ZmxpVEc1OWZ5T3h4STBoZGJaQmVWVDFIakd2NkZWMmQrZjFGaDB2SjJZQ2V3aDR5OVZTd0FWeE1iVTRqdmczMWh3UzE4ai8vbVM1emlTMndVcURINzU0elBEZzM2OEluRVBZMnFCL28yTCtWYi9EcmY0cmZTU1ZDQ05uY1M2L3VuRmNxZmxINDJQemZRMHptQWpIVHNGZmhDeWJxYnlKVXAzME84UnFxVjEyaWZuMnVnMlVsZzNIclZObW5qN09kRzNoNlpjeFNsTTVUaUZrZllvdGxtVUtDYjJKOTNBYUVhSTJNQldGUFMzODRIbWVFMjNzK0grVHMrS3RFbkN5SWhxNFRxMGxQMjU2ZCtLVnE1SVdETlFOZFJuMEdvdS9QMEpTYWpzVDlueStrdUFHNWUrbHZFUTBIWk9ZUmdzTDcxeDI4Qk1WUnZBUk9KaXhxMWdNZ292cWQ4Z0w4MTVxNE9QU0Ewc3Q4K2pVNUZRUFVHY0J2djVRR3VCNDV3SGJmemZvbTZ4Q1FQOFZNbTgzSHpUcUxTZC9teU9FcElTSmN1WVdRWnJDK2lMblZUNXovUHpabGZOeGY2a3lsRXg5K055akNsb0p0K3d6NHQrK3JUbDYzc0YwWmFvbU9mSURIWmtyREdCR2cyMFArTWowZnovdXY1T0Q5VGhOakRKTXY1dUs3cTRPa2F5eE1lWmRDQkVwTS9kNGdocWlDQzNoNmc0ZkM2Z0liREMwREQ0UVdnNGZBQzBIQTBUd0NFMmxqMVR0TkpWTG52Y2tqblBPWGRvVHNlM29hc0FFd25GVkQ5TmFTNmY0QzZhQkVtMjdXT2E2MGFQaHU5L3g4b2lNQkhPTUE5M01NN2VBZDM4dDVDVEZFN0QwYS96Z1BPaS80RWJ1SmpoTnpDTFlSOGpKc0s4YzN1Sy9MV0RIbDdoaUxkRnFMbzZVR21SMGhmQTZkWjRDUVBBMi9sM0VUdFdVekVkc28yOU12cWZZbEpadWd3ellKaVVVVTgrUVJqSEdlM0poZnhndXdOM0V0eHBmQ1Z5ZlVadnExWUN6M0JWNWhpaGs2VWpyd2NibGVIeDZ2M1hhVWkyYnoycW5LZjJjMkZDQkpEbVhtRnk4K1FpVXlNUkoyZHFvTVhvbFhpNDV6THM0VjlMOE9BU1dDQks1a0VKZ3NDY0lMZHdPNkUvU2NVS1Z3VWZhdTNwejdGTC9JVDRIeitUMG4vQ2pjeXhRc1NuWDc1ZnZMcWFQMHlSTFhxT2N0OHNxdFExWVRXZURCalJWSHM0WVFJWHBtNUx1SlArVGtBMzQ5dlpJZUFoNEhqN09ZRW55aGROUGNqWlV5eGxaMVVBcUZubTh4Y1p6RVdzVHhtZjFFbjMrSjF4ano4THo4QjRDZThYa0U5eGhRaDBJN1lYMXpXSGMvOHFUR3Z1UmI1bndmbUdXT2NjYVZGUVlzOXdDR0VZcmNJczd2dmdDNHo3R0FYbDNKcGFqTWs3dzBVN0I5VGVnb0tjMWZWbEQybUxOclFpVm8vTEN2N3A3Rk02MWV4dnl2WlBPVFgyci9ObVl3am5HT0YrSyttQXh4Z0p6cWQzamJPbEM1VGlrdVM3d2VCUDFLRStDdEE2RENtRUhvL0dTR3BXQldienl6d0ErRG5uTTBPYnVWUmNUdDdYc0N6bkJ0VjNRWTdLNWg4WVF6aFp2Qmtla0pXUzYrYW8zdzk2djZnYUJjbnMxL0Z3R24rSlBQcmJ1NHpQRjBsWU1JMWhoZzh6aWhkNEV4SW8zWitqTDlCdWg5eVgyRU9rRlVXbitDRHBlY0FOMEZraGJHVTFtNDZCTXh3THMveUZRNnh3VTVGRjVzNldsZTdYTS9lVllVSWNuOW1xdW9KQ3hIejB1c3NZdmFMZ1dCSE9zb0JxY0hiSWhNRXl2YmI0UUYyUjM5RjlzTUNKM2dJZUJReDB5aGlqYy93ZWM3alhLVTUxcHpGd2NZRlhNQzlYTUN2UlAvTjJLMjRGODhCcmtUZG9IWnhOcnZZeFM3Z3BqaEVPZ1FJL3hlaUU1d1p3aW1nMkJ3OVE0ZHZzS0RZSEMzWS93eGprVzFzM2d1QVlMOXA0bllyMS9HZndNVUs5Z004d2pRaDYzeUVMcnUxbG44UGFWSS9tSEVhc2Irdy8vaHd0TGsrL1g4NEYySkhibE41MGN0QjFsSktiVFdsOEl4UVZoczR5TmRBTTFwMGs0Ny8rK3pJYWMzVjgyNTE3dFg1Ri9PTFovbGoxaUxEakczOE5CZDNsWC9uU1ZhMXRSUVNKUHNGRGhlOGtQMGg4NUZKM2h6L25PdGpEaW5zRjJTWGZma1FSWWQrU3Y4RlhoMmN4UjcrR3ZpUXBoVXZjUjUzUjJMVjRoaXZLb2hZRmlvQnlKckYyY1Z4VStBRm9PRm9uaTdBUTRJWGdJYkRDMEREa1JlQVExcC80WGZ4dFdTUjltdmNOZWlNZS9RRzhsTHd2M0U1OEZxdUtJVDdsTFErL2dwZXdRN2VNT2pNZTlSSHRnZTRnOHNCdUp3N2NxSHVTdGlmcnRDOVh0a0xuQ0tNUEdhcjhEOVJEMkpmWmhyR2hhaFRHVVhWcWZySkRRZXlBdEFDSnBpZ3FHcDhsVEt1NnU3MjZLUEcrZEgzQVV1dU9ncUREVmlLS245Skc4OFd3a1lQT1pXWWF4UlovQ0xOOVpaR0tnQ2kvYSt4UnJFUFNCYzlzMnBhdTFmYlBBSUNoM05CeFQ3WnZBaWtteHNuTlF5MGhWaGlranNZNXc1dENyQ2QrVWhJOUdJOFVrZ1hnc1Q0UDRIWVlQVWRhUjRnZTdnMCticzh3bDZOYXdJQnNZaDZVdUV1dVJPdDA4ZmJwUFByOW5aSHJDR3d6UDI4bVVsbGlKQTdJbE92MjNtUE5vWFRDZXZMbk9peFpSSDNBSjFvL085R09xdkxLNDdDVDVQNnpGZWhDL3hJNFQ4bjd2UjE3SGZGL2F4eHY0RXFmNmR3TVdHWkJVNXptdFBRcDJPcEJvQzRCOGlxUVlvcUVmY2V3QWF4aHplL3VURmx1NTc5Zys4QlRtV0doZE9qTWdzUVBVRGEybHVaQ1dCNjk4dkt1S3E3SGNzY1AxQWNEQS9Ua1gyT3FmVXZhNjdsdTVOMEV5ODhSZnA3dUoweGJ1YzlCbC9iMjUwb0l6TkRpQStOMGxDajc5dDRuNEw2MGR3ZTlEUWxmYytnVnlmYk8zKzdrd1ZiQ0JzOTVEUjNSMXE2VTVvMlh2VWtrQ0dGRUlCVFNvbk9kbk1ydEhQVVZmWXA0blE0WUJ5L1RmWUV0cmpEZ1pFVUFCY3M4THZKbS84eHZtQThNV09VMFZnQjhCaEplRzFndytFRm9PSHdBdEJ3ZUFGb09Md0FOQnhlQVBMb0dIVUNIYXZHWUlzaEt3QWhHeFlWVU8rT2hCZ1VudUFKSTcxanRGWG9XQzBadGh6a0htQW5CNnhDb0VZcVBDMXRDaDAySWsxRGg0MkNDTW5pZDBSQlB5S2xwQkpCL2RieU9ONVZYR1Vvbnp2N1hheWF0Z1R5dm9JRlRyS3FYSkxWZXhNT3BYZ2grVFY5VVhrQjBLSE5UdkZzUXdwSDJGdWdDenNEWFh5NUJQclRPblJVMlJtMW5Ub2lLNEpxQVFEMWlSTTJBWURZMkVOV0NxVy9OaUxtWVVsQkp3RDYrSElhdldDeG5ob3F0bDl2VWFnbmdTZFpORmoxNkhHU3hZVDlpNWtLQ2xpTTd1NWlrWk1PS2VoZ2k3ODVHQW5XQ3hRRlFMQ2d2RTR1anRkaWc4WENtUnZUQkN5eVFZdHBMUlBkbmp4ZFdRaE12Z2NFZGRFWU4wc05EV0czRk9RaFFEZjJweUgwSndvTVA4eWR2RUE2VnlsUDNaTEliZ3l4Rnl4d0RqbU1jTW4xTkNhamRUTjFTOEtyZ3hzT3Z4TFljSGdCYURpOEFEUWNYZ0FhRGk4QURVZGVBRXg3YnoxR0VLa0F0UGcwQUJmeU5vMnZmYUZuKzZ5RzZyRWxFUXRBaTI3aWZ2Unl1a29tejdESU1WNUgxMkdoT0srUVBaTHpCSDVraytrZUdzUUxRY2ZaelpkNEpTR2Y1VnBDcFR0a2dSYjNzTlBxVExib3Fqai9XM2FVMkcrNmh3WkNBRnAwK1JFWEFZOXduR2wreUlXS1Bid2hjSUs3dVk4TmRtb09NQlhoVkw2cXh5TjM2dHM0dzdhQ1ArMlFhM2lNYXpJTzE5WDB4eEpmL0NyNk9PdlJCNFcvYmc4RmhDN2dhdUNiQUZ3THdEZDVIVmNYR0R6RGxVeHlMN0NmTHUvVUNvQWFWd0FYQTdDZHN4UjdFWVZ6bWUyY0JUeW5lRHU1T1BwY0FUeW5TSDg3OEpLSS9oTC9kdU1LSVFCUEFDL1AzSDE1ZEU5R0I3aWZMamV6aXhQc1VhYW5ONU80VVByMTBjaXpmWXJ0dkM4akZrWDZoYnd2K3BqaWl6RGJGWFFQSmVJNXdBWTdrMDNUUzB3cW5iZ0lKZkFocHJpQnE1blMrc05XRFFGSDJDdjl6dHNiOVp2dW9VRXNBT0k4akIveFRWN09oYWhQREVpdEFSYUJBOHB6cnNMUk1wZ2FmV1NQamZ1enlFL1FkL2o3VWJGNTliREIyd00wSEg2MjNIQjRBV2c0dkFBMEhGNEFHbzVVQUd6bkFkU2xML0RGaFA1RnhibC8vYWIzdTN5RHBsZEUvQmJ3cWNKNXVaK1d6Z09vUzdlNW1lczN2ZC9sR3pTOU1zNitET0F1M2x5Z1hNRUxlVGk2cmt1L2pUOHYwRi9HK1lrMm9kLzBmcGR2MFBRYUVFTkE2dmsvdTIzcVZZcXJMUEwwMWVSbzJWVnQvTUFRMzVaK1BvVit4TGVWMzVaL2MvelQwc1kwWFh3VFBac0xkYWxMSXU4cVZ1ME0ydVpLTnQzOXV3THNRNzA3dUc3Nkx2SHQ2YXZjWWJ2R0QxQnZNQXRML0E0enFSVHBSd0hZcTYyLytPNEh1WldlN05CU2JRM0xGek5QUjBNUG8zRzNPQjduMHdrMTk4M3Ayd3NjOTBDMjJJRlc1RnhTMStYUEpmMFFzMmVCNjR3NXVJbGJNK3p2Q2M2cG4wUUd6MlgrbDBkbzdSSE02QTJEOVEzQW5uOTdYSnVhN0FFRDdTWSt6SWZwS2Z0N1B3UXNBVytpK2hCUXY0dlg1NitZUXJVdTNKUytLWC9GOHhmSzBZVUlaTm5mZ3lGQVRBSnQ1d0c0MFZlQVNTYWpxeXc5ZXhKMnFMaDdQRU8xMFRIU1VkTGwvSWVGdTErV0tEWjYxZnFKeXhkV3B0OHFzVi85MUpJUUFuQk15a0NNWTRxckxQTDBkbEtCYlczODBCRGZsbjQraFg3RXQ1WGZsbjlUL0x6enFySjBRT3I4MWFVdUNiRU9zTVlWdkN4SFdjMmM3Rk9YL2pDL1hUaU04dE84WmRQby9TN2ZvT2sxSUFRQS9wSG5jUmFYUm5lUHNjeGZTT0hxMHYrQkYzSnVZdlAzZFI3SXNHY3o2UDB1MzZEcGxlRU5RaG9Pcncxc09Md0FOQnhlQUJvT0x3QU5oeGVBaHNNTFFNT1JWUWJaVHVjZGRycEhCY2phd1BIa2FsMFp1aTdkWStoUUhBTHFzVzdkbWtLOWxodlVUc0ZEUWw0QWJBeGNaOTFJajkwejZHQmpvTTZYZDR5d29xN2ZRNE84QUl5RGtZSGpqQnZwd2tPSEhpRm1nd25UZ1M5Z042andLSW5pRURCZUlSVTV0am1GZXUzWEprQWVKYUUvTW1iNFp2bitMYUFQS0hOZXdMRFRQU3JBTHdRMUhGNEFHZzR2QUEySEY0Q0d3d3RBdytFRm9PSFl1Z0xROWd0Q3ZZQXNBUFhYMlVKbUNabnRlNzdickVnT0lEd3FRaGFBZmRGbjBMQzFic0grMVVGbmN4UWdDOEFLOGI2K1FjTFd1ajM3ZXdqWEhpQ2tYZmlVUTFqNFUwT3dWeStHTWZ2OUhLQW5rQzJDVmxobFJkbTJBbUExOXlrSE4vZnRNZnYzR2VtcmZnN1FLOGdDWU9vQjlpV3NpVC9saEdDK2NLZDRwRXM3azc0cWRabjlmaERvQWVTOWdmVWR2WWZNTWE4OHI2ZjRacEFQazJXL0tnK2UvWDJBYXc5UUgvWWpuTXF4djYwSjUxRUt3L1FXRUxBYWZZcFFzZC9QQVhvQWVRaG9zMHA3S0R2WE1PcjA4OThlTmVIOUF6UWNXMWNYNE5FVC9EOXJ3YWNaNVlJcXlRQUFBQ1YwUlZoMFpHRjBaVHBqY21WaGRHVUFNakF5TVMwd05pMHhNbFF5TVRveU5UbzFOeXN3TURvd01JbVV1RVlBQUFBbGRFVllkR1JoZEdVNmJXOWthV1o1QURFNU9EVXRNVEF0TWpaVU1EZzZNVFU2TURBck1EQTZNREFpekZNSEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBQUJKUlU1RXJrSmdnZz09IiAvPjwvc3ZnPg=="); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI0MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIyNTYiIGhlaWdodD0iMjQwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRHdDQVFBQUFCRm5uSkFBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFBbUpMUjBRQVZiR01oa2tBQUFBSGRFbE5SUWZsQnhJU05UYXdSRU9rQUFBYWhVbEVRVlI0MnUyZGU0d2tSMzNIUDIwN3NRangyU0hFUHV6em5iQVNiQUtZM0s2dGlFY2tMT1RNSnRJbGdIek8zS0lBQWVmV2dmQVV1VjJjWGYvaFBjek9raGcvY0hSbjJRUloya2Z1SENDMkZNOWlqSkVKSjhEc0hjODRKTUZtRDRjNytDT0U0NC9JUWJqelI3K3F1dXZWM1RNN3M5UDFQZTNOVFArcXF1dng3YXJxK3YzcVY4RmVQSnFNc3dhZEFZL0J3aE9nNGZBRWtORW1wRDNvVEd3bVBBRkV0RmtCVnBwRWdWNFRZUERQVDV1d2Nzd1ZZQjg2Q2lRcEQ3Nk1QWVJNQUhNSEdLYi9UTEE5UC9yNFlYejN0amFNN2Q1SkkxWXJRZFQ4cXpFRlRDbVBVQjhoRXFBWEhlQytHaWtrY1pQbnNEenF4SVdBZ0ZWZ2xZREFrSEtkTWc0ZGduUWRJQ2xpOGh6b0VFS2hla1JFNlFTVjRpZFBtZTcrdG51SE5mUHVtckt0akZzSVdROWc3Z0JkWVhvRzdjTkhkSGRURTVwVHFmZHNtb1lnTWVWNi9jeVFJU2k5RW1oK2lrelBZRmFwVlo4ZGV3cm1aOU9jZDNNZm1LVnM2MmUyRk1vVHdJeHc0RlhUWnFVeXdjeERVSkx5NE12WVEvU2FBRnNkYlZaR3FYbnQ4QVJvT1B4S1lNUGhDZEJ3ZUFJMEhKNEFEWWNuUU1QaENkQndlQUkwSE40ZUlCOTMwUG5mWkpTeEIzQ3pDTEFwWTlwR2V3RHpIZXpOVThjZXdLNE9qL0krVWlRcFp3L2dwZ0V6VjZHK2dmWnB2cnVtYld0K1crb3J1VTk5NmlOakRWQzBCNGlnWHcxUFFwbjBiWHE1TGJhTFBZQXBkK2E3MitPYkVjWnBKNThqQWRrZVFQVmR4cXBUTDZBT1kzOCtYZXdCVE0rZlc5NzA5QW10MWdabDdyUWxVRVVaWkZLNERyczlnSWxjdHY0bktibFhCeHN3K01xcGF3OHc2UHh2TXJ3NnVPSHdDMEVOaHlkQXcrRUowSEI0QWpRY25nQU5oeWRBdytFSjBIQ2NNK2dNREIzQ0FhN3kxMThyTFozL2MrcEY3MHNsRERJSG9UVUgxVlZCOXBnREtMazhCSVJnMVBXNytBY0lLMGpLb3VvOWJQbVBtajR3cG1JblI5WFliaVZ3Q1ZVaTdsbFNBRnZ4QTRjQzZPTUhEaFhrVW9UUW9PeHh5Vjlna01tZjVlNlJTT3cxWUM2aG1VQ2hKVGJZSG1JcC8rSVE0RnA4bmJXT3ZaS0NIblR3b1ZFVGFSdEY2K1FnVEdNSFNxbDRkOVZka3NkTG40ZlFJRGVublpYTy9CaUl1UXlnN0NRd2RIaDZiS0ZjMkZudEdYZHIzTUFoZFZNRHVhUmJ0UVpNajZCTDJ2WTZLTWpMdkFabVhaeExLTFhNM0FYYUdXeE93OWJGdW5YUnRpZklkbmVYU1dSVjJDbHVsMHM1S05NRHVIV2Q5V2E1Z1dNdjA2ODhCc1lPMWkzZHdDRk1WWmlIYWZNQXFJeDdqaWJRNEREb0hHemwrMWVJNjFjQ0d3NVBnSWJERTZEaDhBUm9PRHdCR2c1UGdJYkRFNkRoa0RlSEpzNVNCd2U3UC9CK3dxVUdYRFNpMWVMWjlrYTczcVVVTWdJa0c2TmMzTDFYcTREZW9WcGF0cHk3MVlESjFXeW1qV3VYamgzcEtaTi8rakswSzlkQW1Nc2xvTjRjYXQ3QzZhTFJiaXV1OVk0Q3VyVGNYRVBvOCs5V0E3cDd0SFBiYTl1bFltY2xzUFZBOWJhbUZ6Ym95bHZEWE55cDI3Wmc2emFJdWxuUzJIT2dTOGZ1d3QyZWN6ZUg5R3FOUWJGcGc1emN0ckU4YXh6Vi9zUlFTdG1zTU5ZcHJJTmltTElFY0srQW9FUmN0eHlZcTlEbC92YTkvZnI3MjJMYkNHQ3ZBM01EMmdsZ0pwQ0dBT1hlQXJJS3FLS3lDSVEwMUttSDBxZnAvbFdRNWJ2cUhNSjA5MzJ4TkJuQjFSNEVUUGRQWXFybkFMYVVNOThOcHYzTitWeVd0QWN3VllBOGdURVYzNXc1VXhGTmFZaEZzNXQ5cVpyQVRrQlRDVlp6RGlSV1M2ZmdCbFB6cnFiSDNyamxrckpEZ0pzNVZXaDFFV0VlQmV2RWRxdGVkVG5jeHVENkptMm1kS29mYW1PZkF5amgvUU9JYUZ0UFRCbzVlQUkwSEg0cHVPSHdCR2c0UEFFYURrK0Foc01Ub09Id0JPZzFCcW5Pcm9DOFBZQU5KbjJWUzlIYk5mWGQvVWI5M0FXV3hlNGhLM3ZSSHNBRWs4YmNaWlV3MGRqdGM5aGdxa2ZkelZYbTdlR0JkZnVydllGMThVMnBEd2paUXBDWUxidTMzK0ppbzdnMXN0cnAzNjRMeldEUzJObGlCOXB3NGxXZHR0TzBlVFIwa3JxWGRGT2duZ1BvakE3TStxcHNhS2hpdEJBOU9YYXpLYjBQZ3hCWFhWOVE0cXJxdnFyNzIzYzJEeVV5QXNpS3d2SUh5RWNIckNmTlZ6NStRS2JMcTdhQk9ndFQxd1ZGdGZ1Nmhhamo0Nk1QeUFnZ0tncXJjTmgya29CZDJWcDNkQXlFSGtUZFE4aWZxaEM5ZVlwVmQ1QjdqNkhwSjhRaFlEWE5sS29EanpyNHlOeExqVldqUFlDTHR0L3VIc0tNekJaQWJWSmhydnBzRU5KN0YwbENCaVdsWW9pcUJqVjlnVm9icUp2R2dJdXlWRGNKN0lXeTFjMXFzZXBFMDJVU2lTRUhXL0F3R2E4T2xqRTBYZk5td2E4RXltaFk4M3NDTkI2ZUFBMkhKMERENFFuUWNIZ0NOQnpEUjREV3NDeVNOZ041QXJqcHNrMHFtOUJKcWd2Um9yc3ByMktEOW9Nd05Dam5MdDVORlROUkl6OWRFcEswak9HcXVxelBNRUluZ05lQlRBRHpLclY1dFR0NXFsdDBsUlFJMDRWUzlkNjlxT3VmU0VOME5mR1RiOVdjcW91OVQzbU41UWdpSTREczdyMklUQit1YzVrZUVNVE52NmE4bDdscmo3citOU1lNZTJlVHU2dnZMMXNVNUZOeGN4L1JPQ1MrZ3JNcU0zdTh0bW15a3VhdlBvNnZPYmx5VnUvKzF6dFZUNHpaTXZrSUhRRmZCd2tCa3FvMW1VeUJlR2lDR3ZXUFJOSDFIL0xkODNtUUQwSW81bkJGdW5kQXc3YUE2cEY1Q3hlclRPOWd4SDdxaGV1eEVqcDVSSUd3TUk5SUZNRnFyL3h5Zm5ybFZyNEJLUE1Xa0ZXeHppYlBkaVNUU1Q2UlNydEFVT2dIQXVIdXFvSEliRThrdTQvd1NDR2ZGMkE3Y01Sa2RsbjNKSXUxTkcyWDE4akE4VnFDVmZ5c1g0bGhNd2d4endFOGVvNWhPem5VZDgrYmpPSFRCWGhzS2p3QkdnNVBnSWJERTZEaEdDVUN6S1lyRGJOOVNmOHl4dUovbHcyNnFMMURSSUJEY2NWdGNLaHlTbzlhTlAwMmhEd2hXUXVVYmNSWjV0UHY4OHJZczdYb2NSbFBjUzNyckhNdFR5a3BNR3ZOL2Y1WXVsOXpENzNjRmhQdXpmMHozeUZ0cFdnZElPUWhuZ1RPWjBvSW5MMlNIVXF2SCtaR1RkTFpJdEZSOWpxNGM4NkhXT0pKb1FsaG1UZExsVHVmQ3ovSHdSSnlPWWVxM08zbnNQUjdpbnVrMzJOY3l3TGp3RG96UE1KeGJRMm83K0hpVEZwLzhxZnRVT3dvUkZienRqS21TMzRKQVJZQitMd1VmRTFJdkVpUWsrelNWTzlSVUZJZ1pEejl2cTRvNHRlNFN2Z3RFeURTQkV5bXN2d1dzWkE1aVFKenpHczlHT2cydm8xTHYvTTVIR09kY1hZQUwrZkRqR3NJY0FxQUYxWGNZUlNTTEdrSHpoSXhoSmtBZVlvSGtDMEVKVTNmelFlSThTUndncC93YVVQMngrSlAvZUxpTmtQc1paNlVDSkRIWWFGUUlZZWx2Z3JnSUtRVW1PTmdya2ZJS2xCZmtkdDRMUDEralRJUE83aUlnT2NiY3ZtWEJwbTVCelNyNHdORkt1VW9salQvMy9CQjhYSzJFdGkxSkhDQ254VEN5Rmw0WWF6TEN4WDJQQkYrM1pEK0pGOHozdjl4TW1YMVlSNHZFQ0NqUUxIemo5REtmUlp6ZDUweHB6UDhFM2NDNzJGR0dmODA4TFR3dllnNTV0Ty96VVhTL1BmeFBKa0Nya3ZCcXViUDR3VUFuTVZ6MmhBWEFHZ21LTFllSUtFQUhPWnhiWmdBdEpPOHEzT2ZlV3pqRS9HM3R5dWtsOUFCRm9BWk91d3BEQUY1VFdyVmJhWjJMd20yRUova2JZVnJVZk1mNVhuQXV3RGlRYitFTHFEWS9Qa0NYbUJONDFmU2IrTUZtYTBIZ012aWhuK2N5M2hLSVovbEtRNEJqek9yNlFQTStGWGVrMzdMbzgwdUhtUS9NOERaaE16d2ZJTkJ5UndIbFkyMFMvalRZUXdiYkNIZXFpREFGSWVCdlJ5TjUxR0xURWVDNnNxZ0lyK2ZiNDF6Wi93NXJwRFplb0NvMFNNS3FGN0RaaVc1cWhmWWtmdFVWUkhNRUQzbjhoQ3ppd1VRM2dzV05NTkFoUGthWGZ4NnpSQnFtNDU3SUtZQUNNMXZJc0NjOEwzWTZSU2IvL1A4amZTckNIT1hhTzRCNWhTdmVXWGtrQXhSMldlK2l1NEJRbjZKK2NJcllFU0ovSlZPcm5TMlNSN2NJUHdWc1p5KzVjQnl4UkI2SkJTUW1uK1k3QUZtZ1pjS3Y1K3MxSTNYUlFpSzV1OWw2aEVHby9iZXoyRzUrWWVKQUI0RHdTanBBandxd0JPZzRmQUVhRGc4QVJvT1Q0RFJ3bU9DUHNNSk1nRmFEaHV6OVhBNWVkTU5zMHFOK3B5Z3l5Nis1UjhpbFA3bExSdU81T1JIRlBjVnRlWDcreUFIK0lLbGZqcTU5WVV5ZUYzOHo0d2xsbGhLZm9pdmdTMjZ6QUh6Q3R2OERkNFlyMEE5eWlPOG1DbWxPdmRwOWdKSGVURlg1WlMxNFA3dW0rajI1ZkJ6M0JKZmpWSzdXYUh2TzVyKzJsdUk3NnFQajFiNEZ2b2lUOElFd0pLazdnYm9jSUFKdXNBRTNmejdPaTI2d0ZHdTV3aDdRYmwvNGdmc0FKN2hVa1B0THNXTFNjdDhudnRFQWtUTkgyblRpaFFJMlpmYldWUDI5UEJvUCtHbmVCT2Y0azA4eEI1TkJjMXlrRU5NRlhSNjR0WlAxUjFjam0vL0x5N2hSMXpFTSt6UStEaVlvVU5Jd0RRTFdqbGdrSCtGTTJ6amQ1WHlwUHFYZ2NtU05aaElqNmJxZGxGK3BLQ0VQOHIxaXZzZllvcGw3cWViMkZ1STZ1QmtPWFdldVVxT1dzUXRYV3JONFMxOG53MU9jSXAxZnFnTU1jczhPN2lSWi9xd0R2ZzBGL005THVSN1hNTDN0YUdpdGZRWm94eFpweTdoRE1lMTZwcms2WnRVU2lla1d0TnRrRk92M1AyR3d4V0FQd0RPNHkwQXRGakxDUENFdEpvK3p4eFBhTldtT3F4aGMrWjhNdyt4aDgveSszeUIxeW1NeTJhWjV6QlRmV2wrZURIL3ltL3pIL3dXMytSdENwWEt1NEhFV0dwYUVUK1JBd2I1TnNZMGhpOUxVc1BuMS9JN0hFalRqN2JJTGlydm9zWTEvQXV2RVg1L1NXSFM4ZzVnSjdBSHdkNHFJY0RWSk1ZVTBlZkJ2alRCTFh5Zi8rYkxuT0xMYkJTa1NmUFBHZThkR3ZUaEU2bDdHbFVQOUIxZXlyZjVUYjdOeTdKSlVJbzJkNUxvKzZjVnlwOU1mamEvTU1pek9ZQ01iT3lOOE1XU2RUZVJLMU8raDNpdFZDdXYxZDQvOTRDS2s4RGs2VlhicEkyem54dDVSMnpPVVdSbktNVXRqckJGczgyZ0lEYzF2M3hlVVRHUElSa0IxcFR5ZC9BaFpyaU5EL0FSL282UFNmTEpBaVZrbFZCZGVkYjgrYWxmaGxadUNGZ3p5SFhTWjRqVTNYbjVFcFB4MkorejVYUW5nSnVYL2hiSlVGQjJEaEUxc1A3cFQ5NENFcWplQWlaU0Z6VnFnc2dvdnFkOGtMODE1cTZPUENBME5yOTlHcDFSUVBVR2NCdnY0d0d1QjQ1d0hiZnpBVW02eENRUDhUTW04M0h6VHFLeWQvbXlPRXBJU0pjdVlXd1pyQytpTG5WVDV6L1B6Y0t2bXd2OXlSUlJ4OStOeXpDbGtKdCt3ejV0ODlXWEwxdWJQekxTaWpyMkNWS1RMUWxyVElCbUEvM1ArVVE4NzcrZVQvQnpSWWc5VExLY2ordXFEcDZ1c1R6aFVRWWRLREg1YzBjMFJCVW82TzBCR2c2dkMyZzRQQUVhRGsrQWhzTVRvT0ZvSGdFaXRiSHFuYWFUcW5MZjdaRE9lY3FyUTNjOHZBMGlBYWJUQ3FqK0dsTGRQMEJkdEFqVDdWckh0VllObjR2Zi93OFVLUEJSRG5BUDkvQk8zc21kdks4UU02cWRCK05mNXdIbnhmOGkzTVRIQ2JtRld3ajVPRGNWNHB2ZFYrU3RHZkwyREVXNUxVVFIwNE1zajVHOUJrNnp3RWtlQnQ3R3VhbmFzNWlJN1pSdDZKZlYreEtUek5CaG1nWEZva3AwNXhPTWNaemRtbHdrQzdJM2NDL0ZsY0pYcGQvUDhCM0ZXdWdKdnNvVU0zVGlkT1RsY0xzNlBGbTk3eW9WeWVhMVY1WDd6RzR1UkpBYXlzd3JYSDZHVEFneFVuVjJwZzVlaUZlSmozTXV6eGIydlF3REpvRUZybVFTbUN3UTRBUzdnZDFwODU5UXBIQlIvS25lbnZvVXY4eFBnZlA1UDZYOHE5eklGQzlJZGZybCs4bXI0L1hMRU5XcTV5eno2YTVDMVNPMHhvT0NGVVd4aDRzb2VLWHd2WWcvNVJjQS9DQzVJQTRCRHdQSDJjMEpQbG02YU81SHlwaGlLenVwRkpHZWJWTDRMbUlzYnZLaytZczYrUmF2TitiaGYva3BBRC9sRFFycE1hWUlnWGJjL01WbDNYSGhueHJ6bXU5Ui91ZUJlY1lZWjF4cFVkQmlEM0NJU0xGYmhObmRkMENYR1hhd2kwdTVOTE1aa3ZjR1JzMC9wdlFVRk9hK1ZWUDJtTEpvUXlkKyttRloyVCtOQ1UrL3F2bTdrczFEZnEzOU81d1JIT0VjSzhSL0RSM2dBRHZSNmZTMmNhWjBtVEpja240K0NQeVJJc1JmQVpFT1k0cEk3eWNqSktOVjhmR1pCWDRJL0lLejJjR3RQQnBkenVZQUljOXlibHgxRyt5c1lQS0ZNWVNid1pQcERxS1dYalZIK1ViYy9VSFJMazV1ZmxVRFR2TW53cSs3dWM5d2R4WEJJdGNZMGVCeFJ1a0NaMElhdGZOai9BM1M5WkQ3Q25NQVVWbDhnZytWbmdQY0JMRVZ4bEpXdTlrUU1NTzVQTXRYT2NRR094VmRiT1pvWGUxeVhieXFDaEhrL3BtbHFqc3N4STJYZlJlUk5IODBFT3pJUmprZ00zaGJaSUpBK2Z4MmVJRGQ4YjlpODhNQ0ozZ0llSlJvcGxIRUdwL2xDNXpIdVVwenJEbUxnNDBMdUlCN3VZQmZpLzgzWTdmaVdqSUh1QkwxQTdXTHM5bkZMbllCTnlVaHNpRWc4bjhSZFlJelF6Z0ZqRFpIejlEaG15d29Oa2RIemY4TVk3RnRiTjRMUU5UOHBvbmJyVnpIZndJWEs1b2Y0QkdtQ1Zubm8zVFpyYlg4ZTBpVCtrSEJhY1Qrd3Y3ancvSG0rdXovdzdrUU8zS2J5b3RlRGtSTEtiWFZsTUl6UWxsdDRDQmZBODFvMFUwNy9oK3dJNmMxVjgrNzFibFg1eithWHp6TEg3TVdHMlpzNDJlNXVLdjhPMCt5cXEybGtDRGRMM0M0NElYc0Q1bVBUZkxtK09kY0gzTklZYjhndSt6TGh5ZzY5RlA2TC9EcVlCRjcrR3ZndzVxbmVJbnp1RHVtVll0anZMcEFNUkVxQW9obWNYWTZiZ284QVJxTzV1a0NQQ1I0QWpRY25nQU5SNTRBaDdUK3d1L2k2K2tpN2RlNWE5QVo5K2dONUtYZ2YrTnk0SFZjVVFqM2FXbDkvSlc4a2gyOGNkQ1o5NmdQc1FlNGc4c0J1Snc3Y3FIdVNwcy9XNkY3ZzdJWE9FVVllOHhXNFgvaUhzUyt6RFNNQzFHbkJFWFZxZnJKRFFkRUFyU0FDU1lvcWhwZnJZeXJ1cm85L2xQai9QanpnQ1ZYSFlYQkJpekZsYitraldjTFlaT0huRXJOTllwTi9DTE45eTJOakFEUjg3L0dHc1UrSUZ2MEZOVzBkcSsyZVFRRUR1ZUNSdnRrOHhUSU5qZE9haHJRRm1LSlNlNWduRHUwS2NCMjVtT1M2R2s4VXNnV2dxTHhmNEpvZzlWM3BYbUE3T0hTNU8veUNIczFyZ2tpUkl1b0p4WHVranZ4T24yeVRUcS9ibTkzeEJvQ3k5elBXNWhVaGdpNUl6YjF1cDMzYWxNNG5UWjltUk05dGl5U0hxQVRqLy9kV0dkMWVjVlIrR2t5bi9rcWRJRWZLL3puSkoyK3J2bGRjVDlyM0crUXlwOFpYRXhZWm9IVG5PWTA5T2xZcWdFZzZRRkVOVWhSSmVMZUE5Z1E3ZUhOYjI3TW1sM2YvSVB2QVU0Snc4THBVWmtGUkQxQTlyUzNoQWxnZHZVcnlyaXFxeDNMSEQ5UUhBd1AwN0Y5anVucFg5WjhsNjlPMGsyOThCVGw3K1YyeHJpZDl4cDhiVzkza296TURDRTVORW9qalQ5djQvMEs2Y2R5ZTlDemxQUTlnMTZkYk8vODdVNFdiQ0ZzOHBEVDNCMXI2VTVwbnZHcUo0RU1LU0lDbkZJeVd1em1WbWpucEt2c1U4VHBjTUE0ZnB2c0NXeHhod01qU1FBWExQQjc2WnYvTWI1b1BERmpsTkZZQW5pTUpMdzJzT0h3QkdnNFBBRWFEaytBaHNNVG9PSHdCTWlqWTlRSmRLd2FneTBHa1FBaEd4WVZVTytPaEJnVW51QUpvN3hqdEZYb1dDMFp0aHprSG1BbkI2d2tVQ01qVDB1YlFvZU5XTlBRWWFOQUlabCtSeFR5STFKS0tncnF0NVluOGE3aUtrUDUzSnZmeGFwcFN5RHZLempDU1ZhVlM3SjZiOEtoRkM4a3Y2WWZWVjRBZEdpek03cTNJWVVqN0MzSUl6c0RYWHk1QlByVE9uUlMyUm0xWFRvaUs0SnFBb0Q2eEFrYkFTQXg5cENWUXRtdmpianhzS1NnSTRBK3ZweEdMNXBZTHcwVjI2KzNLTlNUd0pNc0dxeDY5RGpKWXRyOGkwSUZCU3pHVjNleHlFbUhGSFN3eGQ4Y2pFVFRSeWdTSUdxQzhqcTVKRjZMRFJZTFoyNU1FN0RJQmkybXRZM29kdWZweWlRdytSNklwSXZHdUtJME5JVGRVcENIQU4zWW40WFFueWd3L0RCMzhoR3l1VXA1NlphRXVESEVYckRBT2VRd3dpWFgwNWlNMXMzU0xRbXZEbTQ0L0VwZ3crRUowSEI0QWpRY25nQU5oeWRBdzVFbmdHbnZyY2NJSWlOQWk4OEFjQ0Z2MS9qYWovUnNuOU5JUGJZa0VnSzA2S2J1UnkrbnEyemtHUlk1eHV2cE9pd1U1eFd5UjNLZXdJOXNzdHhEZzJRaDZEaTcrVEt2SXVSelhFdW9kSWNjb2NVOTdMUTZreTI2S3M3L2xoMGw5bHZ1b1VGRWdCWmRmc3hGd0NNY1o1b2ZjYUZpRDI4SW5PQnU3bU9EblpvRFRLTndLbC9WNDdFNzlXMmNZVnZCbjNiSU5UekdOWUxEZGJYOHNkUVh2MG8rem5yOGg4SmZ0NGNDa1M3Z2F1QmJBRndMd0xkNFBWY1hHbmlHSzVua1htQS9YZDZsSllBYVZ3QVhBN0Nkc3hSN0VTUG5NdHM1QzNoTzhYWnljZngzQmZDY0l2M3R3RXRpK1V2ODI0MHJJZ0k4QWJ4Q3VQcUsrSnFNRG5BL1hXNW1GeWZZbzB4UGJ5WnhvZlRyWTdGbit3emJlYjlBaTZMOFF0NGYvNW5pUjJHMksrUWVTaVJ6Z0ExMnBwdW1sNWhVT25HSmxNQ0htT0lHcm1aSzZ3OWJOUVFjUWRZNjVlMk4raTMzMENBaFFIUWV4by81RnEvZ1F0UW5CbVRXQUl2QUFlVTVWK0ZvR1V5TlBzUmo0LzRzOWhQMFhmNStWR3hlUFd6dzlnQU5oNTh0Tnh5ZUFBMkhKMERENFFuUWNHUUVzSjBIVUZlK3dKZFMrWmNVNS83MVc5N3Y4ZzFhWGhISlc4Q25DK2ZsZmtZNkQ2Q3UzT1ptcnQveWZwZHYwUExLT1B0bEFIZnhsb0xrQ2w3SXcvSDN1dkxiK1BPQy9PV2NuMm9UK2kzdmQva0dMYStCYUFqSVBQK0wyNlplcmZnbUlpOWZUWStXWGRYR0R3enhiZW5uVStoSGZGdjViZmszeHo4dGJVelR4VGZKeFZ5b1MxMFNlVmV4YW1mUU5sZXkyZTdmRldBZjZ0M0JkZE4zaVc5UFgrVU8yelYrZ0hxRFdWamlkeWlrVXBRZkJXQ3Z0djZTcXgvaVZucXlRMHUxTlN4ZnpMd2NqVHlNeDkzaWVKeFBKOVJjTjZkdkwzRFNBOWxpQjFyS3VhU3V5NTlMK2lGbXp3TFhHWE53RTdjS3pkOFRuRk0vQ1FIUENmK1hSMmp0RWN6b1RRUHJId0I3L3UxeGJXcXlCd3l5bS9nSUg2R256ZC83SVdBSmVEUFZoNEQ2WGJ3K2Y4VVVxblhocHZSTitTdWV2MUJPSGxGQWJQNGVEQUhSSk5CMkhvQ2JmQVdZWkRMK0pzckZrN0JEeGRYamd0UW14eWhIS1pmekh4YXVma1dTMk9SVjZ5Y3BYMWhaZnF2VS9PcTdsa1JFZ0dOU0JoSWNVM3dUa1plMzB3cHNhK09IaHZpMjlQTXA5Q08rcmZ5Mi9Kdmk1NTFYbFpVRFV1ZXZMblZKUk9zQWExekJ5M09TVmVGa243cnloL21kd21HVW4rR3RteWJ2ZC9rR0xhK0JpQUR3anp5UHM3ZzB2bnFNWmY1Q0NsZFgvZys4a0hOVG03OXY4SURRUEpzaDczZjVCaTJ2REc4UTBuQjRiV0RENFFuUWNIZ0NOQnllQUEySEowREQ0UW5RY0lqS0lOdnB2TU11OTZnQVdSczRubjViVjRhdUsvY1lPaFNIZ0hwTnQyNU5vZDZURzlST3dVTkNuZ0MyQmx4bjNTaFAzRFBvWUd0QW5TL3ZCR0ZGWGIrSEJua0NqSU94QWNjWk44b2pEeDE2aEpnTkprd0h2b0Rkb01LakpJcER3SGlGVk9UWTVoVHFQYjgyQW5tVWhQN0ltT0diNWZ1M2dENmd6SGtCd3k3M3FBQy9FTlJ3ZUFJMEhKNEFEWWNuUU1QaENkQndlQUkwSEZ1WEFHMi9JTlFMeUFTb3Y4NFdNa3ZJYk4vejNXWkZjZ0RoVVJFeUFmYkZmNE9HN2VtT21uOTEwTmtjQmNnRVdDSFoxemRJMko1dTMvdzloR3NQRU5JdS9KVkRXUGluUnRTOGVob216ZS9uQUQyQmJCRzB3aW9yeW1jckFGWnpmK1hnNXI0OWFmNTlSdm1xbndQMENqSUJURDNBdnJScGtyOXlKSmd2WENrZTZkSVcwbGVsTGplL0h3UjZnR0hxQWNUbUQ3UnkzL3c5aFdzUFVCLzJJNXpLTlg5YkU4NmpGSWJwTFNCZ05mNHJRdFg4Zmc3UUE4amJ3OXVzMGg3S3pqV01PLzM4cDBkTmVQOEFEY2ZXMVFWNDlBVC9ENWg5bkVydDI3Ym9BQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURJeExUQTJMVEV5VkRJeE9qSTFPalUzS3pBd09qQXdpWlM0UmdBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1UazROUzB4TUMweU5sUXdPRG94TlRvd01Dc3dNRG93TUNMTVV3Y0FBQUFaZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVsdFlXZGxVbVZoWkhseHlXVThBQUFBQUVsRlRrU3VRbUNDIiAvPjwvc3ZnPg=="); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("http://127.0.0.1:8000/static/script/jquery-ui/images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("http://127.0.0.1:8000/static/script/jquery-ui/images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI0MCI+PGRlZnM+PGZpbHRlciBpZD0iZGFya3JlYWRlci1pbWFnZS1maWx0ZXIiPjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwLjI0OSAtMC42MTQgLTAuNjcyIDAuMDAwIDEuMDM1IC0wLjY0NiAwLjI4OCAtMC42NjQgMC4wMDAgMS4wMjAgLTAuNjM2IC0wLjYwOSAwLjI1MCAwLjAwMCAwLjk5NCAwLjAwMCAwLjAwMCAwLjAwMCAxLjAwMCAwLjAwMCIgLz48L2ZpbHRlcj48L2RlZnM+PGltYWdlIHdpZHRoPSIyNTYiIGhlaWdodD0iMjQwIiBmaWx0ZXI9InVybCgjZGFya3JlYWRlci1pbWFnZS1maWx0ZXIpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRHdDQU1BQUFEWVNVcjVBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUJFVkJNVkVYTUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBRE1BQURNQUFETUFBQVd0MXFyQUFBQVduUlNUbE1BV0VkOElqS1k0YjNMZDJhY3NvbXFwVnBPZXVkQVpZVlRpMGFSbEdOaFRhQm9iWnR6djMzQXZPT3Q1ZW5rZ1k1ZDM5M2d1ZGJiMHNUVjFOZGkybkQrRGM2WmFmZzRLaFljeFhuUnA4aVQwTml2OE0yUWlMQzd4NnZqaThxRUFBQUFBV0pMUjBRQWlBVWRTQUFBQUFkMFNVMUZCK1VIRWhJMU5TbE5FaDRBQUE5clNVUkJWSGphN1YwTFk5dTJFUWJKU0tycG1KSWJ1VXViT0c2OUpuTTJMOGxlWGRkMWJkU21hK002cWJ1azYzci8vNGNNNEF1SE96ekVVcVpvRzU5c3lVZUFBTzdqQWJ3RFFGbUlpSWlJRVNDQlpOdE4yTEwrTUhJR2VqY3ZBYi8rQ1daQVpSNldFR0tCb0dBU1FOdGpwS3ZVQkI4QllCV0Fwd0p5ZnZubm9DWkJMWkFUa05EMkdPbjBDaklDNk9tOEFwWTVHWkFCMW42N0NwNTB6cUFndWYybDJ6SW4za3diQmJOZzNrUjZnYm1GZUs4d3R3QlBBNGEzQURzcHJJaytBdGpad0V6RVV6b3h3ZUhIZ0RYNHVOUzdBTzFDdzk4RnRvNmI3Z2hGUkVSRVJFUkVqQmlYN2dsdTJROUtXTFFHMUhsUDZCazB1eEhnSjZ3QzMzd0FteENTcFE5S2lhVUJqQUNXZ1dZM3c4V0VWVUFKOEVTWHF2UWhneUhXZm51TFBjbVdHWlhFYzdvSVRBRkNTY0JnMHdIY2dvWE5abzFvYlkzNWdNUXN6ZGVqdG0wQlZpU2VGdmVmRCtBOVpLdGpRQmpYL1M0UUVSRVJFUkVSRWJFOTlIUDhnNjVwc1B6ZWdVZlBBb0F2cDBLSDNMM2J4N2NEc0FZRlNnUC9FYTRlU1FhZXhUd2RYR24yQ3J3TnNLVDY2N2VWNENPSXBiUENtQWE4T2lDSjRFaHNHR1hsa1JQQWxiaEcvVHhjaGhBQmZBSUkvQnFFVC9ka01SV3NjNU01S3pNN0xkRExueldIMTRTOEhVallMSVF3YmpuZGI2TGhHcnFvRit6amxqMUU0RThQbEVndUJ3UXZTS0FDRU5ZNjNhbmJ2Z3RjOHZuaDIyUkVSRVJFUkVURVRVWC9iYWs5M1l6RXNodmRYYVRORHcwdVZRV3E3OWFBdFNyd3gvTnNiZFhTQUpRdThPTFVHbDZkeXV3T1RzQzZ2TThieVlwMDEyK0piNmtDdnJMQmVsRVJQd0l2VC9MV1dqYTdKMTRDQW52RGhkWE1mQXg0K1VzczB6MkI2UWNqbkczQzRlWUFXenNuRnNUQ1lVczB6aDdaRUdzMHdKNXFaWmlVVHMrMzJJRDdkRVlBYXdGdm5wbE91MWlZQUhzRG5KZHdyV1FXTUxzSnNLNnQ4eFY2NXdWZ1hZQjBrV0FYc1BmeXhKbURNZXpkSE1EeldBeE1tQVVJdGtJZklJQU1naVNWRFV1aEdSeGF2K1VhK1pQdHJYQVF1RTd3SHJBQW5ubmM4d0hiZmo0bUlpSWlJaUppMUxqY3V6aDNWTWlqc3BZek51dFloSXVEYnRrNzZnLzhDSTcrckdkZzF0WmFMeWNhMDh6Z0ZObktqbi9ocXp1QTdSWTNmY2RxYmRMemRIakExYmRrQUthd01LSlBMeUZnTDdNdkFlN251OHNrei9jRDJPWXp6UFZxMWw1ZmNOQ2NDNjdUTjA1QUUyNjZDRWdzNFRCdnVpZWU0dW0yMVdrZ3FlRFBEQnVrSUxHMGtJVzdnRTBVdkgzWVVocWRFUEh1V2JFU1FMdkV4c003UGFpcHlRUVduWm5QOTF2U2lXRHI5cGdReGsrQWtCRGgvV0hPNkxEb2xEd3hFb2hlUTV1QVF2TVAvdm1qYTRqcnJsOUVSRVJFeFBWR2VzVnZaQmEzQTN6TFZkUWIvalg2ajJrcHdMck1ZbnBmYVhBMUVGSlNxRmNVWWxTTElXenJza0R4aWxJMWhSUUZRMlo4bDBKbEFUcS9zQzZCTXdMSDBtMkFSeTkwZTczVTM0ak9EQUtnSXNHSVo2bUk5VTFnWEFSWWx0ODVRU21SS1FINFUxaGlOM1FzYWJ2WVdMckFHaGJBOHBzN05pcUNIQlpBOXlzMGRJOUdmNllqR3dOSUR1c01UYXF0aEk0QmxnMHlvekYvM1NaRHdoK09JUi9sVCswS2dlVXZoUUcvSzdNREE1eU9iaGVKM2dOOVNFWklRRjkwMFQ4aUlpSWk0bVloVTM1Q3RuNytXeE9KVzBPMWJpb2JONXY2Y3J3VDhOeGdwM0tWWENwbU5Ebno4M0ZMNUFDNXVFVUtRR2ZzU25GWE9HU2FLRzdYSUNjMEtzRmVVVXlSczFmK2JSQlN1a1Z6dnZ1NUVSZTFoZ3REMzdiRlZHWXJXN3QxZXRQcVNRNlRDZVFUb3dHQ0JSTjByNjFWcUE3TWJUVzJRVnBSRkdrRlFzak1JQUF4QU1wRUo3ckdIWU1BV2ZTK1JPdEtRMk1CcnZYdXFqaGQ0QVFtNzc1N0J6QUJ5K1hTL3dTR3dBU0lBQUc3Qm9HZ1ZFY0hKQ0VKSnFScW9FbjRnWUxMQW1BSzZFTlZYSThCZ0Jwb3RQaWdQUDFBRS9EdWU3dS9NUWk0ZS9jdTJ4N3Zsc2tCU29EUy8zMU1nR2xTSVBVM2JRdytTTlVMVlhoWHdXa0IrMHAxbU83cmVZQ3N0UCtXQUZVK21tS3JpdE1GeWk1dzd4N3VBa3NoTDRGOGIwL0l5dGV2SkVEcGYvdisrMjRDRW5KQUhrbVMvUVNGTUhCNGVPZ2VBMkJmTWlEMXh3U1VQeTBCNVNDSUNIaWd6bjd3b0Rsd1ZBMkNSMFFkZEFJbmdEMmlJUWdCSCtMNWlmbml0bnd2WEFUUUN1R2pFcWpDNCtOajBDYktMQ0RibjA3bG0rNENwZXdtNExoQ2ZTREo0YjA4dndNNWZrWUlkU0Y1NExmbEMrczdvUVJNQ0FGZ1dNQmM2Kzhob0MzdTR4TEU1Q1l0QWRRQ3N2MFN6U1ZpTXFneGRncEduOHp6OWk2UU4vWG5UZ3ZnQklTNkFFNnZ4c0NpemR3U2tKbjF0Y1ZWZmdDOEl4d2dGaEM2RFZidG1adHpNSm0rZFFOWE9ERG9MWEQxL0FBbG9HU2dFSnREbGkxS2RQRDFHSWVtNnhMT0RyMm1sWFkzcW45RVJFUkV4TWp4OEtFL1BRWHZ2RGFBYmVzalFhYkQzVWZsYmVwUkk5YkJkaHRqejJ0NTNwNWJ1U2E3YTh0Qy9JNjBwL0RlMTJTMGRVQU95ZHMyMWovTE5BTXo1VVdlNUZNVTdNZ216M2RhUjg1S1JhYVBQNnBkOFlZQmViSUNXV2t5UFp0Y3VZSnJ5OVgxYURVb2xET1h0dmYyVkhFN3g5ZjBNY0Jqb3I5eWxBNjEvc28zYjZOZnVqdWNPV1lDZmk5ZmU3aEJtYnpPR2NwdnJBM1MyRUw4UVp5S1ArTDROcGRDYnNqQ2xBOG1CMGhXN1Y4c1hBMkUydG12NWNiZ2tNWEp4aTVTN1RwV014WnRkTVVKcUdZSEVBRlBIang5ZHY4Qm1qYktwSDFudUQxZUF2NEVmNWF2djJBRmxldFBaQng4eU5oNGtsUGZ0NVZyWno2MTEvZXdFZEU0TUlPOWhlU2dFbmFhR1pzZEZ3SDFLSUFzWUEvK0NnOTFnNlQrYU1vdWJBRi9FNStJditzcHBXTmlBY2ZFQW82SkJTeU0yRVAyZ0dxUWF1TmJVdCtubGZScDI4QXltTWV4QTZneFFPc1hKdURKZ3c4L2tpKzcvclduamdsSW9aeDFhdVIvd0dmeTlVKzBZOExvNDZWOGg4Z292ZXkvRWg4NUNHaWl1OVJvRUxFZmdXR084akNaaWtNalhpUUVaSVJob24rN0k4SWtBTW1mZjNKM2R2ZGZYOVR5ZmxQYzducnl3cng2Z25XQldzYmk0OGRhVnJiZnpuZGFDUkFFYW85UUt0eVRra0FtdVIvVkRkWjNBYlhGU0xpNmhPcnVwRGkvTElqK1BJQlBzZjdpNlpkeStKdC8rYlFsUVBiLzFITStVM1RPQmxGemtwVk44aE0vZ0U1N0U5bjJEVEErZVVIMXA3ZEJVVzNxMHNubGlzRHRvajBmV0FrR2NuRUZVWFFJOEEwZktDSWlJaUppQzVqaWlXbmx5c0V4eS9OYy8zbkpXd3RWNkFIZXV4LzBhVUVLSy9tK3dyZm1FMEN1NXZ2dzFWZGZmdzFmb09ic0tmMUx5RC91M0ljblQrRCtuU2FkN0xkb3BodWErWVpXcGdmYTRJMzZUVG5NcHRNWEJnUCtMeGNMWVNITHlsRzBDWktCRmZYR0Q3WG45WTNDdjdVcnVwcktBaFlzdUduVGpkaVVQV1JkQjY4NmozUWRNeG5zNk1YQktrRUhWOG94WHNFTHkyN1pYMG1BY3JYUUdVcjM4dGMwQUUzQXQ5ODlmLzdkdDdvOVV3SEZBcS9zVUFLTUxTTlFUa2FoRFErcHFLWXFVdTFyWjJvK0JoSHdUSzNWNFFwWGluVVhBVFM4NU9xUzlMSkxJWXRhbGJMV1B6WHpRMm5ydSszcEwyWFNETG1yTUNFYk1zenp5M1ZRbEFGVTRDbmpPWUV0WUQ3SCs5WHpzek1WWG1vQ3BQNENUWUZSeG1td1lCZUppYmZ0YjJ3QTZWOWR3V1lNK0F4MkplQmxtNkVvalBQaHdFL0FrZnp6U1AwMHljckFwbkNJTElCRXI4K2U3VDg3ZzVPMndCZXFkYlBORVVBdDRQdFNibWJsYXYyMWd2bXF4S0Y1dWlZTTBnOE9EZzRNQXVvclczMGNTbnd1ZjhpR2g1VnpERGc3VXgwQUQ0SXZwdFBaQmdkQk1nWjhYNDhCTlFOSy84SUlSKytvOWg3cTAxZDdjSUlZVUFVZG9XR3ZtYnhwOVB2NDQvcUhHSWh6REpobVoyZG5jSVlab0xmQlRkOEZIcXVKV2QwZUdycXQ1bk05WVNWSFFQbVRhZ2JBK0dqKzNHME8wTnRnYVJFbEhHTUFUQlV3QWJacjJJY0FnclM4OW84YlA4Q3lSOUFjWWFXMXZFalZTUG04U1QxL2twaGY2eUxLVWFPV0pwbWEwc3VhRFJ2ZC9ZRHQ0K2pWcXlNa0x2WVVWK256bGpIYVlMWnpNaUlpSXFJWHBuaDM5T3NmMUJEencrdHROMnBBWEFCY3RNS1B6YWo3NDdhYk5SanVLWFh2MWNMcjZvNmozclVOTEdHSlQvaVB4WmtSbTl0NXRpejVYL1l2YUYxY3FBRHFvaGJlYUFMZXREbUkyMkR6SXdwTkNWdDZvQWVvREV0MVQxOTZ5NzlFM0tzVXZvY3FwNjRIYTA5S0R4VGFLQUliTjVYOGR2TFdYSjFsMVExSmdCd0JWQWg5WVZSdXRtR09GOFlxL2ZYeVltSHFiOXU2dTBnWFdMKzM4dTJ0a1dHNVJRS0s1bm9YYmdJSzB1VUJUbE9jaHZXM0VaQWFKbE51Tko4WTRiUkJRQWJMNVhJNFQxY3I3Q2FBbjRQMGw3b2JnMkp2Q3hoMkVDd05vSHBvcHRUaGxTYmdGY3BVK0F2QTZiM0hnR0dqTlRyb1BkWGlVNXlKbkVRWU1QanBmUmNRWXNBaGNLa1ZybHB3M29qbldFYzZCbUNwMlB6dTg2MEc2eitwYVZsNCtkTTIyekNtMllxSWlJaUlpSWhMUmdFKzhiSUJNK0xJclBXRVJCL3M3RkQ5d1NOZVBnRkFLREFJS05OU25LR1lwZXJOeUtCQzVrYWVWNW5jNFcxQmZPZUNKVU81UWpZZ0FTWUZKZ0ZWV3R2bTh2Skk5V2dHZ3dDY3pnbWd3U0tmRERBMzR3NUNBTjRNVEFrb3B6L3FScFlmTTl6bU9nTW1ZR2JSS2F5eElXN3kvd2VzUmNDQUZyQVdBUU5id0xCakFNWFd4NENCN3dKOHZtUExkNEVSWUx0K1FFUkVSRVRFelliL09iTHJqdlMvQW43K0hPM2RsRjdLeVEzNm5sejFIQ244WEtEbkdmTGlwZVVCaXNZM29kOS8wRlVlSFZid1AwbUFRTHVURlNzenhnQjlzbFR2MSs4bWp3MHBuQXJ4Y3lGTzhkUFdxME1aMFpyUDEycEZKZ2NUK2ROdTM0WURjeis3a3NHVUorbzFHYWw3bTlYNzVrLzBGY29Yb0hiYjd6a0lLTDhhTGRsdnZsOFBFa2dTZGFDUjk5VkxmLytlU3BkSGt2MlJFbEJhZ01RcHZ1SnFYRmdadTVNUkFWOVVhRTI4b3p3NnpNcDc0QUx0ZVpIQjZCUU9wdzRDcnQwZ21BT2NucHppWWIrYWp0QWhLV3o0UDF5T0RmbUZ2RDRYVi9LcCtZaUlpSWlJM3FEUEI0Umt1b21xcTl5MXZyNXlDUFQ1Z0pCTXQ5RjFsYnZXMTFjT1huOW84WG9kbVc2azdDcDNyYSt2SEFSOVB1Q05McUNSejVWdmVGN0wxVmJhTXYxVkt3T1ZoVFA5alU1LzQ2eGZnRGRkN2VnazZZSzJYK0RuSFh3QVhRRzBjbE9JcUZlRHo4L3g2bkFvUDA5bitmVVN1UzBkcjU3WlA4Rm9qL2psbDErRTJSNGh6dFpjWHdQMFRLOURWcjMzbkRRWU40amxGMHdoZjM1Q1FMQTlvdmwxeUdlVi9wc2pZSUcrZzg1Q2dPMnppMExCK2kwVzRyT0FNMUhwdnpZQjRTNmd2bjJyaTRtSHVnaUVDUFIyS1VIeVUxa3ljTmJtRDRJK0gyQVoxSnBCVUE5aWRKQUNLcnNIVmVzZ1NldW5nNnlaM3ZEamtsVWZhT1VnaHI2TjliMk5kcFhER05xUjZldElkWlhER05xVjdldEtkNVVqSWlJaUlpSWlQS2dkaDB1VFJ3L3kvd1BEOGpVa0FQd0VsQytzb1BBVElPZy9QUnczcXE4a0JJOU1DSUxtelNXVGYzODNka1FMdVBGandFMi9DMFJFUkVSRVJFUnNHc25WOFFTQ3V5QWg2NzdSTlNIL0gyak1TRVNncldzUVFLLzNWZEovRXhaQTliMVMrcHNXVUc1dkwxOE9BdHExTjFOZmcwTjE5clVkQTdJR3B2NzRpbGY2WHgwYjZHc0JWZjZycTM5ZkM3ankrdmU5Q3pqMHY3WmpRQUJhLzZ0akEwRUw2QUtsZC9NYkVURnkvQitPaTZaOUZ0MkhUd0FBQUNWMFJWaDBaR0YwWlRwamNtVmhkR1VBTWpBeU1TMHdOaTB4TWxReU1Ub3lOVG8xTnlzd01Eb3dNSW1VdUVZQUFBQWxkRVZZZEdSaGRHVTZiVzlrYVdaNUFERTVPRFV0TVRBdE1qWlVNRGc2TVRVNk1EQXJNREE2TURBaXpGTUhBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUFCSlJVNUVya0pnZ2c9PSIgLz48L3N2Zz4="); +} +.ui-button .ui-icon { + background-image: url("http://127.0.0.1:8000/static/script/jquery-ui/images/ui-icons_777777_256x240.png"); +} .ui-widget-overlay { background-image: initial; background-color: rgb(72, 78, 81); @@ -2910,8 +3505,24 @@ a.ui-button:active, .ui-widget-shadow { box-shadow: rgb(77, 83, 86) 0px 0px 5px; } +:root { + --primary-color: #335d88; + --darkreader-bg--secondary-color: #1f2223; + --darkreader-text--highlight-color: #e8e6e3; + --darkreader-border--border-color: #3e4446; + --label-red: #e35a57; + --label-blue: #4194bd; + --label-green: #50aa51; + --darkreader-bg--label-grey: #484e51; + --darkreader-text--label-grey: #b2aca2; + --label-yellow: #fdc82a; + --darkreader-bg--bs-body-color: #4f5659; + --darkreader-text--bs-body-color: #a69e92; + --darkreader-border--bs-body-color: #696257; +} .login-screen { - background-image: url("/static/img/paper_splash.jpg"); + background-image: url("http://127.0.0.1:8000/static/img/paper_splash.jpg"); + background-color: initial; color: rgb(221, 218, 214); } .login-container { @@ -2956,15 +3567,17 @@ a.ui-button:active, .progress-value { color: rgb(200, 195, 188); } +.navbar { + border-bottom-color: rgb(62, 68, 70); + background-color: var(--darkreader-bg--secondary-color); + box-shadow: rgba(0, 0, 0, 0.05) 0px 5px 5px; +} #navbar-barcode-li { border-left-color: initial; border-right-color: initial; } -.navbar-nav > li { - border-color: rgb(53, 57, 59); -} -.starred-part { - color: rgb(255, 194, 26); +.navbar-light .navbar-nav .nav-link { + color: var(--darkreader-text--bs-body-color); } .red-cell { background-color: rgb(121, 18, 18); @@ -2975,6 +3588,9 @@ a.ui-button:active, .icon-red { color: rgb(208, 97, 97); } +.icon-orange { + color: rgb(252, 193, 28); +} .icon-green { color: rgb(87, 195, 87); } @@ -2984,51 +3600,6 @@ a.ui-button:active, .icon-yellow { color: rgb(224, 224, 68); } -.label-large { - border-color: initial; - background-image: none; - background-color: initial; -} -.label-large-red { - color: rgb(228, 97, 94); - border-color: rgb(138, 25, 23); -} -.label-red { - background-image: initial; - background-color: rgb(145, 27, 24); -} -.label-large-blue { - color: rgb(85, 160, 196); - border-color: rgb(46, 104, 133); -} -.label-blue { - background-image: initial; - background-color: rgb(52, 118, 151); -} -.label-large-green { - color: rgb(101, 183, 102); - border-color: rgb(58, 122, 58); -} -.label-green { - background-image: initial; - background-color: rgb(64, 136, 65); -} -.label-large-grey { - color: rgb(178, 172, 162); - border-color: rgb(72, 78, 81); -} -.label-grey { - background-image: initial; - background-color: rgb(72, 78, 81); -} -.label-large-yellow { - color: rgb(253, 203, 55); - border-color: rgb(165, 124, 2); -} -.label-yellow { - background-image: initial; - background-color: rgb(178, 134, 2); -} .stock-sub-group td { background-color: rgb(25, 45, 45); } @@ -3047,11 +3618,6 @@ a.ui-button:active, .rowinherited { background-color: rgb(34, 36, 38); } -.filter-list { - background-image: initial; - background-color: rgb(34, 36, 38); - border-color: rgb(53, 57, 59); -} .filter-list .close:hover { background-image: initial; background-color: rgb(62, 68, 70); @@ -3083,33 +3649,72 @@ a.ui-button:active, background-image: initial; background-color: rgb(34, 36, 38); } -.badge { - background-color: rgb(90, 97, 101); - color: rgb(232, 230, 227); +.navigation { + background-color: var(--darkreader-bg--secondary-color); } -.badge-alert { - background-color: rgb(173, 0, 0); +.search-autocomplete-item { + border-top-color: rgb(53, 57, 59); } -.badge-orange { - background-color: rgb(202, 149, 2); +.modal-error { + border-color: rgb(117, 0, 0); + background-color: rgb(40, 26, 26); } -.badge-green { - background-color: rgb(14, 136, 14); +.modal-header { + color: var(--darkreader-text--bs-body-color); + background-color: var(--darkreader-bg--secondary-color); + border-bottom: 1px solid var(--darkreader-border--border-color); } -.part-thumb { - border-color: rgb(58, 62, 65); +.modal-footer { + border-top-color: rgb(58, 62, 65); +} +.modal-close { + color: rgb(223, 220, 216); +} +.modal-close:hover, +.modal-close:focus { + color: rgb(189, 183, 175); + text-decoration-color: initial; +} +.modal-image-content { + color: rgb(200, 195, 188); +} +.modal-image { + background-color: rgba(0, 0, 0, 0.85); +} +.form-panel { + border-color: rgb(62, 68, 70); +} +.form-field-error { + color: rgb(194, 102, 100); } input[type="submit"] { color: rgb(200, 195, 188); background-color: rgb(38, 41, 43); border-color: rgb(71, 77, 80); } -.modal .btn-secondary { - background-color: rgb(75, 100, 108); +.sidebar-list-group-item { + background-color: var(--darkreader-bg--secondary-color); + color: var(--darkreader-text--bs-body-color); +} +.sidebar-list-group-item.active { + color: var(--darkreader-text--highlight-color); + background-color: var(--darkreader-bg--bs-body-color); + border-color: initial; } .help-inline { color: rgb(238, 90, 90); } +.notes { + background-color: rgb(27, 29, 30); +} +.btn-secondary { + background-color: var(--darkreader-bg--bs-body-color); + border-color: var(--darkreader-border--bs-body-color); +} +.btn-outline-secondary { + color: var(--darkreader-text--bs-body-color); + border-color: var(--darkreader-border--bs-body-color); +} .btn-remove { color: rgb(238, 90, 90); } @@ -3120,10 +3725,15 @@ input[type="submit"] { color: rgb(90, 144, 238); } .panel-heading { - background-color: rgb(27, 29, 30); + color: var(--darkreader-text--bs-body-color); + background-color: var(--darkreader-bg--secondary-color); + box-shadow: rgba(0, 0, 0, 0.05) 0px 5px 5px; + border-bottom: 1px solid var(--darkreader-border--border-color); } -.panel-inventree { - box-shadow: rgb(43, 47, 49) 1px 1px; +.panel { + box-shadow: rgb(43, 47, 49) 2px 2px; + background-color: rgb(24, 26, 27); + border-color: rgb(62, 68, 70); } .warning-msg { color: rgb(255, 37, 37); @@ -3140,11 +3750,26 @@ input[type="submit"] { .part-allocation-overallocated { background-color: rgb(0, 66, 82); } -.treeview .node-disabled { - color: rgb(192, 187, 179); +.clip-btn { + color: var(--darkreader-text--label-grey); + background-image: none; + background-color: initial; } -.node-part-tree:not(.node-disabled):hover { - background-color: rgb(30, 32, 33); +.clip-btn:hover { + background: var(--darkreader-bg--label-grey); +} +.sidebar-nav a { + color: var(--darkreader-text--bs-body-color); +} +.product-card { + background-color: transparent; +} +.borderless { + border-color: initial; +} +a { + text-decoration-color: initial; + background-color: transparent; } /* Override Style */ @@ -3159,3 +3784,11 @@ input[type="submit"] { a[href="https://coinmarketcap.com/"] > svg[width="94"][height="16"] > path { fill: var(--darkreader-neutral-text) !important; } +#edge-translate-panel-body, +.MuiTypography-body1 { + color: var(--darkreader-neutral-text) !important; +} +gr-main-header { + background-color: #0f3a48 !important; +} +embed[type="application/pdf"] { filter: invert(100%) contrast(90%); } diff --git a/InvenTree/common/admin.py b/InvenTree/common/admin.py index 4df2499177..c5950a0c0a 100644 --- a/InvenTree/common/admin.py +++ b/InvenTree/common/admin.py @@ -12,11 +12,31 @@ class SettingsAdmin(ImportExportModelAdmin): list_display = ('key', 'value') + def get_readonly_fields(self, request, obj=None): + """ + Prevent the 'key' field being edited once the setting is created + """ + + if obj: + return ['key'] + else: + return [] + class UserSettingsAdmin(ImportExportModelAdmin): list_display = ('key', 'value', 'user', ) + def get_readonly_fields(self, request, obj=None): + """ + Prevent the 'key' field being edited once the setting is created + """ + + if obj: + return ['key'] + else: + return [] + class NotificationEntryAdmin(admin.ModelAdmin): diff --git a/InvenTree/common/apps.py b/InvenTree/common/apps.py index 34b43fc68b..5f88b3c634 100644 --- a/InvenTree/common/apps.py +++ b/InvenTree/common/apps.py @@ -1,10 +1,30 @@ # -*- coding: utf-8 -*- +import logging + from django.apps import AppConfig +logger = logging.getLogger('inventree') + + class CommonConfig(AppConfig): name = 'common' def ready(self): - pass + + self.clear_restart_flag() + + def clear_restart_flag(self): + """ + Clear the SERVER_RESTART_REQUIRED setting + """ + + try: + import common.models + + if common.models.InvenTreeSetting.get_setting('SERVER_RESTART_REQUIRED'): + logger.info("Clearing SERVER_RESTART_REQUIRED flag") + common.models.InvenTreeSetting.set_setting('SERVER_RESTART_REQUIRED', False, None) + except: + pass diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 374cac24af..51b4bfd00d 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -63,13 +63,15 @@ class BaseInvenTreeSetting(models.Model): Enforce validation and clean before saving """ + self.key = str(self.key).upper() + self.clean() self.validate_unique() super().save() @classmethod - def allValues(cls, user=None): + def allValues(cls, user=None, exclude_hidden=False): """ Return a dict of "all" defined global settings. @@ -94,9 +96,15 @@ class BaseInvenTreeSetting(models.Model): for key in cls.GLOBAL_SETTINGS.keys(): if key.upper() not in settings: - settings[key.upper()] = cls.get_setting_default(key) + if exclude_hidden: + hidden = cls.GLOBAL_SETTINGS[key].get('hidden', False) + + if hidden: + # Remove hidden items + del settings[key.upper()] + for key, value in settings.items(): validator = cls.get_setting_validator(key) @@ -545,6 +553,17 @@ class InvenTreeSetting(BaseInvenTreeSetting): even if that key does not exist. """ + def save(self, *args, **kwargs): + """ + When saving a global setting, check to see if it requires a server restart. + If so, set the "SERVER_RESTART_REQUIRED" setting to True + """ + + super().save() + + if self.requires_restart(): + InvenTreeSetting.set_setting('SERVER_REQUIRES_RESTART', True, None) + """ Dict of all global settings values: @@ -563,6 +582,14 @@ class InvenTreeSetting(BaseInvenTreeSetting): GLOBAL_SETTINGS = { + 'SERVER_RESTART_REQUIRED': { + 'name': _('Restart required'), + 'description': _('A setting has been changed which requires a server restart'), + 'default': False, + 'validator': bool, + 'hidden': True, + }, + 'INVENTREE_INSTANCE': { 'name': _('InvenTree Instance Name'), 'default': 'InvenTree server', @@ -936,6 +963,18 @@ class InvenTreeSetting(BaseInvenTreeSetting): return self.__class__.get_setting(self.key) + def requires_restart(self): + """ + Return True if this setting requires a server restart after changing + """ + + options = InvenTreeSetting.GLOBAL_SETTINGS.get(self.key, None) + + if options: + return options.get('requires_restart', False) + else: + return False + class InvenTreeUserSetting(BaseInvenTreeSetting): """ @@ -1269,9 +1308,6 @@ def get_price(instance, quantity, moq=True, multiples=True, currency=None, break class ColorTheme(models.Model): """ Color Theme Setting """ - - default_color_theme = ('', _('Default')) - name = models.CharField(max_length=20, default='', blank=True) @@ -1291,10 +1327,7 @@ class ColorTheme(models.Model): # Get color themes choices (CSS sheets) choices = [(file_name.lower(), _(file_name.replace('-', ' ').title())) for file_name, file_ext in files_list - if file_ext == '.css' and file_name.lower() != 'default'] - - # Add default option as empty option - choices.insert(0, cls.default_color_theme) + if file_ext == '.css'] return choices diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.mo b/InvenTree/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..71cbdf3e9d Binary files /dev/null and b/InvenTree/locale/pt/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..487219d34c --- /dev/null +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,8423 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-13 22:45+1100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InvenTree/api.py:64 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:110 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:124 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59 +#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:594 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:136 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:137 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:168 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:169 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:176 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:177 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:209 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:230 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:234 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:254 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:430 +#, python-brace-format +msgid "Duplicate serial: {n}" +msgstr "" + +#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440 +#: stock/views.py:1264 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:440 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468 +#: InvenTree/helpers.py:493 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:498 +#, python-brace-format +msgid "Duplicate serial: {g}" +msgstr "" + +#: InvenTree/helpers.py:506 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:510 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:109 stock/models.py:1875 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:110 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:112 templates/js/translated/attachment.js:91 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:112 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1170 +#: common/models.py:1171 part/models.py:2219 part/models.py:2239 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2054 +msgid "User" +msgstr "" + +#: InvenTree/models.py:122 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:165 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:175 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:178 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:192 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:227 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415 +#: label/models.py:112 part/models.py:741 part/models.py:2403 +#: part/templates/part/detail.html:25 report/models.py:181 +#: templates/js/translated/company.js:637 templates/js/translated/part.js:497 +#: templates/js/translated/part.js:634 templates/js/translated/part.js:1271 +#: templates/js/translated/stock.js:1847 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:250 build/models.py:207 +#: build/templates/build/detail.html:25 company/models.py:354 +#: company/models.py:570 company/templates/company/manufacturer_part.html:80 +#: company/templates/company/supplier_part.html:81 label/models.py:119 +#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30 +#: part/templates/part/set_category.html:14 report/models.py:194 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:213 +#: templates/js/translated/bom.js:425 templates/js/translated/build.js:1621 +#: templates/js/translated/company.js:344 +#: templates/js/translated/company.js:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:673 +#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069 +#: templates/js/translated/part.js:556 templates/js/translated/part.js:744 +#: templates/js/translated/part.js:913 templates/js/translated/part.js:1290 +#: templates/js/translated/part.js:1359 templates/js/translated/stock.js:1121 +#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:251 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:259 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:62 part/models.py:2688 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:251 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:654 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:655 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:656 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:657 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:658 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:659 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:660 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:661 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:662 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:663 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:664 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:665 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:666 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:667 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:668 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:669 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:670 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:671 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:672 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:94 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:98 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:101 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:311 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:313 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 +#: order/templates/order/sales_order_base.html:147 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:269 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:271 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:273 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:274 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:277 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:282 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:286 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:288 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:190 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:294 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:297 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:312 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:23 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:51 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:64 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:78 InvenTree/validators.py:92 +#: InvenTree/validators.py:106 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:114 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:133 InvenTree/validators.py:149 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:151 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:158 +msgid "Overage must be an integer value or a percentage" +msgstr "" + +#: InvenTree/views.py:536 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:585 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:15 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:630 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:863 templates/navbar.html:97 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:53 barcodes/api.py:150 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:126 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:128 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:153 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:160 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:190 +msgid "Barcode already matches StockItem object" +msgstr "" + +#: barcodes/api.py:194 +msgid "Barcode already matches StockLocation object" +msgstr "" + +#: barcodes/api.py:198 +msgid "Barcode already matches Part object" +msgstr "" + +#: barcodes/api.py:204 barcodes/api.py:216 +msgid "Barcode hash already matches StockItem object" +msgstr "" + +#: barcodes/api.py:222 +msgid "Barcode associated with StockItem" +msgstr "" + +#: build/forms.py:36 build/models.py:1283 +#: build/templates/build/build_base.html:124 +#: build/templates/build/detail.html:35 common/models.py:1210 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/forms.py:102 order/models.py:729 order/models.py:991 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237 +#: part/forms.py:253 part/forms.py:269 part/models.py:2590 +#: part/templates/part/bom_upload/match_parts.html:31 +#: part/templates/part/detail.html:1128 part/templates/part/detail.html:1214 +#: part/templates/part/part_pricing.html:16 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:156 stock/serializers.py:275 +#: stock/templates/stock/item_base.html:256 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:440 +#: templates/js/translated/build.js:235 templates/js/translated/build.js:435 +#: templates/js/translated/build.js:629 templates/js/translated/build.js:639 +#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362 +#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183 +#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268 +#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:1502 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1703 templates/js/translated/stock.js:347 +#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141 +msgid "Quantity" +msgstr "" + +#: build/forms.py:37 +msgid "Enter quantity for build output" +msgstr "" + +#: build/forms.py:41 order/forms.py:96 stock/forms.py:95 +#: stock/serializers.py:296 templates/js/translated/stock.js:194 +#: templates/js/translated/stock.js:348 +msgid "Serial Numbers" +msgstr "" + +#: build/forms.py:43 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/forms.py:49 +msgid "Confirm creation of build output" +msgstr "" + +#: build/forms.py:70 +msgid "Confirm deletion of build output" +msgstr "" + +#: build/forms.py:94 +msgid "Mark build as complete" +msgstr "" + +#: build/forms.py:107 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:107 build/views.py:65 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:133 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:137 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/translated/build.js:397 +msgid "Build Order" +msgstr "" + +#: build/models.py:138 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:42 +#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145 +#: users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:198 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:199 order/models.py:249 order/models.py:556 +#: order/models.py:736 part/models.py:2599 +#: part/templates/part/bom_upload/match_parts.html:30 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 +#: templates/js/translated/bom.js:432 templates/js/translated/build.js:1119 +#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451 +msgid "Reference" +msgstr "" + +#: build/models.py:210 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:219 build/templates/build/build_base.html:156 +#: build/templates/build/detail.html:88 +msgid "Parent Build" +msgstr "" + +#: build/models.py:220 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:225 build/templates/build/build_base.html:119 +#: build/templates/build/detail.html:30 company/models.py:705 +#: order/models.py:789 order/models.py:860 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 +#: part/models.py:2165 part/models.py:2181 part/models.py:2200 +#: part/models.py:2217 part/models.py:2319 part/models.py:2441 +#: part/models.py:2574 part/models.py:2881 part/templates/part/detail.html:336 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:86 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:212 +#: templates/js/translated/bom.js:390 templates/js/translated/build.js:620 +#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359 +#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:426 +#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435 +#: templates/js/translated/part.js:725 templates/js/translated/part.js:891 +#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078 +#: templates/js/translated/stock.js:2129 +msgid "Part" +msgstr "" + +#: build/models.py:233 +msgid "Select part to build" +msgstr "" + +#: build/models.py:238 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:242 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:247 templates/js/translated/build.js:1347 +msgid "Source Location" +msgstr "" + +#: build/models.py:251 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:256 +msgid "Destination Location" +msgstr "" + +#: build/models.py:260 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:264 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:267 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:271 +msgid "Completed items" +msgstr "" + +#: build/models.py:273 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:277 part/templates/part/part_base.html:216 +msgid "Build Status" +msgstr "" + +#: build/models.py:281 +msgid "Build status code" +msgstr "" + +#: build/models.py:285 stock/models.py:545 +msgid "Batch Code" +msgstr "" + +#: build/models.py:289 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:292 order/models.py:165 part/models.py:936 +#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082 +msgid "Creation Date" +msgstr "" + +#: build/models.py:296 order/models.py:578 +msgid "Target completion date" +msgstr "" + +#: build/models.py:297 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:300 order/models.py:291 +#: templates/js/translated/build.js:1697 +msgid "Completion Date" +msgstr "" + +#: build/models.py:306 +msgid "completed by" +msgstr "" + +#: build/models.py:314 templates/js/translated/build.js:1668 +msgid "Issued by" +msgstr "" + +#: build/models.py:315 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:323 build/templates/build/build_base.html:177 +#: build/templates/build/detail.html:116 order/models.py:179 +#: order/templates/order/order_base.html:154 +#: order/templates/order/sales_order_base.html:161 part/models.py:940 +#: report/templates/report/inventree_build_order_base.html:159 +#: templates/js/translated/build.js:1680 +msgid "Responsible" +msgstr "" + +#: build/models.py:324 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:329 build/templates/build/detail.html:102 +#: company/templates/company/manufacturer_part.html:87 +#: company/templates/company/supplier_part.html:88 +#: part/templates/part/detail.html:80 stock/models.py:539 +#: stock/templates/stock/item_base.html:346 +msgid "External Link" +msgstr "" + +#: build/models.py:330 part/models.py:798 stock/models.py:541 +msgid "Link to external URL" +msgstr "" + +#: build/models.py:334 build/serializers.py:200 company/models.py:142 +#: company/models.py:577 order/models.py:183 order/models.py:738 +#: part/models.py:925 part/templates/part/detail.html:223 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:611 +#: stock/models.py:1775 stock/models.py:1881 stock/serializers.py:314 +#: stock/serializers.py:573 templates/js/translated/barcode.js:58 +#: templates/js/translated/bom.js:596 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561 +#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340 +msgid "Notes" +msgstr "" + +#: build/models.py:335 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:710 +msgid "No build output specified" +msgstr "" + +#: build/models.py:713 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:716 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1108 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1117 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1127 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1133 order/models.py:964 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1139 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1193 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1253 stock/templates/stock/item_base.html:318 +#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599 +#: templates/navbar.html:32 +msgid "Build" +msgstr "" + +#: build/models.py:1254 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1270 build/serializers.py:327 +#: stock/templates/stock/item_base.html:8 +#: stock/templates/stock/item_base.html:16 +#: stock/templates/stock/item_base.html:340 +#: templates/js/translated/build.js:408 templates/js/translated/build.js:413 +#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742 +#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161 +#: templates/js/translated/stock.js:1990 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1271 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1284 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1292 +msgid "Install into" +msgstr "" + +#: build/models.py:1293 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:136 build/serializers.py:356 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:145 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:149 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:153 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:157 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 order/serializers.py:216 order/serializers.py:284 +#: stock/forms.py:236 stock/serializers.py:307 stock/serializers.py:675 +#: stock/templates/stock/item_base.html:286 +#: templates/js/translated/barcode.js:384 +#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420 +#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348 +#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276 +#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180 +#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221 +#: templates/js/translated/stock.js:1931 +msgid "Location" +msgstr "" + +#: build/serializers.py:190 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:196 build/templates/build/build_base.html:129 +#: build/templates/build/detail.html:63 order/models.py:572 +#: order/serializers.py:237 stock/templates/stock/item_base.html:409 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655 +#: templates/js/translated/order.js:431 templates/js/translated/order.js:677 +#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157 +msgid "Status" +msgstr "" + +#: build/serializers.py:212 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:258 build/serializers.py:307 part/models.py:2714 +#: part/models.py:2873 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:268 +msgid "Build output" +msgstr "" + +#: build/serializers.py:277 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:318 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:333 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:347 order/models.py:316 order/serializers.py:230 +#: stock/models.py:382 stock/models.py:1104 stock/serializers.py:287 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:389 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:395 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:402 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:430 +msgid "Allocation items must be provided" +msgstr "" + +#: build/tasks.py:92 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:207 build/views.py:56 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +#: build/templates/build/build_base.html:223 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:79 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:86 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:93 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:98 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:103 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:108 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:138 +#: build/templates/build/detail.html:132 +#: order/templates/order/order_base.html:140 +#: order/templates/order/sales_order_base.html:140 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690 +#: templates/js/translated/order.js:1087 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:143 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:143 +#: build/templates/build/build_base.html:188 +#: order/templates/order/order_base.html:81 +#: order/templates/order/order_base.html:102 +#: order/templates/order/sales_order_base.html:78 +#: order/templates/order/sales_order_base.html:107 +#: templates/js/translated/table_filters.js:276 +#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:321 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:150 +#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: templates/js/translated/build.js:1641 +#: templates/js/translated/table_filters.js:286 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:95 order/models.py:857 +#: order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: order/templates/order/sales_order_ship.html:25 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:280 +#: templates/js/translated/order.js:1029 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:170 +#: build/templates/build/detail.html:109 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:215 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:216 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/build_output_create.html:7 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: build/templates/build/build_output_create.html:8 +msgid "Build outputs must be generated individually." +msgstr "" + +#: build/templates/build/build_output_create.html:9 +msgid "Multiple build outputs will be created based on the quantity specified." +msgstr "" + +#: build/templates/build/build_output_create.html:15 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: build/templates/build/build_output_create.html:16 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/complete.html:8 +msgid "Build Order is complete" +msgstr "" + +#: build/templates/build/complete.html:12 +msgid "Build Order is incomplete" +msgstr "" + +#: build/templates/build/complete.html:15 +msgid "Incompleted build outputs remain" +msgstr "" + +#: build/templates/build/complete.html:18 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/templates/build/complete.html:21 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/templates/build/detail.html:16 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:39 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:44 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150 +#: templates/js/translated/order.js:432 templates/js/translated/order.js:952 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:57 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:74 templates/js/translated/build.js:647 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:81 +#: stock/templates/stock/item_base.html:304 +#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164 +#: templates/js/translated/table_filters.js:133 +#: templates/js/translated/table_filters.js:215 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:127 +#: order/templates/order/order_base.html:127 +#: order/templates/order/sales_order_base.html:134 +#: templates/js/translated/build.js:1663 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:138 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:147 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:158 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:173 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:178 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:181 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:184 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:185 +#: company/templates/company/detail.html:38 +#: company/templates/company/detail.html:85 order/views.py:509 +#: part/templates/part/category.html:166 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:197 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:201 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:208 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:218 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:227 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:231 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:232 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:246 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:250 +msgid "Complete selected items" +msgstr "" + +#: build/templates/build/detail.html:251 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:266 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:278 +#: order/templates/order/purchase_order_detail.html:60 +#: order/templates/order/sales_order_detail.html:52 +#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:294 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:298 build/templates/build/detail.html:489 +#: company/templates/company/detail.html:188 +#: company/templates/company/detail.html:215 +#: order/templates/order/purchase_order_detail.html:80 +#: order/templates/order/purchase_order_detail.html:108 +#: order/templates/order/sales_order_detail.html:72 +#: order/templates/order/sales_order_detail.html:99 +#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115 +#: stock/templates/stock/item.html:205 +msgid "Edit Notes" +msgstr "" + +#: build/templates/build/detail.html:448 +#: order/templates/order/purchase_order_detail.html:170 +#: order/templates/order/sales_order_detail.html:160 +#: part/templates/part/detail.html:1075 stock/templates/stock/item.html:270 +#: templates/attachment_button.html:4 +msgid "Add Attachment" +msgstr "" + +#: build/templates/build/detail.html:467 +#: order/templates/order/purchase_order_detail.html:142 +#: order/templates/order/sales_order_detail.html:133 +#: part/templates/part/detail.html:1029 stock/templates/stock/item.html:238 +msgid "Edit Attachment" +msgstr "" + +#: build/templates/build/detail.html:474 +#: order/templates/order/purchase_order_detail.html:149 +#: order/templates/order/sales_order_detail.html:139 +#: part/templates/part/detail.html:1038 stock/templates/stock/item.html:247 +#: templates/js/translated/order.js:1243 +msgid "Confirm Delete Operation" +msgstr "" + +#: build/templates/build/detail.html:475 +#: order/templates/order/purchase_order_detail.html:150 +#: order/templates/order/sales_order_detail.html:140 +#: part/templates/part/detail.html:1039 stock/templates/stock/item.html:248 +msgid "Delete Attachment" +msgstr "" + +#: build/templates/build/detail.html:513 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:514 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:435 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/views.py:76 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:88 +msgid "Create Build Output" +msgstr "" + +#: build/views.py:106 +msgid "Maximum output quantity is " +msgstr "" + +#: build/views.py:122 stock/serializers.py:345 stock/views.py:1290 +msgid "Serial numbers already exist" +msgstr "" + +#: build/views.py:131 +msgid "Serial numbers required for trackable build output" +msgstr "" + +#: build/views.py:197 +msgid "Delete Build Output" +msgstr "" + +#: build/views.py:218 +msgid "Confirm unallocation of build stock" +msgstr "" + +#: build/views.py:219 stock/views.py:385 +msgid "Check the confirmation box" +msgstr "" + +#: build/views.py:231 +msgid "Build output does not match build" +msgstr "" + +#: build/views.py:233 +msgid "Build output must be specified" +msgstr "" + +#: build/views.py:245 +msgid "Build output deleted" +msgstr "" + +#: build/views.py:261 +msgid "Complete Build Order" +msgstr "" + +#: build/views.py:267 +msgid "Build order cannot be completed - incomplete outputs remain" +msgstr "" + +#: build/views.py:278 +msgid "Completed build order" +msgstr "" + +#: build/views.py:319 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:67 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:69 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:78 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 templates/js/translated/attachment.js:54 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:338 common/models.py:955 common/models.py:1163 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:340 +msgid "Settings value" +msgstr "" + +#: common/models.py:375 +msgid "Must be an integer value" +msgstr "" + +#: common/models.py:380 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:403 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:414 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:437 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:544 +msgid "No group" +msgstr "" + +#: common/models.py:586 +msgid "Restart required" +msgstr "" + +#: common/models.py:587 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:594 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:596 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:600 +msgid "Use instance name" +msgstr "" + +#: common/models.py:601 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:607 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:608 +msgid "Internal company name" +msgstr "" + +#: common/models.py:613 +msgid "Base URL" +msgstr "" + +#: common/models.py:614 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:620 +msgid "Default Currency" +msgstr "" + +#: common/models.py:621 +msgid "Default currency" +msgstr "" + +#: common/models.py:627 +msgid "Download from URL" +msgstr "" + +#: common/models.py:628 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:634 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:635 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:641 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:642 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:646 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:647 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:653 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:654 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:660 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:661 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:667 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:668 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:674 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:675 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:681 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:682 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:688 part/models.py:2443 report/models.py:187 +#: templates/js/translated/table_filters.js:38 +#: templates/js/translated/table_filters.js:355 +msgid "Template" +msgstr "" + +#: common/models.py:689 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:695 part/models.py:888 +#: templates/js/translated/table_filters.js:150 +#: templates/js/translated/table_filters.js:367 +msgid "Assembly" +msgstr "" + +#: common/models.py:696 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:702 part/models.py:894 +#: templates/js/translated/table_filters.js:371 +msgid "Component" +msgstr "" + +#: common/models.py:703 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:709 part/models.py:905 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:710 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:716 part/models.py:910 +#: templates/js/translated/table_filters.js:379 +msgid "Salable" +msgstr "" + +#: common/models.py:717 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:723 part/models.py:900 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:383 +msgid "Trackable" +msgstr "" + +#: common/models.py:724 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:730 part/models.py:920 +#: part/templates/part/part_base.html:144 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "" + +#: common/models.py:731 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:737 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:738 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:744 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:745 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:756 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:757 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:763 +msgid "Show related parts" +msgstr "" + +#: common/models.py:764 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:770 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:771 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:777 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:778 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:784 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:785 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:791 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:792 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:799 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:800 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:806 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:807 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:813 +msgid "Page Size" +msgstr "" + +#: common/models.py:814 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:824 +msgid "Test Reports" +msgstr "" + +#: common/models.py:825 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:831 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:832 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:838 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:839 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:845 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:846 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:848 +msgid "days" +msgstr "" + +#: common/models.py:853 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:854 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:860 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:861 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:867 +msgid "Group by Part" +msgstr "" + +#: common/models.py:868 +msgid "Group stock items by part reference in table views" +msgstr "" + +#: common/models.py:874 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:875 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:880 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:881 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:885 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:886 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:891 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:892 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:898 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:899 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:904 +msgid "Enable registration" +msgstr "" + +#: common/models.py:905 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:910 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:911 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:916 +msgid "Email required" +msgstr "" + +#: common/models.py:917 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:922 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:923 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:928 +msgid "Mail twice" +msgstr "" + +#: common/models.py:929 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:934 +msgid "Password twice" +msgstr "" + +#: common/models.py:935 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:940 +msgid "Group on signup" +msgstr "" + +#: common/models.py:941 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:986 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:987 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:992 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:993 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:998 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:999 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1004 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1005 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1011 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1012 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1017 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1018 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1023 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1024 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1029 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1030 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1035 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1036 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1041 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1042 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1047 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1048 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1053 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1054 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1059 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1060 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1065 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1066 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1071 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1072 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1077 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1078 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1083 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1084 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1089 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1090 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1096 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1097 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1103 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1104 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1110 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1111 +msgid "Number of results to show in search preview window" +msgstr "" + +#: common/models.py:1117 +msgid "Search Show Stock" +msgstr "" + +#: common/models.py:1118 +msgid "Display stock levels in search preview window" +msgstr "" + +#: common/models.py:1124 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1125 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1131 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1132 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1138 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1139 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1145 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1146 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1211 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1218 company/serializers.py:263 +#: company/templates/company/supplier_part.html:256 +#: templates/js/translated/part.js:1507 +msgid "Price" +msgstr "" + +#: common/models.py:1219 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/purchase_order_detail.html:24 order/views.py:289 +#: part/templates/part/bom_upload/upload_file.html:51 +#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281 +#: part/views.py:923 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282 +#: part/views.py:924 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:46 +#: part/templates/part/bom_upload/match_fields.html:27 +#: part/templates/part/bom_upload/match_parts.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 +#: part/templates/part/import_wizard/match_fields.html:27 +#: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:44 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:88 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:43 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:109 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 company/models.py:348 company/models.py:564 +#: order/models.py:163 part/models.py:797 +#: report/templates/report/inventree_build_order_base.html:165 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 +msgid "Link" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:807 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:269 +#: company/templates/company/company_base.html:76 stock/serializers.py:161 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:485 +#: stock/templates/stock/item_base.html:224 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 order/views.py:912 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:116 +#: company/templates/company/manufacturer_part.html:93 +#: company/templates/company/supplier_part.html:104 +#: stock/templates/stock/item_base.html:353 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:228 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 templates/js/translated/part.js:229 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 +#: company/templates/company/supplier_part.html:112 +#: templates/js/translated/company.js:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:852 +#: templates/js/translated/part.js:239 +msgid "MPN" +msgstr "" + +#: company/models.py:343 templates/js/translated/part.js:240 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:363 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1868 templates/js/translated/company.js:643 +#: templates/js/translated/part.js:643 templates/js/translated/stock.js:848 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:882 part/models.py:2411 +#: part/templates/part/detail.html:59 templates/js/translated/company.js:649 +#: templates/js/translated/part.js:649 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:121 +#: company/templates/company/supplier_part.html:94 order/models.py:263 +#: order/templates/order/order_base.html:108 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 +#: part/bom.py:247 stock/templates/stock/item_base.html:370 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:660 +#: templates/js/translated/part.js:209 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 templates/js/translated/part.js:210 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:98 +#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839 +#: templates/js/translated/part.js:220 +msgid "SKU" +msgstr "" + +#: company/models.py:552 templates/js/translated/part.js:221 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:126 +#: part/models.py:2602 report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1748 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1748 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:119 +#: stock/models.py:508 stock/templates/stock/item_base.html:311 +#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1750 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/serializers.py:69 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:70 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +#: templates/js/translated/order.js:121 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:27 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +#: company/templates/company/company_base.html:148 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:48 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:51 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:81 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:95 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:126 order/models.py:567 +#: order/templates/order/sales_order_base.html:114 stock/models.py:526 +#: stock/models.py:527 stock/templates/stock/item_base.html:263 +#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051 +#: templates/js/translated/stock.js:1972 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:194 +#: part/templates/part/part_base.html:342 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:19 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:20 +#: company/templates/company/manufacturer_part.html:112 +#: part/templates/part/detail.html:468 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:79 +#: company/templates/company/manufacturer_part.html:121 +#: company/templates/company/manufacturer_part.html:150 +#: part/templates/part/category.html:160 part/templates/part/detail.html:477 +#: part/templates/part/detail.html:505 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 +#: part/templates/part/category.html:166 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:43 +#: company/templates/company/detail.html:90 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:66 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:67 part/templates/part/detail.html:495 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:107 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:117 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252 +#: templates/InvenTree/search.html:203 templates/navbar.html:44 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:122 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:143 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283 +#: templates/InvenTree/search.html:223 templates/navbar.html:55 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:148 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:168 +#: templates/js/translated/build.js:999 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:383 +#: company/templates/company/manufacturer_part.html:209 +#: part/templates/part/detail.html:548 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:384 +#: company/templates/company/manufacturer_part.html:210 +#: part/templates/part/detail.html:549 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: templates/navbar.html:43 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +#: templates/js/translated/company.js:561 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +#: templates/js/translated/company.js:562 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:70 +#: company/templates/company/supplier_part.html:71 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:108 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194 +#: templates/navbar.html:42 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:123 +#: part/templates/part/detail.html:479 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:123 +#: company/templates/company/manufacturer_part.html:152 +#: company/templates/company/manufacturer_part.html:248 +#: part/templates/part/detail.html:351 part/templates/part/detail.html:479 +#: part/templates/part/detail.html:507 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:204 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:137 +#: part/templates/part/detail.html:277 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:141 +#: part/templates/part/detail.html:282 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:65 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:152 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:185 +#: part/templates/part/detail.html:989 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:233 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:245 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:493 +#: stock/templates/stock/item_base.html:375 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +#: templates/js/translated/company.js:859 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +#: templates/js/translated/company.js:860 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148 +#: templates/js/translated/stock.js:324 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:175 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:290 +#: part/templates/part/prices.html:271 part/views.py:1782 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1844 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1830 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:156 templates/js/translated/part.js:425 +#: templates/js/translated/part.js:560 templates/js/translated/part.js:785 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:479 +#: templates/js/translated/stock.js:1132 templates/navbar.html:25 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +msgid "Pricing" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:214 +#: templates/navbar.html:54 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:649 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:681 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:688 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:697 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:57 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:298 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:291 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:322 report/models.py:459 report/models.py:497 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:26 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:37 order/templates/order/order_base.html:59 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/forms.py:70 +msgid "Ship order" +msgstr "" + +#: order/forms.py:98 +msgid "Enter stock item serial numbers" +msgstr "" + +#: order/forms.py:104 +msgid "Enter quantity of stock items" +msgstr "" + +#: order/models.py:161 +msgid "Order description" +msgstr "" + +#: order/models.py:163 +msgid "Link to external page" +msgstr "" + +#: order/models.py:171 +msgid "Created By" +msgstr "" + +#: order/models.py:178 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:183 +msgid "Order notes" +msgstr "" + +#: order/models.py:250 order/models.py:557 +msgid "Order reference" +msgstr "" + +#: order/models.py:255 order/models.py:572 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:264 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:267 order/templates/order/order_base.html:114 +#: templates/js/translated/order.js:669 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:267 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:274 +msgid "received by" +msgstr "" + +#: order/models.py:279 +msgid "Issue Date" +msgstr "" + +#: order/models.py:280 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:285 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:286 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:292 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:321 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:431 +msgid "Quantity must be an integer" +msgstr "" + +#: order/models.py:435 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:568 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:574 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:574 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:579 +msgid "Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:582 templates/js/translated/order.js:1092 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:589 +msgid "shipped by" +msgstr "" + +#: order/models.py:633 +msgid "SalesOrder cannot be shipped as it is not currently pending" +msgstr "" + +#: order/models.py:730 +msgid "Item quantity" +msgstr "" + +#: order/models.py:736 +msgid "Line item reference" +msgstr "" + +#: order/models.py:738 +msgid "Line item notes" +msgstr "" + +#: order/models.py:768 order/models.py:856 +#: templates/js/translated/order.js:1144 +msgid "Order" +msgstr "" + +#: order/models.py:769 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:325 +#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270 +#: templates/js/translated/stock.js:1953 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:790 +msgid "Supplier part" +msgstr "" + +#: order/models.py:797 order/templates/order/order_base.html:147 +#: order/templates/order/sales_order_base.html:154 +#: templates/js/translated/order.js:429 templates/js/translated/order.js:932 +msgid "Received" +msgstr "" + +#: order/models.py:798 +msgid "Number of items received" +msgstr "" + +#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:620 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:332 +#: templates/js/translated/stock.js:1324 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:806 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:814 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:866 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:867 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:946 order/models.py:948 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:952 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:954 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:957 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:961 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:967 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:975 +msgid "Line" +msgstr "" + +#: order/models.py:987 +msgid "Item" +msgstr "" + +#: order/models.py:988 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:991 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:166 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:285 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:241 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:242 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:259 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:297 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:314 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:325 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:567 +msgid "Sale price currency" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:93 +#: order/templates/order/sales_order_base.html:98 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:103 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:133 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:203 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "Cancelling this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/bom_upload/match_fields.html:9 +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +#: part/templates/part/bom_upload/match_fields.html:20 +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/bom_upload/match_fields.html:29 +#: part/templates/part/bom_upload/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/bom_upload/match_fields.html:35 +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/bom_upload/match_fields.html:42 +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +#: part/templates/part/bom_upload/match_fields.html:60 +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/bom_upload/match_fields.html:71 +#: part/templates/part/bom_upload/match_parts.html:53 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251 +#: templates/js/translated/order.js:377 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/bom_upload/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/bom_upload/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:16 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:24 +#: part/templates/part/bom_upload/upload_file.html:20 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:22 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:54 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:18 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:27 +#: order/templates/order/purchase_order_detail.html:216 +#: order/templates/order/sales_order_detail.html:23 +#: order/templates/order/sales_order_detail.html:191 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:31 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:50 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:76 +#: order/templates/order/sales_order_detail.html:68 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:67 order/views.py:222 +msgid "Ship Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:86 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:121 +#: templates/js/translated/order.js:1064 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:194 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: order/templates/order/sales_order_ship.html:9 +#: part/templates/part/bom_duplicate.html:12 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:18 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_ship.html:10 +msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted." +msgstr "" + +#: order/templates/order/sales_order_ship.html:12 +msgid "Ensure that the order allocation is correct before shipping the order." +msgstr "" + +#: order/templates/order/sales_order_ship.html:18 +msgid "Some line items in this order have been over-allocated" +msgstr "" + +#: order/templates/order/sales_order_ship.html:20 +msgid "Ensure that this is correct before shipping the order." +msgstr "" + +#: order/templates/order/sales_order_ship.html:27 +msgid "Shipping this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/so_allocate_by_serial.html:9 +msgid "Allocate stock items by serial number" +msgstr "" + +#: order/views.py:103 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:112 order/views.py:138 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:115 order/views.py:141 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:129 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:155 +msgid "Issue Order" +msgstr "" + +#: order/views.py:164 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:174 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:185 +msgid "Complete Order" +msgstr "" + +#: order/views.py:201 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:212 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:238 +msgid "Confirm order shipment" +msgstr "" + +#: order/views.py:244 +msgid "Could not ship order" +msgstr "" + +#: order/views.py:291 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:535 +msgid "Update prices" +msgstr "" + +#: order/views.py:793 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:846 +msgid "Allocate Serial Numbers" +msgstr "" + +#: order/views.py:891 +#, python-brace-format +msgid "Allocated {n} items" +msgstr "" + +#: order/views.py:907 +msgid "Select line item" +msgstr "" + +#: order/views.py:938 +#, python-brace-format +msgid "No matching item for serial {serial}" +msgstr "" + +#: order/views.py:948 +#, python-brace-format +msgid "{serial} is not in stock" +msgstr "" + +#: order/views.py:956 +#, python-brace-format +msgid "{serial} already allocated to an order" +msgstr "" + +#: order/views.py:1072 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:1078 +msgid "Price not found" +msgstr "" + +#: order/views.py:1081 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:1086 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:731 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:735 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:750 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:81 part/models.py:816 +#: part/templates/part/category.html:90 part/templates/part/detail.html:104 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 part/templates/part/part_base.html:167 +msgid "Available Stock" +msgstr "" + +#: part/forms.py:63 +msgid "File Format" +msgstr "" + +#: part/forms.py:63 +msgid "Select output file format" +msgstr "" + +#: part/forms.py:65 +msgid "Cascading" +msgstr "" + +#: part/forms.py:65 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: part/forms.py:67 +msgid "Levels" +msgstr "" + +#: part/forms.py:67 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: part/forms.py:69 +msgid "Include Parameter Data" +msgstr "" + +#: part/forms.py:69 +msgid "Include part parameters data in exported BOM" +msgstr "" + +#: part/forms.py:71 +msgid "Include Stock Data" +msgstr "" + +#: part/forms.py:71 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: part/forms.py:73 +msgid "Include Manufacturer Data" +msgstr "" + +#: part/forms.py:73 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: part/forms.py:75 +msgid "Include Supplier Data" +msgstr "" + +#: part/forms.py:75 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: part/forms.py:96 part/models.py:2441 +msgid "Parent Part" +msgstr "" + +#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +msgid "Select parent part to copy BOM from" +msgstr "" + +#: part/forms.py:103 +msgid "Clear existing BOM items" +msgstr "" + +#: part/forms.py:109 +msgid "Confirm BOM duplication" +msgstr "" + +#: part/forms.py:127 +msgid "validate" +msgstr "" + +#: part/forms.py:127 +msgid "Confirm that the BOM is correct" +msgstr "" + +#: part/forms.py:170 +msgid "Related Part" +msgstr "" + +#: part/forms.py:177 +msgid "Select part category" +msgstr "" + +#: part/forms.py:214 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:218 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:238 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:82 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:85 +msgid "Default keywords" +msgstr "" + +#: part/models.py:85 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:95 part/models.py:2487 part/templates/part/category.html:11 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:96 part/templates/part/category.html:117 +#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:358 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:13 part/templates/part/category.html:122 +#: part/templates/part/category.html:142 templates/InvenTree/index.html:85 +#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1303 +#: templates/navbar.html:18 templates/stats.html:80 templates/stats.html:89 +#: users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:450 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:502 part/models.py:514 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:611 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:615 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:620 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:715 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:740 +msgid "Part name" +msgstr "" + +#: part/models.py:747 +msgid "Is Template" +msgstr "" + +#: part/models.py:748 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:758 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:759 +msgid "Variant Of" +msgstr "" + +#: part/models.py:765 +msgid "Part description" +msgstr "" + +#: part/models.py:770 part/templates/part/category.html:97 +#: part/templates/part/detail.html:73 +msgid "Keywords" +msgstr "" + +#: part/models.py:771 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:778 part/models.py:2237 part/models.py:2486 +#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15 +#: templates/InvenTree/settings/settings.html:163 +#: templates/js/translated/part.js:927 +msgid "Category" +msgstr "" + +#: part/models.py:779 +msgid "Part category" +msgstr "" + +#: part/models.py:784 part/templates/part/detail.html:45 +#: templates/js/translated/part.js:548 +msgid "IPN" +msgstr "" + +#: part/models.py:785 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:791 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200 +#: templates/js/translated/part.js:552 +msgid "Revision" +msgstr "" + +#: part/models.py:814 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:861 part/templates/part/detail.html:113 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:862 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:869 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:870 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:875 part/templates/part/part_base.html:178 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:876 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:883 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:889 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:895 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:901 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:906 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:911 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:915 templates/js/translated/table_filters.js:34 +#: templates/js/translated/table_filters.js:82 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:350 +msgid "Active" +msgstr "" + +#: part/models.py:916 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:921 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:926 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:929 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:929 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:932 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:934 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:938 +msgid "Creation User" +msgstr "" + +#: part/models.py:1750 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2287 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2304 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2324 templates/js/translated/part.js:1354 +#: templates/js/translated/stock.js:828 +msgid "Test Name" +msgstr "" + +#: part/models.py:2325 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2330 +msgid "Test Description" +msgstr "" + +#: part/models.py:2331 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2336 templates/js/translated/part.js:1363 +#: templates/js/translated/table_filters.js:258 +msgid "Required" +msgstr "" + +#: part/models.py:2337 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2342 templates/js/translated/part.js:1371 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2343 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2348 templates/js/translated/part.js:1378 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2349 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2360 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2396 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2404 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2411 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2443 part/models.py:2492 part/models.py:2493 +#: templates/InvenTree/settings/settings.html:158 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2445 +msgid "Data" +msgstr "" + +#: part/models.py:2445 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2497 templates/InvenTree/settings/settings.html:167 +msgid "Default Value" +msgstr "" + +#: part/models.py:2498 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2575 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2583 +msgid "Sub part" +msgstr "" + +#: part/models.py:2584 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2590 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2592 templates/js/translated/bom.js:451 +#: templates/js/translated/bom.js:525 +msgid "Optional" +msgstr "" + +#: part/models.py:2592 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2595 +msgid "Overage" +msgstr "" + +#: part/models.py:2596 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2599 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2602 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2604 +msgid "Checksum" +msgstr "" + +#: part/models.py:2604 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2608 templates/js/translated/bom.js:542 +#: templates/js/translated/bom.js:549 +#: templates/js/translated/table_filters.js:68 +msgid "Inherited" +msgstr "" + +#: part/models.py:2609 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2614 templates/js/translated/bom.js:534 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2615 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2700 stock/models.py:372 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2709 part/models.py:2711 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:2840 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:2862 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:2874 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:2882 +msgid "Substitute part" +msgstr "" + +#: part/models.py:2893 +msgid "Part 1" +msgstr "" + +#: part/models.py:2897 +msgid "Part 2" +msgstr "" + +#: part/models.py:2897 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:2929 +msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" +msgstr "" + +#: part/tasks.py:53 +msgid "Low stock notification" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has changed, and must be validated.
" +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:383 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/bom_duplicate.html:13 +msgid "This part already has a Bill of Materials" +msgstr "" + +#: part/templates/part/bom_upload/match_parts.html:29 +msgid "Select Part" +msgstr "" + +#: part/templates/part/bom_upload/upload_file.html:12 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/bom_upload/upload_file.html:32 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/bom_upload/upload_file.html:34 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/bom_upload/upload_file.html:34 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/bom_upload/upload_file.html:35 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/bom_validate.html:6 +#, python-format +msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s" +msgstr "" + +#: part/templates/part/bom_validate.html:9 +msgid "This will validate each line in the BOM." +msgstr "" + +#: part/templates/part/category.html:24 part/templates/part/category.html:28 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:32 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:38 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:43 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:44 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:49 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:57 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:58 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:67 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:79 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:84 +msgid "Category Description" +msgstr "" + +#: part/templates/part/category.html:103 part/templates/part/category.html:194 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:108 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:145 +msgid "Export Part Data" +msgstr "" + +#: part/templates/part/category.html:146 part/templates/part/category.html:170 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:149 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:150 templates/js/translated/bom.js:39 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:164 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:164 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:168 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:170 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:184 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:261 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:288 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category_delete.html:5 +msgid "Are you sure you want to delete category" +msgstr "" + +#: part/templates/part/category_delete.html:8 +#, python-format +msgid "This category contains %(count)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:9 +msgid "If this category is deleted, these child categories will be moved to the" +msgstr "" + +#: part/templates/part/category_delete.html:11 +msgid "category" +msgstr "" + +#: part/templates/part/category_delete.html:13 +msgid "top level Parts category" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "This category contains %(count)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:27 +#, python-format +msgid "If this category is deleted, these parts will be moved to the parent category %(path)s" +msgstr "" + +#: part/templates/part/category_delete.html:29 +msgid "If this category is deleted, these parts will be moved to the top-level category Teile" +msgstr "" + +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:364 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:16 +msgid "Part Details" +msgstr "" + +#: part/templates/part/detail.html:66 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/detail.html:97 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/detail.html:124 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:136 +#, python-format +msgid "Showing stock for all variants of %(full_name)s" +msgstr "" + +#: part/templates/part/detail.html:146 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:151 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:208 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:249 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:253 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:254 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:281 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:315 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:319 part/templates/part/detail.html:320 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:366 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:371 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:375 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:377 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:387 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:389 templates/js/translated/part.js:266 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:392 part/views.py:820 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:398 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:399 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:412 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:429 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:454 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:464 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:491 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:507 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:692 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:693 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:744 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:882 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:939 +msgid "Edit Part Notes" +msgstr "" + +#: part/templates/part/detail.html:1091 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1103 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1115 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1204 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:52 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:15 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:28 +#: stock/templates/stock/location.html:29 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:45 +#: stock/templates/stock/item_base.html:32 +#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:32 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:51 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:56 +#: stock/templates/stock/item_base.html:103 +#: stock/templates/stock/location.html:40 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:63 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:69 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:84 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:87 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:90 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:93 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:109 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:113 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:117 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:121 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:125 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:129 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:143 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:136 +#: templates/js/translated/company.js:504 +#: templates/js/translated/company.js:761 +#: templates/js/translated/model_renderers.js:175 +#: templates/js/translated/part.js:463 templates/js/translated/part.js:540 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:155 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524 +#: templates/js/translated/table_filters.js:170 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:185 templates/js/translated/part.js:960 +msgid "On Order" +msgstr "" + +#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:199 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:206 +msgid "Allocated to Orders" +msgstr "" + +#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:563 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:227 templates/js/translated/part.js:792 +#: templates/js/translated/part.js:964 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:363 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +#: templates/js/translated/bom.js:517 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +"
Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:511 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1853 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:473 +#: templates/js/translated/part.js:427 templates/js/translated/part.js:782 +#: templates/js/translated/part.js:968 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:106 +msgid "Unknown database" +msgstr "" + +#: part/views.py:95 +msgid "Add Related Part" +msgstr "" + +#: part/views.py:150 +msgid "Delete Related Part" +msgstr "" + +#: part/views.py:161 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:211 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:283 +msgid "Match References" +msgstr "" + +#: part/views.py:567 +msgid "None" +msgstr "" + +#: part/views.py:626 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:728 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:754 +msgid "Updated part image" +msgstr "" + +#: part/views.py:757 +msgid "Part image not found" +msgstr "" + +#: part/views.py:769 +msgid "Duplicate BOM" +msgstr "" + +#: part/views.py:799 +msgid "Confirm duplication of BOM from parent" +msgstr "" + +#: part/views.py:841 +msgid "Confirm that the BOM is valid" +msgstr "" + +#: part/views.py:852 +msgid "Validated Bill of Materials" +msgstr "" + +#: part/views.py:925 +msgid "Match Parts" +msgstr "" + +#: part/views.py:1261 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1313 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:1320 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:1329 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:1478 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:1488 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:1495 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1554 templates/js/translated/part.js:309 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1592 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1598 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1607 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1708 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1764 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1786 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1862 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1870 +msgid "Delete Internal Price Break" +msgstr "" + +#: report/api.py:234 report/api.py:278 +#, python-brace-format +msgid "Template file '{filename}' is missing or does not exist" +msgstr "" + +#: report/models.py:182 +msgid "Template name" +msgstr "" + +#: report/models.py:188 +msgid "Report template file" +msgstr "" + +#: report/models.py:195 +msgid "Report template description" +msgstr "" + +#: report/models.py:201 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:292 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:299 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:323 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:331 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:332 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:382 +msgid "Build Filters" +msgstr "" + +#: report/models.py:383 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:425 +msgid "Part Filters" +msgstr "" + +#: report/models.py:426 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:460 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:498 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:531 stock/templates/stock/item_base.html:238 +#: templates/js/translated/build.js:233 templates/js/translated/build.js:637 +#: templates/js/translated/build.js:1013 +#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1856 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:1862 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2147 +msgid "Serial" +msgstr "" + +#: stock/api.py:418 +msgid "Quantity is required" +msgstr "" + +#: stock/forms.py:91 stock/forms.py:265 stock/models.py:588 +#: stock/templates/stock/item_base.html:382 +#: templates/js/translated/stock.js:1246 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:92 stock/forms.py:266 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:95 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:150 +msgid "Destination for serialized stock (by default, will remain in current location)" +msgstr "" + +#: stock/forms.py:152 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:152 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:154 stock/forms.py:238 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:194 +msgid "Stock item to install" +msgstr "" + +#: stock/forms.py:224 +msgid "Must not exceed available quantity" +msgstr "" + +#: stock/forms.py:236 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:240 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:240 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:60 stock/models.py:625 +#: stock/templates/stock/item_base.html:422 +msgid "Owner" +msgstr "" + +#: stock/models.py:61 stock/models.py:626 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:353 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:389 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:399 stock/models.py:408 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:400 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:422 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:428 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:435 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:477 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:486 +msgid "Base part" +msgstr "" + +#: stock/models.py:494 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:499 stock/templates/stock/location.html:12 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:502 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:509 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:514 stock/templates/stock/item_base.html:271 +msgid "Installed In" +msgstr "" + +#: stock/models.py:517 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:533 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:547 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:551 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:560 +msgid "Source Build" +msgstr "" + +#: stock/models.py:562 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:573 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:576 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:582 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:589 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:602 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:602 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:612 stock/templates/stock/item.html:111 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:621 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:631 +msgid "Scheduled for deletion" +msgstr "" + +#: stock/models.py:632 +msgid "This StockItem will be deleted by the background worker" +msgstr "" + +#: stock/models.py:1095 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1101 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1107 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1110 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1113 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1120 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1278 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:1776 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:1833 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:1839 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:1857 +msgid "Test name" +msgstr "" + +#: stock/models.py:1863 templates/js/translated/table_filters.js:248 +msgid "Test result" +msgstr "" + +#: stock/models.py:1869 +msgid "Test output value" +msgstr "" + +#: stock/models.py:1876 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:1882 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:155 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:162 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:276 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:291 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:297 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:308 stock/serializers.py:676 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:315 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:328 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:546 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:574 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:584 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/templates/stock/item.html:18 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:29 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:48 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:55 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:64 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:72 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:76 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:133 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:137 stock/views.py:515 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item.html:363 +msgid "Edit Test Result" +msgstr "" + +#: stock/templates/stock/item.html:377 +msgid "Delete Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:35 +#: templates/js/translated/barcode.js:330 +#: templates/js/translated/barcode.js:335 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:37 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:46 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:65 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:69 +#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:78 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:82 +#: stock/templates/stock/location.html:53 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:85 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:88 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:91 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:91 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:106 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:109 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:111 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:114 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:136 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/table_filters.js:229 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:146 +#: stock/templates/stock/item_base.html:388 +#: templates/js/translated/table_filters.js:235 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:168 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:169 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:182 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:190 +#, python-format +msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)" +msgstr "" + +#: stock/templates/stock/item_base.html:198 +#, python-format +msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)" +msgstr "" + +#: stock/templates/stock/item_base.html:204 +msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:208 +msgid "This stock item cannot be deleted as it has child items" +msgstr "" + +#: stock/templates/stock/item_base.html:212 +msgid "This stock item will be automatically deleted when all stock is depleted." +msgstr "" + +#: stock/templates/stock/item_base.html:241 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:247 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:290 +#: templates/js/translated/build.js:1035 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:297 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:339 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:357 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:386 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:388 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:395 +#: templates/js/translated/stock.js:1259 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:400 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:404 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:415 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:504 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_install.html:8 +msgid "Install another Stock Item into this item." +msgstr "" + +#: stock/templates/stock/item_install.html:11 +#: stock/templates/stock/item_install.html:24 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: stock/templates/stock/item_install.html:14 +msgid "The Stock Item links to a Part which is in the BOM for this Stock Item" +msgstr "" + +#: stock/templates/stock/item_install.html:15 +msgid "The Stock Item is currently in stock" +msgstr "" + +#: stock/templates/stock/item_install.html:16 +msgid "The Stock Item is serialized and does not belong to another item" +msgstr "" + +#: stock/templates/stock/item_install.html:21 +msgid "Install this Stock Item in another stock item." +msgstr "" + +#: stock/templates/stock/item_install.html:27 +msgid "The part associated to this Stock Item belongs to another part's BOM" +msgstr "" + +#: stock/templates/stock/item_install.html:28 +msgid "This Stock Item is serialized and does not belong to another item" +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:33 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:61 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:63 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:65 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:75 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:76 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:86 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:95 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:113 +#: stock/templates/stock/location.html:160 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:118 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158 +#: templates/js/translated/stock.js:1871 templates/stats.html:93 +#: templates/stats.html:102 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170 +#: templates/stats.html:97 users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location.html:167 templates/stock_table.html:30 +msgid "Printing Actions" +msgstr "" + +#: stock/templates/stock/location.html:171 templates/stock_table.html:34 +msgid "Print labels" +msgstr "" + +#: stock/templates/stock/location_delete.html:7 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:162 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:269 stock/views.py:891 stock/views.py:1017 +#: stock/views.py:1299 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:284 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:303 +msgid "Assign to Customer" +msgstr "" + +#: stock/views.py:312 +msgid "Customer must be specified" +msgstr "" + +#: stock/views.py:336 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:345 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:356 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:367 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:384 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:489 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:663 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:760 templates/js/translated/stock.js:618 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:771 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:793 templates/js/translated/stock.js:288 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:943 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:1044 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:1186 templates/js/translated/stock.js:268 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:1268 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1368 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1381 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1392 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1399 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1408 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/search.html:22 +msgid "Enter a search query" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:43 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:47 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:61 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:28 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:39 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:89 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/settings.html:65 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:65 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:148 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:170 +#: templates/InvenTree/settings/settings.html:269 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:171 +#: templates/InvenTree/settings/settings.html:270 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:249 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:11 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:16 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:28 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:51 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:71 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:73 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:81 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:82 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:83 +#: templates/InvenTree/settings/user.html:150 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:90 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:91 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:98 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:108 +msgid "Enter e-mail address" +msgstr "" + +#: templates/InvenTree/settings/user.html:110 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:120 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:125 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:159 +msgid "There are no social network accounts connected to your InvenTree account" +msgstr "" + +#: templates/InvenTree/settings/user.html:164 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:174 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:183 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user.html:199 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user.html:208 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user.html:214 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user.html:221 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user.html:222 +#, python-format +msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:230 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:25 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:35 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:46 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 +#: templates/js/translated/bom.js:280 templates/js/translated/modals.js:53 +#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 +#: templates/js/translated/modals.js:964 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:5 templates/account/login.html:14 +#: templates/account/login.html:37 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:19 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:23 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:40 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:46 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/base.html:94 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:97 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:99 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/bom.js:464 templates/js/translated/build.js:1129 +#: templates/js/translated/build.js:1749 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:7 +#, python-format +msgid " The available stock for %(part)s has fallen below the configured minimum level" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:191 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:192 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:215 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:216 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:27 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:95 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:115 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:29 +msgid "Scan barcode data here using wedge scanner" +msgstr "" + +#: templates/js/translated/barcode.js:31 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:35 +msgid "Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:53 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:54 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:92 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:113 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:140 +#: templates/js/translated/modals.js:1024 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:233 +msgid "Scan barcode data below" +msgstr "" + +#: templates/js/translated/barcode.js:280 templates/navbar.html:65 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:291 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:309 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:332 +msgid "This will remove the association between this stock item and the barcode" +msgstr "" + +#: templates/js/translated/barcode.js:338 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:439 +msgid "Check Stock Items into Location" +msgstr "" + +#: templates/js/translated/barcode.js:443 +#: templates/js/translated/barcode.js:573 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:612 +msgid "Error transferring stock" +msgstr "" + +#: templates/js/translated/barcode.js:507 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:511 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:518 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:525 +msgid "Barcode does not match Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:568 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:633 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:183 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:225 +msgid "Select and add a new variant item using the input below" +msgstr "" + +#: templates/js/translated/bom.js:236 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:242 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:281 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:282 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:401 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:405 templates/js/translated/build.js:1111 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:410 +msgid "Open subassembly" +msgstr "" + +#: templates/js/translated/bom.js:482 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:497 +msgid "Purchase Price Range" +msgstr "" + +#: templates/js/translated/bom.js:504 +msgid "Purchase Price Average" +msgstr "" + +#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:642 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:605 templates/js/translated/build.js:1183 +#: templates/js/translated/order.js:1298 +msgid "Actions" +msgstr "" + +#: templates/js/translated/bom.js:613 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:615 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:617 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:619 templates/js/translated/bom.js:792 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:621 templates/js/translated/bom.js:775 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:714 templates/js/translated/build.js:855 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:770 +msgid "Are you sure you want to delete this BOM item?" +msgstr "" + +#: templates/js/translated/build.js:78 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:112 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:133 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:144 +msgid "Unallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:153 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:161 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:184 +msgid "Are you sure you wish to unallocate stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:202 +msgid "Unallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:220 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:221 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:275 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:291 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:386 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:603 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760 +#: templates/js/translated/order.js:1305 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1306 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1072 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:1082 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:1095 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/build.js:1107 +msgid "Substitute parts available" +msgstr "" + +#: templates/js/translated/build.js:1124 +msgid "Quantity Per" +msgstr "" + +#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360 +#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:1194 templates/stock_table.html:52 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1262 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134 +#: templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1334 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1348 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1377 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1378 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1389 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:1451 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:1576 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:1593 templates/js/translated/part.js:872 +#: templates/js/translated/part.js:1264 templates/js/translated/stock.js:1064 +#: templates/js/translated/stock.js:1841 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:1613 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:1686 +msgid "No information" +msgstr "" + +#: templates/js/translated/build.js:1737 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/translated/company.js:65 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:99 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:108 +msgid "Delete Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:164 templates/js/translated/order.js:90 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:192 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:207 +msgid "Edit Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:217 +msgid "Delete Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:264 +msgid "Edit Company" +msgstr "" + +#: templates/js/translated/company.js:285 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:362 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:371 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:385 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:404 +msgid "The following manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:421 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:476 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:447 +#: templates/js/translated/part.js:532 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:451 +#: templates/js/translated/part.js:536 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:627 templates/js/translated/part.js:624 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:664 templates/js/translated/part.js:666 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:665 templates/js/translated/part.js:667 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:684 templates/js/translated/part.js:684 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:695 templates/js/translated/part.js:696 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:733 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:412 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:413 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:204 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:284 +msgid "Reload data" +msgstr "" + +#: templates/js/translated/filters.js:296 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:299 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:322 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364 +#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:351 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:366 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:380 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:394 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:679 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1071 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:1457 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1661 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:1878 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/helpers.js:19 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:21 +msgid "NO" +msgstr "" + +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:594 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 +msgid "No labels found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/label.js:80 +msgid "Select Stock Locations" +msgstr "" + +#: templates/js/translated/label.js:81 +msgid "Stock location(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:99 +msgid "No labels found which match selected stock location(s)" +msgstr "" + +#: templates/js/translated/label.js:135 +msgid "Part(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:154 +msgid "No labels found which match the selected part(s)" +msgstr "" + +#: templates/js/translated/label.js:228 +msgid "stock items selected" +msgstr "" + +#: templates/js/translated/label.js:236 +msgid "Select Label" +msgstr "" + +#: templates/js/translated/label.js:251 +msgid "Select Label Template" +msgstr "" + +#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119 +#: templates/js/translated/modals.js:593 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118 +#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:117 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:380 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:539 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:592 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:649 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:915 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:915 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:927 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1024 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1039 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1040 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1063 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/model_renderers.js:40 +msgid "Company ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:77 +msgid "Stock ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:130 +msgid "Location ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:147 +msgid "Build ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:182 +msgid "Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:236 +msgid "Order ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:256 +msgid "Category ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:293 +msgid "Manufacturer Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:322 +msgid "Supplier Part ID" +msgstr "" + +#: templates/js/translated/order.js:48 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/order.js:73 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/order.js:208 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393 +msgid "Format" +msgstr "" + +#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/order.js:300 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/order.js:301 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/order.js:326 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/order.js:427 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/order.js:428 +msgid "Ordered" +msgstr "" + +#: templates/js/translated/order.js:430 +msgid "Receive" +msgstr "" + +#: templates/js/translated/order.js:449 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/order.js:450 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/order.js:627 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:801 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470 +#: templates/js/translated/part.js:1481 templates/js/translated/part.js:1692 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:976 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:980 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:1017 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/order.js:1055 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/order.js:1133 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/order.js:1226 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1244 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1286 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:1535 +msgid "Fulfilled" +msgstr "" + +#: templates/js/translated/order.js:1579 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:1585 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:1596 +msgid "Delete line item " +msgstr "" + +#: templates/js/translated/order.js:1719 +msgid "Allocate Stock Item" +msgstr "" + +#: templates/js/translated/order.js:1779 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1793 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/part.js:50 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:54 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:58 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:62 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:76 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:166 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:174 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:181 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:193 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:202 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:258 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:259 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:267 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:274 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:275 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:288 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:332 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:401 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:403 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:408 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:410 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:439 templates/js/translated/part.js:524 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:443 templates/js/translated/part.js:528 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:455 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:459 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:574 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:763 templates/js/translated/part.js:1007 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:932 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:363 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1199 +#: templates/js/translated/stock.js:1802 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:1043 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:1218 templates/js/translated/stock.js:1821 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:1282 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:1296 templates/js/translated/stock.js:1865 +msgid "Path" +msgstr "" + +#: templates/js/translated/part.js:1340 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:1391 templates/js/translated/stock.js:786 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:787 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/part.js:1398 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:1420 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1434 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1459 +#, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1514 +#, python-brace-format +msgid "Edit ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1515 +#, python-brace-format +msgid "Delete ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1616 +msgid "Single Price" +msgstr "" + +#: templates/js/translated/part.js:1635 +msgid "Single Price Difference" +msgstr "" + +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:136 templates/js/translated/report.js:189 +#: templates/js/translated/report.js:243 templates/js/translated/report.js:297 +#: templates/js/translated/report.js:351 +msgid "No Reports Found" +msgstr "" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/stock.js:70 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:90 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:126 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:189 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:195 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:338 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:351 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:390 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:401 +msgid "Include Sublocations" +msgstr "" + +#: templates/js/translated/stock.js:402 +msgid "Include stock items in sublocations" +msgstr "" + +#: templates/js/translated/stock.js:444 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:445 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:451 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:452 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:456 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:457 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:461 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:462 users/models.py:200 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:466 templates/stock_table.html:56 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:555 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:555 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:595 +msgid "You must select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:753 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:755 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:760 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:782 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:808 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:865 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:972 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:976 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:980 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:984 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:990 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1148 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:1153 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:1156 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:1160 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:1162 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:1166 +msgid "Stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:1170 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:1177 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:1179 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:1181 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:1185 +#: templates/js/translated/table_filters.js:165 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:1235 +msgid "Stocktake" +msgstr "" + +#: templates/js/translated/stock.js:1308 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:1346 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1455 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1482 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1484 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1658 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:1672 +msgid "Select Status Code" +msgstr "" + +#: templates/js/translated/stock.js:1673 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/translated/stock.js:1897 +msgid "Invalid date" +msgstr "" + +#: templates/js/translated/stock.js:1919 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:1944 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:1963 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:1982 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2000 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2023 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:2031 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:2072 +msgid "Edit tracking entry" +msgstr "" + +#: templates/js/translated/stock.js:2073 +msgid "Delete tracking entry" +msgstr "" + +#: templates/js/translated/stock.js:2124 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:2175 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/table_filters.js:56 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:60 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:64 +msgid "Validated" +msgstr "" + +#: templates/js/translated/table_filters.js:72 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:160 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:93 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:340 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:108 +#: templates/js/translated/table_filters.js:375 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:195 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:125 +#: templates/js/translated/table_filters.js:206 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:207 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:198 +#: templates/js/translated/table_filters.js:199 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:216 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:145 +#: templates/js/translated/table_filters.js:330 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:146 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:151 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:155 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:156 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:161 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:166 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:171 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:175 +msgid "In Production" +msgstr "" + +#: templates/js/translated/table_filters.js:176 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:180 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:181 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:185 +msgid "Installed" +msgstr "" + +#: templates/js/translated/table_filters.js:186 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:191 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:211 +#: templates/js/translated/table_filters.js:212 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:220 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:221 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:230 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:236 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:267 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:312 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:300 +#: templates/js/translated/table_filters.js:317 +msgid "Outstanding" +msgstr "" + +#: templates/js/translated/table_filters.js:341 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:345 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:346 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:351 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:359 +msgid "Stock available" +msgstr "" + +#: templates/js/translated/table_filters.js:387 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/tables.js:368 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:371 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:374 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:374 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:374 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:374 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:377 templates/search_form.html:5 +#: templates/search_form.html:6 +msgid "Search" +msgstr "" + +#: templates/js/translated/tables.js:380 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:383 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:386 +msgid "Refresh" +msgstr "" + +#: templates/js/translated/tables.js:389 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:392 +msgid "Columns" +msgstr "" + +#: templates/js/translated/tables.js:395 +msgid "All" +msgstr "" + +#: templates/navbar.html:39 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:51 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:82 users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/navbar.html:84 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:86 +msgid "Login" +msgstr "" + +#: templates/navbar.html:107 +msgid "About InvenTree" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:40 +msgid "Server status" +msgstr "" + +#: templates/stats.html:43 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:45 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:52 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:55 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:63 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:66 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:14 +msgid "Export Stock Information" +msgstr "" + +#: templates/stock_table.html:20 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:36 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:43 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:51 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:51 +msgid "Move stock" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:53 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:53 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:56 +msgid "Delete selected items" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:187 +msgid "Permission set" +msgstr "" + +#: users/models.py:195 +msgid "Group" +msgstr "" + +#: users/models.py:198 +msgid "View" +msgstr "" + +#: users/models.py:198 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:200 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:202 +msgid "Change" +msgstr "" + +#: users/models.py:202 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:204 +msgid "Permission to delete items" +msgstr "" diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 590ea20a6f..42c66cf78e 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -251,6 +251,15 @@ def global_settings(*args, **kwargs): return InvenTreeSetting.allValues() +@register.simple_tag() +def visible_global_settings(*args, **kwargs): + """ + Return any global settings which are not marked as 'hidden' + """ + + return InvenTreeSetting.allValues(exclude_hidden=True) + + @register.simple_tag() def progress_bar(val, max, *args, **kwargs): """ @@ -292,6 +301,19 @@ def progress_bar(val, max, *args, **kwargs): @register.simple_tag() def get_color_theme_css(username): + user_theme_name = get_user_color_theme(username) + # Build path to CSS sheet + inventree_css_sheet = os.path.join('css', 'color-themes', user_theme_name + '.css') + + # Build static URL + inventree_css_static_url = os.path.join(settings.STATIC_URL, inventree_css_sheet) + + return inventree_css_static_url + + +@register.simple_tag() +def get_user_color_theme(username): + """ Get current user color theme """ try: user_theme = ColorTheme.objects.filter(user=username).get() user_theme_name = user_theme.name @@ -300,13 +322,7 @@ def get_color_theme_css(username): except ColorTheme.DoesNotExist: user_theme_name = 'default' - # Build path to CSS sheet - inventree_css_sheet = os.path.join('css', 'color-themes', user_theme_name + '.css') - - # Build static URL - inventree_css_static_url = os.path.join(settings.STATIC_URL, inventree_css_sheet) - - return inventree_css_static_url + return user_theme_name @register.simple_tag() diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html index 89fc67865a..2b2637330c 100644 --- a/InvenTree/templates/InvenTree/settings/user.html +++ b/InvenTree/templates/InvenTree/settings/user.html @@ -170,35 +170,6 @@ - -
-

{% trans "Theme Settings" %}

-
- -
- -
-
- {% csrf_token %} - - -
- -
- -
-
-
-
-
-

{% trans "Language Settings" %}

diff --git a/InvenTree/templates/InvenTree/settings/user_display.html b/InvenTree/templates/InvenTree/settings/user_display.html index 40fa0ba0e9..ae7843df9c 100644 --- a/InvenTree/templates/InvenTree/settings/user_display.html +++ b/InvenTree/templates/InvenTree/settings/user_display.html @@ -21,4 +21,33 @@ +
+

{% trans "Theme Settings" %}

+
+ +
+ +
+
+ {% csrf_token %} + + +
+ +
+ +
+
+
+
+
+ {% endblock %} \ No newline at end of file diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index e6c18b483a..6dc0d7d78a 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -5,6 +5,7 @@ {% settings_value 'BARCODE_ENABLE' as barcodes %} {% settings_value 'REPORT_ENABLE_TEST_REPORT' as test_report_enabled %} {% settings_value "REPORT_ENABLE" as report_enabled %} +{% settings_value "SERVER_RESTART_REQUIRED" as server_restart_required %} @@ -86,6 +87,21 @@
+ {% if server_restart_required %} +
+ +
+ {% endif %} + {% block alerts %}
diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js index 8201dc8374..e19bba6501 100644 --- a/InvenTree/templates/js/dynamic/settings.js +++ b/InvenTree/templates/js/dynamic/settings.js @@ -13,7 +13,7 @@ const user_settings = { {% endfor %} }; -{% global_settings as GLOBAL_SETTINGS %} +{% visible_global_settings as GLOBAL_SETTINGS %} const global_settings = { {% for key, value in GLOBAL_SETTINGS.items %} {{ key }}: {% primitive_to_javascript value %}, diff --git a/docker/requirements.txt b/docker/requirements.txt index b15d7c538d..1a110d6cde 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -11,3 +11,6 @@ psycopg2>=2.9.1 mysqlclient>=2.0.3 pgcli>=3.1.0 mariadb>=1.0.7 + +# Cache +django-redis>=5.0.0