diff --git a/docker-compose.yml b/docker-compose.yml
index 81517402d..12f3c8ff5 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,7 +11,7 @@ sapldb:
ports:
- "5432:5432"
sapl:
- image: interlegis/sapl:3.1.156
+ image: interlegis/sapl:3.1.157-RC5
# build: .
restart: always
environment:
diff --git a/release.sh b/release.sh
index 3470bc633..833e74cdf 100755
--- a/release.sh
+++ b/release.sh
@@ -1,51 +1,113 @@
#/bin/bash
-VERSION=`git describe --tags --abbrev=0`
-LAST_DIGIT=`echo $VERSION | cut -f 3 -d '.'`
-MAIN_REV=`echo $VERSION | cut -f 1,2 -d '.'`
+##
+## Versioning info: [major].[minor].[patch][-RC[num]], example: 3.1.159, 3.1.159-RC1
+##
+
+# TODO: verificar porque só pega versões superiores (3.1.200 ao invés de 3.1.200-RC9)
+# VERSION=`git describe --tags --abbrev=0`
+
+VERSION_PATTERN='([0-9]+)\.([0-9]+)\.([0-9]+)(-RC[0-9]+)?'
+
+SED_AWKWARD_PATTERN="[0-9]+\.[0-9]+\.[0-9]+(-RC[0-9]+){0,1}"
+
+LATEST_VERSION=$(git tag | egrep $VERSION_PATTERN | sort --version-sort | tail -1)
+MAJOR_VERSION=$(echo $LATEST_VERSION | cut -d"-" -f1)
+IS_RC=$(echo $LATEST_VERSION | egrep '(-RC)')
+MAJOR_TAG_CREATED=$(git tag | egrep $MAJOR_VERSION"$")
+
+if [ -n "$MAJOR_TAG_CREATED" ]; then
+ LATEST_VERSION=$MAJOR_VERSION
+fi
+
+LAST_DIGIT=`echo $MAJOR_VERSION | cut -f 3 -d '.'`
+MAIN_REV=`echo $MAJOR_VERSION | cut -f 1,2 -d '.'`
NEXT_NUMBER=$(($LAST_DIGIT + 1))
NEXT_VERSION=$MAIN_REV'.'$NEXT_NUMBER
+FINAL_VERSION=
+
+function change_files {
+
+ OLD_VERSION=$(grep -E 'interlegis/sapl:'$VERSION_PATTERN docker-compose.yml | cut -d':' -f3)
-function bump_version {
- sed -e s/$VERSION/$NEXT_VERSION/g docker-compose.yml > tmp1
+ echo "Atualizando de "$OLD_VERSION" para "$FINAL_VERSION
+
+ sed -E s/$OLD_VERSION/$FINAL_VERSION/g docker-compose.yml > tmp1
mv tmp1 docker-compose.yml
- sed -e s/$VERSION/$NEXT_VERSION/g setup.py > tmp2
+ sed -E s/$OLD_VERSION/$FINAL_VERSION/g setup.py > tmp2
mv tmp2 setup.py
- sed -e s/$VERSION/$NEXT_VERSION/g sapl/templates/base.html > tmp3
+ sed -E s/$OLD_VERSION/$FINAL_VERSION/g sapl/templates/base.html > tmp3
mv tmp3 sapl/templates/base.html
- sed -e s/$VERSION/$NEXT_VERSION/g sapl/settings.py > tmp4
+ sed -E s/$OLD_VERSION/$FINAL_VERSION/g sapl/settings.py > tmp4
mv tmp4 sapl/settings.py
}
+function set_major_version {
+ if [ -z "$IS_RC" ] || [ -n "$MAJOR_TAG_CREATED" ]; then
+ FINAL_VERSION=$NEXT_VERSION
+ else
+ FINAL_VERSION=$MAJOR_VERSION
+ fi
+}
+
+function set_rc_version {
+ if [ -z "$IS_RC" ]; then
+ NEXT_RC_VERSION=$NEXT_VERSION"-RC0"
+ else
+ LAST_RC_DIGIT=$(echo $LATEST_VERSION | rev | cut -d"-" -f1 | rev | sed s/RC//)
+ NEXT_RC_NUMBER=$(($LAST_RC_DIGIT + 1))
+ NEXT_RC_VERSION=$(echo $LATEST_VERSION | cut -d"-" -f1)'-RC'$NEXT_RC_NUMBER
+ fi
+
+ FINAL_VERSION=$NEXT_RC_VERSION
+}
+
function commit_and_push {
echo "committing..."
git add docker-compose.yml setup.py sapl/settings.py sapl/templates/base.html
- git commit -m "Release: $NEXT_VERSION"
- git tag $NEXT_VERSION
+ git commit -m "Release: $FINAL_VERSION"
+ git tag $FINAL_VERSION
echo "sending to github..."
- git push origin $NEXT_VERSION
git push origin
+ git push origin $FINAL_VERSION
echo "done."
}
case "$1" in
- --dry-run)
- echo "Dry run"
- bump_version
- echo "done."
- echo "Run git checkout -- docker-compose.yml setup.py to undo the files"
-
- exit 0
- ;;
- --publish)
- echo "generating release"
- bump_version
+ --latest)
+ echo $LATEST_VERSION
+ exit 0
+ ;;
+ --major)
+ set_major_version
+ echo "generating major release: "$FINAL_VERSION
+ # git tag $FINAL_VERSION
+ change_files
commit_and_push
+ exit 0
+ ;;
+ --rc)
+ set_rc_version
+ echo "generating release candidate: "$FINAL_VERSION
+ # git tag $FINAL_VERSION
+ change_files
+ commit_and_push
+ exit 0
+ ;;
+ --undo)
+ git tag -d $LATEST_VERSION
+ exit 0
+ ;;
+ --top)
+ git tag | sort --version-sort | tail "-$2"
+ exit 0
+ ;;
+
esac
diff --git a/requirements/requirements.txt b/requirements/requirements.txt
index 7e6189373..05789db35 100644
--- a/requirements/requirements.txt
+++ b/requirements/requirements.txt
@@ -1,7 +1,7 @@
django>=1.11.19,<2.0
django-haystack==2.8.1
django-filter==2.0.0
-djangorestframework==3.9.0
+djangorestframework==3.9.1
dj-database-url==0.5.0
django-braces==1.9.0
django-crispy-forms==1.7.2
diff --git a/sapl/api/views.py b/sapl/api/views.py
index 13045d6bb..48f06a3c5 100644
--- a/sapl/api/views.py
+++ b/sapl/api/views.py
@@ -168,7 +168,7 @@ SaplApiViewSetConstrutor.build_class()
http://localhost:9000/api/
desde que settings.DEBUG=True
-**SaplSetViews** é um dict de dicts de models conforme:
+**SaplApiViewSetConstrutor._built_sets** é um dict de dicts de models conforme:
{
...
@@ -201,8 +201,6 @@ SaplApiViewSetConstrutor.build_class()
# rest_framework.viewsets.ModelViewSet conforme exemplo para a classe autor
# decorator para recuperar e transformar o default
-
-
class customize(object):
def __init__(self, model):
self.model = model
@@ -243,7 +241,7 @@ class _AutorViewSet:
/api/base/autor/{pk}/ PATCH - partial_update
/api/base/autor/{pk}/ DELETE - destroy
- * rotas desta classe local:
+ * rotas desta classe local criadas pelo método build:
/api/base/autor/parlamentar
devolve apenas autores que são parlamentares
/api/base/autor/comissao
@@ -256,8 +254,6 @@ class _AutorViewSet:
devolve apenas autores que são Frene parlamentares
/api/base/autor/orgao
devolve apenas autores que são Órgãos
-
-
"""
def list_for_content_type(self, content_type):
diff --git a/sapl/base/forms.py b/sapl/base/forms.py
index b04fddbd6..d78f4a5e4 100644
--- a/sapl/base/forms.py
+++ b/sapl/base/forms.py
@@ -30,6 +30,7 @@ from sapl.materia.models import (
MateriaLegislativa, UnidadeTramitacao, StatusTramitacao)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import SessaoLegislativa, Partido
+from sapl.protocoloadm.models import DocumentoAdministrativo
from sapl.sessao.models import SessaoPlenaria
from sapl.settings import MAX_IMAGE_UPLOAD_SIZE
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES,
@@ -898,34 +899,35 @@ class RelatorioHistoricoTramitacaoFilterSet(django_filters.FilterSet):
class Meta(FilterOverridesMetaMixin):
model = MateriaLegislativa
- fields = ['tipo', 'tramitacao__unidade_tramitacao_local',
- 'tramitacao__status', 'tramitacao__data_tramitacao']
+ fields = ['tipo', 'tramitacao__status', 'tramitacao__data_tramitacao',
+ 'tramitacao__unidade_tramitacao_local', 'tramitacao__unidade_tramitacao_destino']
def __init__(self, *args, **kwargs):
super(RelatorioHistoricoTramitacaoFilterSet, self).__init__(
*args, **kwargs)
self.filters['tipo'].label = 'Tipo de Matéria'
-
- self.filters['tramitacao__unidade_tramitacao_local'
- ].label = _('Unidade Local')
self.filters['tramitacao__status'].label = _('Status')
- row1 = to_row([('tramitacao__data_tramitacao', 12)])
+ self.filters['tramitacao__unidade_tramitacao_local'].label = _('Unidade Local (Origem)')
+ self.filters['tramitacao__unidade_tramitacao_destino'].label = _('Unidade Destino')
- row2 = to_row(
- [('tipo', 4),
- ('tramitacao__unidade_tramitacao_local', 4),
- ('tramitacao__status', 4)])
+ row1 = to_row([('tramitacao__data_tramitacao', 12)])
+ row2 = to_row([('tramitacao__unidade_tramitacao_local', 6),
+ ('tramitacao__unidade_tramitacao_destino', 6)])
+ row3 = to_row(
+ [('tipo', 6),
+ ('tramitacao__status', 6)])
self.form.helper = SaplFormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
- Fieldset(_('Histórico de Tramitação'),
- row1, row2,
+ Fieldset(_(''),
+ row1, row2, row3,
form_actions(label='Pesquisar'))
)
+
class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
@property
@@ -936,6 +938,7 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
class Meta(FilterOverridesMetaMixin):
model = MateriaLegislativa
fields = ['tipo', 'tramitacao__unidade_tramitacao_local',
+ 'tramitacao__unidade_tramitacao_destino',
'tramitacao__status', 'tramitacao__data_fim_prazo']
def __init__(self, *args, **kwargs):
@@ -943,20 +946,22 @@ class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
*args, **kwargs)
self.filters['tipo'].label = 'Tipo de Matéria'
- self.filters['tramitacao__unidade_tramitacao_local'].label = 'Unidade de tramitação local'
+ self.filters['tramitacao__unidade_tramitacao_local'].label = 'Unidade Local (Origem)'
+ self.filters['tramitacao__unidade_tramitacao_destino'].label = 'Unidade Destino'
self.filters['tramitacao__status'].label = 'Status de tramitação'
-
+
row1 = to_row([('tramitacao__data_fim_prazo', 12)])
- row2 = to_row(
- [('tipo', 4),
- ('tramitacao__unidade_tramitacao_local', 4),
- ('tramitacao__status', 4)])
+ row2 = to_row([('tramitacao__unidade_tramitacao_local', 6),
+ ('tramitacao__unidade_tramitacao_destino', 6)])
+ row3 = to_row(
+ [('tipo', 6),
+ ('tramitacao__status', 6)])
self.form.helper = SaplFormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Tramitações por fim de prazo'),
- row1, row2,
+ row1, row2, row3,
form_actions(label='Pesquisar'))
)
@@ -1220,7 +1225,9 @@ class ConfiguracoesAppForm(ModelForm):
'receber_recibo_proposicao',
'assinatura_ata',
'estatisticas_acesso_normas',
- 'escolher_numero_materia_proposicao']
+ 'escolher_numero_materia_proposicao',
+ 'tramitacao_materia',
+ 'tramitacao_documento']
def __init__(self, *args, **kwargs):
super(ConfiguracoesAppForm, self).__init__(*args, **kwargs)
@@ -1422,4 +1429,43 @@ class PartidoForm(FileFieldCheckMixin, ModelForm):
if cleaned_data['data_criacao'] > cleaned_data['data_extincao']:
raise ValidationError("Certifique-se de que a data de criação seja anterior à data de extinção.")
- return cleaned_data
\ No newline at end of file
+ return cleaned_data
+
+
+class RelatorioHistoricoTramitacaoAdmFilterSet(django_filters.FilterSet):
+
+ @property
+ def qs(self):
+ parent = super(RelatorioHistoricoTramitacaoAdmFilterSet, self).qs
+ return parent.distinct().prefetch_related('tipo').order_by('-ano', 'tipo', 'numero')
+
+ class Meta(FilterOverridesMetaMixin):
+ model = DocumentoAdministrativo
+ fields = ['tipo', 'tramitacaoadministrativo__status',
+ 'tramitacaoadministrativo__data_tramitacao',
+ 'tramitacaoadministrativo__unidade_tramitacao_local',
+ 'tramitacaoadministrativo__unidade_tramitacao_destino']
+
+ def __init__(self, *args, **kwargs):
+ super(RelatorioHistoricoTramitacaoAdmFilterSet, self).__init__(
+ *args, **kwargs)
+
+ self.filters['tipo'].label = 'Tipo de Documento'
+ self.filters['tramitacaoadministrativo__status'].label = _('Status')
+ self.filters['tramitacaoadministrativo__unidade_tramitacao_local'].label = _('Unidade Local (Origem)')
+ self.filters['tramitacaoadministrativo__unidade_tramitacao_destino'].label = _('Unidade Destino')
+
+ row1 = to_row([('tramitacaoadministrativo__data_tramitacao', 12)])
+ row2 = to_row([('tramitacaoadministrativo__unidade_tramitacao_local', 6),
+ ('tramitacaoadministrativo__unidade_tramitacao_destino', 6)])
+ row3 = to_row(
+ [('tipo', 6),
+ ('tramitacaoadministrativo__status', 6)])
+
+ self.form.helper = SaplFormHelper()
+ self.form.helper.form_method = 'GET'
+ self.form.helper.layout = Layout(
+ Fieldset(_(''),
+ row1, row2, row3,
+ form_actions(label='Pesquisar'))
+ )
diff --git a/sapl/base/migrations/0037_auto_20190527_0901.py b/sapl/base/migrations/0037_auto_20190527_0901.py
new file mode 100644
index 000000000..35ab87acc
--- /dev/null
+++ b/sapl/base/migrations/0037_auto_20190527_0901.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-27 12:01
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('base', '0036_auto_20190417_1432'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='appconfig',
+ name='tramitacao_documento',
+ field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Tramitar documentos anexados junto com os documentos principais?'),
+ ),
+ migrations.AddField(
+ model_name='appconfig',
+ name='tramitacao_materia',
+ field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Tramitar matérias anexadas junto com as matérias principais?'),
+ ),
+ ]
diff --git a/sapl/base/models.py b/sapl/base/models.py
index eea9241d9..c4ce3d1a2 100644
--- a/sapl/base/models.py
+++ b/sapl/base/models.py
@@ -176,6 +176,14 @@ class AppConfig(models.Model):
verbose_name=_('Indicar número da matéria a ser gerada na proposição?'),
choices=YES_NO_CHOICES, default=False)
+ tramitacao_materia = models.BooleanField(
+ verbose_name=_('Tramitar matérias anexadas junto com as matérias principais?'),
+ choices=YES_NO_CHOICES, default=True)
+
+ tramitacao_documento = models.BooleanField(
+ verbose_name=_('Tramitar documentos anexados junto com os documentos principais?'),
+ choices=YES_NO_CHOICES, default=True)
+
class Meta:
verbose_name = _('Configurações da Aplicação')
verbose_name_plural = _('Configurações da Aplicação')
diff --git a/sapl/base/urls.py b/sapl/base/urls.py
index 5d12b3586..8fbeb43b7 100644
--- a/sapl/base/urls.py
+++ b/sapl/base/urls.py
@@ -38,7 +38,9 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
ListarParlFiliacoesIntersecaoView,
ListarAutoresDuplicadosView,
ListarBancadaComissaoAutorExternoView,
- ListarLegislaturaInfindavelView)
+ ListarLegislaturaInfindavelView,
+ pesquisa_textual,
+ RelatorioHistoricoTramitacaoAdmView)
app_name = AppConfig.name
@@ -134,6 +136,9 @@ urlpatterns = [
url(r'^sistema/relatorios/audiencia$',
RelatorioAudienciaView.as_view(),
name='audiencia'),
+ url(r'^sistema/relatorios/historico-tramitacoesadm$',
+ RelatorioHistoricoTramitacaoAdmView.as_view(),
+ name='historico_tramitacoes_adm'),
url(r'^email/validate/(?P[0-9A-Za-z_\-]+)/'
'(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$',
@@ -175,6 +180,9 @@ urlpatterns = [
url(r'^sistema/inconsistencias/legislatura_infindavel$',
ListarLegislaturaInfindavelView.as_view(),
name='lista_legislatura_infindavel'),
+ url(r'^sistema/pesquisa-textual',
+ pesquisa_textual,
+ name='pesquisa_textual'),
url(r'^sistema/estatisticas', get_estatistica),
diff --git a/sapl/base/views.py b/sapl/base/views.py
index 3226b4926..c56b5e880 100644
--- a/sapl/base/views.py
+++ b/sapl/base/views.py
@@ -27,6 +27,7 @@ from django.views.generic import (CreateView, DeleteView, FormView, ListView,
from django.views.generic.base import RedirectView, TemplateView
from django_filters.views import FilterView
from haystack.views import SearchView
+from haystack.query import SearchQuerySet
from sapl import settings
from sapl.audiencia.models import AudienciaPublica, TipoAudienciaPublica
@@ -38,13 +39,14 @@ from sapl.materia.models import (Autoria, MateriaLegislativa, Proposicao,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato, Filiacao
-from sapl.protocoloadm.models import Protocolo
+from sapl.protocoloadm.models import (Protocolo, TipoDocumentoAdministrativo,
+ StatusTramitacaoAdministrativo,
+ DocumentoAdministrativo)
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, Bancada)
from sapl.utils import (parlamentares_ativos, gerar_hash_arquivo, SEPARADOR_HASH_PROPOSICAO,
show_results_filter_set, mail_service_configured,
- intervalos_tem_intersecao,)
-
+ intervalos_tem_intersecao, remover_acentos)
from .forms import (AlterarSenhaForm, CasaLegislativaForm,
ConfiguracoesAppForm, RelatorioAtasFilterSet,
RelatorioAudienciaFilterSet,
@@ -57,7 +59,8 @@ from .forms import (AlterarSenhaForm, CasaLegislativaForm,
RelatorioReuniaoFilterSet, UsuarioCreateForm,
UsuarioEditForm, RelatorioNormasMesFilterSet,
RelatorioNormasVigenciaFilterSet,
- EstatisticasAcessoNormasForm, UsuarioFilterSet)
+ EstatisticasAcessoNormasForm, UsuarioFilterSet,
+ RelatorioHistoricoTramitacaoAdmFilterSet)
from .models import AppConfig, CasaLegislativa
@@ -294,11 +297,8 @@ class RelatoriosListView(TemplateView):
def get_context_data(self, **kwargs):
context = super(TemplateView, self).get_context_data(**kwargs)
estatisticas_acesso_normas = AppConfig.objects.first().estatisticas_acesso_normas
- if estatisticas_acesso_normas == 'S':
- context['estatisticas_acesso_normas'] = True
- else:
- context['estatisticas_acesso_normas'] = False
-
+ context['estatisticas_acesso_normas'] = True if estatisticas_acesso_normas == 'S' else False
+
return context
@@ -450,7 +450,7 @@ class RelatorioHistoricoTramitacaoView(FilterView):
def get_context_data(self, **kwargs):
context = super(RelatorioHistoricoTramitacaoView,
self).get_context_data(**kwargs)
- context['title'] = _('Histórico de Tramitações')
+ context['title'] = _('Histórico de Tramitações de Matérias Legislativas')
if not self.filterset.form.is_valid():
return context
qr = self.request.GET.copy()
@@ -465,16 +465,25 @@ class RelatorioHistoricoTramitacaoView(FilterView):
str(TipoMateriaLegislativa.objects.get(id=tipo)))
else:
context['tipo'] = ''
+
if self.request.GET['tramitacao__status']:
tramitacao_status = self.request.GET['tramitacao__status']
context['tramitacao__status'] = (
str(StatusTramitacao.objects.get(id=tramitacao_status)))
else:
context['tramitacao__status'] = ''
+
if self.request.GET['tramitacao__unidade_tramitacao_local']:
context['tramitacao__unidade_tramitacao_local'] = \
(str(UnidadeTramitacao.objects.get(
id=self.request.GET['tramitacao__unidade_tramitacao_local'])))
+ else:
+ context['tramitacao__unidade_tramitacao_local'] = ''
+
+ if self.request.GET['tramitacao__unidade_tramitacao_destino']:
+ context['tramitacao__unidade_tramitacao_destino'] = \
+ (str(UnidadeTramitacao.objects.get(
+ id=self.request.GET['tramitacao__unidade_tramitacao_destino'])))
else:
context['tramitacao__unidade_tramitacao_destino'] = ''
@@ -505,16 +514,25 @@ class RelatorioDataFimPrazoTramitacaoView(FilterView):
str(TipoMateriaLegislativa.objects.get(id=tipo)))
else:
context['tipo'] = ''
+
if self.request.GET['tramitacao__status']:
tramitacao_status = self.request.GET['tramitacao__status']
context['tramitacao__status'] = (
str(StatusTramitacao.objects.get(id=tramitacao_status)))
else:
context['tramitacao__status'] = ''
+
if self.request.GET['tramitacao__unidade_tramitacao_local']:
context['tramitacao__unidade_tramitacao_local'] = \
(str(UnidadeTramitacao.objects.get(
id=self.request.GET['tramitacao__unidade_tramitacao_local'])))
+ else:
+ context['tramitacao__unidade_tramitacao_local'] = ''
+
+ if self.request.GET['tramitacao__unidade_tramitacao_destino']:
+ context['tramitacao__unidade_tramitacao_destino'] = \
+ (str(UnidadeTramitacao.objects.get(
+ id=self.request.GET['tramitacao__unidade_tramitacao_destino'])))
else:
context['tramitacao__unidade_tramitacao_destino'] = ''
@@ -1748,3 +1766,105 @@ class LogotipoView(RedirectView):
casa = get_casalegislativa()
logo = casa and casa.logotipo and casa.logotipo.name
return os.path.join(settings.MEDIA_URL, logo) if logo else STATIC_LOGO
+
+def filtro_campos(dicionario):
+
+ chaves_desejadas = ['ementa',
+ 'ano',
+ 'numero',
+ 'em_tramitacao',
+ 'data_apresentacao',
+ 'apelido',
+ 'indexacao',
+ 'data_publicacao',
+ 'data',
+ 'data_vigencia']
+ del_list = []
+ for key in dicionario.keys():
+ if key not in chaves_desejadas:
+ del_list = del_list + [key]
+
+ for key in del_list:
+ del dicionario[key]
+
+ return dicionario
+
+def pesquisa_textual(request):
+
+ if 'q' not in request.GET:
+ return JsonResponse({'total': 0,
+ 'resultados': []})
+
+ results = SearchQuerySet().filter(content=request.GET['q'])
+ json_dict = {
+ 'total': results.count(),
+ 'parametros': request.GET['q'],
+ 'resultados': [],
+ }
+
+ for e in results:
+
+ sec_dict = {}
+ try:
+ sec_dict['pk'] = e.object.pk
+ except:
+ # Index and db are out of sync. Object has been deleted from database
+ continue
+ dici = filtro_campos(e.object.__dict__)
+ sec_dict['objeto'] = str(dici)
+ sec_dict['text'] = str(e.object.ementa)
+
+ sec_dict['model'] = str(type(e.object))
+
+ json_dict['resultados'].append(sec_dict)
+
+
+ return JsonResponse(json_dict)
+
+
+class RelatorioHistoricoTramitacaoAdmView(FilterView):
+ model = DocumentoAdministrativo
+ filterset_class = RelatorioHistoricoTramitacaoAdmFilterSet
+ template_name = 'base/RelatorioHistoricoTramitacaoAdm_filter.html'
+
+ def get_context_data(self, **kwargs):
+ context = super(RelatorioHistoricoTramitacaoAdmView,
+ self).get_context_data(**kwargs)
+ context['title'] = _('Histórico de Tramitações de Documento Administrativo')
+ if not self.filterset.form.is_valid():
+ return context
+ qr = self.request.GET.copy()
+ context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
+
+ context['show_results'] = show_results_filter_set(qr)
+ context['data_tramitacao'] = (self.request.GET['tramitacaoadministrativo__data_tramitacao_0'] + ' - ' +
+ self.request.GET['tramitacaoadministrativo__data_tramitacao_1'])
+ if self.request.GET['tipo']:
+ tipo = self.request.GET['tipo']
+ context['tipo'] = (
+ str(TipoDocumentoAdministrativo.objects.get(id=tipo)))
+ else:
+ context['tipo'] = ''
+
+ if self.request.GET['tramitacaoadministrativo__status']:
+ tramitacao_status = self.request.GET['tramitacaoadministrativo__status']
+ context['tramitacaoadministrativo__status'] = (
+ str(StatusTramitacaoAdministrativo.objects.get(id=tramitacao_status)))
+ else:
+ context['tramitacaoadministrativo__status'] = ''
+
+ if self.request.GET['tramitacaoadministrativo__unidade_tramitacao_local']:
+ context['tramitacaoadministrativo__unidade_tramitacao_local'] = \
+ (str(UnidadeTramitacao.objects.get(
+ id=self.request.GET['tramitacaoadministrativo__unidade_tramitacao_local'])))
+ else:
+ context['tramitacaoadministrativo__unidade_tramitacao_local'] = ''
+
+ if self.request.GET['tramitacaoadministrativo__unidade_tramitacao_destino']:
+ context['tramitacaoadministrativo__unidade_tramitacao_destino'] = \
+ (str(UnidadeTramitacao.objects.get(
+ id=self.request.GET['tramitacaoadministrativo__unidade_tramitacao_destino'])))
+ else:
+ context['tramitacaoadministrativo__unidade_tramitacao_destino'] = ''
+
+ return context
\ No newline at end of file
diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py
index 9b0e69d72..e999f0b8d 100644
--- a/sapl/comissoes/forms.py
+++ b/sapl/comissoes/forms.py
@@ -11,6 +11,7 @@ from django.utils.translation import ugettext_lazy as _
from sapl.base.models import Autor, TipoAutor
from sapl.comissoes.models import (Comissao, Composicao, DocumentoAcessorio,
Participacao, Reuniao, Periodo)
+from sapl.materia.models import PautaReuniao
from sapl.parlamentares.models import Legislatura, Mandato, Parlamentar
from sapl.utils import FileFieldCheckMixin
@@ -383,6 +384,13 @@ class ReuniaoForm(ModelForm):
return self.cleaned_data
+class PautaReuniaoForm(forms.ModelForm):
+
+ class Meta:
+ model = PautaReuniao
+ exclude = ['reuniao']
+
+
class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm):
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput())
diff --git a/sapl/comissoes/urls.py b/sapl/comissoes/urls.py
index f22f32e1d..5e48ee891 100644
--- a/sapl/comissoes/urls.py
+++ b/sapl/comissoes/urls.py
@@ -1,7 +1,8 @@
from django.conf.urls import include, url
from sapl.comissoes.views import (CargoCrud, ComissaoCrud, ComposicaoCrud,
DocumentoAcessorioCrud, MateriasTramitacaoListView, ParticipacaoCrud,
- PeriodoComposicaoCrud, ReuniaoCrud, TipoComissaoCrud, get_participacoes_comissao)
+ PeriodoComposicaoCrud, ReuniaoCrud, TipoComissaoCrud, get_participacoes_comissao,
+ AdicionaPautaView, RemovePautaView)
from .apps import AppConfig
@@ -17,6 +18,9 @@ urlpatterns = [
url(r'^comissao/(?P\d+)/materias-em-tramitacao$',
MateriasTramitacaoListView.as_view(), name='materias_em_tramitacao'),
+ url(r'^comissao/(?P\d+)/pauta/add', AdicionaPautaView.as_view(), name='pauta_add'),
+ url(r'^comissao/(?P\d+)/pauta/remove', RemovePautaView.as_view(), name='pauta_remove'),
+
url(r'^sistema/comissao/cargo/', include(CargoCrud.get_urls())),
url(r'^sistema/comissao/periodo-composicao/',
include(PeriodoComposicaoCrud.get_urls())),
diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py
index 1db8d23df..5fa132eab 100644
--- a/sapl/comissoes/views.py
+++ b/sapl/comissoes/views.py
@@ -1,13 +1,16 @@
import logging
from django.core.urlresolvers import reverse
+from django.contrib import messages
+from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db.models import F
from django.http.response import HttpResponseRedirect, JsonResponse
from django.views.decorators.clickjacking import xframe_options_exempt
-from django.views.generic import ListView
+from django.views.generic import ListView, CreateView, DeleteView
from django.views.generic.base import RedirectView
from django.views.generic.detail import DetailView
-from django.views.generic.edit import FormMixin
+from django.views.generic.edit import FormMixin, UpdateView
+from django.utils.translation import ugettext_lazy as _
from sapl.base.models import AppConfig as AppsAppConfig
from sapl.comissoes.apps import AppConfig
@@ -15,11 +18,11 @@ from sapl.comissoes.forms import (ComissaoForm, ComposicaoForm,
DocumentoAcessorioCreateForm,
DocumentoAcessorioEditForm,
ParticipacaoCreateForm, ParticipacaoEditForm,
- PeriodoForm, ReuniaoForm)
+ PeriodoForm, ReuniaoForm, PautaReuniaoForm)
from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux,
MasterDetailCrud,
PermissionRequiredForAppCrudMixin)
-from sapl.materia.models import MateriaLegislativa, Tramitacao
+from sapl.materia.models import MateriaLegislativa, Tramitacao, PautaReuniao
from .models import (CargoComissao, Comissao, Composicao, DocumentoAcessorio,
Participacao, Periodo, Reuniao, TipoComissao)
@@ -162,25 +165,26 @@ class ComissaoCrud(Crud):
return super(Crud.UpdateView, self).form_valid(form)
+def lista_materias_comissao(comissao_pk):
+ ts = Tramitacao.objects.order_by(
+ 'materia', '-data_tramitacao', '-id').annotate(
+ comissao=F('unidade_tramitacao_destino__comissao')).distinct(
+ 'materia').values_list('materia', 'comissao')
+
+ ts = [m for (m,c) in ts if c == int(comissao_pk)]
+
+ materias = MateriaLegislativa.objects.filter(
+ pk__in=ts).order_by('tipo', '-ano', '-numero')
+
+ return materias
+
+
class MateriasTramitacaoListView(ListView):
template_name = "comissoes/materias_em_tramitacao.html"
paginate_by = 10
def get_queryset(self):
- # FIXME: Otimizar consulta
- ts = Tramitacao.objects.order_by(
- 'materia', '-data_tramitacao', '-id').annotate(
- comissao=F('unidade_tramitacao_destino__comissao')).distinct(
- 'materia').values_list('materia', 'comissao')
-
- ts = list(filter(lambda x: x[1] == int(self.kwargs['pk']), ts))
- ts = list(zip(*ts))
- ts = ts[0] if ts else []
-
- materias = MateriaLegislativa.objects.filter(
- pk__in=ts).order_by('tipo', '-ano', '-numero')
-
- return materias
+ return lista_materias_comissao(self.kwargs['pk'])
def get_context_data(self, **kwargs):
context = super(
@@ -193,13 +197,38 @@ class MateriasTramitacaoListView(ListView):
class ReuniaoCrud(MasterDetailCrud):
model = Reuniao
parent_field = 'comissao'
- model_set = 'documentoacessorio_set'
public = [RP_LIST, RP_DETAIL, ]
class BaseMixin(MasterDetailCrud.BaseMixin):
list_field_names = ['data', 'nome', 'tema', 'upload_ata']
ordering = '-data'
+ class DetailView(MasterDetailCrud.DetailView):
+ template_name = "comissoes/reuniao_detail.html"
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+
+ docs = []
+ documentos = DocumentoAcessorio.objects.filter(reuniao=self.kwargs['pk']).order_by('nome')
+ docs.extend(documentos)
+
+ context['docs'] = docs
+ context['num_docs'] = len(docs)
+
+ mats = []
+ materias_pauta = PautaReuniao.objects.filter(reuniao=self.kwargs['pk'])
+ materias_pk = [materia_pauta.materia.pk for materia_pauta in materias_pauta]
+
+ context['mats'] = MateriaLegislativa.objects.filter(
+ pk__in=materias_pk
+ ).order_by('tipo', '-ano', '-numero')
+ context['num_mats'] = len(context['mats'])
+
+ context['reuniao_pk'] = self.kwargs['pk']
+
+ return context
+
class ListView(MasterDetailCrud.ListView):
logger = logging.getLogger(__name__)
paginate_by = 10
@@ -249,6 +278,100 @@ class ReuniaoCrud(MasterDetailCrud):
return {'comissao': comissao}
+class RemovePautaView(PermissionRequiredMixin, CreateView):
+ model = PautaReuniao
+ form_class = PautaReuniaoForm
+ template_name = 'comissoes/pauta.html'
+ permission_required = ('comissoes.add_reuniao', )
+
+ def get_context_data(self, **kwargs):
+ context = super(
+ RemovePautaView, self
+ ).get_context_data(**kwargs)
+
+ # Remove = 0; Adiciona = 1
+ context['opcao'] = 0
+
+ context['object'] = Reuniao.objects.get(pk=self.kwargs['pk'])
+ context['root_pk'] = context['object'].comissao.pk
+
+ materias_pauta = PautaReuniao.objects.filter(reuniao=context['object'])
+ materias_pk = [materia_pauta.materia.pk for materia_pauta in materias_pauta]
+
+ context['materias'] = MateriaLegislativa.objects.filter(
+ pk__in=materias_pk
+ ).order_by('tipo', '-ano', '-numero')
+ context['num_materias'] = len(context['materias'])
+
+ return context
+
+ def post(self, request, *args, **kwargs):
+ success_url = reverse('sapl.comissoes:reuniao_detail', kwargs={'pk':kwargs['pk']})
+ marcadas = request.POST.getlist('materia_id')
+
+ if not marcadas:
+ msg=_('Nenhuma matéria foi selecionada.')
+ messages.add_message(request, messages.WARNING, msg)
+ return HttpResponseRedirect(success_url)
+
+ reuniao = Reuniao.objects.get(pk=kwargs['pk'])
+ for materia in MateriaLegislativa.objects.filter(id__in=marcadas):
+ PautaReuniao.objects.filter(reuniao=reuniao,materia=materia).delete()
+
+ msg=_('Matéria(s) removida(s) com sucesso!')
+ messages.add_message(request, messages.SUCCESS, msg)
+ return HttpResponseRedirect(success_url)
+
+
+class AdicionaPautaView(PermissionRequiredMixin, CreateView):
+ model = PautaReuniao
+ form_class = PautaReuniaoForm
+ template_name = 'comissoes/pauta.html'
+ permission_required = ('comissoes.add_reuniao', )
+
+ def get_context_data(self, **kwargs):
+ context = super(
+ AdicionaPautaView, self
+ ).get_context_data(**kwargs)
+
+ # Adiciona = 1; Remove = 0
+ context['opcao'] = 1
+
+ context['object'] = Reuniao.objects.get(pk=self.kwargs['pk'])
+ context['root_pk'] = context['object'].comissao.pk
+
+ materias_comissao = lista_materias_comissao(context['object'].comissao.pk)
+ materias_pauta = PautaReuniao.objects.filter(reuniao=context['object'])
+
+ nao_listar = [mp.materia.pk for mp in materias_pauta]
+ context['materias'] = materias_comissao.exclude(pk__in=nao_listar)
+ context['num_materias'] = len(context['materias'])
+
+ return context
+
+ def post(self, request, *args, **kwargs):
+ success_url = reverse('sapl.comissoes:reuniao_detail', kwargs={'pk':kwargs['pk']})
+ marcadas = request.POST.getlist('materia_id')
+
+ if not marcadas:
+ msg = _('Nenhuma máteria foi selecionada.')
+ messages.add_message(request, messages.WARNING, msg)
+ return HttpResponseRedirect(success_url)
+
+ reuniao = Reuniao.objects.get(pk=kwargs['pk'])
+ pautas = []
+ for materia in MateriaLegislativa.objects.filter(id__in=marcadas):
+ pauta = PautaReuniao()
+ pauta.reuniao = reuniao
+ pauta.materia = materia
+ pautas.append(pauta)
+ PautaReuniao.objects.bulk_create(pautas)
+
+ msg = _('Matéria(s) adicionada(s) com sucesso!')
+ messages.add_message(request, messages.SUCCESS, msg)
+ return HttpResponseRedirect(success_url)
+
+
class DocumentoAcessorioCrud(MasterDetailCrud):
model = DocumentoAcessorio
parent_field = 'reuniao__comissao'
diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py
index 0b8a0e451..6ad0fa11c 100644
--- a/sapl/materia/forms.py
+++ b/sapl/materia/forms.py
@@ -194,6 +194,10 @@ class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm):
model = MateriaLegislativa
exclude = ['texto_articulado', 'autores', 'proposicao',
'anexadas', 'data_ultima_atualizacao']
+ widgets = {
+ 'user': forms.HiddenInput(),
+ 'ip': forms.HiddenInput()
+ }
def __init__(self, *args, **kwargs):
super(MateriaLegislativaForm, self).__init__(*args, **kwargs)
@@ -557,28 +561,30 @@ class TramitacaoForm(ModelForm):
materia.em_tramitacao = False if tramitacao.status.indicador == "F" else True
materia.save()
- lista_tramitacao = []
- lista_anexadas = lista_anexados(materia)
- for ma in lista_anexadas:
- if not ma.tramitacao_set.all() \
- or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
- ma.em_tramitacao = False if tramitacao.status.indicador == "F" else True
- ma.save()
- lista_tramitacao.append(Tramitacao(
- status=tramitacao.status,
- materia=ma,
- data_tramitacao=tramitacao.data_tramitacao,
- unidade_tramitacao_local=tramitacao.unidade_tramitacao_local,
- data_encaminhamento=tramitacao.data_encaminhamento,
- unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino,
- urgente=tramitacao.urgente,
- turno=tramitacao.turno,
- texto=tramitacao.texto,
- data_fim_prazo=tramitacao.data_fim_prazo,
- user=tramitacao.user,
- ip=tramitacao.ip
- ))
- Tramitacao.objects.bulk_create(lista_tramitacao)
+ tramitar_anexadas = sapl.base.models.AppConfig.attr('tramitacao_materia')
+ if tramitar_anexadas:
+ lista_tramitacao = []
+ anexadas_list = lista_anexados(materia)
+ for ma in anexadas_list:
+ if not ma.tramitacao_set.all() \
+ or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
+ ma.em_tramitacao = False if tramitacao.status.indicador == "F" else True
+ ma.save()
+ lista_tramitacao.append(Tramitacao(
+ status=tramitacao.status,
+ materia=ma,
+ data_tramitacao=tramitacao.data_tramitacao,
+ unidade_tramitacao_local=tramitacao.unidade_tramitacao_local,
+ data_encaminhamento=tramitacao.data_encaminhamento,
+ unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino,
+ urgente=tramitacao.urgente,
+ turno=tramitacao.turno,
+ texto=tramitacao.texto,
+ data_fim_prazo=tramitacao.data_fim_prazo,
+ user=tramitacao.user,
+ ip=tramitacao.ip
+ ))
+ Tramitacao.objects.bulk_create(lista_tramitacao)
return tramitacao
@@ -653,17 +659,6 @@ class TramitacaoUpdateForm(TramitacaoForm):
'Você não pode mudar a Unidade de Destino desta '
'tramitação, pois irá conflitar com a Unidade '
'Local da tramitação seguinte')
-
- # Se não houve qualquer alteração em um dos dados, mantém o usuário e ip
- if not (cd['data_tramitacao'] != obj.data_tramitacao or \
- cd['unidade_tramitacao_destino'] != obj.unidade_tramitacao_destino or \
- cd['status'] != obj.status or cd['texto'] != obj.texto or \
- cd['data_encaminhamento'] != obj.data_encaminhamento or \
- cd['data_fim_prazo'] != obj.data_fim_prazo or \
- cd['urgente'] != obj.urgente or \
- cd['turno'] != obj.turno):
- cd['user'] = obj.user
- cd['ip'] = obj.ip
cd['data_tramitacao'] = obj.data_tramitacao
cd['unidade_tramitacao_local'] = obj.unidade_tramitacao_local
@@ -678,25 +673,27 @@ class TramitacaoUpdateForm(TramitacaoForm):
materia.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True
materia.save()
- lista_anexadas = lista_anexados(materia)
- for ma in lista_anexadas:
- tram_anexada = ma.tramitacao_set.last()
- if compara_tramitacoes_mat(ant_tram_principal, tram_anexada):
- tram_anexada.status = nova_tram_principal.status
- tram_anexada.data_tramitacao = nova_tram_principal.data_tramitacao
- tram_anexada.unidade_tramitacao_local = nova_tram_principal.unidade_tramitacao_local
- tram_anexada.data_encaminhamento = nova_tram_principal.data_encaminhamento
- tram_anexada.unidade_tramitacao_destino = nova_tram_principal.unidade_tramitacao_destino
- tram_anexada.urgente = nova_tram_principal.urgente
- tram_anexada.turno = nova_tram_principal.turno
- tram_anexada.texto = nova_tram_principal.texto
- tram_anexada.data_fim_prazo = nova_tram_principal.data_fim_prazo
- tram_anexada.user = nova_tram_principal.user
- tram_anexada.ip = nova_tram_principal.ip
- tram_anexada.save()
-
- ma.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True
- ma.save()
+ tramitar_anexadas = sapl.base.models.AppConfig.attr('tramitacao_materia')
+ if tramitar_anexadas:
+ anexadas_list = lista_anexados(materia)
+ for ma in anexadas_list:
+ tram_anexada = ma.tramitacao_set.last()
+ if compara_tramitacoes_mat(ant_tram_principal, tram_anexada):
+ tram_anexada.status = nova_tram_principal.status
+ tram_anexada.data_tramitacao = nova_tram_principal.data_tramitacao
+ tram_anexada.unidade_tramitacao_local = nova_tram_principal.unidade_tramitacao_local
+ tram_anexada.data_encaminhamento = nova_tram_principal.data_encaminhamento
+ tram_anexada.unidade_tramitacao_destino = nova_tram_principal.unidade_tramitacao_destino
+ tram_anexada.urgente = nova_tram_principal.urgente
+ tram_anexada.turno = nova_tram_principal.turno
+ tram_anexada.texto = nova_tram_principal.texto
+ tram_anexada.data_fim_prazo = nova_tram_principal.data_fim_prazo
+ tram_anexada.user = nova_tram_principal.user
+ tram_anexada.ip = nova_tram_principal.ip
+ tram_anexada.save()
+
+ ma.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True
+ ma.save()
return nova_tram_principal
class LegislacaoCitadaForm(ModelForm):
diff --git a/sapl/materia/migrations/0049_pautareuniao.py b/sapl/materia/migrations/0049_pautareuniao.py
new file mode 100644
index 000000000..d502c8bc2
--- /dev/null
+++ b/sapl/materia/migrations/0049_pautareuniao.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-14 20:11
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('comissoes', '0019_auto_20181214_1023'),
+ ('materia', '0048_merge_20190426_0828'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PautaReuniao',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('materia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materia_set', to='materia.MateriaLegislativa', verbose_name='Matéria')),
+ ('reuniao', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reuniao_set', to='comissoes.Reuniao', verbose_name='Reunião')),
+ ],
+ options={
+ 'verbose_name': 'Matéria da Pauta',
+ 'verbose_name_plural': 'Matérias da Pauta',
+ },
+ ),
+ ]
diff --git a/sapl/materia/migrations/0050_auto_20190521_1148.py b/sapl/materia/migrations/0050_auto_20190521_1148.py
new file mode 100644
index 000000000..1a2945e60
--- /dev/null
+++ b/sapl/materia/migrations/0050_auto_20190521_1148.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-21 14:48
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('materia', '0049_pautareuniao'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='materialegislativa',
+ name='ip',
+ field=models.CharField(blank=True, default='', max_length=30, verbose_name='IP'),
+ ),
+ migrations.AddField(
+ model_name='materialegislativa',
+ name='user',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='Usuário'),
+ ),
+ ]
diff --git a/sapl/materia/models.py b/sapl/materia/models.py
index aad491b01..096aabc97 100644
--- a/sapl/materia/models.py
+++ b/sapl/materia/models.py
@@ -11,7 +11,7 @@ from model_utils import Choices
import reversion
from sapl.base.models import SEQUENCIA_NUMERACAO_PROTOCOLO, Autor
-from sapl.comissoes.models import Comissao
+from sapl.comissoes.models import Comissao, Reuniao
from sapl.compilacao.models import (PerfilEstruturalTextoArticulado,
TextoArticulado)
from sapl.parlamentares.models import Parlamentar
@@ -279,6 +279,20 @@ class MateriaLegislativa(models.Model):
auto_now=True,
verbose_name=_('Data'))
+ user = models.ForeignKey(
+ get_settings_auth_user_model(),
+ verbose_name=_('Usuário'),
+ on_delete=models.PROTECT,
+ null=True,
+ blank=True
+ )
+ ip = models.CharField(
+ verbose_name=_('IP'),
+ max_length=30,
+ blank=True,
+ default=''
+ )
+
class Meta:
verbose_name = _('Matéria Legislativa')
verbose_name_plural = _('Matérias Legislativas')
@@ -401,6 +415,30 @@ class AcompanhamentoMateria(models.Model):
}
+@reversion.register()
+class PautaReuniao(models.Model):
+ reuniao = models.ForeignKey(
+ Reuniao, related_name='reuniao_set',
+ on_delete=models.CASCADE,
+ verbose_name=_('Reunião')
+ )
+ materia = models.ForeignKey(
+ MateriaLegislativa, related_name='materia_set',
+ verbose_name=_('Matéria')
+ )
+
+ class Meta:
+ verbose_name = _('Matéria da Pauta')
+ verbose_name_plural = ('Matérias da Pauta')
+
+ def __str__(self):
+ return _('Reunião: %(reuniao)s'
+ ' - Matéria: %(materia)s') % {
+ 'reuniao': self.reuniao,
+ 'materia': self.materia
+ }
+
+
@reversion.register()
class Anexada(models.Model):
materia_principal = models.ForeignKey(
diff --git a/sapl/materia/tests/test_materia.py b/sapl/materia/tests/test_materia.py
index 1938d04f4..e12b03dff 100644
--- a/sapl/materia/tests/test_materia.py
+++ b/sapl/materia/tests/test_materia.py
@@ -7,7 +7,7 @@ from django.db.models import Max
from model_mommy import mommy
import pytest
-from sapl.base.models import Autor, TipoAutor
+from sapl.base.models import Autor, TipoAutor, AppConfig
from sapl.comissoes.models import Comissao, TipoComissao
from sapl.materia.models import (Anexada, Autoria, DespachoInicial,
DocumentoAcessorio, MateriaLegislativa,
@@ -78,6 +78,51 @@ def test_lista_materias_anexadas():
assert lista[1] == materia_anexada_anexada
+@pytest.mark.django_db(transaction=False)
+def test_lista_materias_anexadas_ciclo():
+ tipo_materia = mommy.make(
+ TipoMateriaLegislativa,
+ descricao="Tipo_Teste"
+ )
+ regime_tramitacao = mommy.make(
+ RegimeTramitacao,
+ descricao="Regime_Teste"
+ )
+ materia_principal = mommy.make(
+ MateriaLegislativa,
+ numero=20,
+ ano=2018,
+ data_apresentacao="2018-01-04",
+ regime_tramitacao=regime_tramitacao,
+ tipo=tipo_materia
+ )
+ materia_anexada = mommy.make(
+ MateriaLegislativa,
+ numero=21,
+ ano=2019,
+ data_apresentacao="2019-05-04",
+ regime_tramitacao=regime_tramitacao,
+ tipo=tipo_materia
+ )
+
+ mommy.make(
+ Anexada,
+ materia_principal=materia_principal,
+ materia_anexada=materia_anexada,
+ data_anexacao="2019-05-11"
+ )
+ mommy.make(
+ Anexada,
+ materia_principal=materia_anexada,
+ materia_anexada=materia_principal,
+ data_anexacao="2020-11-05"
+ )
+
+ lista = lista_anexados(materia_principal)
+
+ assert len(lista) == 1
+ assert lista[0] == materia_anexada
+
@pytest.mark.django_db(transaction=False)
def make_unidade_tramitacao(descricao):
# Cria uma comissão para ser a unidade de tramitação
@@ -643,6 +688,8 @@ def test_numeracao_materia_legislativa_por_ano(admin_client):
@pytest.mark.django_db(transaction=False)
def test_tramitacoes_materias_anexadas(admin_client):
+ config = mommy.make(AppConfig, tramitacao_materia=True)
+
tipo_materia = mommy.make(
TipoMateriaLegislativa,
descricao="Tipo_Teste"
@@ -813,4 +860,105 @@ def test_tramitacoes_materias_anexadas(admin_client):
kwargs={'pk': tramitacao_anexada.pk})
response = admin_client.post(url, {'confirmar':'confirmar'} ,follow=True)
assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 0
- assert Tramitacao.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 0
\ No newline at end of file
+ assert Tramitacao.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 0
+
+
+ # Agora testando para caso não seja desejado tramitar as matérias anexadas
+ # junto com as matérias principais
+
+ assert Tramitacao.objects.all().count() == 0
+
+ config.tramitacao_materia = False
+ config.save()
+
+ # Teste criação de Tramitacao
+ form = TramitacaoForm(data={})
+ form.data = {'data_tramitacao':date(2019, 5, 6),
+ 'unidade_tramitacao_local':unidade_tramitacao_local_1.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_1.pk,
+ 'status':status.pk,
+ 'urgente': False,
+ 'texto': "Texto de teste"}
+ form.instance.materia_id=materia_principal.pk
+
+ assert form.is_valid()
+
+ tramitacao_principal = form.save()
+ tramitacao_anexada = materia_anexada.tramitacao_set.last()
+ tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.last()
+
+ # Deve ser criada tramitação apenas para a matéria principal
+ assert materia_principal.tramitacao_set.last() == tramitacao_principal
+ assert not tramitacao_anexada
+ assert not tramitacao_anexada_anexada
+
+
+ # Criação de uma tramitação igual para a anexada à principal para testar a edição
+ form = TramitacaoForm(data={})
+ form.data = {'data_tramitacao':date(2019, 5, 6),
+ 'unidade_tramitacao_local':unidade_tramitacao_local_1.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_1.pk,
+ 'status':status.pk,
+ 'urgente': False,
+ 'texto': "Texto de teste"}
+ form.instance.materia_id=materia_anexada.pk
+
+ assert form.is_valid()
+
+ tramitacao_anexada = form.save()
+ tramitacao_principal = materia_principal.tramitacao_set.last()
+ tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.last()
+
+ assert materia_anexada.tramitacao_set.last() == tramitacao_anexada
+ assert materia_principal.tramitacao_set.all().count() == 1
+ assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada)
+ assert not tramitacao_anexada_anexada
+
+ # Teste Edição de Tramitacao
+ form = TramitacaoUpdateForm(data={})
+ # Alterando unidade_tramitacao_destino
+ form.data = {'data_tramitacao':tramitacao_principal.data_tramitacao,
+ 'unidade_tramitacao_local':tramitacao_principal.unidade_tramitacao_local.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_2.pk,
+ 'status':tramitacao_principal.status.pk,
+ 'urgente': tramitacao_principal.urgente,
+ 'texto': tramitacao_principal.texto}
+ form.instance = tramitacao_principal
+
+ assert form.is_valid()
+ tramitacao_principal = form.save()
+ tramitacao_anexada = materia_anexada.tramitacao_set.last()
+ tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.last()
+
+ assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_1
+ assert not tramitacao_anexada_anexada
+
+ # Alterando a tramitação anexada para testar a remoção de tramitações
+ # Alterando unidade_tramitacao_destino
+ form = TramitacaoUpdateForm(data={})
+ form.data = {'data_tramitacao':tramitacao_principal.data_tramitacao,
+ 'unidade_tramitacao_local':tramitacao_principal.unidade_tramitacao_local.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_2.pk,
+ 'status':tramitacao_principal.status.pk,
+ 'urgente': tramitacao_principal.urgente,
+ 'texto': tramitacao_principal.texto}
+ form.instance = tramitacao_anexada
+
+ assert form.is_valid()
+ tramitacao_anexada = form.save()
+ tramitacao_principal = materia_principal.tramitacao_set.last()
+ tramitacao_anexada_anexada = materia_anexada_anexada.tramitacao_set.last()
+
+ assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert not tramitacao_anexada_anexada
+ assert compara_tramitacoes_mat(tramitacao_principal, tramitacao_anexada)
+
+ # Testando a remoção
+ # Removendo a tramitação pricipal, as tramitações anexadas não devem ser removidas
+ url = reverse('sapl.materia:tramitacao_delete',
+ kwargs={'pk': tramitacao_principal.pk})
+ response = admin_client.post(url, {'confirmar':'confirmar'} ,follow=True)
+ assert Tramitacao.objects.filter(id=tramitacao_principal.pk).count() == 0
+ assert Tramitacao.objects.filter(id=tramitacao_anexada.pk).count() == 1
\ No newline at end of file
diff --git a/sapl/materia/views.py b/sapl/materia/views.py
index afde0ef64..f5d80ce11 100644
--- a/sapl/materia/views.py
+++ b/sapl/materia/views.py
@@ -1256,18 +1256,29 @@ class TramitacaoCrud(MasterDetailCrud):
layout_key = 'TramitacaoUpdate'
- def get_initial(self):
- initial = super(UpdateView, self).get_initial()
- initial['ip'] = get_client_ip(self.request)
- initial['user'] = self.request.user
- return initial
-
def form_valid(self, form):
+ dict_objeto_antigo = Tramitacao.objects.get(pk=self.kwargs['pk']).__dict__
+
self.object = form.save()
- username = self.request.user.username
+ dict_objeto_novo = self.object.__dict__
+
+ user = self.request.user
+
+ atributos = [
+ 'data_tramitacao', 'unidade_tramitacao_destino_id', 'status_id', 'texto',
+ 'data_encaminhamento', 'data_fim_prazo', 'urgente', 'turno'
+ ]
+
+ # Se não houve qualquer alteração em um dos dados, mantém o usuário e ip
+ for atributo in atributos:
+ if dict_objeto_antigo[atributo] != dict_objeto_novo[atributo]:
+ self.object.user = user
+ self.object.ip = get_client_ip(self.request)
+ self.object.save()
+ break
try:
- self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
+ self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
.format(Tramitacao, self.object, self.request))
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
@@ -1276,7 +1287,7 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
- self.logger.warning('user=' + username + '. Tramitação atualizada, mas e-mail de acompanhamento '
+ self.logger.warning('user=' + user.username + '. Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
messages.add_message(self.request, messages.WARNING, msg)
@@ -1317,12 +1328,21 @@ class TramitacaoCrud(MasterDetailCrud):
return HttpResponseRedirect(url)
else:
tramitacoes_deletar = [tramitacao.id]
- mat_anexadas = lista_anexados(materia)
- for ma in mat_anexadas:
- tram_anexada = ma.tramitacao_set.last()
- if compara_tramitacoes_mat(tram_anexada, tramitacao):
- tramitacoes_deletar.append(tram_anexada.id)
+ if materia.tramitacao_set.count() == 0:
+ materia.em_tramitacao = False
+ materia.save()
+ tramitar_anexadas = sapl.base.models.AppConfig.attr('tramitacao_materia')
+ if tramitar_anexadas:
+ mat_anexadas = lista_anexados(materia)
+ for ma in mat_anexadas:
+ tram_anexada = ma.tramitacao_set.last()
+ if compara_tramitacoes_mat(tram_anexada, tramitacao):
+ tramitacoes_deletar.append(tram_anexada.id)
+ if ma.tramitacao_set.count() == 0:
+ ma.em_tramitacao = False
+ ma.save()
Tramitacao.objects.filter(id__in=tramitacoes_deletar).delete()
+
return HttpResponseRedirect(url)
class DetailView(MasterDetailCrud.DetailView):
@@ -1596,6 +1616,15 @@ class MateriaLegislativaCrud(Crud):
form_class = MateriaLegislativaForm
+ def form_valid(self, form):
+ self.object = form.instance
+
+ self.object.user = self.request.user
+ self.object.ip = get_client_ip(self.request)
+ self.object.save()
+
+ return super().form_valid(form)
+
@property
def cancel_url(self):
return self.search_url
@@ -1605,8 +1634,28 @@ class MateriaLegislativaCrud(Crud):
form_class = MateriaLegislativaForm
def form_valid(self, form):
+ dict_objeto_antigo = MateriaLegislativa.objects.get(
+ pk=self.kwargs['pk']
+ ).__dict__
+
self.object = form.save()
- username = self.request.user.username
+ dict_objeto_novo = self.object.__dict__
+
+ atributos = [
+ 'tipo_id', 'ano', 'numero', 'data_apresentacao', 'numero_protocolo',
+ 'tipo_apresentacao', 'texto_original', 'apelido', 'dias_prazo', 'polemica',
+ 'objeto', 'regime_tramitacao_id', 'em_tramitacao', 'data_fim_prazo',
+ 'data_publicacao', 'complementar', 'tipo_origem_externa_id',
+ 'numero_origem_externa', 'ano_origem_externa', 'local_origem_externa_id',
+ 'data_origem_externa', 'ementa', 'indexacao', 'observacao'
+ ]
+
+ for atributo in atributos:
+ if dict_objeto_antigo[atributo] != dict_objeto_novo[atributo]:
+ self.object.user = self.request.user
+ self.object.ip = get_client_ip(self.request)
+ self.object.save()
+ break
if Anexada.objects.filter(materia_principal=self.kwargs['pk']).exists():
materia = MateriaLegislativa.objects.get(pk=self.kwargs['pk'])
@@ -1615,7 +1664,7 @@ class MateriaLegislativaCrud(Crud):
for anexada in anexadas:
anexada.em_tramitacao = True if form.instance.em_tramitacao else False
anexada.save()
-
+
return super().form_valid(form)
@property
@@ -1630,6 +1679,13 @@ class MateriaLegislativaCrud(Crud):
class DetailView(Crud.DetailView):
layout_key = 'MateriaLegislativaDetail'
+ template_name = "materia/materia_detail.html"
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ context['user'] = self.request.user
+ context['materia'] = MateriaLegislativa.objects.get(pk=self.kwargs['pk'])
+ return context
class ListView(Crud.ListView, RedirectView):
@@ -2183,8 +2239,8 @@ class MateriaAnexadaEmLoteView(PermissionRequiredMixin, FilterView):
msg = _('Matéria(s) anexada(s).')
messages.add_message(request, messages.SUCCESS, msg)
- sucess_url = reverse('sapl_index') + 'materia/' + kwargs['pk'] + '/anexada'
- return HttpResponseRedirect(sucess_url)
+ success_url = reverse('sapl.materia:anexada_list', kwargs={'pk': kwargs['pk']})
+ return HttpResponseRedirect(success_url)
class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
@@ -2288,12 +2344,12 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
flag_error = False
materias_principais = [m for m in MateriaLegislativa.objects.filter(id__in=marcadas)]
- materias_anexadas = [m.anexadas.all() for m in MateriaLegislativa.objects.filter(id__in=marcadas) if m.anexadas.all()]
- materias_anexadas = list(itertools.chain.from_iterable(materias_anexadas))
- tramitacao_local = int(request.POST['unidade_tramitacao_local'])
- materias_anexadas = list(filter(lambda ma : not ma.tramitacao_set.all() or \
- ma.tramitacao_set.last().unidade_tramitacao_destino.id == tramitacao_local,
- materias_anexadas))
+ tramitar_anexadas = sapl.base.models.AppConfig.attr('tramitacao_materia')
+ materias_anexadas = []
+ if tramitar_anexadas:
+ for materia in materias_principais:
+ materias_anexadas = materias_anexadas + lista_anexados(materia)
+
materias = set(materias_principais + materias_anexadas)
for materia in materias:
@@ -2351,11 +2407,13 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
materia.em_tramitacao = True
materia.save()
- msg = _('Tramitação completa.')
+ msg = _('Tramitação completa. ' + "Foram tramitadas " + str(len(materias)) + " matéria(s).")
self.logger.info('user=' + username + '. Tramitação completa.')
messages.add_message(request, messages.SUCCESS, msg)
- return self.get(request, self.kwargs)
-
+
+ if self.primeira_tramitacao:
+ return HttpResponseRedirect(reverse('sapl.materia:primeira_tramitacao_em_lote'))
+ return HttpResponseRedirect(reverse('sapl.materia:tramitacao_em_lote'))
class TramitacaoEmLoteView(PrimeiraTramitacaoEmLoteView):
filterset_class = TramitacaoEmLoteFilterSet
diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py
index 5a9e1b3f6..366b7d544 100644
--- a/sapl/norma/forms.py
+++ b/sapl/norma/forms.py
@@ -18,7 +18,7 @@ from sapl.materia.forms import choice_anos_com_materias
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import NormaPesquisaOrderingFilter, RangeWidgetOverride, \
- choice_anos_com_normas, FilterOverridesMetaMixin, FileFieldCheckMixin
+ choice_anos_com_normas, FilterOverridesMetaMixin, FileFieldCheckMixin, ANO_CHOICES
from .models import (AnexoNormaJuridica, AssuntoNorma, NormaJuridica, NormaRelacionada,
TipoNormaJuridica, AutoriaNorma)
@@ -106,7 +106,7 @@ class NormaJuridicaForm(FileFieldCheckMixin, ModelForm):
ano_materia = forms.ChoiceField(
label='Ano Matéria',
required=False,
- choices=choice_anos_com_materias,
+ choices=ANO_CHOICES,
widget=forms.Select(attrs={'autocomplete': 'off'})
)
diff --git a/sapl/norma/views.py b/sapl/norma/views.py
index 336c16933..735d595a3 100644
--- a/sapl/norma/views.py
+++ b/sapl/norma/views.py
@@ -79,7 +79,7 @@ class NormaPesquisaView(FilterView):
qs = qs.extra({
'nm_i': "CAST(regexp_replace(numero,'[^0-9]','', 'g') AS INTEGER)",
'norma_letra': "regexp_replace(numero,'[^a-zA-Z]','', 'g')"
- }).order_by('-data', '-nm_i', '-norma_letra')
+ }).order_by('-data', '-nm_i', 'norma_letra')
return qs
diff --git a/sapl/parlamentares/migrations/0029_auto_20190517_1531.py b/sapl/parlamentares/migrations/0029_auto_20190517_1531.py
new file mode 100644
index 000000000..30a5c64ec
--- /dev/null
+++ b/sapl/parlamentares/migrations/0029_auto_20190517_1531.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-17 18:31
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('parlamentares', '0028_auto_20190515_1744'),
+ ]
+
+ operations = [
+ migrations.RunSQL("""
+ INSERT INTO django_content_type (app_label, model)
+ SELECT 'parlamentares', 'bloco'
+ WHERE NOT EXISTS (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco');
+ """),
+ migrations.RunSQL("""
+ INSERT INTO base_tipoautor (descricao, content_type_id)
+ SELECT 'Bloco Parlamentar', (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco')
+ WHERE NOT EXISTS (SELECT id
+ FROM base_tipoautor
+ WHERE content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco'));
+ """),
+ migrations.RunSQL("""
+ UPDATE auth_permission
+ SET content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco')
+ WHERE content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'sessao' AND model = 'bloco')
+ AND NOT EXISTS (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco');
+ """),
+ migrations.RunSQL("""
+ UPDATE base_autor
+ SET tipo_id = (SELECT id
+ FROM base_tipoautor
+ WHERE content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco')),
+ content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'parlamentares' AND model = 'bloco')
+ WHERE tipo_id = (SELECT id
+ FROM base_tipoautor
+ WHERE content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'sessao' AND model = 'bloco'));
+ """),
+ migrations.RunSQL("""
+ DELETE FROM base_tipoautor
+ WHERE content_type_id = (SELECT id
+ FROM django_content_type
+ WHERE app_label = 'sessao' AND model = 'bloco');
+ """),
+ ]
diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py
index a8630539c..71d45b7d7 100644
--- a/sapl/protocoloadm/forms.py
+++ b/sapl/protocoloadm/forms.py
@@ -1,9 +1,9 @@
import logging
-from crispy_forms.bootstrap import InlineRadios, Alert
+from crispy_forms.bootstrap import InlineRadios, Alert, FormActions
from sapl.crispy_layout_mixin import SaplFormHelper
-from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Div
+from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Div, Submit
from django import forms
from django.core.exceptions import (MultipleObjectsReturned,
ObjectDoesNotExist, ValidationError)
@@ -170,6 +170,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
o = AnoNumeroOrderingFilter(help_text='')
+
class Meta(FilterOverridesMetaMixin):
model = DocumentoAdministrativo
fields = ['tipo',
@@ -207,17 +208,33 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
row4 = to_row(
[
('tramitacao', 2),
- ('tramitacaoadministrativo__status', 5),
- ('tramitacaoadministrativo__unidade_tramitacao_destino', 5),
+ ('tramitacaoadministrativo__status', 4),
+ ('tramitacaoadministrativo__unidade_tramitacao_destino', 6),
])
+ buttons = FormActions(
+ *[
+ HTML('''
+
+
+ Gerar relatório PDF
+
+ ''' )
+ ],
+ Submit('pesquisar', _('Pesquisar'), css_class='float-right',
+ onclick='return true;'),
+ css_class='form-group row justify-content-between'
+ ,
+ )
+
+
self.form.helper = SaplFormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Pesquisar Documento'),
- row1, row2,
- row3, row4,
- form_actions(label='Pesquisar'))
+ row1, row2,
+ row3, row4,
+ buttons,)
)
@@ -752,28 +769,30 @@ class TramitacaoAdmForm(ModelForm):
documento.tramitacao = False if tramitacao.status.indicador == "F" else True
documento.save()
- lista_tramitacao = []
- list_anexados = lista_anexados(documento, False)
- for da in list_anexados:
- if not da.tramitacaoadministrativo_set.all() \
- or da.tramitacaoadministrativo_set.last() \
- .unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
- da.tramitacao = False if tramitacao.status.indicador == "F" else True
- da.save()
- lista_tramitacao.append(TramitacaoAdministrativo(
- status=tramitacao.status,
- documento=da,
- data_tramitacao=tramitacao.data_tramitacao,
- unidade_tramitacao_local=tramitacao.unidade_tramitacao_local,
- data_encaminhamento=tramitacao.data_encaminhamento,
- unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino,
- urgente=tramitacao.urgente,
- texto=tramitacao.texto,
- data_fim_prazo=tramitacao.data_fim_prazo,
- user=tramitacao.user,
- ip=tramitacao.ip
- ))
- TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
+ tramitar_anexados = AppConfig.attr('tramitacao_documento')
+ if tramitar_anexados:
+ lista_tramitacao = []
+ anexados_list = lista_anexados(documento, False)
+ for da in anexados_list:
+ if not da.tramitacaoadministrativo_set.all() \
+ or da.tramitacaoadministrativo_set.last() \
+ .unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
+ da.tramitacao = False if tramitacao.status.indicador == "F" else True
+ da.save()
+ lista_tramitacao.append(TramitacaoAdministrativo(
+ status=tramitacao.status,
+ documento=da,
+ data_tramitacao=tramitacao.data_tramitacao,
+ unidade_tramitacao_local=tramitacao.unidade_tramitacao_local,
+ data_encaminhamento=tramitacao.data_encaminhamento,
+ unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino,
+ urgente=tramitacao.urgente,
+ texto=tramitacao.texto,
+ data_fim_prazo=tramitacao.data_fim_prazo,
+ user=tramitacao.user,
+ ip=tramitacao.ip
+ ))
+ TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
return tramitacao
@@ -860,31 +879,32 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
@transaction.atomic
def save(self, commit=True):
- # tram_principal = super(TramitacaoAdmEditForm, self).save(commit)
ant_tram_principal = TramitacaoAdministrativo.objects.get(id=self.instance.id)
nova_tram_principal = super(TramitacaoAdmEditForm, self).save(commit)
documento = nova_tram_principal.documento
documento.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
documento.save()
- list_anexados = lista_anexados(documento, False)
- for da in list_anexados:
- tram_anexada = da.tramitacaoadministrativo_set.last()
- if compara_tramitacoes_doc(ant_tram_principal, tram_anexada):
- tram_anexada.status = nova_tram_principal.status
- tram_anexada.data_tramitacao = nova_tram_principal.data_tramitacao
- tram_anexada.unidade_tramitacao_local = nova_tram_principal.unidade_tramitacao_local
- tram_anexada.data_encaminhamento = nova_tram_principal.data_encaminhamento
- tram_anexada.unidade_tramitacao_destino = nova_tram_principal.unidade_tramitacao_destino
- tram_anexada.urgente = nova_tram_principal.urgente
- tram_anexada.texto = nova_tram_principal.texto
- tram_anexada.data_fim_prazo = nova_tram_principal.data_fim_prazo
- tram_anexada.user = nova_tram_principal.user
- tram_anexada.ip = nova_tram_principal.ip
- tram_anexada.save()
-
- da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
- da.save()
+ tramitar_anexados = AppConfig.attr('tramitacao_documento')
+ if tramitar_anexados:
+ anexados_list = lista_anexados(documento, False)
+ for da in anexados_list:
+ tram_anexada = da.tramitacaoadministrativo_set.last()
+ if compara_tramitacoes_doc(ant_tram_principal, tram_anexada):
+ tram_anexada.status = nova_tram_principal.status
+ tram_anexada.data_tramitacao = nova_tram_principal.data_tramitacao
+ tram_anexada.unidade_tramitacao_local = nova_tram_principal.unidade_tramitacao_local
+ tram_anexada.data_encaminhamento = nova_tram_principal.data_encaminhamento
+ tram_anexada.unidade_tramitacao_destino = nova_tram_principal.unidade_tramitacao_destino
+ tram_anexada.urgente = nova_tram_principal.urgente
+ tram_anexada.texto = nova_tram_principal.texto
+ tram_anexada.data_fim_prazo = nova_tram_principal.data_fim_prazo
+ tram_anexada.user = nova_tram_principal.user
+ tram_anexada.ip = nova_tram_principal.ip
+ tram_anexada.save()
+
+ da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
+ da.save()
return nova_tram_principal
@@ -1407,3 +1427,255 @@ class FichaSelecionaAdmForm(forms.Form):
form_actions(label='Gerar Impresso')
)
)
+
+
+class PrimeiraTramitacaoEmLoteAdmFilterSet(django_filters.FilterSet):
+
+ class Meta(FilterOverridesMetaMixin):
+ model = DocumentoAdministrativo
+ fields = ['tipo', 'data']
+
+ def __init__(self, *args, **kwargs):
+ super(PrimeiraTramitacaoEmLoteAdmFilterSet, self).__init__(
+ *args, **kwargs)
+
+ self.filters['tipo'].label = 'Tipo de Documento'
+ self.filters['data'].label = 'Data (Inicial - Final)'
+ self.form.fields['tipo'].required = True
+ self.form.fields['data'].required = False
+
+ row1 = to_row([('tipo', 12)])
+ row2 = to_row([('data', 12)])
+
+ self.form.helper = SaplFormHelper()
+ self.form.helper.form_method = 'GET'
+ self.form.helper.layout = Layout(
+ Fieldset(_('Primeira Tramitação'),
+ row1, row2, form_actions(label='Pesquisar')))
+
+
+class TramitacaoEmLoteAdmForm(ModelForm):
+ logger = logging.getLogger(__name__)
+
+ class Meta:
+ model = TramitacaoAdministrativo
+ fields = ['data_tramitacao',
+ 'unidade_tramitacao_local',
+ 'status',
+ 'urgente',
+ 'unidade_tramitacao_destino',
+ 'data_encaminhamento',
+ 'data_fim_prazo',
+ 'texto',
+ 'user',
+ 'ip']
+ widgets = {'user': forms.HiddenInput(),
+ 'ip': forms.HiddenInput()}
+
+
+ def __init__(self, *args, **kwargs):
+ super(TramitacaoEmLoteAdmForm, self).__init__(*args, **kwargs)
+ self.fields['data_tramitacao'].initial = timezone.now().date()
+ ust = UnidadeTramitacao.objects.select_related().all()
+ unidade_tramitacao_destino = [('', '---------')] + [(ut.pk, ut)
+ for ut in ust if ut.comissao and ut.comissao.ativa]
+ unidade_tramitacao_destino.extend(
+ [(ut.pk, ut) for ut in ust if ut.orgao])
+ unidade_tramitacao_destino.extend(
+ [(ut.pk, ut) for ut in ust if ut.parlamentar])
+ self.fields['unidade_tramitacao_destino'].choices = unidade_tramitacao_destino
+ self.fields['urgente'].label = "Urgente? *"
+
+ row1 = to_row([
+ ('data_tramitacao', 4),
+ ('data_encaminhamento', 4),
+ ('data_fim_prazo', 4)
+ ])
+ row2 = to_row([
+ ('unidade_tramitacao_local', 6),
+ ('unidade_tramitacao_destino', 6),
+ ])
+ row3 = to_row([
+ ('status', 6),
+ ('urgente', 6)
+ ])
+ row4 = to_row([
+ ('texto', 12)
+ ])
+
+ documentos_checkbox_HTML = '''
+
+
+ Selecione os documentos para tramitação:
+
+
+ '''
+
+ self.helper = SaplFormHelper()
+ self.helper.layout = Layout(
+ Fieldset(
+ 'Detalhes da tramitação:',
+ row1, row2, row3, row4,
+ HTML(documentos_checkbox_HTML),
+ form_actions(label='Salvar')
+ )
+ )
+
+
+ def clean(self):
+ cleaned_data = super(TramitacaoEmLoteAdmForm, self).clean()
+
+ if not self.is_valid():
+ return self.cleaned_data
+
+ if 'data_encaminhamento' in cleaned_data:
+ data_enc_form = cleaned_data['data_encaminhamento']
+ if 'data_fim_prazo' in cleaned_data:
+ data_prazo_form = cleaned_data['data_fim_prazo']
+ if 'data_tramitacao' in cleaned_data:
+ data_tram_form = cleaned_data['data_tramitacao']
+
+ if not self.instance.data_tramitacao:
+
+ if cleaned_data['data_tramitacao'] > timezone.now().date():
+ self.logger.error('A data de tramitação ({}) deve ser '
+ 'menor ou igual a data de hoje ({})!'
+ .format(cleaned_data['data_tramitacao'], timezone.now().date()))
+ msg = _(
+ 'A data de tramitação deve ser ' +
+ 'menor ou igual a data de hoje!')
+ raise ValidationError(msg)
+
+ if data_enc_form:
+ if data_enc_form < data_tram_form:
+ self.logger.error('A data de encaminhamento ({}) deve ser '
+ 'maior que a data de tramitação ({})!'
+ .format(data_enc_form, data_tram_form))
+ msg = _('A data de encaminhamento deve ser ' +
+ 'maior que a data de tramitação!')
+ raise ValidationError(msg)
+
+ if data_prazo_form:
+ if data_prazo_form < data_tram_form:
+ self.logger.error('A data fim de prazo ({}) deve ser '
+ 'maior que a data de tramitação ({})!'
+ .format(data_prazo_form, data_tram_form))
+ msg = _('A data fim de prazo deve ser ' +
+ 'maior que a data de tramitação!')
+ raise ValidationError(msg)
+
+ if cleaned_data['unidade_tramitacao_local'] == cleaned_data['unidade_tramitacao_destino']:
+ msg = _('Unidade tramitação local deve ser diferente da unidade tramitação destino.')
+ self.logger.error('Unidade tramitação local ({}) deve ser diferente da unidade tramitação destino'
+ .format(cleaned_data['unidade_tramitacao_local']))
+ raise ValidationError(msg)
+
+ return cleaned_data
+
+ @transaction.atomic
+ def save(self, commit=True):
+ cd = self.cleaned_data
+ documentos = self.initial['documentos']
+ user = self.initial['user'] if 'user' in self.initial else None
+ ip = self.initial['ip'] if 'ip' in self.initial else ''
+ tramitar_anexados = AppConfig.attr('tramitacao_documento')
+ for doc_id in documentos:
+ doc = DocumentoAdministrativo.objects.get(id=doc_id)
+ tramitacao = TramitacaoAdministrativo.objects.create(
+ status=cd['status'],
+ documento=doc,
+ data_tramitacao=cd['data_tramitacao'],
+ unidade_tramitacao_local=cd['unidade_tramitacao_local'],
+ unidade_tramitacao_destino=cd['unidade_tramitacao_destino'],
+ data_encaminhamento=cd['data_encaminhamento'],
+ urgente=cd['urgente'],
+ texto=cd['texto'],
+ data_fim_prazo=cd['data_fim_prazo'],
+ user=user,
+ ip=ip
+ )
+ doc.tramitacao = False if tramitacao.status.indicador == "F" else True
+ doc.save()
+
+ if tramitar_anexados:
+ lista_tramitacao = []
+ anexados = lista_anexados(doc, False)
+ for da in anexados:
+ if not da.tramitacaoadministrativo_set.all() \
+ or da.tramitacaoadministrativo_set.last() \
+ .unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
+ da.tramitacao = False if tramitacao.status.indicador == "F" else True
+ da.save()
+ lista_tramitacao.append(TramitacaoAdministrativo(
+ status=tramitacao.status,
+ documento=da,
+ data_tramitacao=tramitacao.data_tramitacao,
+ unidade_tramitacao_local=tramitacao.unidade_tramitacao_local,
+ data_encaminhamento=tramitacao.data_encaminhamento,
+ unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino,
+ urgente=tramitacao.urgente,
+ texto=tramitacao.texto,
+ data_fim_prazo=tramitacao.data_fim_prazo,
+ user=tramitacao.user,
+ ip=tramitacao.ip
+ ))
+ TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
+
+ return tramitacao
+
+
+class TramitacaoEmLoteAdmFilterSet(django_filters.FilterSet):
+ class Meta(FilterOverridesMetaMixin):
+ model = DocumentoAdministrativo
+ fields = ['tipo', 'data', 'tramitacaoadministrativo__status',
+ 'tramitacaoadministrativo__unidade_tramitacao_destino']
+
+ def __init__(self, *args, **kwargs):
+ super(TramitacaoEmLoteAdmFilterSet, self).__init__(
+ *args, **kwargs)
+
+ self.filters['tipo'].label = _('Tipo de Documento')
+ self.filters['data'].label = _('Data (Inicial - Final)')
+ self.filters['tramitacaoadministrativo__unidade_tramitacao_destino'
+ ].label = _('Unidade Destino (Último Destino)')
+ self.filters['tramitacaoadministrativo__status'].label = _('Status')
+ self.form.fields['tipo'].required = True
+ self.form.fields['data'].required = False
+ self.form.fields['tramitacaoadministrativo__status'].required = True
+ self.form.fields[
+ 'tramitacaoadministrativo__unidade_tramitacao_destino'].required = True
+
+ row1 = to_row([
+ ('tipo', 4),
+ ('tramitacaoadministrativo__unidade_tramitacao_destino', 4),
+ ('tramitacaoadministrativo__status', 4)])
+ row2 = to_row([('data', 12)])
+
+ self.form.helper = SaplFormHelper()
+ self.form.helper.form_method = 'GET'
+ self.form.helper.layout = Layout(
+ Fieldset(_('Tramitação em Lote'),
+ row1, row2, form_actions(label=_('Pesquisar'))))
\ No newline at end of file
diff --git a/sapl/protocoloadm/tests/test_protocoloadm.py b/sapl/protocoloadm/tests/test_protocoloadm.py
index ce322a7ba..bd9b823dc 100644
--- a/sapl/protocoloadm/tests/test_protocoloadm.py
+++ b/sapl/protocoloadm/tests/test_protocoloadm.py
@@ -1,10 +1,11 @@
-from datetime import date, timedelta, datetime
+from datetime import date, timedelta
from django.core.urlresolvers import reverse
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy
+from urllib.parse import urlencode
import pytest
from sapl.base.models import AppConfig
@@ -15,7 +16,8 @@ from sapl.protocoloadm.forms import (AnularProtocoloAdmForm,
MateriaLegislativa, ProtocoloDocumentForm,
ProtocoloMateriaForm, TramitacaoAdmForm,
TramitacaoAdmEditForm,
- compara_tramitacoes_doc)
+ compara_tramitacoes_doc,
+ TramitacaoEmLoteAdmForm)
from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo,
StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo,
@@ -532,6 +534,9 @@ def make_unidade_tramitacao(descricao):
@pytest.mark.django_db(transaction=False)
def test_tramitacoes_documentos_anexados(admin_client):
+
+ config = mommy.make(AppConfig, tramitacao_documento=True)
+
tipo_documento = mommy.make(
TipoDocumentoAdministrativo,
descricao="Tipo_Teste"
@@ -703,3 +708,515 @@ def test_tramitacoes_documentos_anexados(admin_client):
response = admin_client.post(url, {'confirmar':'confirmar'} ,follow=True)
assert TramitacaoAdministrativo.objects.filter(id=tramitacao_anexada.pk).count() == 0
assert TramitacaoAdministrativo.objects.filter(id=tramitacao_anexada_anexada.pk).count() == 0
+
+
+ # Agora testando para caso não seja desejado tramitar os documentos anexados
+ # junto com os documentos principais
+ config.tramitacao_documento = False
+ config.save()
+
+ # Teste criação de Tramitacao
+ form = TramitacaoAdmForm(data={})
+ form.data = {'data_tramitacao':date(2019, 5, 6),
+ 'unidade_tramitacao_local':unidade_tramitacao_local_1.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_1.pk,
+ 'status':status.pk,
+ 'urgente': False,
+ 'texto': "Texto de teste"}
+ form.instance.documento_id=documento_principal.pk
+
+ assert form.is_valid()
+ tramitacao_principal = form.save()
+ tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
+ tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
+
+ # Verifica se não foram criadas as tramitações para os documentos anexados e anexados aos anexados
+ assert documento_principal.tramitacaoadministrativo_set.last() == tramitacao_principal
+ assert tramitacao_principal.documento.tramitacao == (tramitacao_principal.status.indicador != "F")
+ assert not tramitacao_anexada
+ assert not tramitacao_anexada_anexada
+
+
+ # Cria uma tramitação igual na tramitação anexada para testar a edição
+ form = TramitacaoAdmForm(data={})
+ form.data = {'data_tramitacao':date(2019, 5, 6),
+ 'unidade_tramitacao_local':unidade_tramitacao_local_1.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_1.pk,
+ 'status':status.pk,
+ 'urgente': False,
+ 'texto': "Texto de teste"}
+ form.instance.documento_id=documento_anexado.pk
+
+ assert form.is_valid()
+ tramitacao_anexada = form.save()
+ tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
+ tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
+
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado.tramitacaoadministrativo_set.last() == tramitacao_anexada
+ assert not tramitacao_anexada_anexada
+
+ form = TramitacaoAdmEditForm(data={})
+ # Alterando unidade_tramitacao_destino da matéria principal,
+ # as anexadas não devem ser alteradas
+ form.data = {'data_tramitacao':tramitacao_principal.data_tramitacao,
+ 'unidade_tramitacao_local':tramitacao_principal.unidade_tramitacao_local.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_2.pk,
+ 'status':tramitacao_principal.status.pk,
+ 'urgente': tramitacao_principal.urgente,
+ 'texto': tramitacao_principal.texto}
+ form.instance = tramitacao_principal
+
+ assert form.is_valid()
+ tramitacao_principal = form.save()
+ tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
+ tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
+
+ assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_1
+ assert not tramitacao_anexada_anexada
+
+
+ form = TramitacaoAdmEditForm(data={})
+ # Alterando a anexada da principal para testar a remoção de tramitação
+ form.data = {'data_tramitacao':tramitacao_principal.data_tramitacao,
+ 'unidade_tramitacao_local':tramitacao_principal.unidade_tramitacao_local.pk,
+ 'unidade_tramitacao_destino':unidade_tramitacao_destino_2.pk,
+ 'status':tramitacao_principal.status.pk,
+ 'urgente': tramitacao_principal.urgente,
+ 'texto': tramitacao_principal.texto}
+ form.instance = tramitacao_anexada
+
+ assert form.is_valid()
+ tramitacao_anexada = form.save()
+ tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
+ tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
+
+ assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
+ assert not tramitacao_anexada_anexada
+ assert compara_tramitacoes_doc(tramitacao_anexada, tramitacao_principal)
+
+ # Removendo a tramitação principal, a tramitação anexada não deve ser removida
+ url = reverse('sapl.protocoloadm:tramitacaoadministrativo_delete',
+ kwargs={'pk': tramitacao_principal.pk})
+ response = admin_client.post(url, {'confirmar':'confirmar'} ,follow=True)
+ assert TramitacaoAdministrativo.objects.filter(id=tramitacao_principal.pk).count() == 0
+ assert TramitacaoAdministrativo.objects.filter(id=tramitacao_anexada.pk).count() == 1
+
+
+@pytest.mark.django_db(transaction=False)
+def test_tramitacao_lote_documentos_form(admin_client):
+ tipo_documento = mommy.make(
+ TipoDocumentoAdministrativo,
+ descricao="Tipo_Teste"
+ )
+ documento = mommy.make(
+ DocumentoAdministrativo,
+ numero=20,
+ ano=2018,
+ data="2019-05-16",
+ tipo=tipo_documento
+ )
+
+ unidade_tramitacao_local_1 = make_unidade_tramitacao(descricao="Teste 1")
+ unidade_tramitacao_destino_1 = make_unidade_tramitacao(descricao="Teste 2")
+
+ status = mommy.make(
+ StatusTramitacaoAdministrativo,
+ indicador='R')
+
+ # Form sem campos obrigatórios
+ documentos = []
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+
+ errors = form.errors
+ assert errors['data_tramitacao'] == ['Este campo é obrigatório.']
+ assert errors['unidade_tramitacao_local'] == ['Este campo é obrigatório.']
+ assert errors['status'] == ['Este campo é obrigatório.']
+ assert errors['unidade_tramitacao_destino'] == ['Este campo é obrigatório.']
+ assert errors['texto'] == ['Este campo é obrigatório.']
+ assert not form.is_valid()
+
+ # Tramitar apenas um documento sem anexados
+ documentos = [documento.id]
+ now = timezone.now().date()
+
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+ form.data = {'data_tramitacao': now + timedelta(days=5),
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa'}
+
+ assert form.errors['__all__'] == \
+ ["A data de tramitação deve ser menor ou igual a data de hoje!"]
+ assert not form.is_valid()
+
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+ form.data = {'data_tramitacao': '2019-05-14',
+ 'data_encaminhamento' : '2019-05-09',
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa'}
+
+ assert form.errors['__all__'] == \
+ ["A data de encaminhamento deve ser maior que a data de tramitação!"]
+ assert not form.is_valid()
+
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+ form.data = {'data_tramitacao': '2019-05-14',
+ 'data_encaminhamento' : '2019-05-15',
+ 'data_fim_prazo': '2019-05-09',
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa'}
+
+ assert form.errors['__all__'] == \
+ ["A data fim de prazo deve ser maior que a data de tramitação!"]
+ assert not form.is_valid()
+
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+ form.data = {'data_tramitacao': '2019-05-14',
+ 'data_encaminhamento' : '2019-05-15',
+ 'data_fim_prazo': '2019-05-18',
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_local_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa'}
+
+ assert form.errors['__all__'] == \
+ ["Unidade tramitação local deve ser diferente da unidade tramitação destino."]
+ assert not form.is_valid()
+
+ form = TramitacaoEmLoteAdmForm(initial={'documentos': documentos}, data={})
+ form.data = {'data_tramitacao': '2019-05-14',
+ 'data_encaminhamento' : '2019-05-15',
+ 'data_fim_prazo': '2019-05-18',
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa'}
+
+ assert form.is_valid()
+
+
+@pytest.mark.django_db(transaction=False)
+def test_tramitacao_lote_documentos_views(admin_client):
+ config = mommy.make(AppConfig, tramitacao_documento=True)
+
+ tipo_documento = mommy.make(
+ TipoDocumentoAdministrativo,
+ descricao="Tipo_Teste"
+ )
+ documento_principal = mommy.make(
+ DocumentoAdministrativo,
+ numero=20,
+ ano=2018,
+ data="2018-01-04",
+ tipo=tipo_documento
+ )
+ documento_anexado = mommy.make(
+ DocumentoAdministrativo,
+ numero=21,
+ ano=2019,
+ data="2019-05-04",
+ tipo=tipo_documento
+ )
+ documento_anexado_anexado = mommy.make(
+ DocumentoAdministrativo,
+ numero=22,
+ ano=2020,
+ data="2020-01-05",
+ tipo=tipo_documento
+ )
+
+ documento_sem_anexados = mommy.make(
+ DocumentoAdministrativo,
+ numero=23,
+ ano=2020,
+ data="2021-01-05",
+ tipo=tipo_documento
+ )
+
+ mommy.make(
+ Anexado,
+ documento_principal=documento_principal,
+ documento_anexado=documento_anexado,
+ data_anexacao="2019-05-11"
+ )
+ mommy.make(
+ Anexado,
+ documento_principal=documento_anexado,
+ documento_anexado=documento_anexado_anexado,
+ data_anexacao="2020-11-05"
+ )
+
+ unidade_tramitacao_local_1 = make_unidade_tramitacao(descricao="Teste 1")
+ unidade_tramitacao_destino_1 = make_unidade_tramitacao(descricao="Teste 2")
+ unidade_tramitacao_destino_2 = make_unidade_tramitacao(descricao="Teste 3")
+ unidade_tramitacao_destino_3 = make_unidade_tramitacao(descricao="Teste 4")
+
+ status = mommy.make(
+ StatusTramitacaoAdministrativo,
+ indicador='R')
+
+ url = reverse('sapl.protocoloadm:primeira_tramitacao_em_lote_docadm')
+ url = url + '?' + urlencode({'tipo':tipo_documento.id, 'data_0':'', 'data_1':''})
+
+ response = admin_client.post(url, {'salvar':'salvar'}, follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+ assert len(msgs) == 1
+ assert msgs[0] == 'Escolha algum Documento para ser tramitado.'
+
+ documentos = [documento_sem_anexados.id, documento_anexado_anexado.id]
+
+ response = admin_client.post(url, {'documentos': documentos,'salvar':'salvar'}, follow=True)
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Data Tramitação: Este campo é obrigatório.' in msgs
+ assert 'Unidade Local: Este campo é obrigatório.' in msgs
+ assert 'Status: Este campo é obrigatório.' in msgs
+ assert 'Unidade Destino: Este campo é obrigatório.' in msgs
+ assert 'Texto da Ação: Este campo é obrigatório.' in msgs
+
+ # Primeira tramitação em lote
+
+ response = admin_client.post(url,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+
+ assert response.status_code == 200
+
+ assert TramitacaoAdministrativo.objects.all().count() == 2
+ assert documento_sem_anexados.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 1
+
+ # Segunda tramitação em lote
+
+ url_lote = reverse('sapl.protocoloadm:tramitacao_em_lote_docadm')
+ url_lote = url_lote + '?' + urlencode(
+ {'tipo':tipo_documento.id,
+ 'tramitacaoadministrativo__unidade_tramitacao_destino':unidade_tramitacao_destino_1.id,
+ 'tramitacaoadministrativo__status': status.id,
+ 'data_0':'',
+ 'data_1':''})
+
+ response = admin_client.post(url_lote, {'salvar':'salvar'}, follow=True)
+ assert response.status_code == 200
+
+ assert response.context_data['object_list'].count() == 2
+
+ msgs = [m.message for m in response.context['messages']]
+ assert len(msgs) == 1
+ assert msgs[0] == 'Escolha algum Documento para ser tramitado.'
+
+ response = admin_client.post(url_lote, {'documentos':documentos, 'salvar':'salvar'}, follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Data Tramitação: Este campo é obrigatório.' in msgs
+ assert 'Unidade Local: Este campo é obrigatório.' in msgs
+ assert 'Status: Este campo é obrigatório.' in msgs
+ assert 'Unidade Destino: Este campo é obrigatório.' in msgs
+ assert 'Texto da Ação: Este campo é obrigatório.' in msgs
+
+ response = admin_client.post(url_lote,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_destino_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Unidade tramitação local deve ser diferente da unidade tramitação destino.' in msgs
+
+ response = admin_client.post(url_lote,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_destino_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Tramitação completa.' in msgs
+
+ assert TramitacaoAdministrativo.objects.all().count() == 4
+ assert documento_sem_anexados.tramitacaoadministrativo_set.all().count() == 2
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 2
+
+ # Tramitar documentos com anexados
+ # O documento anexado ao anexado não deve tramitar junto porque já está com tramitação diferente
+ documentos = [documento_principal.id]
+
+ response = admin_client.post(url,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+
+ assert response.status_code == 200
+
+ assert TramitacaoAdministrativo.objects.all().count() == 6
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 1
+
+ # Segunda tramitação com documentos anexados
+ response = admin_client.post(url_lote,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_destino_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Tramitação completa.' in msgs
+
+ assert TramitacaoAdministrativo.objects.all().count() == 8
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 2
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 2
+
+ # Terceira tramitação em lote
+ # Agora, o documento anexado ao anexado deve tramitar junto com o documento principal,
+ # pois suas tramitações convergiram
+
+ response = admin_client.post(url_lote,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_destino_2.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_3.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Tramitação completa.' in msgs
+
+ assert TramitacaoAdministrativo.objects.all().count() == 11
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 3
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 3
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 3
+
+
+ # Agora testando para caso não seja desejado tramitar os documentos anexados
+ # junto com os documentos principais
+ config.tramitacao_documento = False
+ config.save()
+
+ TramitacaoAdministrativo.objects.all().delete()
+ assert TramitacaoAdministrativo.objects.all().count() == 0
+
+ # Primeira tramitação em lote
+ # Tramitar documentos com anexados
+ # O documento anexado não deve tramitar junto com o prinicpal
+ documentos = [documento_principal.id]
+
+ response = admin_client.post(url,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+
+ assert response.status_code == 200
+
+ assert TramitacaoAdministrativo.objects.all().count() == 1
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 0
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 0
+
+ # Tramitar o doc anexado ao principal para testar a segunda tramitação em lote
+ documentos = [documento_anexado.id]
+
+ response = admin_client.post(url,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_local_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_1.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+
+ assert response.status_code == 200
+
+ assert TramitacaoAdministrativo.objects.all().count() == 2
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 0
+
+ tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
+ tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
+ assert compara_tramitacoes_doc(tramitacao_anexada, tramitacao_principal)
+
+ documentos = [documento_principal.id]
+ # Segunda tramitação, o documento anexado não deve tramitar com o principal
+ response = admin_client.post(url_lote,
+ {'documentos': documentos,
+ 'data_tramitacao': date(2019, 5, 15),
+ 'unidade_tramitacao_local': unidade_tramitacao_destino_1.id,
+ 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.id,
+ 'status': status.id,
+ 'urgente': False,
+ 'texto': 'aaaa',
+ 'salvar':'salvar'},
+ follow=True)
+ assert response.status_code == 200
+
+ msgs = [m.message for m in response.context['messages']]
+
+ assert 'Tramitação completa.' in msgs
+
+ assert TramitacaoAdministrativo.objects.all().count() == 3
+ assert documento_principal.tramitacaoadministrativo_set.all().count() == 2
+ assert documento_anexado.tramitacaoadministrativo_set.all().count() == 1
+ assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 0
\ No newline at end of file
diff --git a/sapl/protocoloadm/urls.py b/sapl/protocoloadm/urls.py
index e5925204d..0fca1b76b 100644
--- a/sapl/protocoloadm/urls.py
+++ b/sapl/protocoloadm/urls.py
@@ -22,7 +22,9 @@ from sapl.protocoloadm.views import (AcompanhamentoDocumentoView,
doc_texto_integral,
DesvincularDocumentoView,
DesvincularMateriaView,
- AnexadoCrud, DocumentoAnexadoEmLoteView)
+ AnexadoCrud, DocumentoAnexadoEmLoteView,
+ PrimeiraTramitacaoEmLoteAdmView,
+ TramitacaoEmLoteAdmView)
from .apps import AppConfig
@@ -98,6 +100,12 @@ urlpatterns_protocolo = [
url(r'^protocoloadm/recuperar-materia',
recuperar_materia_protocolo, name='recuperar_materia_protocolo'),
+ url(r'^protocoloadm/primeira-tramitacao-em-lote',
+ PrimeiraTramitacaoEmLoteAdmView.as_view(),
+ name='primeira_tramitacao_em_lote_docadm'),
+
+ url(r'^protocoloadm/tramitacao-em-lote', TramitacaoEmLoteAdmView.as_view(),
+ name='tramitacao_em_lote_docadm'),
]
diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py
index 6296758ee..89de69c72 100755
--- a/sapl/protocoloadm/views.py
+++ b/sapl/protocoloadm/views.py
@@ -24,18 +24,19 @@ from django_filters.views import FilterView
import sapl
from sapl.base.email_utils import do_envia_email_confirmacao
-from sapl.base.models import Autor, CasaLegislativa
+from sapl.base.models import Autor, CasaLegislativa, AppConfig
from sapl.base.signals import tramitacao_signal
from sapl.comissoes.models import Comissao
from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud, make_pagination,
RP_LIST, RP_DETAIL)
-from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
+from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa, UnidadeTramitacao
from sapl.materia.views import gerar_pdf_impressos
from sapl.parlamentares.models import Legislatura, Parlamentar
from sapl.protocoloadm.models import Protocolo
from sapl.utils import (create_barcode, get_base_url, get_client_ip,
get_mime_type_from_file_extension, lista_anexados,
show_results_filter_set, mail_service_configured)
+from sapl.relatorios.views import relatorio_doc_administrativos
from .forms import (AcompanhamentoDocumentoForm, AnularProtocoloAdmForm,
DocumentoAcessorioAdministrativoForm,
@@ -47,6 +48,9 @@ from .forms import (AcompanhamentoDocumentoForm, AnularProtocoloAdmForm,
filtra_tramitacao_adm_destino_and_status,
filtra_tramitacao_adm_destino, filtra_tramitacao_adm_status,
AnexadoForm, AnexadoEmLoteFilterSet,
+ PrimeiraTramitacaoEmLoteAdmFilterSet,
+ TramitacaoEmLoteAdmForm,
+ TramitacaoEmLoteAdmFilterSet,
compara_tramitacoes_doc)
from .models import (AcompanhamentoDocumento, DocumentoAcessorioAdministrativo,
DocumentoAdministrativo, StatusTramitacaoAdministrativo,
@@ -90,7 +94,7 @@ def doc_texto_integral(request, pk):
can_see = True
if not request.user.is_authenticated():
- app_config = sapl.base.models.AppConfig.objects.last()
+ app_config = AppConfig.objects.last()
if app_config and app_config.documentos_administrativos == 'R':
can_see = False
@@ -312,7 +316,7 @@ class AcompanhamentoDocumentoView(CreateView):
class DocumentoAdministrativoMixin:
def has_permission(self):
- app_config = sapl.base.models.AppConfig.objects.last()
+ app_config = AppConfig.objects.last()
if app_config and app_config.documentos_administrativos == 'O':
return True
@@ -541,7 +545,7 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
self.logger.debug("user=" + username +
". Tentando obter sequência de numeração.")
- numeracao = sapl.base.models.AppConfig.objects.last(
+ numeracao = AppConfig.objects.last(
).sequencia_numeracao_protocolo
if not numeracao:
self.logger.error("user=" + username + ". É preciso definir a sequencia de "
@@ -727,7 +731,7 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
username = self.request.user.username
self.logger.debug("user=" + username +
". Tentando obter sequência de numeração.")
- numeracao = sapl.base.models.AppConfig.objects.last(
+ numeracao = AppConfig.objects.last(
).sequencia_numeracao_protocolo
if not numeracao:
self.logger.error("user=" + username + ". É preciso definir a sequencia de "
@@ -898,17 +902,16 @@ class PesquisarDocumentoAdministrativoView(DocumentoAdministrativoMixin,
context = super(PesquisarDocumentoAdministrativoView,
self).get_context_data(**kwargs)
- paginator = context['paginator']
- page_obj = context['page_obj']
-
- context['page_range'] = make_pagination(
- page_obj.number, paginator.num_pages)
-
+ if self.paginate_by:
+ paginator = context['paginator']
+ page_obj = context['page_obj']
+ context['page_range'] = make_pagination(
+ page_obj.number, paginator.num_pages)
+
return context
def get(self, request, *args, **kwargs):
super(PesquisarDocumentoAdministrativoView, self).get(request)
-
# Se a pesquisa estiver quebrando com a paginação
# Olhe esta função abaixo
# Provavelmente você criou um novo campo no Form/FilterSet
@@ -921,9 +924,7 @@ class PesquisarDocumentoAdministrativoView(DocumentoAdministrativoMixin,
url = url[ponto_comeco:]
else:
url = ''
-
self.filterset.form.fields['o'].label = _('Ordenação')
-
# é usada essa verificação anônima para quando os documentos administrativos
# estão no modo ostensivo, mas podem existir documentos administrativos
# restritos
@@ -931,18 +932,21 @@ class PesquisarDocumentoAdministrativoView(DocumentoAdministrativoMixin,
length = self.object_list.filter(restrito=False).count()
else:
length = self.object_list.count()
-
+
+ is_relatorio = url!='' and request.GET.get('relatorio',None)
+ self.paginate_by = None if is_relatorio else self.paginate_by
context = self.get_context_data(filter=self.filterset,
filter_url=url,
numero_res=length
)
-
context['show_results'] = show_results_filter_set(
self.request.GET.copy())
-
- return self.render_to_response(context)
-
-
+
+ if is_relatorio:
+ return relatorio_doc_administrativos(request,context)
+ else:
+ return self.render_to_response(context)
+
class AnexadoCrud(MasterDetailCrud):
model = Anexado
parent_field = 'documento_principal'
@@ -1087,7 +1091,7 @@ class DocumentoAnexadoEmLoteView(PermissionRequiredMixin, FilterView):
msg = _('Documento(s) anexado(s).')
messages.add_message(request, messages.SUCCESS, msg)
- success_url = reverse('sapl_index') + 'docadm/' + kwargs['pk'] + '/anexado'
+ success_url = reverse('sapl.protocoloadm:anexado_list', kwargs={'pk': kwargs['pk']})
return HttpResponseRedirect(success_url)
@@ -1251,12 +1255,21 @@ class TramitacaoAdmCrud(MasterDetailCrud):
return HttpResponseRedirect(url)
else:
tramitacoes_deletar = [tramitacao.id]
- docs_anexados = lista_anexados(documento, False)
- for da in docs_anexados:
- tram_anexada = da.tramitacaoadministrativo_set.last()
- if compara_tramitacoes_doc(tram_anexada, tramitacao):
- tramitacoes_deletar.append(tram_anexada.id)
+ if documento.tramitacaoadministrativo_set.count() == 0:
+ documento.tramitacao = False
+ documento.save()
+ tramitar_anexados = AppConfig.attr('tramitacao_documento')
+ if tramitar_anexados:
+ docs_anexados = lista_anexados(documento, False)
+ for da in docs_anexados:
+ tram_anexada = da.tramitacaoadministrativo_set.last()
+ if compara_tramitacoes_doc(tram_anexada, tramitacao):
+ tramitacoes_deletar.append(tram_anexada.id)
+ if da.tramitacaoadministrativo_set.count() == 0:
+ da.tramitacao = False
+ da.save()
TramitacaoAdministrativo.objects.filter(id__in=tramitacoes_deletar).delete()
+
return HttpResponseRedirect(url)
@@ -1437,3 +1450,142 @@ class FichaSelecionaAdmView(PermissionRequiredMixin, FormView):
return gerar_pdf_impressos(self.request, context,
'materia/impressos/ficha_adm_pdf.html')
+
+
+class PrimeiraTramitacaoEmLoteAdmView(PermissionRequiredMixin, FilterView):
+ filterset_class = PrimeiraTramitacaoEmLoteAdmFilterSet
+ template_name = 'protocoloadm/em_lote/tramitacaoadm.html'
+ permission_required = ('materia.add_tramitacao', )
+
+ primeira_tramitacao = True
+
+ logger = logging.getLogger(__name__)
+
+
+ def get_context_data(self, **kwargs):
+ context = super(PrimeiraTramitacaoEmLoteAdmView,
+ self).get_context_data(**kwargs)
+
+ context['subnav_template_name'] = 'protocoloadm/em_lote/subnav_em_lote.yaml'
+ context['primeira_tramitacao'] = self.primeira_tramitacao
+
+ # Verifica se os campos foram preenchidos
+ if not self.filterset.form.is_valid():
+ return context
+
+ context['object_list'] = context['object_list'].order_by(
+ 'ano', 'numero')
+ qr = self.request.GET.copy()
+
+ form = TramitacaoEmLoteAdmForm()
+ context['form'] = form
+
+ if self.primeira_tramitacao:
+ context['title'] = _('Primeira Tramitação em Lote')
+ # Pega somente documentos que não possuem tramitação
+ context['object_list'] = [obj for obj in context['object_list']
+ if obj.tramitacaoadministrativo_set.all().count() == 0]
+ else:
+ context['title'] = _('Tramitação em Lote')
+ context['form'].fields['unidade_tramitacao_local'].initial = UnidadeTramitacao.objects.get(
+ id=qr['tramitacaoadministrativo__unidade_tramitacao_destino'])
+
+ context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
+
+ context['show_results'] = show_results_filter_set(qr)
+
+ return context
+
+ def post(self, request, *args, **kwargs):
+ user = request.user
+ ip = get_client_ip(request)
+
+ documentos_ids = request.POST.getlist('documentos')
+ if not documentos_ids:
+ msg = _("Escolha algum Documento para ser tramitado.")
+ messages.add_message(request, messages.ERROR, msg)
+ return self.get(request, self.kwargs)
+
+ form = TramitacaoEmLoteAdmForm(request.POST,
+ initial= {'documentos': documentos_ids,
+ 'user': user, 'ip':ip})
+
+ if form.is_valid():
+ form.save()
+
+ msg = _('Tramitação completa.')
+ self.logger.info('user=' + user.username + '. Tramitação completa.')
+ messages.add_message(request, messages.SUCCESS, msg)
+ return self.get_success_url()
+
+ return self.form_invalid(form)
+
+
+ def get_success_url(self):
+ return HttpResponseRedirect(reverse('sapl.protocoloadm:primeira_tramitacao_em_lote_docadm'))
+
+
+ def form_invalid(self, form, *args, **kwargs):
+ for key, erros in form.errors.items():
+ if not key=='__all__':
+ [messages.add_message(self.request, messages.ERROR, form.fields[key].label + ": " + e) for e in erros]
+ else:
+ [messages.add_message(self.request, messages.ERROR, e) for e in erros]
+ return self.get(self.request, kwargs, {'form':form})
+
+
+class TramitacaoEmLoteAdmView(PrimeiraTramitacaoEmLoteAdmView):
+ filterset_class = TramitacaoEmLoteAdmFilterSet
+
+ primeira_tramitacao = False
+
+ def get_context_data(self, **kwargs):
+ context = super(TramitacaoEmLoteAdmView,
+ self).get_context_data(**kwargs)
+
+ qr = self.request.GET.copy()
+
+ context['primeira_tramitacao'] = False
+
+ if ('tramitacao__status' in qr and
+ 'tramitacao__unidade_tramitacao_destino' in qr and
+ qr['tramitacao__status'] and
+ qr['tramitacao__unidade_tramitacao_destino']):
+ lista = self.filtra_tramitacao_destino_and_status(
+ qr['tramitacao__status'],
+ qr['tramitacao__unidade_tramitacao_destino'])
+ context['object_list'] = context['object_list'].filter(
+ id__in=lista).distinct()
+
+ return context
+
+
+ def pega_ultima_tramitacao(self):
+ return TramitacaoAdministrativo.objects.values(
+ 'documento_id').annotate(data_encaminhamento=Max(
+ 'data_encaminhamento'),
+ id=Max('id')).values_list('id', flat=True)
+
+
+ def filtra_tramitacao_status(self, status):
+ lista = self.pega_ultima_tramitacao()
+ return TramitacaoAdministrativo.objects.filter(
+ id__in=lista,
+ status=status).distinct().values_list('documento_id', flat=True)
+
+
+ def filtra_tramitacao_destino(self, destino):
+ lista = self.pega_ultima_tramitacao()
+ return TramitacaoAdministrativo.objects.filter(
+ id__in=lista,
+ unidade_tramitacao_destino=destino).distinct().values_list(
+ 'documento_id', flat=True)
+
+
+ def filtra_tramitacao_destino_and_status(self, status, destino):
+ lista = self.pega_ultima_tramitacao()
+ return TramitacaoAdministrativo.objects.filter(
+ id__in=lista,
+ status=status,
+ unidade_tramitacao_destino=destino).distinct().values_list(
+ 'documento_id', flat=True)
diff --git a/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py b/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py
index 81e0aa70d..29a8ca8ac 100755
--- a/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py
+++ b/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py
@@ -76,7 +76,7 @@ def paraStyle():
tmp += '\t\t\t \n'
tmp += '\t\t\n'
tmp += '\t\t \n'
- tmp += '\t\t \n'
+ tmp += '\t\t \n'
tmp += '\t\t \n'
tmp += '\t\t \n'
tmp += '\t\t \n'
diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
index 4bbe31bed..4b1d62719 100644
--- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
+++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
@@ -103,9 +103,9 @@ def inf_basicas(inf_basicas_dic):
"""
tmp = ""
nom_sessao = inf_basicas_dic['nom_sessao']
- num_sessao_plen = inf_basicas_dic["num_sessao_plen"]
- num_sessao_leg = inf_basicas_dic["num_sessao_leg"]
- num_legislatura = inf_basicas_dic["num_legislatura"]
+ # num_sessao_plen = inf_basicas_dic["num_sessao_plen"]
+ # num_sessao_leg = inf_basicas_dic["num_sessao_leg"]
+ # num_legislatura = inf_basicas_dic["num_legislatura"]
dat_inicio_sessao = inf_basicas_dic["dat_inicio_sessao"]
hr_inicio_sessao = inf_basicas_dic["hr_inicio_sessao"]
dat_fim_sessao = inf_basicas_dic["dat_fim_sessao"]
@@ -113,17 +113,21 @@ def inf_basicas(inf_basicas_dic):
if hr_fim_sessao is None:
hr_fim_sessao = ''
- tmp += '\t\tInformações Básicas \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\t\tTipo da Sessão: ' + \
- nom_sessao + ' \n'
- tmp += '\t\tAbertura: ' + \
- dat_inicio_sessao + ' - ' + hr_inicio_sessao + ' \n'
-
- tmp += '\t\tEncerramento: ' + \
- dat_fim_sessao + ' - ' + hr_fim_sessao + ' \n'
+ if nom_sessao or dat_inicio_sessao or hr_inicio_sessao \
+ or dat_fim_sessao or hr_fim_sessao:
+ tmp += '\t\tInformações Básicas \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ if nom_sessao:
+ tmp += '\t\tTipo da Sessão: ' + \
+ nom_sessao + ' \n'
+ if hr_inicio_sessao:
+ tmp += '\t\tAbertura: ' + \
+ dat_inicio_sessao + ' - ' + hr_inicio_sessao + ' \n'
+ if dat_fim_sessao or hr_fim_sessao:
+ tmp += '\t\tEncerramento: ' + \
+ dat_fim_sessao + ' - ' + hr_fim_sessao + ' \n'
return tmp
@@ -136,277 +140,259 @@ def multimidia(cont_mult_dic):
mul_audio = cont_mult_dic['multimidia_audio']
mul_video = cont_mult_dic['multimidia_video']
- tmp += '\t\tConteúdo Multimídia \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\t\tAudio: ' + mul_audio + ' \n'
- tmp += '\t\tVideo: ' + mul_video + ' \n'
+ if mul_audio or mul_video:
+ tmp += '\t\tConteúdo Multimídia \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ if mul_audio:
+ tmp += '\t\tAudio: ' + mul_audio + ' \n'
+ if mul_video:
+ tmp += '\t\tVideo: ' + mul_video + ' \n'
return tmp
def mesa(lst_mesa):
- """
-
- """
tmp = ''
- tmp += '\t\tMesa Diretora \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for mesa in lst_mesa:
- tmp += '\t\t' + \
- str(mesa['des_cargo']) + ': ' + str(mesa['nom_parlamentar']
- ) + '/' + str(mesa['sgl_partido']) + ' \n'
+ if lst_mesa:
+ tmp += '\t\tMesa Diretora \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for mesa in lst_mesa:
+ tmp += '\t\t' + \
+ str(mesa['des_cargo']) + ': ' + str(mesa['nom_parlamentar']
+ ) + '/' + str(mesa['sgl_partido']) + ' \n'
return tmp
def presenca(lst_presenca_sessao, lst_ausencia_sessao):
- """
-
- """
tmp = ''
- tmp += '\t\tLista de Presença da Sessão \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for presenca in lst_presenca_sessao:
- tmp += '\t\t' + \
- str(presenca['nom_parlamentar']) + '/' + \
- str(presenca['sgl_partido']) + ' \n'
-
- tmp += '\t\tJustificativas de Ausência da Sessão \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\n'
- tmp += 'Parlamentar Justificativa Ausente em \n'
- for ausencia in lst_ausencia_sessao:
- tmp += '' + \
- str(ausencia['parlamentar']) + ' ' + \
- str(ausencia['justificativa']) + ' ' + \
- str(ausencia['tipo']) + ' \n'
- tmp += ' '
+ if lst_presenca_sessao or lst_ausencia_sessao:
+ if lst_ausencia_sessao:
+ tmp += '\t\tLista de Presença da Sessão \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for presenca in lst_presenca_sessao:
+ tmp += '\t\t' + \
+ str(presenca['nom_parlamentar']) + '/' + \
+ str(presenca['sgl_partido']) + ' \n'
+ if lst_ausencia_sessao:
+ tmp += '\t\tJustificativas de Ausência da Sessão \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Parlamentar Justificativa Ausente em \n'
+ for ausencia in lst_ausencia_sessao:
+ tmp += '' + \
+ str(ausencia['parlamentar']) + ' ' + \
+ str(ausencia['justificativa']) + ' ' + \
+ str(ausencia['tipo']) + ' \n'
+ tmp += ' '
return tmp
def expedientes(lst_expedientes):
- """
-
- """
tmp = ''
- tmp += '\t\tExpedientes \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for expediente in lst_expedientes:
- tmp += '\t\t' + ' ' + \
- expediente['nom_expediente'] + ': \n' + \
- '' + \
- expediente['txt_expediente'] + ' \n'
+ if lst_expedientes:
+ tmp += '\t\tExpedientes \n'
tmp += '\t\t\n'
tmp += '\t\t\t \n'
tmp += '\t\t \n'
+ for expediente in lst_expedientes:
+ tmp += '\t\t' + ' ' + \
+ expediente['nom_expediente'] + ': \n' + \
+ '' + \
+ expediente['txt_expediente'] + ' \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
return tmp
def expediente_materia(lst_expediente_materia):
- """
- """
tmp = ''
- tmp += '\t\tMatérias do Expediente \n\n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '>\n'
- tmp += 'Matéria Ementa Resultado da Votação \n'
- for expediente_materia in lst_expediente_materia:
- tmp += '' + str(expediente_materia['num_ordem']) + ' - ' + expediente_materia['id_materia'] + ' \n' + 'Turno: ' + expediente_materia[
- 'des_turno'] + ' \n' + '' + expediente_materia['num_autores'] + ': ' + str(expediente_materia['nom_autor']) + ' \n'
-
- txt_ementa = expediente_materia['txt_ementa'].replace('&', '&')
-
- # txt_ementa = dont_break_out(expediente_materia['txt_ementa'])
-
- # if len(txt_ementa) > 800:
- # txt_ementa = txt_ementa[:800] + "..."
- tmp += '' + txt_ementa + ' ' + '' + expediente_materia['ordem_observacao'] + ' \n'
- tmp += '' + \
- str(expediente_materia['nom_resultado']) + \
- ' \n' + ''
- if expediente_materia['votacao_observacao'] != txt_ementa:
- tmp += str(expediente_materia['votacao_observacao'])
- else:
- tmp += ' '
- tmp += ' \n'
-
- tmp += '\t\t \n'
+ if lst_expediente_materia:
+ tmp += '\t\tMatérias do Expediente \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '>\n'
+ tmp += 'Matéria Ementa Resultado da Votação \n'
+ for expediente_materia in lst_expediente_materia:
+ tmp += '' + str(expediente_materia['num_ordem']) + ' - ' + expediente_materia['id_materia'] + ' \n' + 'Turno: ' + expediente_materia[
+ 'des_turno'] + ' \n' + '' + expediente_materia['num_autores'] + ': ' + str(expediente_materia['nom_autor']) + ' \n'
+
+ txt_ementa = expediente_materia['txt_ementa'].replace('&', '&')
+
+ # txt_ementa = dont_break_out(expediente_materia['txt_ementa'])
+
+ # if len(txt_ementa) > 800:
+ # txt_ementa = txt_ementa[:800] + "..."
+ tmp += '' + txt_ementa + ' ' + '' + expediente_materia['ordem_observacao'] + ' \n'
+ tmp += '' + \
+ str(expediente_materia['nom_resultado']) + \
+ ' \n' + ''
+ if expediente_materia['votacao_observacao'] != txt_ementa:
+ tmp += str(expediente_materia['votacao_observacao'])
+ else:
+ tmp += ' '
+ tmp += ' \n'
+
+ tmp += '\t\t \n'
return tmp
def expediente_materia_vot_nom(lst_expediente_materia_vot_nom):
- """
- """
tmp = ''
- tmp += '\t\tVotações Nominais - Matérias do Expediente \n\n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\n'
- tmp += 'Matéria Votos \n'
- for expediente_materia_vot_nom in lst_expediente_materia_vot_nom:
- tmp += '' + str(expediente_materia_vot_nom['titulo']) + ' '
- if expediente_materia_vot_nom['votos']:
- tmp += ''
- for v in expediente_materia_vot_nom['votos']:
- tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
- tmp += ' '
- else:
- tmp += 'Matéria não votada '
- tmp += ' \n'
- tmp += '\t\t \n'
+ if lst_expediente_materia_vot_nom:
+ tmp += '\t\tVotações Nominais - Matérias do Expediente \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Matéria Votos \n'
+ for expediente_materia_vot_nom in lst_expediente_materia_vot_nom:
+ tmp += '' + str(expediente_materia_vot_nom['titulo']) + ' '
+ if expediente_materia_vot_nom['votos']:
+ tmp += ''
+ for v in expediente_materia_vot_nom['votos']:
+ tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
+ tmp += ' '
+ else:
+ tmp += 'Matéria não votada '
+ tmp += ' \n'
+ tmp += '\t\t \n'
return tmp
def oradores_expediente(lst_oradores_expediente):
- """
-
- """
tmp = ''
- tmp += '\t\tOradores do Expediente \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for orador_expediente in lst_oradores_expediente:
- tmp += '\t\t' + str(orador_expediente[
- 'num_ordem']) + ' - ' + orador_expediente[
- 'nom_parlamentar'] + '/' + str(orador_expediente[
- 'sgl_partido']) + ' - ' + str(orador_expediente[
- 'observacao']) + ' \n'
+ if lst_oradores_expediente:
+ tmp += '\t\tOradores do Expediente \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for orador_expediente in lst_oradores_expediente:
+ tmp += '\t\t' + str(orador_expediente[
+ 'num_ordem']) + ' - ' + orador_expediente[
+ 'nom_parlamentar'] + '/' + str(orador_expediente[
+ 'sgl_partido']) + ' - ' + str(orador_expediente[
+ 'observacao']) + ' \n'
return tmp
def presenca_ordem_dia(lst_presenca_ordem_dia):
- """
-
- """
tmp = ''
- tmp += '\t\tLista de Presença da Ordem do Dia \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for presenca_ordem_dia in lst_presenca_ordem_dia:
- tmp += '\t\t' + \
- str(presenca_ordem_dia['nom_parlamentar']) + '/' + \
- str(presenca_ordem_dia['sgl_partido']) + ' \n'
+ if lst_presenca_ordem_dia:
+ tmp += '\t\tLista de Presença da Ordem do Dia \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for presenca_ordem_dia in lst_presenca_ordem_dia:
+ tmp += '\t\t' + \
+ str(presenca_ordem_dia['nom_parlamentar']) + '/' + \
+ str(presenca_ordem_dia['sgl_partido']) + ' \n'
return tmp
def votacao(lst_votacao):
- """
- """
-
tmp = ''
- tmp += 'Matérias da Ordem do Dia \n\n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\n'
- tmp += 'Matéria Ementa Resultado da Votação \n'
- for votacao in lst_votacao:
- tmp += '' + str(votacao['num_ordem']) + ' - ' + votacao['id_materia'] + ' \n' + 'Turno: ' + votacao[
- 'des_turno'] + ' \n' + '' + votacao['num_autores'] + ': ' + str(votacao['nom_autor']) + ' \n'
- txt_ementa = votacao['txt_ementa'].replace('&', '&')
- if len(txt_ementa) > 1000:
- txt_ementa = txt_ementa[:1000] + "..."
- tmp += '' + txt_ementa + ' ' + '' + votacao['ordem_observacao'] + ' \n'
- tmp += '' + \
- str(votacao['nom_resultado']) + \
- ' \n' + ''
- if votacao['votacao_observacao'] != txt_ementa:
- tmp += str(votacao['votacao_observacao'])
- else:
- tmp += ' '
- tmp += ' \n'
-
- tmp += '\t\t \n'
+ if lst_votacao:
+ tmp += 'Matérias da Ordem do Dia \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Matéria Ementa Resultado da Votação \n'
+ for votacao in lst_votacao:
+ tmp += '' + str(votacao['num_ordem']) + ' - ' + votacao['id_materia'] + ' \n' + 'Turno: ' + votacao[
+ 'des_turno'] + ' \n' + '' + votacao['num_autores'] + ': ' + str(votacao['nom_autor']) + ' \n'
+ txt_ementa = votacao['txt_ementa'].replace('&', '&')
+ if len(txt_ementa) > 1000:
+ txt_ementa = txt_ementa[:1000] + "..."
+ tmp += '' + txt_ementa + ' ' + '' + votacao['ordem_observacao'] + ' \n'
+ tmp += '' + \
+ str(votacao['nom_resultado']) + \
+ ' \n' + ''
+ if votacao['votacao_observacao'] != txt_ementa:
+ tmp += str(votacao['votacao_observacao'])
+ else:
+ tmp += ' '
+ tmp += ' \n'
+ tmp += '\t\t \n'
return tmp
def votacao_vot_nom(lst_votacao_vot_nom):
- """
- """
tmp = ''
- tmp += '\t\tVotações Nominais - Matérias da Ordem do Dia \n\n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- tmp += '\n'
- tmp += 'Matéria Votos \n'
- for votacao_vot_nom in lst_votacao_vot_nom:
- tmp += '' + str(votacao_vot_nom['titulo']) + ' '
- if votacao_vot_nom['votos']:
- tmp += ''
- for v in votacao_vot_nom['votos']:
- tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
- tmp += ' '
- else:
- tmp += 'Matéria não votada '
- tmp += ' \n'
- tmp += '\t\t \n'
+ if lst_votacao_vot_nom:
+ tmp += '\t\tVotações Nominais - Matérias da Ordem do Dia \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Matéria Votos \n'
+ for votacao_vot_nom in lst_votacao_vot_nom:
+ tmp += '' + str(votacao_vot_nom['titulo']) + ' '
+ if votacao_vot_nom['votos']:
+ tmp += ''
+ for v in votacao_vot_nom['votos']:
+ tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
+ tmp += ' '
+ else:
+ tmp += 'Matéria não votada '
+ tmp += ' \n'
+ tmp += '\t\t \n'
return tmp
def oradores_ordemdia(lst_oradores_ordemdia):
- """
-
- """
tmp = ''
- tmp += '\t\tOradores da Ordem do Dia \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for orador_ordemdia in lst_oradores_ordemdia:
- tmp += '\t\t' + \
- str(orador_ordemdia['num_ordem']) + ' - ' + \
- orador_ordemdia['nome_parlamentar'] + '/' + \
- str(orador_ordemdia['sigla']) + ' - ' + \
- str(orador_ordemdia['observacao']) + ' \n'
+ if lst_oradores_ordemdia:
+ tmp += '\t\tOradores da Ordem do Dia \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for orador_ordemdia in lst_oradores_ordemdia:
+ tmp += '\t\t' + \
+ str(orador_ordemdia['num_ordem']) + ' - ' + \
+ orador_ordemdia['nome_parlamentar'] + '/' + \
+ str(orador_ordemdia['sigla']) + ' - ' + \
+ str(orador_ordemdia['observacao']) + ' \n'
return tmp
def oradores(lst_oradores):
- """
-
- """
tmp = ''
- tmp += '\t\tOradores das Explicações Pessoais \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for orador in lst_oradores:
- tmp += '\t\t' + \
- str(orador['num_ordem']) + ' - ' + orador['nom_parlamentar'] + \
- '/' + str(orador['sgl_partido']) + ' \n'
+ if lst_oradores:
+ tmp += '\t\tOradores das Explicações Pessoais \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ for orador in lst_oradores:
+ tmp += '\t\t' + \
+ str(orador['num_ordem']) + ' - ' + orador['nom_parlamentar'] + \
+ '/' + str(orador['sgl_partido']) + ' \n'
return tmp
def ocorrencias(lst_ocorrencias):
- """
-
- """
tmp = ''
- tmp += '\t\tOcorrências da Sessão \n'
- tmp += '\t\t\n'
- tmp += '\t\t\t \n'
- tmp += '\t\t \n'
- for ocorrencia in lst_ocorrencias:
- tmp += '\t\t' + \
- str(ocorrencia.conteudo) + ' \n'
+ if lst_ocorrencias:
+ tmp += '\t\tOcorrências da Sessão \n'
tmp += '\t\t\n'
tmp += '\t\t\t \n'
tmp += '\t\t \n'
+ for ocorrencia in lst_ocorrencias:
+ tmp += '\t\t' + \
+ str(ocorrencia.conteudo) + ' \n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
return tmp
diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py
index 72595b239..cb1d05cca 100755
--- a/sapl/relatorios/views.py
+++ b/sapl/relatorios/views.py
@@ -1325,4 +1325,28 @@ def resumo_ata_pdf(request,pk):
response['Content-Transfer-Encoding'] = 'binary'
response.write(pdf_file)
- return response
\ No newline at end of file
+ return response
+
+
+def relatorio_doc_administrativos(request, context):
+ base_url = request.build_absolute_uri()
+ casa = CasaLegislativa.objects.first()
+ rodape = ' '.join(get_rodape(casa))
+
+ context.update({'data': dt.today().strftime('%d/%m/%Y')})
+ context.update({'rodape': rodape})
+
+ header_context = {"casa": casa, 'logotipo':casa.logotipo, 'MEDIA_URL': MEDIA_URL}
+
+ html_template = render_to_string('relatorios/relatorio_doc_administrativos.html', context)
+ html_header = render_to_string('relatorios/header_ata.html', header_context)
+
+ pdf_file = make_pdf(base_url=base_url,main_template=html_template,header_template=html_header)
+
+ response = HttpResponse(content_type='application/pdf;')
+ response['Content-Disposition'] = 'inline; filename=relatorio.pdf'
+ response['Content-Transfer-Encoding'] = 'binary'
+ response.write(pdf_file)
+
+ return response
+
diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py
index 75fc76f33..4f1b4b515 100644
--- a/sapl/rules/map_rules.py
+++ b/sapl/rules/map_rules.py
@@ -103,6 +103,7 @@ rules_group_protocolo = {
rules_group_comissoes = {
'group': SAPL_GROUP_COMISSOES,
'rules': [
+ (materia.PautaReuniao, __base__, __perms_publicas__),
(comissoes.Comissao, __base__, __perms_publicas__),
(comissoes.Composicao, __base__, __perms_publicas__),
(comissoes.Participacao, __base__, __perms_publicas__),
diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py
index 1e14b0f45..c09d2f220 100644
--- a/sapl/sessao/forms.py
+++ b/sapl/sessao/forms.py
@@ -256,9 +256,15 @@ class RetiradaPautaForm(ModelForm):
def save(self, commit=False):
retirada = super(RetiradaPautaForm, self).save(commit=commit)
if retirada.ordem:
- retirada.materia = retirada.ordem.materia
+ ordem = retirada.ordem
+ retirada.materia = ordem.materia
+ ordem.votacao_aberta = False
+ ordem.save()
elif retirada.expediente:
- retirada.materia = retirada.expediente.materia
+ expediente = retirada.expediente
+ retirada.materia = expediente.materia
+ expediente.votacao_aberta = False
+ expediente.save()
retirada.save()
return retirada
@@ -631,19 +637,11 @@ class AdicionarVariasMateriasFilterSet(MateriaLegislativaFilterSet):
class OradorForm(ModelForm):
-
def __init__(self, *args, **kwargs):
- super(OradorForm, self).__init__(*args, **kwargs)
-
- id_sessao = int(self.initial['id_sessao'])
-
- ids = [s.parlamentar.id for
- s in SessaoPlenariaPresenca.objects.filter(
- sessao_plenaria_id=id_sessao)]
+ super().__init__(*args, **kwargs)
+ self.fields['parlamentar'].queryset = \
+ Parlamentar.objects.filter(ativo=True).order_by('nome_parlamentar')
- self.fields['parlamentar'].queryset = Parlamentar.objects.filter(
- id__in=ids).order_by('nome_parlamentar')
-
def clean(self):
super(OradorForm, self).clean()
cleaned_data = self.cleaned_data
@@ -659,30 +657,23 @@ class OradorForm(ModelForm):
numero_ordem=numero_ordem
).exists()
- if ordem and numero_ordem != numero:
+ if ordem and numero_ordem != numero:
raise ValidationError(_(
"Já existe orador nesta posição de ordem de pronunciamento"
))
-
+
+
return self.cleaned_data
-
class Meta:
model = Orador
exclude = ['sessao_plenaria']
class OradorExpedienteForm(ModelForm):
-
def __init__(self, *args, **kwargs):
- super(OradorExpedienteForm, self).__init__(*args, **kwargs)
- legislatura_vigente = SessaoPlenaria.objects.get(
- pk=kwargs['initial']['id_sessao']).legislatura
-
- if legislatura_vigente:
- self.fields['parlamentar'].queryset = \
- Parlamentar.objects.filter(ativo=True,
- mandato__legislatura=legislatura_vigente
- ).order_by('nome_parlamentar')
+ super().__init__(*args, **kwargs)
+ self.fields['parlamentar'].queryset = \
+ Parlamentar.objects.filter(ativo=True).order_by('nome_parlamentar')
def clean(self):
super(OradorExpedienteForm, self).clean()
@@ -692,7 +683,7 @@ class OradorExpedienteForm(ModelForm):
return self.cleaned_data
sessao_id = self.initial['id_sessao']
- numero = self.initial.get('numero') # Retorna None se inexistente
+ numero = self.initial.get('numero', None)
ordem = OradorExpediente.objects.filter(
sessao_plenaria_id=sessao_id,
numero_ordem=cleaned_data['numero_ordem']
@@ -710,20 +701,10 @@ class OradorExpedienteForm(ModelForm):
class OradorOrdemDiaForm(ModelForm):
-
def __init__(self, *args, **kwargs):
- super(OradorOrdemDiaForm, self).__init__(*args, **kwargs)
-
- id_sessao = int(self.initial['id_sessao'])
-
- ids = [p.parlamentar.id for p in PresencaOrdemDia.objects.filter(
- sessao_plenaria_id=id_sessao
- )]
-
- self.fields['parlamentar'].queryset = Parlamentar.objects.filter(
- id__in=ids
- ).order_by('nome_parlamentar')
-
+ super().__init__(*args, **kwargs)
+ self.fields['parlamentar'].queryset = \
+ Parlamentar.objects.filter(ativo=True).order_by('nome_parlamentar')
def clean(self):
super(OradorOrdemDiaForm, self).clean()
@@ -740,11 +721,11 @@ class OradorOrdemDiaForm(ModelForm):
numero_ordem=numero_ordem
).exists()
- if ordem and numero_ordem != numero:
+ if ordem and numero_ordem != numero:
raise ValidationError(_(
"Já existe orador nesta posição de ordem de pronunciamento"
))
-
+
return self.cleaned_data
class Meta:
@@ -849,7 +830,7 @@ class ResumoOrdenacaoForm(forms.Form):
self.helper.layout = Layout(
Fieldset(_(''),
row1, row2, row3, row4, row5,
- row6, row7, row8, row9, row10,
+ row6, row7, row8, row9, row10,
row11, row12, row13, row14,
form_actions(label='Atualizar'))
)
diff --git a/sapl/sessao/migrations/0040_auto_20190523_1130.py b/sapl/sessao/migrations/0040_auto_20190523_1130.py
new file mode 100644
index 000000000..74de803e9
--- /dev/null
+++ b/sapl/sessao/migrations/0040_auto_20190523_1130.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-23 14:30
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def unifica_opcaoes_ordenacao_resumo(apps, schema_editor):
+ ResumoOrdenacao = apps.get_model('sessao', 'ResumoOrdenacao')
+ ro = ResumoOrdenacao.objects.get_or_create()[0]
+ if 'oradores_o_d' not in ro.__dict__:
+ ro.decimo_quarto = 'oradores_o_d'
+ ro.save()
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ('sessao', '0039_auto_20190430_0825'),
+ ]
+
+ operations = [
+ migrations.RunPython(unifica_opcaoes_ordenacao_resumo)
+ ]
diff --git a/sapl/sessao/tests/test_sessao_view.py b/sapl/sessao/tests/test_sessao_view.py
index edab4c6fa..3f3c42de7 100644
--- a/sapl/sessao/tests/test_sessao_view.py
+++ b/sapl/sessao/tests/test_sessao_view.py
@@ -146,5 +146,4 @@ class TestResumoView():
ocorrencia = mommy.make(OcorrenciaSessao, sessao_plenaria=self.sessao_plenaria)
resultado_get_ocorrencia = get_ocorrencias_da_sessão(self.sessao_plenaria)
- assert resultado_get_ocorrencia['ocorrencias_da_sessao'][0] == ocorrencia
-
+ assert resultado_get_ocorrencia['ocorrencias_da_sessao'][0] == ocorrencia
\ No newline at end of file
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
index 191de0b8f..93dd7fd9e 100755
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -587,7 +587,7 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
class OradorCrud(MasterDetailCrud):
- model = ''
+ model = Orador
parent_field = 'sessao_plenaria'
help_topic = 'sessao_plenaria_oradores'
public = [RP_LIST, RP_DETAIL]
@@ -596,6 +596,30 @@ class OradorCrud(MasterDetailCrud):
ordering = ['numero_ordem', 'parlamentar']
+ class CreateView(MasterDetailCrud.CreateView):
+
+ form_class = OradorForm
+
+ def get_initial(self):
+ return {'id_sessao': self.kwargs['pk']}
+
+ def get_success_url(self):
+ return reverse('sapl.sessao:orador_list',
+ kwargs={'pk': self.kwargs['pk']})
+
+
+ class UpdateView(MasterDetailCrud.UpdateView):
+
+ form_class = OradorForm
+
+ def get_initial(self):
+ initial = super(UpdateView, self).get_initial()
+ initial.update({'id_sessao': self.object.sessao_plenaria.id})
+ initial.update({'numero':self.object.numero_ordem})
+
+ return initial
+
+
class OradorExpedienteCrud(OradorCrud):
model = OradorExpediente
@@ -643,32 +667,6 @@ class OradorOrdemDiaCrud(OradorCrud):
return initial
-class OradorCrud(OradorCrud):
- model = Orador
-
- class CreateView(MasterDetailCrud.CreateView):
-
- form_class = OradorForm
-
- def get_initial(self):
- return {'id_sessao': self.kwargs['pk']}
-
- def get_success_url(self):
- return reverse('sapl.sessao:orador_list',
- kwargs={'pk': self.kwargs['pk']})
-
- class UpdateView(MasterDetailCrud.UpdateView):
-
- form_class = OradorForm
-
- def get_initial(self):
- initial = super(UpdateView, self).get_initial()
- initial.update({'id_sessao': self.object.sessao_plenaria.id})
- initial.update({'numero':self.object.numero_ordem})
-
- return initial
-
-
class BancadaCrud(CrudAux):
model = Bancada
@@ -1491,8 +1489,7 @@ def get_assinaturas(sessao_plenaria):
parlamentares_ordem = [p for p in parlamentares_ordem if p not in parlamentares_mesa]
context = {}
-
- config_assinatura_ata = AppsAppConfig.objects.first().assinatura_ata
+ config_assinatura_ata = AppsAppConfig.attr('assinatura_ata')
if config_assinatura_ata == 'T' and parlamentares_ordem:
context.update(
{'texto_assinatura': 'Assinatura de Todos os Parlamentares Presentes na Sessão'})
@@ -1758,23 +1755,42 @@ class ResumoView(DetailView):
}
ordenacao = ResumoOrdenacao.objects.get_or_create()[0]
- context.update({
- 'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
- 'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
- 'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
- 'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
- 'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
- 'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
- 'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
- 'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
- 'nono_ordenacao': dict_ord_template[ordenacao.nono],
- 'decimo_ordenacao': dict_ord_template[ordenacao.decimo],
- 'decimo_primeiro_ordenacao': dict_ord_template[ordenacao.decimo_primeiro],
- 'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
- 'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro],
- 'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]
- })
-
+ try:
+ context.update({
+ 'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
+ 'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
+ 'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
+ 'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
+ 'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
+ 'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
+ 'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
+ 'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
+ 'nono_ordenacao': dict_ord_template[ordenacao.nono],
+ 'decimo_ordenacao': dict_ord_template[ordenacao.decimo],
+ 'decimo_primeiro_ordenacao': dict_ord_template[ordenacao.decimo_primeiro],
+ 'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
+ 'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro],
+ 'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]
+ })
+ except KeyError as e:
+ self.logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar "
+ "configuração de ordenação. Utilizando ordenação padrão.")
+ context.update({
+ 'primeiro_ordenacao': 'identificacao_basica.html',
+ 'segundo_ordenacao': 'conteudo_multimidia.html',
+ 'terceiro_ordenacao': 'mesa_diretora.html',
+ 'quarto_ordenacao': 'lista_presenca.html',
+ 'quinto_ordenacao': 'expedientes.html',
+ 'sexto_ordenacao': 'materias_expediente.html',
+ 'setimo_ordenacao': 'votos_nominais_materias_expediente.html',
+ 'oitavo_ordenacao': 'oradores_expediente.html',
+ 'nono_ordenacao': 'lista_presenca_ordem_dia.html',
+ 'decimo_ordenacao': 'materias_ordem_dia.html',
+ 'decimo_primeiro_ordenacao': 'votos_nominais_materias_ordem_dia.html',
+ 'decimo_segundo_ordenacao': 'oradores_ordemdia.html',
+ 'decimo_terceiro_ordenacao': 'oradores_explicacoes.html',
+ 'decimo_quarto_ordenacao': 'ocorrencias_da_sessao.html'
+ })
return context
def get(self, request, *args, **kwargs):
@@ -3480,16 +3496,14 @@ class JustificativaAusenciaCrud(MasterDetailCrud):
class VotacaoEmBlocoExpediente(PermissionRequiredForAppCrudMixin, ListView):
-
- model = ExpedienteMateria
- template_name = 'sessao/votacao/votacao_bloco_expediente.html'
+ template_name = 'sessao/votacao/votacao_bloco.html'
app_label = AppConfig.label
- context_object_name = 'expedientes'
- logger = logging.getLogger(__name__)
+ expediente = True
def get_queryset(self):
return ExpedienteMateria.objects.filter(sessao_plenaria_id=self.kwargs['pk'],
- resultado='')
+ resultado='',
+ retiradapauta=None)
def get_context_data(self, **kwargs):
context = super(VotacaoEmBlocoExpediente,
@@ -3502,33 +3516,20 @@ class VotacaoEmBlocoExpediente(PermissionRequiredForAppCrudMixin, ListView):
context['sessao_iniciada'] = True
context['turno_choices'] = Tramitacao.TURNO_CHOICES
context['title'] = SessaoPlenaria.objects.get(id=self.kwargs['pk'])
+ if self.expediente:
+ context['expediente'] = True
+ else:
+ context['expediente'] = False
return context
-class VotacaoEmBlocoOrdemDia(PermissionRequiredForAppCrudMixin, ListView):
- model = OrdemDia
- template_name = 'sessao/votacao/votacao_bloco_ordem.html'
- app_label = AppConfig.label
- logger = logging.getLogger(__name__)
- context_object_name = 'ordem_dia'
- parent_field = 'sessao_plenaria'
+class VotacaoEmBlocoOrdemDia(VotacaoEmBlocoExpediente):
+ expediente = False
def get_queryset(self):
return OrdemDia.objects.filter(sessao_plenaria_id=self.kwargs['pk'],
- resultado='')
-
- def get_context_data(self, **kwargs):
- context = super(VotacaoEmBlocoOrdemDia,
- self).get_context_data(**kwargs)
- context['pk'] = self.kwargs['pk']
- context['root_pk'] = self.kwargs['pk']
- if not verifica_sessao_iniciada(self.request, self.kwargs['pk']):
- context['sessao_iniciada'] = False
- return context
- context['sessao_iniciada'] = True
- context['turno_choices'] = Tramitacao.TURNO_CHOICES
- context['title'] = SessaoPlenaria.objects.get(id=self.kwargs['pk'])
- return context
+ resultado='',
+ retiradapauta=None)
class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateView):
diff --git a/sapl/settings.py b/sapl/settings.py
index 959acc40d..d5d98c968 100644
--- a/sapl/settings.py
+++ b/sapl/settings.py
@@ -41,7 +41,7 @@ ALLOWED_HOSTS = ['*']
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/login/?next='
-SAPL_VERSION = '3.1.156'
+SAPL_VERSION = '3.1.157-RC5'
if DEBUG:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
diff --git a/sapl/static/sapl/css/relatorio.css b/sapl/static/sapl/css/relatorio.css
index c3f2ec21f..b51a40c2b 100644
--- a/sapl/static/sapl/css/relatorio.css
+++ b/sapl/static/sapl/css/relatorio.css
@@ -16,7 +16,7 @@ h3 {
page-break-after: avoid;
}
-p {
+p, a {
font-size: 10pt;
text-align: justify;
text-justify: inter-word;
diff --git a/sapl/static/sapl/frontend/css/global.83a4a89d.css b/sapl/static/sapl/frontend/css/global.d160bbe2.css
similarity index 96%
rename from sapl/static/sapl/frontend/css/global.83a4a89d.css
rename to sapl/static/sapl/frontend/css/global.d160bbe2.css
index 934a3e6cd..e7ae402ba 100644
--- a/sapl/static/sapl/frontend/css/global.83a4a89d.css
+++ b/sapl/static/sapl/frontend/css/global.d160bbe2.css
@@ -1 +1 @@
-*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#02baf2;text-decoration:none;background-color:transparent}a:hover{color:#0180a6;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8ecfb}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7bdbf8}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a0e6fa}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#fdcbcb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#fb9e9e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fcb2b2}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#76defe;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' 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") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#f84545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(248,69,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#f84545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f84545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23f84545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#f84545;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f84545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23f84545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#f84545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#f84545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#f84545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#fa7676;background-color:#fa7676}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#f84545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-primary:hover{color:#fff;background-color:#029dcc;border-color:#0293bf}.btn-primary.focus,.btn-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,196,244,.5);box-shadow:0 0 0 .2rem rgba(40,196,244,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0293bf;border-color:#0189b3}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,196,244,.5);box-shadow:0 0 0 .2rem rgba(40,196,244,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(130,138,145,.5);box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(130,138,145,.5);box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{-webkit-box-shadow:0 0 0 .2rem rgba(72,180,97,.5);box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(72,180,97,.5);box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{-webkit-box-shadow:0 0 0 .2rem rgba(58,176,195,.5);box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(58,176,195,.5);box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{-webkit-box-shadow:0 0 0 .2rem rgba(222,170,12,.5);box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(222,170,12,.5);box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#f84545;border-color:#f84545}.btn-danger:hover{color:#fff;background-color:#f72020;border-color:#f61414}.btn-danger.focus,.btn-danger:focus{-webkit-box-shadow:0 0 0 .2rem rgba(249,97,97,.5);box-shadow:0 0 0 .2rem rgba(249,97,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f84545;border-color:#f84545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#f61414;border-color:#f40909}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(249,97,97,.5);box-shadow:0 0 0 .2rem rgba(249,97,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{-webkit-box-shadow:0 0 0 .2rem rgba(216,217,219,.5);box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(216,217,219,.5);box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{-webkit-box-shadow:0 0 0 .2rem rgba(82,88,93,.5);box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(82,88,93,.5);box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-link{font-weight:400;color:#02baf2;text-decoration:none}.btn-link:hover{color:#0180a6;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#02baf2}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#02baf2;background-color:#02baf2}.custom-control-input:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#76defe}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#a8eafe;border-color:#a8eafe}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#02baf2;background-color:#02baf2}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#76defe;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#76defe;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#a8eafe}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-webkit-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#a8eafe}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-webkit-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#a8eafe}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#02baf2}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck,.card-deck .card{-webkit-box-direction:normal}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#02baf2;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0180a6;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#02baf2;border-color:#02baf2}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#02baf2}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0293bf}a.badge-primary.focus,a.badge-primary:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#f84545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#f61414}a.badge-danger.focus,a.badge-danger:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#01617e;background-color:#ccf1fc;border-color:#b8ecfb}.alert-primary hr{border-top-color:#a0e6fa}.alert-primary .alert-link{color:#013a4b}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#812424;background-color:#fedada;border-color:#fdcbcb}.alert-danger hr{border-top-color:#fcb2b2}.alert-danger .alert-link{color:#591919}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#02baf2;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#02baf2;border-color:#02baf2}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#01617e;background-color:#b8ecfb}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#01617e;background-color:#a0e6fa}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#01617e;border-color:#01617e}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#812424;background-color:#fdcbcb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#812424;background-color:#fcb2b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#812424;border-color:#812424}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 .25rem .75rem rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#02baf2!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0293bf!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#f84545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#f61414!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#02baf2!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#f84545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{-webkit-box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{-webkit-box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important;box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{-webkit-box-shadow:none!important;box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#02baf2!important}a.text-primary:focus,a.text-primary:hover{color:#0180a6!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#f84545!important}a.text-danger:focus,a.text-danger:hover{color:#e80909!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.btn-outline-primary{color:#02baf2;border-color:#02baf2;border-color:#d6e1e5}.btn-outline-primary:hover{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-outline-primary.focus,.btn-outline-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#02baf2;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d;border-color:#d6e1e5}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745;border-color:#d6e1e5}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8;border-color:#d6e1e5}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107;border-color:#d6e1e5}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#f84545;border-color:#f84545;border-color:#d6e1e5}.btn-outline-danger:hover{color:#fff;background-color:#f84545;border-color:#f84545}.btn-outline-danger.focus,.btn-outline-danger:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f84545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#f84545;border-color:#f84545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa;border-color:#d6e1e5}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40;border-color:#d6e1e5}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.navbar{padding:0}.navbar-nav{-ms-flex-preferred-size:100%;flex-basis:100%}.navbar-nav a{white-space:nowrap;color:#93a4aa}.navbar-nav .nav-link{padding-top:0;padding-bottom:0;line-height:4.5rem}.navbar-nav .dropdown-menu{background-color:#20282a;margin:0;border:0;border-radius:0;padding:0}.navbar-nav .dropdown-item{padding:0}.navbar-nav .dropdown-item:first-child,.navbar-nav .dropdown-item:last-child{border-radius:0}.navbar-nav .dropdown-item a{padding:0 15px;line-height:2.3rem;display:block;text-decoration:none;min-width:15rem}.navbar-nav .dropdown-item:hover{background-color:#364347}.navbar-nav .dropdown-item:hover a{color:#fff}.navbar-nav .pesquisa .dropdown-menu{min-width:15rem}.navbar-nav .search-form{padding:10px;min-width:20%}.navbar-nav a:not([href]):not([tabindex]){color:#777}.navbar-nav.justify-content-end .dropdown-menu{left:auto;right:0}.nav-pills .dropdown-menu{padding:0}.nav-pills .dropdown-item a{display:block}.nav-pills .dropdown-item.active a{color:#fff}@media (max-width:1199px){nav .container{max-width:none;-ms-flex-preferred-size:100%;flex-basis:100%}nav .caret{margin-left:-3px}}@media (max-width:1091px){.navbar-expand-lg .navbar-nav .nav-link{padding-left:4px;padding-right:4px;font-size:.95rem}}@media (max-width:991px){.navbar{padding:5px}.navbar-nav .nav-link{line-height:2.5rem}.navbar-nav.justify-content-end{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.navbar-nav.justify-content-end>li{display:inline-block}}@media (max-width:767px){.table{width:auto;white-space:normal;display:block;overflow-x:auto}}html{position:relative;min-height:100%}a,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,img,p{margin:0;padding:0}.h1,h1{font-size:30px}.h2,h2{font-size:24px}.h3,h3{font-size:20px}.h4,h4{font-size:16px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:.25em 0}p.control-label{font-weight:700}label{margin-bottom:0;line-height:1}input[type=checkbox],input[type=radio]{margin:0 5px 0 0;position:relative}fieldset fieldset{font-size:95%}fieldset fieldset legend{font-size:18px}ul{margin:0}.hidden{display:none}.form-control-static{padding:.2em 0;padding-left:12px;background-color:#f7f7f7}.form-control-static:empty{display:none}.legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;clear:both}.page-header{margin:20px 0 10px}.caret.top{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.lista-parlamentares .table td{vertical-align:middle}small{color:#777}.container-tabaux .sidebar-tabaux{background:#fafafa;margin-top:-70px;padding:10px;border:1px solid #eee}.container-tabaux .sidebar-tabaux .navbar-right{margin:0}.container-tabaux .sidebar-tabaux .nav-pills>li+li{margin-left:0}.container-tabaux .sidebar-tabaux li{width:100%}.container-tabaux .sidebar-tabaux span{display:none}.container-tabaux .sidebar-tabaux .dropdown-menu{padding:0;right:10px;margin-top:-5px;overflow:hidden}.container-tabaux .sidebar-tabaux .dropdown-menu a{border:0}.container-tabaux ul{list-style:none;padding:0}.container-tabaux .list{font-family:SourceSansProSemiBold,Helvetica,Arial,sans-serif;font-size:0}.container-tabaux .list,.container-tabaux .list ul{display:table;width:100%;margin:0}.container-tabaux .list li{width:50%;display:inline-block;position:relative}.container-tabaux .list>li{width:100%;border-bottom:1px solid #eee;padding-bottom:20px;margin-bottom:20px}.container-tabaux .list .head_title{color:#364347;font-size:1.7rem;text-transform:none}.container-tabaux .list a span,.mce-branding.mce-label{display:none}.dont-break-out{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}@media print{a[href]:after{content:none!important}}.container-home{position:relative;padding:2em 1.5em 1.5em 1.5em;max-width:1000px;margin:0 auto}.container-home a:hover{color:#444;-webkit-transition:.3s ease-in;-moz-transition:.3s ease-in;-o-transition:.3s ease-in}.container-home #homeIndex{text-align:center}.container-home .homeBanner span{color:#fff;font-size:32px;font-weight:600;display:inline-block;vertical-align:middle;padding:2px 45px 4px;border:2px solid}.container-home .homeBanner:after{display:inline-block;vertical-align:middle;height:100%}.container-home .homeBlock{display:inline-block;position:relative;background-color:#f3f3f3;width:190px;height:260px;margin:3px;text-align:center;font-size:0;overflow:hidden}.container-home .homeBlock>a{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.container-home .homeBlock:after{content:"";display:inline-block;vertical-align:middle;height:100%;overflow:visible;clear:none;visibility:initial}.container-home .homeContent{position:relative;padding:10px;text-align:justify;font-size:14px;color:#fff;opacity:0;-webkit-transition:opacity .5s ease;transition:opacity .5s ease;display:inline-block;vertical-align:middle}.container-home .homeContent p{display:block;line-height:13px;font-size:80%;color:#fff}.container-home .homeIcon{position:relative;display:inline-block;width:105px;height:105px;border-radius:50%;background:#364347;z-index:1}.container-home .homeIcon:before{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:#364347;top:0;left:0;-webkit-transform:scale(.95);transform:scale(.95);-webkit-transition:-webkit-transform .6s ease;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}.container-home .homeIcon img{position:absolute;margin:auto;top:0;bottom:0;right:0;left:0;-webkit-transition:opacity .4s ease .4s;transition:opacity .4s ease .4s}.container-home .homeFront{position:absolute;top:46%;width:100%;font-size:0;-webkit-transform:translateY(-60%);transform:translateY(-60%)}.container-home .homeFront h2{position:absolute;margin-top:18px;font-size:22px;font-weight:700;color:#595959!important;width:100%;padding:0 6%;z-index:0}.container-home .homeTitle{display:block;height:32px;text-align:center;width:100%;opacity:0;-webkit-transition:opacity .4s ease;transition:opacity .4s ease}.container-home .homeTitle:before{content:"";display:inline-block;vertical-align:middle;height:100%}.container-home .homeTitle h2{display:inline-block;vertical-align:middle;max-width:110px;font-size:14px;color:#fff!important;line-height:1em}.container-home .homeTitle img{display:inline-block;vertical-align:middle;height:30px;margin-right:5px}.container-home .homeBlock:hover .homeIcon:before{-webkit-transform:scale(3.6) translateY(7px);transform:scale(3.6) translateY(7px)}.container-home .homeBlock:hover .homeContent{opacity:1;-webkit-transition-delay:.2s;transition-delay:.2s}.container-home .homeBlock:hover .homeIcon img{opacity:0;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-delay:0s;transition-delay:0s}.container-home .homeBlock:hover .homeTitle{opacity:1}.masthead{padding:10px}.masthead .navbar-brand{padding:0;font-size:24px}.masthead .navbar-brand img.img-responsive{height:95px;display:inline-block}.masthead .navbar-brand small{color:#93a4aa;font-size:75%;line-height:25px}.masthead .navbar-brand .vcenter{display:inline-block;vertical-align:middle;float:none;padding:10px;line-height:1.5rem}.masthead .nav-link{padding:.3rem .5rem;margin:0 1px}.masthead .nav-link:hover{background-color:#b2c6cd;color:#fff}@media (max-width:1091px){.masthead .navbar-brand{font-size:22px}.masthead .navbar-brand img.img-responsive{height:60px}}@media (max-width:767px){.masthead{text-align:center}.masthead .container{max-width:100%;padding:0}.masthead .navbar-brand{white-space:normal;margin:0}.masthead .navbar-brand .vcenter{display:block;line-height:1em}}@media (max-width:576px){.masthead .navbar-brand{font-size:1.2rem}}@media (max-width:360px){.masthead .navbar-brand{font-size:1rem}}body{margin-bottom:160px}.footer{background:#364347;color:#fff;text-align:center;position:absolute;width:100%;bottom:0}.footer p{color:#fff;margin-top:10px}.footer .container{padding-top:25px}@media (max-width:991px){.footer{position:relative}}.jcrop-holder{-ms-touch-action:none;direction:ltr;text-align:left}.jcrop-hline,.jcrop-vline{background:#fff url(data:image/gif;base64,R0lGODlhCAAIAJEAAKqqqv///wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAACDZQFCadrzVRMB9FZ5SwAIfkECQoAAAAsAAAAAAgACAAAAg+ELqCYaudeW9ChyOyltQAAIfkECQoAAAAsAAAAAAgACAAAAg8EhGKXm+rQYtC0WGl9oAAAIfkECQoAAAAsAAAAAAgACAAAAg+EhWKQernaYmjCWLF7qAAAIfkECQoAAAAsAAAAAAgACAAAAg2EISmna81UTAfRWeUsACH5BAkKAAAALAAAAAAIAAgAAAIPFA6imGrnXlvQocjspbUAACH5BAkKAAAALAAAAAAIAAgAAAIPlIBgl5vq0GLQtFhpfaIAACH5BAUKAAAALAAAAAAIAAgAAAIPlIFgknq52mJowlixe6gAADs=);font-size:0;position:absolute}.jcrop-vline{height:100%;width:1px!important}.jcrop-vline.right{right:0}.jcrop-hline{height:1px!important;width:100%}.jcrop-hline.bottom{bottom:0}.jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%}.jcrop-handle{background-color:#333;border:1px solid #eee;font-size:1px;height:7px;width:7px}.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px}.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%}.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%}.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0}.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0}.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px}.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%}.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px}.jcrop-dragbar.ord-n{margin-top:-4px}.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px}.jcrop-dragbar.ord-e{margin-right:-4px;right:0}.jcrop-dragbar.ord-w{margin-left:-4px}.jcrop-light .jcrop-hline,.jcrop-light .jcrop-vline{background:#fff;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#fff;border-radius:3px}.jcrop-dark .jcrop-hline,.jcrop-dark .jcrop-vline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#fff;border-color:#000;border-radius:3px}.solid-line .jcrop-hline,.solid-line .jcrop-vline{background:#fff}.jcrop-holder img,img.jcrop-preview{max-width:none}div.jcrop-image.size-warning .jcrop-hline,div.jcrop-image.size-warning .jcrop-vline{border:1px solid red;background:none}body.change-form .allow-fullsize+.help,body.change-form .jcrop-holder+.help{clear:left}body.change-form .jcrop-holder{float:left}div.allow-fullsize{padding:5px 0 0 10px}
\ No newline at end of file
+*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#02baf2;text-decoration:none;background-color:transparent}a:hover{color:#0180a6;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1,.col-auto{-webkit-box-flex:0}.col-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-2,.col-3{-webkit-box-flex:0}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-4,.col-5{-webkit-box-flex:0}.col-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-6,.col-7{-webkit-box-flex:0}.col-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-8,.col-9{-webkit-box-flex:0}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-10,.col-11{-webkit-box-flex:0}.col-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8ecfb}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7bdbf8}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a0e6fa}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#fdcbcb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#fb9e9e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fcb2b2}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#76defe;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' 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") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.25);box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#f84545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(248,69,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#f84545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f84545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23f84545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#f84545;padding-right:calc((3em + 2.25rem)/4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f84545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23f84545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#f84545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#f84545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#f84545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#fa7676;background-color:#fa7676}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#f84545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#f84545;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.25);box-shadow:0 0 0 .2rem rgba(248,69,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .form-group,.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center;margin-bottom:0}.form-inline .form-group{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-primary:hover{color:#fff;background-color:#029dcc;border-color:#0293bf}.btn-primary.focus,.btn-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,196,244,.5);box-shadow:0 0 0 .2rem rgba(40,196,244,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0293bf;border-color:#0189b3}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,196,244,.5);box-shadow:0 0 0 .2rem rgba(40,196,244,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(130,138,145,.5);box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(130,138,145,.5);box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{-webkit-box-shadow:0 0 0 .2rem rgba(72,180,97,.5);box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(72,180,97,.5);box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{-webkit-box-shadow:0 0 0 .2rem rgba(58,176,195,.5);box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(58,176,195,.5);box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{-webkit-box-shadow:0 0 0 .2rem rgba(222,170,12,.5);box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(222,170,12,.5);box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#f84545;border-color:#f84545}.btn-danger:hover{color:#fff;background-color:#f72020;border-color:#f61414}.btn-danger.focus,.btn-danger:focus{-webkit-box-shadow:0 0 0 .2rem rgba(249,97,97,.5);box-shadow:0 0 0 .2rem rgba(249,97,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f84545;border-color:#f84545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#f61414;border-color:#f40909}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(249,97,97,.5);box-shadow:0 0 0 .2rem rgba(249,97,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{-webkit-box-shadow:0 0 0 .2rem rgba(216,217,219,.5);box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(216,217,219,.5);box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{-webkit-box-shadow:0 0 0 .2rem rgba(82,88,93,.5);box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(82,88,93,.5);box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-link{font-weight:400;color:#02baf2;text-decoration:none}.btn-link:hover{color:#0180a6;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#02baf2}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#02baf2;background-color:#02baf2}.custom-control-input:focus~.custom-control-label:before{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#76defe}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#a8eafe;border-color:#a8eafe}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#02baf2;background-color:#02baf2}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(2,186,242,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#76defe;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#76defe;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(2,186,242,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#a8eafe}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-webkit-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#a8eafe}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#02baf2;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-webkit-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#a8eafe}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#02baf2}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md,.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg,.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl,.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck,.card-deck .card{-webkit-box-direction:normal}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#02baf2;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0180a6;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.25);box-shadow:0 0 0 .2rem rgba(2,186,242,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#02baf2;border-color:#02baf2}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{-webkit-transition:none;transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#02baf2}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0293bf}a.badge-primary.focus,a.badge-primary:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#f84545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#f61414}a.badge-danger.focus,a.badge-danger:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#01617e;background-color:#ccf1fc;border-color:#b8ecfb}.alert-primary hr{border-top-color:#a0e6fa}.alert-primary .alert-link{color:#013a4b}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#812424;background-color:#fedada;border-color:#fdcbcb}.alert-danger hr{border-top-color:#fcb2b2}.alert-danger .alert-link{color:#591919}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#02baf2;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#02baf2;border-color:#02baf2}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#01617e;background-color:#b8ecfb}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#01617e;background-color:#a0e6fa}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#01617e;border-color:#01617e}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#812424;background-color:#fdcbcb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#812424;background-color:#fcb2b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#812424;border-color:#812424}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 .25rem .75rem rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#02baf2!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0293bf!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#f84545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#f61414!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#02baf2!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#f84545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{-webkit-box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{-webkit-box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important;box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{-webkit-box-shadow:none!important;box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#02baf2!important}a.text-primary:focus,a.text-primary:hover{color:#0180a6!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#f84545!important}a.text-danger:focus,a.text-danger:hover{color:#e80909!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.btn-outline-primary{color:#02baf2;border-color:#02baf2;border-color:#d6e1e5}.btn-outline-primary:hover{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-outline-primary.focus,.btn-outline-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#02baf2;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#02baf2;border-color:#02baf2}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(2,186,242,.5);box-shadow:0 0 0 .2rem rgba(2,186,242,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d;border-color:#d6e1e5}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(108,117,125,.5);box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745;border-color:#d6e1e5}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(40,167,69,.5);box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8;border-color:#d6e1e5}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(23,162,184,.5);box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107;border-color:#d6e1e5}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,193,7,.5);box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#f84545;border-color:#f84545;border-color:#d6e1e5}.btn-outline-danger:hover{color:#fff;background-color:#f84545;border-color:#f84545}.btn-outline-danger.focus,.btn-outline-danger:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f84545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#f84545;border-color:#f84545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,69,69,.5);box-shadow:0 0 0 .2rem rgba(248,69,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa;border-color:#d6e1e5}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(248,249,250,.5);box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40;border-color:#d6e1e5}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .2rem rgba(52,58,64,.5);box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.navbar{padding:0}.navbar-nav{-ms-flex-preferred-size:100%;flex-basis:100%}.navbar-nav a{white-space:nowrap;color:#93a4aa}.navbar-nav .nav-link{padding-top:0;padding-bottom:0;line-height:4.5rem}.navbar-nav .dropdown-menu{background-color:#20282a;margin:0;border:0;border-radius:0;padding:0}.navbar-nav .dropdown-item{padding:0}.navbar-nav .dropdown-item:first-child,.navbar-nav .dropdown-item:last-child{border-radius:0}.navbar-nav .dropdown-item a{padding:0 15px;line-height:2.3rem;display:block;text-decoration:none;min-width:15rem}.navbar-nav .dropdown-item:hover{background-color:#364347}.navbar-nav .dropdown-item:hover a{color:#fff}.navbar-nav .pesquisa .dropdown-menu{min-width:15rem}.navbar-nav .search-form{padding:10px;min-width:20%}.navbar-nav a:not([href]):not([tabindex]){color:#777}.navbar-nav.justify-content-end .dropdown-menu{left:auto;right:0}.nav-pills .dropdown-menu{padding:0}.nav-pills .dropdown-item a{display:block}.nav-pills .dropdown-item.active a{color:#fff}@media (max-width:1199px){nav .container{max-width:none;-ms-flex-preferred-size:100%;flex-basis:100%}nav .caret{margin-left:-3px}}@media (max-width:1091px){.navbar-expand-lg .navbar-nav .nav-link{padding-left:4px;padding-right:4px;font-size:.95rem}}@media (max-width:991px){.navbar{padding:5px}.navbar-nav .nav-link{line-height:2.5rem}.navbar-nav.justify-content-end{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.navbar-nav.justify-content-end>li{display:inline-block}}@media (max-width:767px){.table{width:auto;white-space:normal;display:block;overflow-x:auto}}html{position:relative;min-height:100%}a,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,img,p{margin:0;padding:0}.h1,h1{font-size:30px}.h2,h2{font-size:24px}.h3,h3{font-size:20px}.h4,h4{font-size:16px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:.25em 0}p.control-label{font-weight:700}label{margin-bottom:0;line-height:1}input[type=checkbox],input[type=radio]{margin:0 5px 0 0;position:relative}fieldset fieldset{font-size:95%}fieldset fieldset legend{font-size:18px}ul{margin:0}.hidden{display:none}.form-control-static{padding:.2em 0;padding-left:12px;background-color:#f7f7f7}.form-control-static:empty{display:none}.legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;clear:both}.page-header{margin:20px 0 10px}.caret.top{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.lista-parlamentares .table td{vertical-align:middle}small{color:#777}.container-tabaux .sidebar-tabaux{background:#fafafa;margin-top:-70px;padding:10px;border:1px solid #eee}.container-tabaux .sidebar-tabaux .navbar-right{margin:0}.container-tabaux .sidebar-tabaux .nav-pills>li+li{margin-left:0}.container-tabaux .sidebar-tabaux li{width:100%}.container-tabaux .sidebar-tabaux span{display:none}.container-tabaux .sidebar-tabaux .dropdown-menu{padding:0;right:10px;margin-top:-5px;overflow:hidden}.container-tabaux .sidebar-tabaux .dropdown-menu a{border:0}.container-tabaux ul{list-style:none;padding:0}.container-tabaux .list{font-family:SourceSansProSemiBold,Helvetica,Arial,sans-serif;font-size:0}.container-tabaux .list,.container-tabaux .list ul{display:table;width:100%;margin:0}.container-tabaux .list li{width:50%;display:inline-block;position:relative}.container-tabaux .list>li{width:100%;border-bottom:1px solid #eee;padding-bottom:20px;margin-bottom:20px}.container-tabaux .list .head_title{color:#364347;font-size:1.7rem;text-transform:none}.container-tabaux .list a span,.mce-branding.mce-label{display:none}.dont-break-out{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}@media print{a[href]:after{content:none!important}}.container-home{position:relative;padding:2em 1.5em 1.5em 1.5em;max-width:1000px;margin:0 auto}.container-home a:hover{color:#444;-webkit-transition:.3s ease-in;-moz-transition:.3s ease-in;-o-transition:.3s ease-in}.container-home #homeIndex{text-align:center}.container-home .homeBanner span{color:#fff;font-size:32px;font-weight:600;display:inline-block;vertical-align:middle;padding:2px 45px 4px;border:2px solid}.container-home .homeBanner:after{display:inline-block;vertical-align:middle;height:100%}.container-home .homeBlock{display:inline-block;position:relative;background-color:#f3f3f3;width:190px;height:260px;margin:3px;text-align:center;font-size:0;overflow:hidden}.container-home .homeBlock>a{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.container-home .homeBlock:after{content:"";display:inline-block;vertical-align:middle;height:100%;overflow:visible;clear:none;visibility:initial}.container-home .homeContent{position:relative;padding:10px;text-align:justify;font-size:14px;color:#fff;opacity:0;-webkit-transition:opacity .5s ease;transition:opacity .5s ease;display:inline-block;vertical-align:middle}.container-home .homeContent p{display:block;line-height:13px;font-size:80%;color:#fff}.container-home .homeIcon{position:relative;display:inline-block;width:105px;height:105px;border-radius:50%;background:#364347;z-index:1}.container-home .homeIcon:before{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:#364347;top:0;left:0;-webkit-transform:scale(.95);transform:scale(.95);-webkit-transition:-webkit-transform .6s ease;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}.container-home .homeIcon img{position:absolute;margin:auto;top:0;bottom:0;right:0;left:0;-webkit-transition:opacity .4s ease .4s;transition:opacity .4s ease .4s}.container-home .homeFront{position:absolute;top:46%;width:100%;font-size:0;-webkit-transform:translateY(-60%);transform:translateY(-60%)}.container-home .homeFront h2{position:absolute;margin-top:18px;font-size:22px;font-weight:700;color:#595959!important;width:100%;padding:0 6%;z-index:0}.container-home .homeTitle{display:block;height:32px;text-align:center;width:100%;opacity:0;-webkit-transition:opacity .4s ease;transition:opacity .4s ease}.container-home .homeTitle:before{content:"";display:inline-block;vertical-align:middle;height:100%}.container-home .homeTitle h2{display:inline-block;vertical-align:middle;max-width:110px;font-size:14px;color:#fff!important;line-height:1em}.container-home .homeTitle img{display:inline-block;vertical-align:middle;height:30px;margin-right:5px}.container-home .homeBlock:hover .homeIcon:before{-webkit-transform:scale(3.6) translateY(7px);transform:scale(3.6) translateY(7px)}.container-home .homeBlock:hover .homeContent{opacity:1;-webkit-transition-delay:.2s;transition-delay:.2s}.container-home .homeBlock:hover .homeIcon img{opacity:0;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-delay:0s;transition-delay:0s}.container-home .homeBlock:hover .homeTitle{opacity:1}.masthead{padding:10px}.masthead .navbar-brand{padding:0;font-size:24px}.masthead .navbar-brand img.img-responsive{height:95px;display:inline-block}.masthead .navbar-brand small{color:#93a4aa;font-size:75%;line-height:25px}.masthead .navbar-brand .vcenter{display:inline-block;vertical-align:middle;float:none;padding:10px;line-height:1.5rem}.masthead .nav-link{padding:.3rem .5rem;margin:0 1px}.masthead .nav-link:hover{background-color:#b2c6cd;color:#fff}@media (max-width:1091px){.masthead .navbar-brand{font-size:22px}.masthead .navbar-brand img.img-responsive{height:60px}}@media (max-width:767px){.masthead{text-align:center}.masthead .container{max-width:100%;padding:0}.masthead .navbar-brand{white-space:normal;margin:0}.masthead .navbar-brand .vcenter{display:block;line-height:1em}}@media (max-width:576px){.masthead .navbar-brand{font-size:1.2rem}}@media (max-width:360px){.masthead .navbar-brand{font-size:1rem}}body{margin-bottom:160px}.footer{background:#364347;color:#fff;text-align:center;position:absolute;width:100%;bottom:0}.footer p{color:#fff;margin-top:10px}.footer .container{padding-top:25px}@media (max-width:991px){.footer{position:relative}}.jcrop-holder{-ms-touch-action:none;direction:ltr;text-align:left}.jcrop-hline,.jcrop-vline{background:#fff url(data:image/gif;base64,R0lGODlhCAAIAJEAAKqqqv///wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAACDZQFCadrzVRMB9FZ5SwAIfkECQoAAAAsAAAAAAgACAAAAg+ELqCYaudeW9ChyOyltQAAIfkECQoAAAAsAAAAAAgACAAAAg8EhGKXm+rQYtC0WGl9oAAAIfkECQoAAAAsAAAAAAgACAAAAg+EhWKQernaYmjCWLF7qAAAIfkECQoAAAAsAAAAAAgACAAAAg2EISmna81UTAfRWeUsACH5BAkKAAAALAAAAAAIAAgAAAIPFA6imGrnXlvQocjspbUAACH5BAkKAAAALAAAAAAIAAgAAAIPlIBgl5vq0GLQtFhpfaIAACH5BAUKAAAALAAAAAAIAAgAAAIPlIFgknq52mJowlixe6gAADs=);font-size:0;position:absolute}.jcrop-vline{height:100%;width:1px!important}.jcrop-vline.right{right:0}.jcrop-hline{height:1px!important;width:100%}.jcrop-hline.bottom{bottom:0}.jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%}.jcrop-handle{background-color:#333;border:1px solid #eee;font-size:1px;height:7px;width:7px}.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px}.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%}.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%}.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0}.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0}.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px}.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%}.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px}.jcrop-dragbar.ord-n{margin-top:-4px}.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px}.jcrop-dragbar.ord-e{margin-right:-4px;right:0}.jcrop-dragbar.ord-w{margin-left:-4px}.jcrop-light .jcrop-hline,.jcrop-light .jcrop-vline{background:#fff;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#fff;border-radius:3px}.jcrop-dark .jcrop-hline,.jcrop-dark .jcrop-vline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#fff;border-color:#000;border-radius:3px}.solid-line .jcrop-hline,.solid-line .jcrop-vline{background:#fff}.jcrop-holder img,img.jcrop-preview{max-width:none}div.jcrop-image.size-warning .jcrop-hline,div.jcrop-image.size-warning .jcrop-vline{border:1px solid red;background:none}body.change-form .allow-fullsize+.help,body.change-form .jcrop-holder+.help{clear:left}body.change-form .jcrop-holder{float:left}div.allow-fullsize{padding:5px 0 0 10px}
\ No newline at end of file
diff --git a/sapl/static/sapl/frontend/css/global.83a4a89d.css.gz b/sapl/static/sapl/frontend/css/global.d160bbe2.css.gz
similarity index 93%
rename from sapl/static/sapl/frontend/css/global.83a4a89d.css.gz
rename to sapl/static/sapl/frontend/css/global.d160bbe2.css.gz
index 22f412fa9..779a66a77 100644
Binary files a/sapl/static/sapl/frontend/css/global.83a4a89d.css.gz and b/sapl/static/sapl/frontend/css/global.d160bbe2.css.gz differ
diff --git a/sapl/static/sapl/frontend/js/compilacao.411d8643.js b/sapl/static/sapl/frontend/js/compilacao.7625546b.js
similarity index 90%
rename from sapl/static/sapl/frontend/js/compilacao.411d8643.js
rename to sapl/static/sapl/frontend/js/compilacao.7625546b.js
index aae9f016b..bd635d817 100644
--- a/sapl/static/sapl/frontend/js/compilacao.411d8643.js
+++ b/sapl/static/sapl/frontend/js/compilacao.7625546b.js
@@ -1 +1 @@
-!function(t){function e(e){for(var n,s,r=e[0],d=e[1],l=e[2],f=0,p=[];f .dpt-form").html(""),o(".dpt-actions, .dpt-actions-bottom").html(""),window.tinymce.remove(),o(".dpt-selected").removeClass("dpt-selected")},t.editDispositivo=function(e){var i=e.target.classList.contains("dpt-link")?e.target:e.target.parentElement.classList.contains("dpt-link")?e.target.parentElement:null;if(!(i&&i.getAttribute("href")&&i.getAttribute("href").length>0)){var n=o(this).closest(".dpt");if(n.hasClass("dpt-selected"))"editor-close"===this.getAttribute("action")&&t.clearEditSelected();else{t.clearEditSelected(),t.loadActionsEdit(n);var a=n.attr("formtype");n.on(a,t[a]),t.loadForm(n,a)}}},t.gc=function(){setTimeout(function(){o(".dpt:not(.dpt-selected) > .dpt-form").html("")},500)},t.get_form_base=function(){var e=o(this);e.addClass("dpt-selected"),e.children().filter(".dpt-form").find("form").submit(t.onSubmitEditFormBase),t.scrollTo(e),e.off("get_form_base"),e.find(".btn-fechar").on("click",function(e){t.clearEditSelected(),e.preventDefault()});var i=e.find(".btns-excluir");e.find(".dpt-actions-bottom").first().append(i),i.find(".btn-outline-danger").on("click",t.bindActionsClick)},t.get_form_alteracao=function(){var e=o(this);e.off("get_form_alteracao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar"}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraAlteracao),e.find(".btn-fechar").on("click",function(i){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk")),i.preventDefault()})},t.get_form_inclusao=function(){var e=o(this);e.off("get_form_inclusao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar",post_selected:t.allowed_inserts_registro_inclusao,params_post_selected:{pk_bloco:e.attr("pk")}}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraInclusao),e.find(".btn-fechar").on("click",function(i){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk")),i.preventDefault()})},t.get_form_revogacao=function(){var e=o(this);e.off("get_form_revogacao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar"}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraRevogacao),e.find(".btn-fechar").on("click",function(){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk"))})},t.allowed_inserts_registro_inclusao=function(e){var i=o("#id"+e.pk_bloco+" input[name='dispositivo_base_para_inclusao']");if(0!==i.length){var n=i[0].value,a={action:"get_actions_allowed_inserts_registro_inclusao",pk_bloco:e.pk_bloco},s=n+"/refresh";t.waitShow(),o.get(s,a).done(function(e){o(".allowed_inserts").html(e),o(".allowed_inserts").find(".btn-action").on("click",t.bindActionsClick)}).fail(t.waitHide).always(t.waitHide)}},t.loadActionsEdit=function(i){var n=i.attr("pk")+"/refresh?action=get_actions";o.get(n).done(function(n){i.find(".dpt-actions").first().html(n),i.find(".btn-action").on("click",t.bindActionsClick),i.find(".btn-compila").on("click",t.loadFormsCompilacao),i.find(".btn-editor-type").on("click",t.bindActionsEditorType),"construct"===e&&(i.find(".btn-group-inserts").first().addClass("open show"),i.find(".btn-group-inserts ul").first().addClass("show")),i.find(".btn-group-inserts button").mouseenter(function(t){i.find(".btn-group-inserts ul").removeClass("show"),i.find(".btn-group-inserts").removeClass("open show"),o(this.parentElement).addClass("open show"),o(this.parentElement).find("ul").addClass("show")}),i.find(".btn-group-inserts").mouseleave(function(t){i.find(".btn-group-inserts ul").removeClass("show"),i.find(".btn-group-inserts").removeClass("open show")}),t.gc()})},t.loadForm=function(i,n){var a=i.attr("pk"),s=i.children().filter(".dpt-form");if(1===s.length){var r=a+"/refresh?action="+n;o.get(r).done(function(t){"construct"!==e&&(s.html(t),"tinymce"===e&&window.initTextRichEditor()),i.trigger(n)}).always(function(){t.waitHide()})}},t.loadFormsCompilacao=function(e){var i=o(this).closest(".dpt"),n=this.getAttribute("action");i.on(n,t[n]),t.loadForm(i,n)},t.modalMessage=function(t,e,i){return null!==t&&""!==t&&(o("#modal-message #message").html(t),o("#modal-message").modal("show"),o("#modal-message, #modal-message .alert button").off(),o("#modal-message .alert").removeClass("alert-success alert-info alert-warning alert-danger alert-danger"),o("#modal-message .alert").addClass(e),null!=i&&o("#modal-message").on("hidden.bs.modal",i),o("#modal-message .alert button").on("click",function(){o("#modal-message").modal("hide")}),!0)},t.message=function(e){if(void 0!==e.message)if(e.message.modal)t.modalMessage(e.message.value,"alert-"+e.message.type,function(){t.waitShow(),t.refreshScreenFocusPk(e)});else{if(t.refreshScreenFocusPk(e),!("message"in e))return;var i=o(".cp-notify");i.removeClass("hide");var n=i.find(".message");n.text(e.message.value),n.removeClass("bg-primary bg-success bg-info bg-warning bg-danger").addClass("bg-"+e.message.type),setTimeout(function(){i.addClass("hide")},e.message.time?e.message.time:3e3)}else t.refreshScreenFocusPk(e)},t.offClicks=function(){o(".btn-dpt-edit").off()},t.onClicks=function(e){(null==e?o(".btn-dpt-edit"):o(e).find(".btn-dpt-edit")).on("click",t.editDispositivo)},t.onSubmitFormRegistraAlteracao=function(e){if(void 0===this.dispositivo_alterado)return t.modalMessage("Nenhum dispositivo selecionado","alert-info"),void(null!=e&&e.preventDefault());var i=void 0===this.dispositivo_alterado.length?[this.dispositivo_alterado]:n()(this.dispositivo_alterado),a={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_alterado:i.filter(function(t,e,i){return t.checked}).map(function(t){return t.value}),formtype:"get_form_alteracao"},s=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(s,a).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitFormRegistraInclusao=function(e){var i={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_base_para_inclusao:this.dispositivo_base_para_inclusao.value,formtype:"get_form_inclusao"},n=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(n,i).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitFormRegistraRevogacao=function(e){if(void 0===this.dispositivo_revogado)return t.modalMessage("Nenhum dispositivo selecionado","alert-info"),void(null!=e&&e.preventDefault());var i=void 0===this.dispositivo_revogado.length?[this.dispositivo_revogado]:n()(this.dispositivo_revogado),a={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_revogado:i.filter(function(t,e,i){return t.checked}).map(function(t){return t.value}),revogacao_em_bloco:this.revogacao_em_bloco.value,formtype:"get_form_revogacao"},s=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(s,a).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitEditFormBase=function(e){var i=this,n="",a="",s="",r=window.tinymce.get("id_texto"),d=window.tinymce.get("id_texto_atualizador");n=null!=r?r.getContent():this.id_texto.value,null!=d?a=d.getContent():"id_texto_atualizador"in this&&(a=this.id_texto_atualizador.value),"visibilidade"in this&&(s=this.visibilidade.value);var l={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,texto:n,texto_atualizador:a,visibilidade:s,formtype:"get_form_base"},c=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(c,l).done(function(e){if("string"==typeof e){var n=o(i).closest(".dpt");return n=o("#"+n.replaceWith(e).attr("id")),t.onClicks(n),void t.waitHide()}t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.refreshContent=function(e,i){if(0!==e.length){var n=e.shift(),a=n+"/refresh";o.get(a).done(function(a){var s=o("#id"+n).closest(".dpt");s=o("#"+s.replaceWith(a).attr("id")),t.onClicks(s),t.reloadFunctionsDraggables(),i>0&&t.triggerBtnDptEdit(i),t.refreshContent(e)})}else t.waitHide()},t.refreshScreenFocusPk=function(e){if(t.waitShow(),-1===e.pai[0]){t.waitShow();var i=location.href.split("#")[0];location.href=i+"#"+e.pk,location.reload(!0)}else t.refreshContent(e.pai,e.pk)},t.reloadFunctionsDraggables=function(){o(".dpt-alts").sortable({revert:!0,distance:15,start:function(t,e){},stop:function(t,e){var i=e.item.attr("pk"),n=e.item.closest(".dpt-alts").closest(".dpt").attr("pk"),a=i+"/refresh?action=json_drag_move_dpt_alterado&index="+e.item.index()+"&bloco_pk="+n;o.get(a).done(function(t){})}}),o(".dpt-alts .dpt").draggable({connectToSortable:".dpt-alts",revert:"invalid",zIndex:1,distance:15,drag:function(t,e){o(".dpt-alts").addClass("drag")},stop:function(t,e){o(".dpt-alts").removeClass("drag")}}),o(".dpt-alts").disableSelection()},t.scrollTo=function(t){try{o("html, body").animate({scrollTop:t.offset().top-window.innerHeight/9},100)}catch(t){}},t.triggerBtnDptEdit=function(t){var e=o("#id"+t+" > .dpt-text.btn-dpt-edit");0===e.length&&(e=o("#id"+t+" > .dpt-actions-fixed > .btn-dpt-edit")),e.trigger("click")},t.waitHide=function(){o("#wait_message").addClass("displaynone")},t.waitShow=function(){o("#wait_message").removeClass("displaynone")},t.init=function(){o(".dpt-actions-fixed").first().css("opacity","1"),null!==(e=window.ReadCookie("editortype"))&&""!==e||(e="textarea",window.SetCookie("editortype",e,30)),t.offClicks(),t.onClicks(),t.reloadFunctionsDraggables();var i=location.href.split("#");2===i.length&&""!==i[1]&&t.triggerBtnDptEdit(i[1]),o("main").click(function(e){e.target!==this&&e.target!==this.firstElementChild||t.clearEditSelected()}),t.waitHide()},t.init()},o(document).ready(function(){t(".cpe").length>0&&window.DispositivoEdit()})}).call(this,i("1157"))},1:function(t,e,i){t.exports=i("6ccd")},"4a8b":function(t,e,i){"use strict";var n=i("f499"),o=i.n(n),a=(i("7514"),window.$);function s(t){a(t).append('
')}e.a={SetCookie:function(t,e,i){var n=new Date,o=new Date;null!==i&&0!==i||(i=1),o.setTime(n.getTime()+864e5*i),document.cookie=t+"="+escape(e)+";expires="+o.toGMTString()},ReadCookie:function(t){var e=" "+document.cookie,i=e.indexOf(" "+t+"=");if(-1===i&&(i=e.indexOf(";"+t+"=")),-1===i||""===t)return"";var n=e.indexOf(";",i+1);return-1===n&&(n=e.length),unescape(e.substring(i+t.length+2,n))},insertWaitAjax:s,DispositivoSearch:function(t){a(function(){var e={},i=a("body").children("#container_ds");i.length>0&&a(i).remove(),i=a('
'),a("body").prepend(i),a('[data-sapl-ta="DispositivoSearch"]').each(function(){var n=a(this),r=n.attr("data-type-selection"),d=n.attr("data-field"),l=n.attr("data-function"),c=function(t){if("checkbox"===r){var e=n.find('input[name="ta_select_all"]');e.off(),e.on("change",function(t){a(this).closest("ul").find('input[name="'+d+'"]').prop("checked",this.checked)})}else{var i=n.find("input");i.off(),i.attr("type","hidden"),a('').insertBefore(i).append(a('× ')).on("click",function(){2===a(this).closest("ul").find("li").length?a(this).closest("ul").remove():a(this).closest("li").remove()})}};c();var f=function(t){var i=a('select[name="tipo_ta"]').val(),n=a('select[name="tipo_model"]').val(),c=a('input[name="num_ta"]').val(),f=a('input[name="ano_ta"]').val(),p=a('input[name="dispositivos_internos"]:checked').val(),u=a('input[name="rotulo_dispositivo"]').val(),m=a('input[name="texto_dispositivo"]').val(),v=a('select[name="max_results"]').val();u.length>0||m.length>0?(a('input[name="dispositivos_internos"]').prop("disabled",!1),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.remove("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","1")):(a('input[name="dispositivos_internos"]').filter('[value="False"]').prop("checked",!0),a('input[name="dispositivos_internos"]').prop("disabled",!0),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.add("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","0.3"),p="False"),e={tipo_ta:i,tipo_model:n,num_ta:c,ano_ta:f,texto:m,rotulo:u,dispositivos_internos:p,max_results:v,data_type_selection:r,data_field:d,data_function:l},window.localStorage.setItem("dispositivo_search_form_data",o()(e)),a(".result-busca-dispositivo").html(""),s(".result-busca-dispositivo"),a.get("/ta/search_fragment_form",e).done(function(t){if(a(".result-busca-dispositivo").html(t),"checkbox"===r){var e=a(".result-busca-dispositivo").find('input[name="ta_select_all"]');e.off(),e.on("change",function(t){a(this).closest("ul").find('input[name="'+d+'"]').prop("checked",this.checked)})}})},p=function(t){var e=a('input[name="rotulo_dispositivo"]').val(),i=a('input[name="texto_dispositivo"]').val();e.length>0||i.length>0?(a('input[name="dispositivos_internos"]').prop("disabled",!1),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.remove("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","1")):(a('input[name="dispositivos_internos"]').filter('[value="False"]').prop("checked",!0),a('input[name="dispositivos_internos"]').prop("disabled",!0),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.add("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","0.3"))},u=n.children("#buttonDs");u.length>0&&a(u).remove(),u=a('
'),n.prepend(u);var m=a("").text(t.text_button).attr("type","button").attr("class","btn btn-sm btn-success btn-modal-open");u.append(m),m.on("click",function(){a.get(t.url_form,function(o){i.html(o);var s=a("#modal-ds");s.find('select[name="tipo_ta"]').change(function(t){var i;i="/ta/search_fragment_form?action=get_tipos&tipo_ta="+this.value,s.find('label[for="id_tipo_model"]').html("Tipos de "+this.children[this.selectedIndex].innerHTML);var n=s.find('select[name="tipo_model"]');n.empty(),a('Carregando... ').appendTo(n),a.get(i).done(function(t){for(var i in n.empty(),t)for(var o in t[i])n.append(a("").attr("value",o).text(t[i][o]));setTimeout(function(){a('select[name="tipo_model"]').val(e.tipo_model)},200)})}),s.find('input[name="texto_dispositivo"], input[name="rotulo_dispositivo"]').on("keyup",p),s.find(".btn-busca").click(f),s.find("#btn-modal-select").click(function(){var e=n.find("ul");"radio"===r&&e.remove();var i=s.find('[name="'+d+'"]:checked');i.closest("ul").find("input:not(:checked)").filter('[name!="ta_select_all"]').closest("li").remove(),i.closest("ul").each(function(){var t=n.find("#"+this.id);0!==t.length?a(this).find("input").each(function(){t.find("#"+this.id).length>0||t.append(a(this).closest("li"))}):n.append(this)}),c(),s.modal("hide"),"post_selected"in t&&t.post_selected(t.params_post_selected)});try{e=JSON.parse(window.localStorage.getItem("dispositivo_search_form_data")),a('input[name="num_ta"]').val(e.num_ta),a('input[name="ano_ta"]').val(e.ano_ta),a('input[name="rotulo_dispositivo"]').val(e.rotulo),a('input[name="texto_dispositivo"]').val(e.texto),a('select[name="max_results"]').val(e.max_results)}catch(t){}setTimeout(function(){try{a('select[name="tipo_ta"]').val(e.tipo_ta),a('select[name="tipo_ta"]').trigger("change")}catch(t){}},200),s.modal("show")})})})})}}},"6ccd":function(t,e,i){"use strict";i.r(e),function(t,e){var n=i("e814"),o=i.n(n),a=(i("28a5"),i("ac6a"),i("cadf"),i("551c"),i("f751"),i("097d"),i("6d5e"),i("4a8b")),s=i("a0fe"),r=i("aa48");i("0872");t.forEach(t.merge(t.merge(a.a,r.a),s.a),function(t,e){window[e]=t}),e(document).ready(function(){setTimeout(function(){var t=location.href.split("#");if(2===t.length)try{e("html, body").animate({scrollTop:e("#dptt"+t[1]).offset().top-window.innerHeight/9},0)}catch(t){}},100),e("#btn_font_menos").click(function(){e(".dpt").css("font-size","-=1")}),e("#btn_font_mais").click(function(){e(".dpt").css("font-size","+=1")}),e(".dpt.bloco_alteracao .dpt").each(function(){var t=o()(e(this).attr("nivel"));e(this).css("z-index",15-t)}),e(".cp-linha-vigencias > li:not(:first-child):not(:last-child) > a").click(function(t){e(".cp-linha-vigencias > li").removeClass("active"),e(this).closest("li").addClass("active"),t.preventDefault()}),e("main").click(function(t){t.target!==this&&t.target!==this.firstElementChild||e(".cp-linha-vigencias > li").removeClass("active")}),window.onReadyNotasVides()})}.call(this,i("2ef0"),i("1157"))},"6d5e":function(t,e,i){},a0fe:function(t,e,i){"use strict";(function(t){i("ac6a"),i("386d");var n=window.$,o=i("bf68");function a(e){"function"==typeof t&&e instanceof t&&(e=e[0]);var i=e.getBoundingClientRect();return i.top>=0&&i.left>=0&&i.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&i.right<=(window.innerWidth||document.documentElement.clientWidth)}e.a={isElementInViewport:a,textoMultiVigente:function(t,e){for(var i=null,s=n(".dptt"),r=0;r/g)>0)){var t=n(this).attr("pk"),e=n(this).attr("pks"),i=n("#d"+e).contents().filter(function(){return this.nodeType===Node.TEXT_NODE}),a=n("#da"+t).contents().filter(function(){return this.nodeType===Node.TEXT_NODE}),s=o.diffWordsWithSpace(n(i).text(),n(a).text());if(s.length>0){n("#d"+e).closest(".desativado").addClass("displaynone");var r=n("#da"+t).clone();n("#da"+t).after(r),n("#da"+t).addClass("displaynone"),n(r).addClass("diff").html(""),s.forEach(function(t){var e=document.createElement("span"),i=t.value;t.removed?(n(e).addClass("desativado"),i+=" "):t.added&&n(e).addClass("added"),e.appendChild(document.createTextNode(i)),n(r).append(e)})}}}),i)try{n("html, body").animate({scrollTop:n(i).parent().offset().top-60},0)}catch(t){}},textoVigente:function(t,e){for(var i=null,o=n(".dptt"),s=0;s=0)n("#dne"+s+" .dne-form").html(t),o(s,a);else{n("#dne"+s+" .dne-form").closest(".dpt").html(t),r();try{n("html, body").animate({scrollTop:n("#dne"+s).offset().top-window.innerHeight/3},300)}catch(t){}}})}function s(t){var e=n(t).attr("model"),i=n(t).closest(".dn").attr("pk"),o=n(t).attr("pk"),a="text/"+i+"/"+e+"/"+o+"/delete";n.get(a,function(t){n("#dne"+i+" .dne-form").closest(".dpt").html(t),r()})}function r(){n(".dne-nota").removeClass("dne-nota"),n(".dne-form").html(""),n(".dne .btn-action").off(),n(".dn .btn-action").off(),n(".dne .btn-action, .dn .btn-action").not(".btn-nota-delete").not(".btn-vide-delete").click(function(){!function(t){var e="",i=n(t).attr("model"),a=n(".dne-nota .dne-form").closest(".dne").attr("pk");if(null!=a&&(n("#dne"+a).removeClass("dne-nota"),n("#dne"+a+" .dne-form").html("")),t.className.indexOf("create")>=0)e="text/"+(a=n(t).attr("pk"))+"/"+i+"/create";else if(t.className.indexOf("edit")>=0){var s=n(t).attr("pk");e="text/"+(a=n(t).closest(".dn").attr("pk"))+"/"+i+"/"+s+"/edit"}n("#dne"+a).addClass("dne-nota"),n.get(e).done(function(t){n("#dne"+a+" .dne-form").html(t),o(a,i)}).fail(function(){r()})}(this)}),n(".dn .btn-nota-delete, .dn .btn-vide-delete").click(function(){s(this)})}e.a={onEventsDneExec:o,onSubmitEditNVForm:a,onDelete:s,onReadyNotasVides:r}}});
\ No newline at end of file
+!function(t){function e(e){for(var n,s,r=e[0],d=e[1],l=e[2],f=0,p=[];f .dpt-form").html(""),o(".dpt-actions, .dpt-actions-bottom").html(""),window.tinymce.remove(),o(".dpt-selected").removeClass("dpt-selected")},t.editDispositivo=function(e){var i=e.target.classList.contains("dpt-link")?e.target:e.target.parentElement.classList.contains("dpt-link")?e.target.parentElement:null;if(!(i&&i.getAttribute("href")&&i.getAttribute("href").length>0)){var n=o(this).closest(".dpt");if(n.hasClass("dpt-selected"))"editor-close"===this.getAttribute("action")&&t.clearEditSelected();else{t.clearEditSelected(),t.loadActionsEdit(n);var a=n.attr("formtype");n.on(a,t[a]),t.loadForm(n,a)}}},t.gc=function(){setTimeout(function(){o(".dpt:not(.dpt-selected) > .dpt-form").html("")},500)},t.get_form_base=function(){var e=o(this);e.addClass("dpt-selected"),e.children().filter(".dpt-form").find("form").submit(t.onSubmitEditFormBase),t.scrollTo(e),e.off("get_form_base"),e.find(".btn-fechar").on("click",function(e){t.clearEditSelected(),e.preventDefault()});var i=e.find(".btns-excluir");e.find(".dpt-actions-bottom").first().append(i),i.find(".btn-outline-danger").on("click",t.bindActionsClick)},t.get_form_alteracao=function(){var e=o(this);e.off("get_form_alteracao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar"}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraAlteracao),e.find(".btn-fechar").on("click",function(i){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk")),i.preventDefault()})},t.get_form_inclusao=function(){var e=o(this);e.off("get_form_inclusao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar",post_selected:t.allowed_inserts_registro_inclusao,params_post_selected:{pk_bloco:e.attr("pk")}}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraInclusao),e.find(".btn-fechar").on("click",function(i){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk")),i.preventDefault()})},t.get_form_revogacao=function(){var e=o(this);e.off("get_form_revogacao"),o(".dpt-actions, .dpt-actions-bottom").html("");var i=e.children().filter(".dpt-form").children().first(),n=i[0].id_dispositivo_search_form.value;window.DispositivoSearch({url_form:n,text_button:"Selecionar"}),t.scrollTo(e),i.submit(t.onSubmitFormRegistraRevogacao),e.find(".btn-fechar").on("click",function(){t.clearEditSelected(),t.triggerBtnDptEdit(e.attr("pk"))})},t.allowed_inserts_registro_inclusao=function(e){var i=o("#id"+e.pk_bloco+" input[name='dispositivo_base_para_inclusao']");if(0!==i.length){var n=i[0].value,a={action:"get_actions_allowed_inserts_registro_inclusao",pk_bloco:e.pk_bloco},s=n+"/refresh";t.waitShow(),o.get(s,a).done(function(e){o(".allowed_inserts").html(e),o(".allowed_inserts").find(".btn-action").on("click",t.bindActionsClick)}).fail(t.waitHide).always(t.waitHide)}},t.loadActionsEdit=function(i){var n=i.attr("pk")+"/refresh?action=get_actions";o.get(n).done(function(n){i.find(".dpt-actions").first().html(n),i.find(".btn-action").on("click",t.bindActionsClick),i.find(".btn-compila").on("click",t.loadFormsCompilacao),i.find(".btn-editor-type").on("click",t.bindActionsEditorType),"construct"===e&&(i.find(".btn-group-inserts").first().addClass("open show"),i.find(".btn-group-inserts ul").first().addClass("show")),i.find(".btn-group-inserts button").mouseenter(function(t){i.find(".btn-group-inserts ul").removeClass("show"),i.find(".btn-group-inserts").removeClass("open show"),o(this.parentElement).addClass("open show"),o(this.parentElement).find("ul").addClass("show")}),i.find(".btn-group-inserts").mouseleave(function(t){i.find(".btn-group-inserts ul").removeClass("show"),i.find(".btn-group-inserts").removeClass("open show")}),t.gc()})},t.loadForm=function(i,n){var a=i.attr("pk"),s=i.children().filter(".dpt-form");if(1===s.length){var r=a+"/refresh?action="+n;o.get(r).done(function(t){"construct"!==e&&(s.html(t),"tinymce"===e&&window.initTextRichEditor()),i.trigger(n)}).always(function(){t.waitHide()})}},t.loadFormsCompilacao=function(e){var i=o(this).closest(".dpt"),n=this.getAttribute("action");i.on(n,t[n]),t.loadForm(i,n)},t.modalMessage=function(t,e,i){return null!==t&&""!==t&&(o("#modal-message #message").html(t),o("#modal-message").modal("show"),o("#modal-message, #modal-message .alert button").off(),o("#modal-message .alert").removeClass("alert-success alert-info alert-warning alert-danger alert-danger"),o("#modal-message .alert").addClass(e),null!=i&&o("#modal-message").on("hidden.bs.modal",i),o("#modal-message .alert button").on("click",function(){o("#modal-message").modal("hide")}),!0)},t.message=function(e){if(void 0!==e.message)if(e.message.modal)t.modalMessage(e.message.value,"alert-"+e.message.type,function(){t.waitShow(),t.refreshScreenFocusPk(e)});else{if(t.refreshScreenFocusPk(e),!("message"in e))return;var i=o(".cp-notify");i.removeClass("hide");var n=i.find(".message");n.text(e.message.value),n.removeClass("bg-primary bg-success bg-info bg-warning bg-danger").addClass("bg-"+e.message.type),setTimeout(function(){i.addClass("hide")},e.message.time?e.message.time:3e3)}else t.refreshScreenFocusPk(e)},t.offClicks=function(){o(".btn-dpt-edit").off()},t.onClicks=function(e){(null==e?o(".btn-dpt-edit"):o(e).find(".btn-dpt-edit")).on("click",t.editDispositivo)},t.onSubmitFormRegistraAlteracao=function(e){if(void 0===this.dispositivo_alterado)return t.modalMessage("Nenhum dispositivo selecionado","alert-info"),void(null!=e&&e.preventDefault());var i=void 0===this.dispositivo_alterado.length?[this.dispositivo_alterado]:n()(this.dispositivo_alterado),a={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_alterado:i.filter(function(t,e,i){return t.checked}).map(function(t){return t.value}),formtype:"get_form_alteracao"},s=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(s,a).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitFormRegistraInclusao=function(e){var i={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_base_para_inclusao:this.dispositivo_base_para_inclusao.value,formtype:"get_form_inclusao"},n=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(n,i).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitFormRegistraRevogacao=function(e){if(void 0===this.dispositivo_revogado)return t.modalMessage("Nenhum dispositivo selecionado","alert-info"),void(null!=e&&e.preventDefault());var i=void 0===this.dispositivo_revogado.length?[this.dispositivo_revogado]:n()(this.dispositivo_revogado),a={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,dispositivo_revogado:i.filter(function(t,e,i){return t.checked}).map(function(t){return t.value}),revogacao_em_bloco:this.revogacao_em_bloco.value,formtype:"get_form_revogacao"},s=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(s,a).done(function(e){t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.onSubmitEditFormBase=function(e){var i=this,n="",a="",s="",r=window.tinymce.get("id_texto"),d=window.tinymce.get("id_texto_atualizador");n=null!=r?r.getContent():this.id_texto.value,null!=d?a=d.getContent():"id_texto_atualizador"in this&&(a=this.id_texto_atualizador.value),"visibilidade"in this&&(s=this.visibilidade.value);var l={csrfmiddlewaretoken:this.csrfmiddlewaretoken.value,texto:n,texto_atualizador:a,visibilidade:s,formtype:"get_form_base"},c=o(this).closest(".dpt").attr("pk")+"/refresh";t.waitShow(),o.post(c,l).done(function(e){if("string"==typeof e){var n=o(i).closest(".dpt");return n=o("#"+n.replaceWith(e).attr("id")),t.onClicks(n),void t.waitHide()}t.clearEditSelected(),null!=e.pk?t.message(e):alert("Erro na resposta!")}).always(function(){t.waitHide()}),null!=e&&e.preventDefault()},t.refreshContent=function(e,i){if(0!==e.length){var n=e.shift(),a=n+"/refresh";o.get(a).done(function(a){var s=o("#id"+n).closest(".dpt");s=o("#"+s.replaceWith(a).attr("id")),t.onClicks(s),t.reloadFunctionsDraggables(),i>0&&t.triggerBtnDptEdit(i),t.refreshContent(e)})}else t.waitHide()},t.refreshScreenFocusPk=function(e){if(t.waitShow(),-1===e.pai[0]){t.waitShow();var i=location.href.split("#")[0];location.href=i+"#"+e.pk,location.reload(!0)}else t.refreshContent(e.pai,e.pk)},t.reloadFunctionsDraggables=function(){o(".dpt-alts").sortable({revert:!0,distance:15,start:function(t,e){},stop:function(t,e){var i=e.item.attr("pk"),n=e.item.closest(".dpt-alts").closest(".dpt").attr("pk"),a=i+"/refresh?action=json_drag_move_dpt_alterado&index="+e.item.index()+"&bloco_pk="+n;o.get(a).done(function(t){})}}),o(".dpt-alts .dpt").draggable({connectToSortable:".dpt-alts",revert:"invalid",zIndex:1,distance:15,drag:function(t,e){o(".dpt-alts").addClass("drag")},stop:function(t,e){o(".dpt-alts").removeClass("drag")}}),o(".dpt-alts").disableSelection()},t.scrollTo=function(t){try{o("html, body").animate({scrollTop:t.offset().top-window.innerHeight/9},100)}catch(t){}},t.triggerBtnDptEdit=function(t){var e=o("#id"+t+" > .dpt-text.btn-dpt-edit");0===e.length&&(e=o("#id"+t+" > .dpt-actions-fixed > .btn-dpt-edit")),e.trigger("click")},t.waitHide=function(){o("#wait_message").addClass("displaynone")},t.waitShow=function(){o("#wait_message").removeClass("displaynone")},t.init=function(){o(".dpt-actions-fixed").first().css("opacity","1"),null!==(e=window.ReadCookie("editortype"))&&""!==e||(e="textarea",window.SetCookie("editortype",e,30)),t.offClicks(),t.onClicks(),t.reloadFunctionsDraggables();var i=location.href.split("#");2===i.length&&""!==i[1]&&t.triggerBtnDptEdit(i[1]),o("main").click(function(e){e.target!==this&&e.target!==this.firstElementChild||t.clearEditSelected()}),t.waitHide()},t.init()},o(document).ready(function(){t(".cpe").length>0&&window.DispositivoEdit()})}).call(this,i("1157"))},1:function(t,e,i){t.exports=i("6ccd")},"4a8b":function(t,e,i){"use strict";var n=i("f499"),o=i.n(n),a=(i("7514"),window.$);function s(t){a(t).append('
')}e.a={SetCookie:function(t,e,i){var n=new Date,o=new Date;null!==i&&0!==i||(i=1),o.setTime(n.getTime()+864e5*i),document.cookie=t+"="+escape(e)+";expires="+o.toGMTString()},ReadCookie:function(t){var e=" "+document.cookie,i=e.indexOf(" "+t+"=");if(-1===i&&(i=e.indexOf(";"+t+"=")),-1===i||""===t)return"";var n=e.indexOf(";",i+1);return-1===n&&(n=e.length),unescape(e.substring(i+t.length+2,n))},insertWaitAjax:s,DispositivoSearch:function(t){a(function(){var e={},i=a("body").children("#container_ds");i.length>0&&a(i).remove(),i=a('
'),a("body").prepend(i),a('[data-sapl-ta="DispositivoSearch"]').each(function(){var n=a(this),r=n.attr("data-type-selection"),d=n.attr("data-field"),l=n.attr("data-function"),c=function(t){if("checkbox"===r){var e=n.find('input[name="ta_select_all"]');e.off(),e.on("change",function(t){a(this).closest("ul").find('input[name="'+d+'"]').prop("checked",this.checked)})}else{var i=n.find("input");i.off(),i.attr("type","hidden"),a('').insertBefore(i).append(a('× ')).on("click",function(){2===a(this).closest("ul").find("li").length?a(this).closest("ul").remove():a(this).closest("li").remove()})}};c();var f=function(t){var i=a('select[name="tipo_ta"]').val(),n=a('select[name="tipo_model"]').val(),c=a('input[name="num_ta"]').val(),f=a('input[name="ano_ta"]').val(),p=a('input[name="dispositivos_internos"]:checked').val(),u=a('input[name="rotulo_dispositivo"]').val(),m=a('input[name="texto_dispositivo"]').val(),v=a('select[name="max_results"]').val();u.length>0||m.length>0?(a('input[name="dispositivos_internos"]').prop("disabled",!1),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.remove("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","1")):(a('input[name="dispositivos_internos"]').filter('[value="False"]').prop("checked",!0),a('input[name="dispositivos_internos"]').prop("disabled",!0),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.add("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","0.3"),p="False"),e={tipo_ta:i,tipo_model:n,num_ta:c,ano_ta:f,texto:m,rotulo:u,dispositivos_internos:p,max_results:v,data_type_selection:r,data_field:d,data_function:l},window.localStorage.setItem("dispositivo_search_form_data",o()(e)),a(".result-busca-dispositivo").html(""),s(".result-busca-dispositivo"),a.get("/ta/search_fragment_form",e).done(function(t){if(a(".result-busca-dispositivo").html(t),"checkbox"===r){var e=a(".result-busca-dispositivo").find('input[name="ta_select_all"]');e.off(),e.on("change",function(t){a(this).closest("ul").find('input[name="'+d+'"]').prop("checked",this.checked)})}})},p=function(t){var e=a('input[name="rotulo_dispositivo"]').val(),i=a('input[name="texto_dispositivo"]').val();e.length>0||i.length>0?(a('input[name="dispositivos_internos"]').prop("disabled",!1),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.remove("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","1")):(a('input[name="dispositivos_internos"]').filter('[value="False"]').prop("checked",!0),a('input[name="dispositivos_internos"]').prop("disabled",!0),a('input[name="dispositivos_internos"]').each(function(t,e){e.parentElement.classList.add("disabled")}),a('input[name="dispositivos_internos"]').closest("#div_id_dispositivos_internos").css("opacity","0.3"))},u=n.children("#buttonDs");u.length>0&&a(u).remove(),u=a('
'),n.prepend(u);var m=a("").text(t.text_button).attr("type","button").attr("class","btn btn-sm btn-success btn-modal-open");u.append(m),m.on("click",function(){a.get(t.url_form,function(o){i.html(o);var s=a("#modal-ds");s.find('select[name="tipo_ta"]').change(function(t){var i;i="/ta/search_fragment_form?action=get_tipos&tipo_ta="+this.value,s.find('label[for="id_tipo_model"]').html("Tipos de "+this.children[this.selectedIndex].innerHTML);var n=s.find('select[name="tipo_model"]');n.empty(),a('Carregando... ').appendTo(n),a.get(i).done(function(t){for(var i in n.empty(),t)for(var o in t[i])n.append(a("").attr("value",o).text(t[i][o]));setTimeout(function(){a('select[name="tipo_model"]').val(e.tipo_model)},200)})}),s.find('input[name="texto_dispositivo"], input[name="rotulo_dispositivo"]').on("keyup",p),s.find(".btn-busca").click(f),s.find("#btn-modal-select").click(function(){var e=n.find("ul");"radio"===r&&e.remove();var i=s.find('[name="'+d+'"]:checked');i.closest("ul").find("input:not(:checked)").filter('[name!="ta_select_all"]').closest("li").remove(),i.closest("ul").each(function(){var t=n.find("#"+this.id);0!==t.length?a(this).find("input").each(function(){t.find("#"+this.id).length>0||t.append(a(this).closest("li"))}):n.append(this)}),c(),s.modal("hide"),"post_selected"in t&&t.post_selected(t.params_post_selected)});try{e=JSON.parse(window.localStorage.getItem("dispositivo_search_form_data")),a('input[name="num_ta"]').val(e.num_ta),a('input[name="ano_ta"]').val(e.ano_ta),a('input[name="rotulo_dispositivo"]').val(e.rotulo),a('input[name="texto_dispositivo"]').val(e.texto),a('select[name="max_results"]').val(e.max_results)}catch(t){}setTimeout(function(){try{a('select[name="tipo_ta"]').val(e.tipo_ta),a('select[name="tipo_ta"]').trigger("change")}catch(t){}},200),s.modal("show")})})})})}}},"6ccd":function(t,e,i){"use strict";i.r(e),function(t,e){var n=i("e814"),o=i.n(n),a=(i("28a5"),i("ac6a"),i("cadf"),i("551c"),i("f751"),i("097d"),i("6d5e"),i("4a8b")),s=i("a0fe"),r=i("aa48");i("0872");t.forEach(t.merge(t.merge(a.a,r.a),s.a),function(t,e){window[e]=t}),e(document).ready(function(){setTimeout(function(){var t=location.href.split("#");if(2===t.length)try{e("html, body").animate({scrollTop:e("#dptt"+t[1]).offset().top-window.innerHeight/9},0)}catch(t){}},100),e("#btn_font_menos").click(function(){e(".dpt").css("font-size","-=1")}),e("#btn_font_mais").click(function(){e(".dpt").css("font-size","+=1")}),e(".dpt.bloco_alteracao .dpt").each(function(){var t=o()(e(this).attr("nivel"));e(this).css("z-index",15-t)}),e(".cp-linha-vigencias > li:not(:first-child):not(:last-child) > a").click(function(t){e(".cp-linha-vigencias > li").removeClass("active"),e(this).closest("li").addClass("active"),t.preventDefault()}),e("main").click(function(t){t.target!==this&&t.target!==this.firstElementChild||e(".cp-linha-vigencias > li").removeClass("active")}),window.onReadyNotasVides()})}.call(this,i("2ef0"),i("1157"))},"6d5e":function(t,e,i){},a0fe:function(t,e,i){"use strict";(function(t){i("ac6a"),i("386d");var n=window.$,o=i("bf68");function a(e){"function"==typeof t&&e instanceof t&&(e=e[0]);var i=e.getBoundingClientRect();return i.top>=0&&i.left>=0&&i.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&i.right<=(window.innerWidth||document.documentElement.clientWidth)}e.a={isElementInViewport:a,textoMultiVigente:function(t,e){for(var i=null,s=n(".dptt"),r=0;r/g)>0)){var t=n(this).attr("pk"),e=n(this).attr("pks"),i=n("#d"+e).contents().filter(function(){return this.nodeType===Node.TEXT_NODE}),a=n("#da"+t).contents().filter(function(){return this.nodeType===Node.TEXT_NODE}),s=o.diffWordsWithSpace(n(i).text(),n(a).text());if(s.length>0){n("#d"+e).closest(".desativado").addClass("displaynone");var r=n("#da"+t).clone();n("#da"+t).after(r),n("#da"+t).addClass("displaynone"),n(r).addClass("diff").html(""),s.forEach(function(t){var e=document.createElement("span"),i=t.value;t.removed?(n(e).addClass("desativado"),i+=" "):t.added&&n(e).addClass("added"),e.appendChild(document.createTextNode(i)),n(r).append(e)})}}}),i)try{n("html, body").animate({scrollTop:n(i).parent().offset().top-60},0)}catch(t){}},textoVigente:function(t,e){for(var i=null,o=n(".dptt"),s=0;s=0)n("#dne"+s+" .dne-form").html(t),o(s,a);else{n("#dne"+s+" .dne-form").closest(".dpt").html(t),r();try{n("html, body").animate({scrollTop:n("#dne"+s).offset().top-window.innerHeight/3},300)}catch(t){}}})}function s(t){var e=n(t).attr("model"),i=n(t).closest(".dn").attr("pk"),o=n(t).attr("pk"),a="text/"+i+"/"+e+"/"+o+"/delete";n.get(a,function(t){n("#dne"+i+" .dne-form").closest(".dpt").html(t),r()})}function r(){n(".dne-nota").removeClass("dne-nota"),n(".dne-form").html(""),n(".dne .btn-action").off(),n(".dn .btn-action").off(),n(".dne .btn-action, .dn .btn-action").not(".btn-nota-delete").not(".btn-vide-delete").click(function(){!function(t){var e="",i=n(t).attr("model"),a=n(".dne-nota .dne-form").closest(".dne").attr("pk");if(null!=a&&(n("#dne"+a).removeClass("dne-nota"),n("#dne"+a+" .dne-form").html("")),t.className.indexOf("create")>=0)e="text/"+(a=n(t).attr("pk"))+"/"+i+"/create";else if(t.className.indexOf("edit")>=0){var s=n(t).attr("pk");e="text/"+(a=n(t).closest(".dn").attr("pk"))+"/"+i+"/"+s+"/edit"}n("#dne"+a).addClass("dne-nota"),n.get(e).done(function(t){n("#dne"+a+" .dne-form").html(t),o(a,i)}).fail(function(){r()})}(this)}),n(".dn .btn-nota-delete, .dn .btn-vide-delete").click(function(){s(this)})}e.a={onEventsDneExec:o,onSubmitEditNVForm:a,onDelete:s,onReadyNotasVides:r}}});
\ No newline at end of file
diff --git a/sapl/static/sapl/frontend/js/compilacao.411d8643.js.gz b/sapl/static/sapl/frontend/js/compilacao.7625546b.js.gz
similarity index 89%
rename from sapl/static/sapl/frontend/js/compilacao.411d8643.js.gz
rename to sapl/static/sapl/frontend/js/compilacao.7625546b.js.gz
index 23780bb42..bd0523d8e 100644
Binary files a/sapl/static/sapl/frontend/js/compilacao.411d8643.js.gz and b/sapl/static/sapl/frontend/js/compilacao.7625546b.js.gz differ
diff --git a/sapl/static/sapl/frontend/js/global.a87c35c2.js b/sapl/static/sapl/frontend/js/global.522fd995.js
similarity index 92%
rename from sapl/static/sapl/frontend/js/global.a87c35c2.js
rename to sapl/static/sapl/frontend/js/global.522fd995.js
index 20efacd6c..4c04faa5f 100644
--- a/sapl/static/sapl/frontend/js/global.a87c35c2.js
+++ b/sapl/static/sapl/frontend/js/global.522fd995.js
@@ -1,4 +1,4 @@
-!function(e){function t(t){for(var o,n,s=t[0],l=t[1],c=t[2],d=0,h=[];dt&&t>0&&(o=t,r=t/e.width()*e.height()),r>a&&a>0&&(r=a,o=a/e.height()*e.width()),K=e.width()/o,W=e.height()/r,e.width(o).height(r)}function m(e){return{x:e.x*K,y:e.y*W,x2:e.x2*K,y2:e.y2*W,w:e.w*K,h:e.h*W}}function g(e){var t=ae.getFixed();t.w>A.minSelect[0]&&t.h>A.minSelect[1]?(re.enableHandles(),re.done()):re.release(),ie.setCursor(A.allowSelect?"crosshair":"default")}function b(e){if(A.disabled)return!1;if(!A.allowSelect)return!1;Y=!0,I=s(j),re.disableHandles(),ie.setCursor("crosshair");var t=l(e);return ae.setPressed(t),re.update(),ie.activateHandlers(v,g,"touch"===e.type.substring(0,5)),ne.watchKeys(),e.stopPropagation(),e.preventDefault(),!1}function v(e){ae.setCurrent(e),re.update()}function w(){var e=t("
").addClass(i("tracker"));return T&&e.css({opacity:0,backgroundColor:"white"}),e}function y(e){C([e[0]/K,e[1]/W,e[2]/K,e[3]/W]),A.onSelect.call(se,m(ae.getFixed())),re.enableHandles()}function C(e){ae.setPressed([e[0],e[1]]),ae.setCurrent([e[2],e[3]]),re.update()}function x(){A.disabled=!0,re.disableHandles(),re.setCursor("default"),ie.setCursor("default")}function k(){A.disabled=!1,S()}function _(e,t,a){var o=t||A.bgColor;A.bgFade&&n()&&A.fadeTime&&!a?e.animate({backgroundColor:o},{queue:!1,duration:A.fadeTime}):e.css("backgroundColor",o)}function S(e){A.allowResize?e?re.enableOnly():re.enableHandles():re.disableHandles(),ie.setCursor(A.allowSelect?"crosshair":"default"),re.setCursor(A.allowMove?"move":"default"),A.hasOwnProperty("trueSize")&&(K=A.trueSize[0]/O,W=A.trueSize[1]/H),A.hasOwnProperty("setSelect")&&(y(A.setSelect),re.done(),delete A.setSelect),oe.refresh(),A.bgColor!=$&&(_(A.shade?oe.getShades():L,A.shade&&A.shadeColor||A.bgColor),$=A.bgColor),ee!=A.bgOpacity&&(ee=A.bgOpacity,A.shade?oe.refresh():re.setBgOpacity(ee)),J=A.maxSize[0]||0,V=A.maxSize[1]||0,U=A.minSize[0]||0,G=A.minSize[1]||0,A.hasOwnProperty("outerImage")&&(j.attr("src",A.outerImage),delete A.outerImage),re.refresh()}var I,A=t.extend({},t.Jcrop.defaults),P=navigator.userAgent.toLowerCase(),T=/msie/.test(P),z=/msie [1-6]\./.test(P);"object"!=Object(o.a)(e)&&(e=t(e)[0]),"object"!=Object(o.a)(a)&&(a={}),c(a);var F={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},R=t(e),M=!0;if("IMG"==e.tagName){if(0!=R[0].width&&0!=R[0].height)R.width(R[0].width),R.height(R[0].height);else{var D=new Image;D.src=R[0].src,R.width(D.width),R.height(D.height)}var j=R.clone().removeAttr("id").css(F).show();j.width(R.width()),j.height(R.height()),R.after(j).hide()}else j=R.css(F).show(),M=!1,null===A.shade&&(A.shade=!0);f(j,A.boxWidth,A.boxHeight);var O=j.width(),H=j.height(),L=t("
").width(O).height(H).addClass(i("holder")).css({position:"relative",backgroundColor:A.bgColor}).insertAfter(R).append(j);A.addClass&&L.addClass(A.addClass);var B=t("
"),E=t("
").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),q=t("
").width("100%").height("100%").css("zIndex",320),N=t("
").css({position:"absolute",zIndex:600}).dblclick(function(){var e=ae.getFixed();A.onDblClick.call(se,e)}).insertBefore(j).append(E,q);M&&(B=t(" ").attr("src",j.attr("src")).css(F).width(O).height(H),E.append(B)),z&&N.css({overflowY:"hidden"});var J,V,U,G,K,W,Y,Q,X=A.boundary,Z=w().width(O+2*X).height(H+2*X).css({position:"absolute",top:r(-X),left:r(-X),zIndex:290}).mousedown(b),$=A.bgColor,ee=A.bgOpacity;I=s(j);var te=function(){function e(){var e,t={},a=["touchstart","touchmove","touchend"],o=document.createElement("div");try{for(e=0;eJ&&(l=t>0?n+J:n-J),V&&Math.abs(r)>V&&(c=r>0?s+V:s-V),G/W&&Math.abs(r)0?s+G/W:s-G/W),U/K&&Math.abs(t)0?n+U/K:n-U/K),n<0&&(l-=n,n-=n),s<0&&(c-=s,s-=s),l<0&&(n-=l,l-=l),c<0&&(s-=c,c-=c),l>O&&(n-=e=l-O,l-=e),c>H&&(s-=e=c-H,c-=e),n>O&&(c-=e=n-H,s-=e),s>H&&(c-=e=s-H,s-=e),o(a(n,s,l,c))}();var e,t,r,i,u=A.aspectRatio,d=A.minSize[0]/K,h=A.maxSize[0]/K,p=A.maxSize[1]/W,f=l-n,m=c-s,g=Math.abs(f),b=Math.abs(m);return 0===h&&(h=10*O),0===p&&(p=10*H),g/bO&&(e=O,i=Math.abs((e-n)/u),t=m<0?s-i:i+s)):(e=l,i=g/u,(t=m<0?s-i:s+i)<0?(t=0,r=Math.abs((t-s)*u),e=f<0?n-r:r+n):t>H&&(t=H,r=Math.abs(t-s)*u,e=f<0?n-r:r+n)),e>n?(e-nh&&(e=n+h),t=t>s?s+(e-n)/u:s-(e-n)/u):eh&&(e=n-h),t=t>s?s+(n-e)/u:s-(n-e)/u),e<0?(n-=e,e=0):e>O&&(n-=e-O,e=O),t<0?(s-=t,t=0):t>H&&(s-=t-H,t=H),o(a(n,s,e,t))}function t(e){return e[0]<0&&(e[0]=0),e[1]<0&&(e[1]=0),e[0]>O&&(e[0]=O),e[1]>H&&(e[1]=H),[Math.round(e[0]),Math.round(e[1])]}function a(e,t,a,o){var r=e,i=a,n=t,s=o;return an+t&&(t-=t+n),0>s+a&&(a-=a+s),H ").css({position:"absolute",backgroundColor:A.shadeColor||A.bgColor}).appendTo(d)}function i(){u||(u=!0,d.insertBefore(j),e(),re.setBgOpacity(1,0,1),B.hide(),n(A.shadeColor||A.bgColor,1),re.isAwake()?l(A.bgOpacity,1):l(1,1))}function n(e,t){_(c(),e,t)}function s(){u&&(d.remove(),B.show(),u=!1,re.isAwake()?re.setBgOpacity(A.bgOpacity,1,1):(re.setBgOpacity(1,1,1),re.disableHandles()),_(L,0,1))}function l(e,t){u&&(A.bgFade&&!t?d.animate({opacity:1-e},{queue:!1,duration:A.fadeTime}):d.css({opacity:1-e}))}function c(){return d.children()}var u=!1,d=t("
").css({position:"absolute",zIndex:240,opacity:0}),h={top:o(),left:o().height(H),right:o().height(H),bottom:o()};return{update:e,updateRaw:a,getShades:c,setBgColor:n,enable:i,disable:s,resize:function(e,t){h.left.css({height:r(t)}),h.right.css({height:r(t)})},refresh:function(){A.shade?i():s(),re.isAwake()&&l(A.bgOpacity)},opacity:l}}(),re=function(){function e(e){var a=t("
").css({position:"absolute",opacity:A.borderOpacity}).addClass(i(e));return E.append(a),a}function a(e,a){var o=t("
").mousedown(p(e)).css({cursor:e+"-resize",position:"absolute",zIndex:a}).addClass("ord-"+e);return te.support&&o.bind("touchstart.jcrop",te.createDragger(e)),q.append(o),o}function o(e){var t=A.handleSize,o=a(e,b++).css({opacity:A.handleOpacity}).addClass(i("handle"));return t&&o.width(t).height(t),o}function n(e){return a(e,b++).addClass("jcrop-dragbar")}function s(){var e=ae.getFixed();ae.setPressed([e.x,e.y]),ae.setCurrent([e.x2,e.y2]),l()}function l(e){if(g)return c(e)}function c(e){var t=ae.getFixed();(function(e,t){N.width(Math.round(e)).height(Math.round(t))})(t.w,t.h),function(e,t){A.shade||B.css({top:r(-t),left:r(-e)}),N.css({top:r(t),left:r(e)})}(t.x,t.y),A.shade&&oe.updateRaw(t),g||(N.show(),A.shade?oe.opacity(ee):u(ee,!0),g=!0),e?A.onSelect.call(se,m(t)):A.onChange.call(se,m(t))}function u(e,t,a){(g||t)&&(A.bgFade&&!a?j.animate({opacity:e},{queue:!1,duration:A.fadeTime}):j.css("opacity",e))}function d(){if(x=!0,A.allowResize)return q.show(),!0}function h(){x=!1,q.hide()}function f(e){e?(Q=!0,h()):(Q=!1,d())}var g,b=370,v={},y={},C={},x=!1;A.dragEdges&&t.isArray(A.createDragbars)&&function(e){var t;for(t=0;t ').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),o=t("
").css({position:"absolute",overflow:"hidden"}).append(a);return A.keySupport&&(a.keydown(function(t){if(t.ctrlKey||t.metaKey)return!0;var a=t.shiftKey?10:1;switch(t.keyCode){case 37:e(t,-a,0);break;case 39:e(t,a,0);break;case 38:e(t,0,-a);break;case 40:e(t,0,a);break;case 27:A.allowSelect&&re.release();break;case 9:return!0}return!1}).blur(function(e){a.hide()}),z||!A.fixedSupport?(a.css({position:"absolute",left:"-20px"}),o.append(a).insertBefore(j)):a.insertBefore(j)),{watchKeys:function(){A.keySupport&&(a.show(),a.focus())}}}();te.support&&Z.bind("touchstart.jcrop",te.newSelection),q.hide(),S(!0);var se={setImage:function(e,t){re.release(),x();var a=new Image;a.onload=function(){var o=a.width,r=a.height,i=A.boxWidth,n=A.boxHeight;j.width(o).height(r),j.attr("src",e),B.attr("src",e),f(j,i,n),O=j.width(),H=j.height(),B.width(O).height(H),Z.width(O+2*X).height(H+2*X),L.width(O).height(H),oe.resize(O,H),k(),"function"==typeof t&&t.call(se)},a.src=e},animateTo:function(e,t){function a(){window.setTimeout(v,d)}var o=e[0]/K,r=e[1]/W,i=e[2]/K,n=e[3]/W;if(!Q){var s=ae.flipCoords(o,r,i,n),l=ae.getFixed(),c=[l.x,l.y,l.x2,l.y2],u=c,d=A.animationDelay,h=s[0]-c[0],p=s[1]-c[1],f=s[2]-c[2],m=s[3]-c[3],g=0,b=A.swingSpeed;o=u[0],r=u[1],i=u[2],n=u[3],re.animMode(!0);var v=function(){g+=(100-g)/b,u[0]=Math.round(o+g/100*h),u[1]=Math.round(r+g/100*p),u[2]=Math.round(i+g/100*f),u[3]=Math.round(n+g/100*m),g>=99.8&&(g=100),g<100?(C(u),a()):(re.done(),re.animMode(!1),"function"==typeof t&&t.call(se))};a()}},setSelect:y,setOptions:function(e){c(e),S()},tellSelect:function(){return m(ae.getFixed())},tellScaled:function(){return ae.getFixed()},setClass:function(e){L.removeClass().addClass(i("holder")).addClass(e)},disable:x,enable:k,cancel:function(){re.done(),ie.activateHandlers(null,null)},release:re.release,destroy:function(){L.remove(),R.show(),R.css("visibility","visible"),t(e).removeData("Jcrop")},focus:ne.watchKeys,getBounds:function(){return[O*K,H*W]},getWidgetSize:function(){return[O,H]},getScaleFactor:function(){return[K,W]},getOptions:function(){return A},ui:{holder:L,selection:N}};return T&&L.bind("selectstart",function(){return!1}),R.data("Jcrop",se),se},t.fn.Jcrop=function(e,a){var o;return this.each(function(){if(t(this).data("Jcrop")){if("api"===e)return t(this).data("Jcrop");t(this).data("Jcrop").setOptions(e)}else"IMG"==this.tagName?t.Jcrop.Loader(this,function(){t(this).css({display:"block",visibility:"hidden"}),o=t.Jcrop(this,e),t.isFunction(a)&&a.call(o)}):(t(this).css({display:"block",visibility:"hidden"}),o=t.Jcrop(this,e),t.isFunction(a)&&a.call(o))}),this},t.Jcrop.Loader=function(e,a,o){var r=t(e),i=r[0];r.bind("load.jcloader",function e(){i.complete?(r.unbind(".jcloader"),t.isFunction(a)&&a.call(i)):window.setTimeout(e,50)}).bind("error.jcloader",function(e){r.unbind(".jcloader"),t.isFunction(o)&&o.call(i)}),i.complete&&t.isFunction(a)&&(r.unbind(".jcloader"),a.call(i))},t.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges:!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}}).call(this,a("1157"))},3551:function(e,t,a){"use strict";(function(e,t){var o=a("e814"),r=a.n(o),i=(a("28a5"),a("7514"),a("a481"),function(e){var t={};return{init:function(){e("input.image-ratio").each(function(){var a,o,i,n,s=e(this),l=s.attr("name").replace(s.data("my-name"),s.data("image-field")),c=e("input.crop-thumb[data-field-name="+l+"]:first");if(c.length&&void 0!==c.data("thumbnail-url")){c.data("hide-field")&&c.hide().parents("div.form-row:first").hide();var u=s.attr("id")+"-image",d=c.data("org-width"),h=c.data("org-height"),p=s.data("min-width"),f=s.data("min-height"),m=h>d,g=f>p;if(!0===s.data("adapt-rotation")&&m!=g){var b=p;p=f,f=b}var v,w=e(" ",{id:u,src:c.data("thumbnail-url")}),y={minSize:[5,5],keySupport:!1,trueSize:[d,h],onSelect:(v=s,function(e){!function(e,t){t.data("size-warning")&&function(e,t){var a=t.siblings(".jcrop-holder"),o=t.data("min-width"),r=t.data("min-height");e.w ");s.parent().find(".help").length?_.insertBefore(s.parent().find(".help")):_.appendTo(s.parent()),e("#"+k).click(function(){!0===x?(s.val(s.val().substr(1)),t[u].setSelect(s.val().split(",")),x=!1):(s.val("-"+s.val()),t[u].release(),x=!0)}),s.parent().find(".jcrop-tracker").mousedown(function(){x&&(e("#"+k).attr("checked","checked"),x=!1)})}}else s.hide().parents("div.form-row:first").hide()})},jcrop:t}}(e));e(function(){t(function(){i.init()})})}).call(this,a("1157"),a("1157"))},"5abf":function(e,t,a){},"764b":function(e,t,a){"use strict";a("cadf"),a("551c"),a("f751"),a("097d"),a("5abf"),a("e4b3"),a("183e"),a("3551")},acd2:function(e,t){tinymce.addI18n("pt_BR",{Redo:"Refazer",Undo:"Desfazer",Cut:"Recortar",Copy:"Copiar",Paste:"Colar","Select all":"Selecionar tudo","New document":"Novo documento",Ok:"Ok",Cancel:"Cancelar","Visual aids":"Ajuda visual",Bold:"Negrito",Italic:"Itálico",Underline:"Sublinhar",Strikethrough:"Riscar",Superscript:"Sobrescrito",Subscript:"Subscrever","Clear formatting":"Limpar formatação","Align left":"Alinhar à esquerda","Align center":"Centralizar","Align right":"Alinhar à direita",Justify:"Justificar","Bullet list":"Lista não ordenada","Numbered list":"Lista ordenada","Decrease indent":"Diminuir recuo","Increase indent":"Aumentar recuo",Close:"Fechar",Formats:"Formatos","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.":"Seu navegador não suporta acesso direto à área de transferência. Por favor use os atalhos Ctrl+X - C - V do teclado",Headers:"Cabeçalhos","Header 1":"Cabeçalho 1","Header 2":"Cabeçalho 2","Header 3":"Cabeçalho 3","Header 4":"Cabeçalho 4","Header 5":"Cabeçalho 5","Header 6":"Cabeçalho 6",Headings:"Cabeçalhos","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"Cabeçalho 4","Heading 5":"Cabeçalho 5","Heading 6":"Cabeçalho 6",Preformatted:"Preformatado",Div:"Div",Pre:"Pre",Code:"Código",Paragraph:"Parágrafo",Blockquote:"Aspas",Inline:"Em linha",Blocks:"Blocos","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"O comando colar está agora em modo texto plano. O conteúdo será colado como texto plano até você desligar esta opção.","Font Family":"Fonte","Font Sizes":"Tamanho",Class:"Classe","Browse for an image":"Procure uma imagem",OR:"OU","Drop an image here":"Arraste uma imagem aqui",Upload:"Carregar",Block:"Bloco",Align:"Alinhamento",Default:"Padrão",Circle:"Círculo",Disc:"Disco",Square:"Quadrado","Lower Alpha":"a. b. c. ...","Lower Greek":"α. β. γ. ...","Lower Roman":"i. ii. iii. ...","Upper Alpha":"A. B. C. ...","Upper Roman":"I. II. III. ...",Anchor:"Âncora",Name:"Nome",Id:"Id","Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.":"Id deve começar com uma letra, seguido apenas por letras, números, traços, pontos, dois pontos ou sublinhados.","You have unsaved changes are you sure you want to navigate away?":"Você tem mudanças não salvas. Você tem certeza que deseja sair?","Restore last draft":"Restaurar último rascunho","Special character":"Caracteres especiais","Source code":"Código fonte","Insert/Edit code sample":"Inserir/Editar código de exemplo",Language:"Idioma","Code sample":"Exemplo de código",Color:"Cor",R:"R",G:"G",B:"B","Left to right":"Da esquerda para a direita","Right to left":"Da direita para a esquerda",Emoticons:"Emoticons","Document properties":"Propriedades do documento",Title:"Título",Keywords:"Palavras-chave",Description:"Descrição",Robots:"Robôs",Author:"Autor",Encoding:"Codificação",Fullscreen:"Tela cheia",Action:"Ação",Shortcut:"Atalho",Help:"Ajuda",Address:"Endereço","Focus to menubar":"Foco no menu","Focus to toolbar":"Foco na barra de ferramentas","Focus to element path":"Foco no caminho do elemento","Focus to contextual toolbar":"Foco na barra de ferramentas contextual","Insert link (if link plugin activated)":"Inserir link (se o plugin de link estiver ativado)","Save (if save plugin activated)":"Salvar (se o plugin de salvar estiver ativado)","Find (if searchreplace plugin activated)":"Procurar (se o plugin de procurar e substituir estiver ativado)","Plugins installed ({0}):":"Plugins instalados ({0}):","Premium plugins:":"Plugins premium:","Learn more...":"Saiba mais...","You are using {0}":"Você está usando {0}",Plugins:"Plugins","Handy Shortcuts":"Atalhos úteis","Horizontal line":"Linha horizontal","Insert/edit image":"Inserir/editar imagem","Image description":"Inserir descrição",Source:"Endereço da imagem",Dimensions:"Dimensões","Constrain proportions":"Manter proporções",General:"Geral",Advanced:"Avançado",Style:"Estilo","Vertical space":"Espaçamento vertical","Horizontal space":"Espaçamento horizontal",Border:"Borda","Insert image":"Inserir imagem",Image:"Imagem","Image list":"Lista de Imagens","Rotate counterclockwise":"Girar em sentido horário","Rotate clockwise":"Girar em sentido anti-horário","Flip vertically":"Virar verticalmente","Flip horizontally":"Virar horizontalmente","Edit image":"Editar imagem","Image options":"Opções de Imagem","Zoom in":"Aumentar zoom","Zoom out":"Diminuir zoom",Crop:"Cortar",Resize:"Redimensionar",Orientation:"Orientação",Brightness:"Brilho",Sharpen:"Aumentar nitidez",Contrast:"Contraste","Color levels":"Níveis de cor",Gamma:"Gama",Invert:"Inverter",Apply:"Aplicar",Back:"Voltar","Insert date/time":"Inserir data/hora","Date/time":"data/hora","Insert link":"Inserir link","Insert/edit link":"Inserir/editar link","Text to display":"Texto para mostrar",Url:"Url",Target:"Alvo",None:"Nenhum","New window":"Nova janela","Remove link":"Remover link",Anchors:"Âncoras",Link:"Link","Paste or type a link":"Cole ou digite um Link","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?":"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?":"A URL que você informou parece ser um link externo. Deseja incluir o prefixo http://?","Link list":"Lista de Links","Insert video":"Inserir vídeo","Insert/edit video":"Inserir/editar vídeo","Insert/edit media":"Inserir/editar imagem","Alternative source":"Fonte alternativa",Poster:"Autor","Paste your embed code below:":"Insira o código de incorporação abaixo:",Embed:"Incorporar",Media:"imagem","Nonbreaking space":"Espaço não separável","Page break":"Quebra de página","Paste as text":"Colar como texto",Preview:"Pré-visualizar",Print:"Imprimir",Save:"Salvar",Find:"Localizar","Replace with":"Substituir por",Replace:"Substituir","Replace all":"Substituir tudo",Prev:"Anterior",Next:"Próximo","Find and replace":"Localizar e substituir","Could not find the specified string.":"Não foi possível encontrar o termo especificado","Match case":"Diferenciar maiúsculas e minúsculas","Whole words":"Palavras inteiras",Spellcheck:"Corretor ortográfico",Ignore:"Ignorar","Ignore all":"Ignorar tudo",Finish:"Finalizar","Add to Dictionary":"Adicionar ao Dicionário","Insert table":"Inserir tabela","Table properties":"Propriedades da tabela","Delete table":"Excluir tabela",Cell:"Célula",Row:"Linha",Column:"Coluna","Cell properties":"Propriedades da célula","Merge cells":"Agrupar células","Split cell":"Dividir célula","Insert row before":"Inserir linha antes","Insert row after":"Inserir linha depois","Delete row":"Excluir linha","Row properties":"Propriedades da linha","Cut row":"Recortar linha","Copy row":"Copiar linha","Paste row before":"Colar linha antes","Paste row after":"Colar linha depois","Insert column before":"Inserir coluna antes","Insert column after":"Inserir coluna depois","Delete column":"Excluir coluna",Cols:"Colunas",Rows:"Linhas",Width:"Largura",Height:"Altura","Cell spacing":"Espaçamento da célula","Cell padding":"Espaçamento interno da célula",Caption:"Legenda",Left:"Esquerdo",Center:"Centro",Right:"Direita","Cell type":"Tipo de célula",Scope:"Escopo",Alignment:"Alinhamento","H Align":"Alinhamento H","V Align":"Alinhamento V",Top:"Superior",Middle:"Meio",Bottom:"Inferior","Header cell":"Célula cabeçalho","Row group":"Agrupar linha","Column group":"Agrupar coluna","Row type":"Tipo de linha",Header:"Cabeçalho",Body:"Corpo",Footer:"Rodapé","Border color":"Cor da borda","Insert template":"Inserir modelo",Templates:"Modelos",Template:"Modelo","Text color":"Cor do texto","Background color":"Cor do fundo","Custom...":"Personalizado...","Custom color":"Cor personalizada","No color":"Nenhuma cor","Table of Contents":"índice de Conteúdo","Show blocks":"Mostrar blocos","Show invisible characters":"Exibir caracteres invisíveis","Words: {0}":"Palavras: {0}","{0} words":"{0} palavras",File:"Arquivo",Edit:"Editar",Insert:"Inserir",View:"Visualizar",Format:"Formatar",Table:"Tabela",Tools:"Ferramentas","Powered by {0}":"Distribuído por {0}","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"Área de texto formatado. Pressione ALT-F9 para exibir o menu, ALT-F10 para exibir a barra de ferramentas ou ALT-0 para exibir a ajuda"})},b2df:function(e,t,a){},c7e5:function(e,t,a){"use strict";a.r(t),function(e,t){a("cadf"),a("551c"),a("f751"),a("097d"),a("15f5"),a("4989"),a("cb1e"),a("8501"),a("f387"),a("3dec"),a("6fc1"),a("e562"),a("acd2"),a("3c51"),a("07d1"),a("84ec"),a("64d8"),a("6bd7"),a("b2df"),a("764b"),a("e3f1");a("d8b4"),window.$=e,window.autorModal(),window.refreshMask(),window.refreshDatePicker(),window.initTextRichEditor("texto-rico")}.call(this,a("1157"),a("1157"))},d8b4:function(e,t,a){"use strict";a.r(t),function(e){var t=a("7618"),o=(a("7f7f"),a("cadf"),a("551c"),a("f751"),a("097d"),o||{});o.jQuery=a("1157"),
+!function(e){function t(t){for(var o,n,s=t[0],l=t[1],c=t[2],d=0,h=[];dt&&t>0&&(o=t,r=t/e.width()*e.height()),r>a&&a>0&&(r=a,o=a/e.height()*e.width()),K=e.width()/o,W=e.height()/r,e.width(o).height(r)}function m(e){return{x:e.x*K,y:e.y*W,x2:e.x2*K,y2:e.y2*W,w:e.w*K,h:e.h*W}}function g(e){var t=ae.getFixed();t.w>A.minSelect[0]&&t.h>A.minSelect[1]?(re.enableHandles(),re.done()):re.release(),ie.setCursor(A.allowSelect?"crosshair":"default")}function b(e){if(A.disabled)return!1;if(!A.allowSelect)return!1;Y=!0,I=s(j),re.disableHandles(),ie.setCursor("crosshair");var t=l(e);return ae.setPressed(t),re.update(),ie.activateHandlers(v,g,"touch"===e.type.substring(0,5)),ne.watchKeys(),e.stopPropagation(),e.preventDefault(),!1}function v(e){ae.setCurrent(e),re.update()}function w(){var e=t("
").addClass(i("tracker"));return T&&e.css({opacity:0,backgroundColor:"white"}),e}function y(e){C([e[0]/K,e[1]/W,e[2]/K,e[3]/W]),A.onSelect.call(se,m(ae.getFixed())),re.enableHandles()}function C(e){ae.setPressed([e[0],e[1]]),ae.setCurrent([e[2],e[3]]),re.update()}function x(){A.disabled=!0,re.disableHandles(),re.setCursor("default"),ie.setCursor("default")}function k(){A.disabled=!1,S()}function _(e,t,a){var o=t||A.bgColor;A.bgFade&&n()&&A.fadeTime&&!a?e.animate({backgroundColor:o},{queue:!1,duration:A.fadeTime}):e.css("backgroundColor",o)}function S(e){A.allowResize?e?re.enableOnly():re.enableHandles():re.disableHandles(),ie.setCursor(A.allowSelect?"crosshair":"default"),re.setCursor(A.allowMove?"move":"default"),A.hasOwnProperty("trueSize")&&(K=A.trueSize[0]/O,W=A.trueSize[1]/H),A.hasOwnProperty("setSelect")&&(y(A.setSelect),re.done(),delete A.setSelect),oe.refresh(),A.bgColor!=$&&(_(A.shade?oe.getShades():L,A.shade&&A.shadeColor||A.bgColor),$=A.bgColor),ee!=A.bgOpacity&&(ee=A.bgOpacity,A.shade?oe.refresh():re.setBgOpacity(ee)),J=A.maxSize[0]||0,V=A.maxSize[1]||0,U=A.minSize[0]||0,G=A.minSize[1]||0,A.hasOwnProperty("outerImage")&&(j.attr("src",A.outerImage),delete A.outerImage),re.refresh()}var I,A=t.extend({},t.Jcrop.defaults),P=navigator.userAgent.toLowerCase(),T=/msie/.test(P),z=/msie [1-6]\./.test(P);"object"!=Object(o.a)(e)&&(e=t(e)[0]),"object"!=Object(o.a)(a)&&(a={}),c(a);var F={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},R=t(e),M=!0;if("IMG"==e.tagName){if(0!=R[0].width&&0!=R[0].height)R.width(R[0].width),R.height(R[0].height);else{var D=new Image;D.src=R[0].src,R.width(D.width),R.height(D.height)}var j=R.clone().removeAttr("id").css(F).show();j.width(R.width()),j.height(R.height()),R.after(j).hide()}else j=R.css(F).show(),M=!1,null===A.shade&&(A.shade=!0);f(j,A.boxWidth,A.boxHeight);var O=j.width(),H=j.height(),L=t("
").width(O).height(H).addClass(i("holder")).css({position:"relative",backgroundColor:A.bgColor}).insertAfter(R).append(j);A.addClass&&L.addClass(A.addClass);var B=t("
"),E=t("
").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),q=t("
").width("100%").height("100%").css("zIndex",320),N=t("
").css({position:"absolute",zIndex:600}).dblclick(function(){var e=ae.getFixed();A.onDblClick.call(se,e)}).insertBefore(j).append(E,q);M&&(B=t(" ").attr("src",j.attr("src")).css(F).width(O).height(H),E.append(B)),z&&N.css({overflowY:"hidden"});var J,V,U,G,K,W,Y,Q,X=A.boundary,Z=w().width(O+2*X).height(H+2*X).css({position:"absolute",top:r(-X),left:r(-X),zIndex:290}).mousedown(b),$=A.bgColor,ee=A.bgOpacity;I=s(j);var te=function(){function e(){var e,t={},a=["touchstart","touchmove","touchend"],o=document.createElement("div");try{for(e=0;eJ&&(l=t>0?n+J:n-J),V&&Math.abs(r)>V&&(c=r>0?s+V:s-V),G/W&&Math.abs(r)0?s+G/W:s-G/W),U/K&&Math.abs(t)0?n+U/K:n-U/K),n<0&&(l-=n,n-=n),s<0&&(c-=s,s-=s),l<0&&(n-=l,l-=l),c<0&&(s-=c,c-=c),l>O&&(n-=e=l-O,l-=e),c>H&&(s-=e=c-H,c-=e),n>O&&(c-=e=n-H,s-=e),s>H&&(c-=e=s-H,s-=e),o(a(n,s,l,c))}();var e,t,r,i,u=A.aspectRatio,d=A.minSize[0]/K,h=A.maxSize[0]/K,p=A.maxSize[1]/W,f=l-n,m=c-s,g=Math.abs(f),b=Math.abs(m);return 0===h&&(h=10*O),0===p&&(p=10*H),g/bO&&(e=O,i=Math.abs((e-n)/u),t=m<0?s-i:i+s)):(e=l,i=g/u,(t=m<0?s-i:s+i)<0?(t=0,r=Math.abs((t-s)*u),e=f<0?n-r:r+n):t>H&&(t=H,r=Math.abs(t-s)*u,e=f<0?n-r:r+n)),e>n?(e-nh&&(e=n+h),t=t>s?s+(e-n)/u:s-(e-n)/u):eh&&(e=n-h),t=t>s?s+(n-e)/u:s-(n-e)/u),e<0?(n-=e,e=0):e>O&&(n-=e-O,e=O),t<0?(s-=t,t=0):t>H&&(s-=t-H,t=H),o(a(n,s,e,t))}function t(e){return e[0]<0&&(e[0]=0),e[1]<0&&(e[1]=0),e[0]>O&&(e[0]=O),e[1]>H&&(e[1]=H),[Math.round(e[0]),Math.round(e[1])]}function a(e,t,a,o){var r=e,i=a,n=t,s=o;return an+t&&(t-=t+n),0>s+a&&(a-=a+s),H ").css({position:"absolute",backgroundColor:A.shadeColor||A.bgColor}).appendTo(d)}function i(){u||(u=!0,d.insertBefore(j),e(),re.setBgOpacity(1,0,1),B.hide(),n(A.shadeColor||A.bgColor,1),re.isAwake()?l(A.bgOpacity,1):l(1,1))}function n(e,t){_(c(),e,t)}function s(){u&&(d.remove(),B.show(),u=!1,re.isAwake()?re.setBgOpacity(A.bgOpacity,1,1):(re.setBgOpacity(1,1,1),re.disableHandles()),_(L,0,1))}function l(e,t){u&&(A.bgFade&&!t?d.animate({opacity:1-e},{queue:!1,duration:A.fadeTime}):d.css({opacity:1-e}))}function c(){return d.children()}var u=!1,d=t("
").css({position:"absolute",zIndex:240,opacity:0}),h={top:o(),left:o().height(H),right:o().height(H),bottom:o()};return{update:e,updateRaw:a,getShades:c,setBgColor:n,enable:i,disable:s,resize:function(e,t){h.left.css({height:r(t)}),h.right.css({height:r(t)})},refresh:function(){A.shade?i():s(),re.isAwake()&&l(A.bgOpacity)},opacity:l}}(),re=function(){function e(e){var a=t("
").css({position:"absolute",opacity:A.borderOpacity}).addClass(i(e));return E.append(a),a}function a(e,a){var o=t("
").mousedown(p(e)).css({cursor:e+"-resize",position:"absolute",zIndex:a}).addClass("ord-"+e);return te.support&&o.bind("touchstart.jcrop",te.createDragger(e)),q.append(o),o}function o(e){var t=A.handleSize,o=a(e,b++).css({opacity:A.handleOpacity}).addClass(i("handle"));return t&&o.width(t).height(t),o}function n(e){return a(e,b++).addClass("jcrop-dragbar")}function s(){var e=ae.getFixed();ae.setPressed([e.x,e.y]),ae.setCurrent([e.x2,e.y2]),l()}function l(e){if(g)return c(e)}function c(e){var t=ae.getFixed();(function(e,t){N.width(Math.round(e)).height(Math.round(t))})(t.w,t.h),function(e,t){A.shade||B.css({top:r(-t),left:r(-e)}),N.css({top:r(t),left:r(e)})}(t.x,t.y),A.shade&&oe.updateRaw(t),g||(N.show(),A.shade?oe.opacity(ee):u(ee,!0),g=!0),e?A.onSelect.call(se,m(t)):A.onChange.call(se,m(t))}function u(e,t,a){(g||t)&&(A.bgFade&&!a?j.animate({opacity:e},{queue:!1,duration:A.fadeTime}):j.css("opacity",e))}function d(){if(x=!0,A.allowResize)return q.show(),!0}function h(){x=!1,q.hide()}function f(e){e?(Q=!0,h()):(Q=!1,d())}var g,b=370,v={},y={},C={},x=!1;A.dragEdges&&t.isArray(A.createDragbars)&&function(e){var t;for(t=0;t ').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),o=t("
").css({position:"absolute",overflow:"hidden"}).append(a);return A.keySupport&&(a.keydown(function(t){if(t.ctrlKey||t.metaKey)return!0;var a=t.shiftKey?10:1;switch(t.keyCode){case 37:e(t,-a,0);break;case 39:e(t,a,0);break;case 38:e(t,0,-a);break;case 40:e(t,0,a);break;case 27:A.allowSelect&&re.release();break;case 9:return!0}return!1}).blur(function(e){a.hide()}),z||!A.fixedSupport?(a.css({position:"absolute",left:"-20px"}),o.append(a).insertBefore(j)):a.insertBefore(j)),{watchKeys:function(){A.keySupport&&(a.show(),a.focus())}}}();te.support&&Z.bind("touchstart.jcrop",te.newSelection),q.hide(),S(!0);var se={setImage:function(e,t){re.release(),x();var a=new Image;a.onload=function(){var o=a.width,r=a.height,i=A.boxWidth,n=A.boxHeight;j.width(o).height(r),j.attr("src",e),B.attr("src",e),f(j,i,n),O=j.width(),H=j.height(),B.width(O).height(H),Z.width(O+2*X).height(H+2*X),L.width(O).height(H),oe.resize(O,H),k(),"function"==typeof t&&t.call(se)},a.src=e},animateTo:function(e,t){function a(){window.setTimeout(v,d)}var o=e[0]/K,r=e[1]/W,i=e[2]/K,n=e[3]/W;if(!Q){var s=ae.flipCoords(o,r,i,n),l=ae.getFixed(),c=[l.x,l.y,l.x2,l.y2],u=c,d=A.animationDelay,h=s[0]-c[0],p=s[1]-c[1],f=s[2]-c[2],m=s[3]-c[3],g=0,b=A.swingSpeed;o=u[0],r=u[1],i=u[2],n=u[3],re.animMode(!0);var v=function(){g+=(100-g)/b,u[0]=Math.round(o+g/100*h),u[1]=Math.round(r+g/100*p),u[2]=Math.round(i+g/100*f),u[3]=Math.round(n+g/100*m),g>=99.8&&(g=100),g<100?(C(u),a()):(re.done(),re.animMode(!1),"function"==typeof t&&t.call(se))};a()}},setSelect:y,setOptions:function(e){c(e),S()},tellSelect:function(){return m(ae.getFixed())},tellScaled:function(){return ae.getFixed()},setClass:function(e){L.removeClass().addClass(i("holder")).addClass(e)},disable:x,enable:k,cancel:function(){re.done(),ie.activateHandlers(null,null)},release:re.release,destroy:function(){L.remove(),R.show(),R.css("visibility","visible"),t(e).removeData("Jcrop")},focus:ne.watchKeys,getBounds:function(){return[O*K,H*W]},getWidgetSize:function(){return[O,H]},getScaleFactor:function(){return[K,W]},getOptions:function(){return A},ui:{holder:L,selection:N}};return T&&L.bind("selectstart",function(){return!1}),R.data("Jcrop",se),se},t.fn.Jcrop=function(e,a){var o;return this.each(function(){if(t(this).data("Jcrop")){if("api"===e)return t(this).data("Jcrop");t(this).data("Jcrop").setOptions(e)}else"IMG"==this.tagName?t.Jcrop.Loader(this,function(){t(this).css({display:"block",visibility:"hidden"}),o=t.Jcrop(this,e),t.isFunction(a)&&a.call(o)}):(t(this).css({display:"block",visibility:"hidden"}),o=t.Jcrop(this,e),t.isFunction(a)&&a.call(o))}),this},t.Jcrop.Loader=function(e,a,o){var r=t(e),i=r[0];r.bind("load.jcloader",function e(){i.complete?(r.unbind(".jcloader"),t.isFunction(a)&&a.call(i)):window.setTimeout(e,50)}).bind("error.jcloader",function(e){r.unbind(".jcloader"),t.isFunction(o)&&o.call(i)}),i.complete&&t.isFunction(a)&&(r.unbind(".jcloader"),a.call(i))},t.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges:!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}}).call(this,a("1157"))},3551:function(e,t,a){"use strict";(function(e,t){var o=a("e814"),r=a.n(o),i=(a("28a5"),a("7514"),a("a481"),a("cadf"),a("551c"),a("f751"),a("097d"),function(e){var t={};return{init:function(){e("input.image-ratio").each(function(){var a,o,i,n,s=e(this),l=s.attr("name").replace(s.data("my-name"),s.data("image-field")),c=e("input.crop-thumb[data-field-name="+l+"]:first");if(c.length&&void 0!==c.data("thumbnail-url")){c.data("hide-field")&&c.hide().parents("div.form-row:first").hide();var u=s.attr("id")+"-image",d=c.data("org-width"),h=c.data("org-height"),p=s.data("min-width"),f=s.data("min-height"),m=h>d,g=f>p;if(!0===s.data("adapt-rotation")&&m!=g){var b=p;p=f,f=b}var v,w=e(" ",{id:u,src:c.data("thumbnail-url")}),y={minSize:[5,5],keySupport:!1,trueSize:[d,h],onSelect:(v=s,function(e){!function(e,t){t.data("size-warning")&&function(e,t){var a=t.siblings(".jcrop-holder"),o=t.data("min-width"),r=t.data("min-height");e.w ");s.parent().find(".help").length?_.insertBefore(s.parent().find(".help")):_.appendTo(s.parent()),e("#"+k).click(function(){!0===x?(s.val(s.val().substr(1)),t[u].setSelect(s.val().split(",")),x=!1):(s.val("-"+s.val()),t[u].release(),x=!0)}),s.parent().find(".jcrop-tracker").mousedown(function(){x&&(e("#"+k).attr("checked","checked"),x=!1)})}}else s.hide().parents("div.form-row:first").hide()})},jcrop:t}}(e));e(function(){t(function(){i.init()})})}).call(this,a("1157"),a("1157"))},"5abf":function(e,t,a){},"764b":function(e,t,a){"use strict";a("5abf"),a("e4b3"),a("183e"),a("3551")},acd2:function(e,t){tinymce.addI18n("pt_BR",{Redo:"Refazer",Undo:"Desfazer",Cut:"Recortar",Copy:"Copiar",Paste:"Colar","Select all":"Selecionar tudo","New document":"Novo documento",Ok:"Ok",Cancel:"Cancelar","Visual aids":"Ajuda visual",Bold:"Negrito",Italic:"Itálico",Underline:"Sublinhar",Strikethrough:"Riscar",Superscript:"Sobrescrito",Subscript:"Subscrever","Clear formatting":"Limpar formatação","Align left":"Alinhar à esquerda","Align center":"Centralizar","Align right":"Alinhar à direita",Justify:"Justificar","Bullet list":"Lista não ordenada","Numbered list":"Lista ordenada","Decrease indent":"Diminuir recuo","Increase indent":"Aumentar recuo",Close:"Fechar",Formats:"Formatos","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.":"Seu navegador não suporta acesso direto à área de transferência. Por favor use os atalhos Ctrl+X - C - V do teclado",Headers:"Cabeçalhos","Header 1":"Cabeçalho 1","Header 2":"Cabeçalho 2","Header 3":"Cabeçalho 3","Header 4":"Cabeçalho 4","Header 5":"Cabeçalho 5","Header 6":"Cabeçalho 6",Headings:"Cabeçalhos","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"Cabeçalho 4","Heading 5":"Cabeçalho 5","Heading 6":"Cabeçalho 6",Preformatted:"Preformatado",Div:"Div",Pre:"Pre",Code:"Código",Paragraph:"Parágrafo",Blockquote:"Aspas",Inline:"Em linha",Blocks:"Blocos","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"O comando colar está agora em modo texto plano. O conteúdo será colado como texto plano até você desligar esta opção.","Font Family":"Fonte","Font Sizes":"Tamanho",Class:"Classe","Browse for an image":"Procure uma imagem",OR:"OU","Drop an image here":"Arraste uma imagem aqui",Upload:"Carregar",Block:"Bloco",Align:"Alinhamento",Default:"Padrão",Circle:"Círculo",Disc:"Disco",Square:"Quadrado","Lower Alpha":"a. b. c. ...","Lower Greek":"α. β. γ. ...","Lower Roman":"i. ii. iii. ...","Upper Alpha":"A. B. C. ...","Upper Roman":"I. II. III. ...",Anchor:"Âncora",Name:"Nome",Id:"Id","Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.":"Id deve começar com uma letra, seguido apenas por letras, números, traços, pontos, dois pontos ou sublinhados.","You have unsaved changes are you sure you want to navigate away?":"Você tem mudanças não salvas. Você tem certeza que deseja sair?","Restore last draft":"Restaurar último rascunho","Special character":"Caracteres especiais","Source code":"Código fonte","Insert/Edit code sample":"Inserir/Editar código de exemplo",Language:"Idioma","Code sample":"Exemplo de código",Color:"Cor",R:"R",G:"G",B:"B","Left to right":"Da esquerda para a direita","Right to left":"Da direita para a esquerda",Emoticons:"Emoticons","Document properties":"Propriedades do documento",Title:"Título",Keywords:"Palavras-chave",Description:"Descrição",Robots:"Robôs",Author:"Autor",Encoding:"Codificação",Fullscreen:"Tela cheia",Action:"Ação",Shortcut:"Atalho",Help:"Ajuda",Address:"Endereço","Focus to menubar":"Foco no menu","Focus to toolbar":"Foco na barra de ferramentas","Focus to element path":"Foco no caminho do elemento","Focus to contextual toolbar":"Foco na barra de ferramentas contextual","Insert link (if link plugin activated)":"Inserir link (se o plugin de link estiver ativado)","Save (if save plugin activated)":"Salvar (se o plugin de salvar estiver ativado)","Find (if searchreplace plugin activated)":"Procurar (se o plugin de procurar e substituir estiver ativado)","Plugins installed ({0}):":"Plugins instalados ({0}):","Premium plugins:":"Plugins premium:","Learn more...":"Saiba mais...","You are using {0}":"Você está usando {0}",Plugins:"Plugins","Handy Shortcuts":"Atalhos úteis","Horizontal line":"Linha horizontal","Insert/edit image":"Inserir/editar imagem","Image description":"Inserir descrição",Source:"Endereço da imagem",Dimensions:"Dimensões","Constrain proportions":"Manter proporções",General:"Geral",Advanced:"Avançado",Style:"Estilo","Vertical space":"Espaçamento vertical","Horizontal space":"Espaçamento horizontal",Border:"Borda","Insert image":"Inserir imagem",Image:"Imagem","Image list":"Lista de Imagens","Rotate counterclockwise":"Girar em sentido horário","Rotate clockwise":"Girar em sentido anti-horário","Flip vertically":"Virar verticalmente","Flip horizontally":"Virar horizontalmente","Edit image":"Editar imagem","Image options":"Opções de Imagem","Zoom in":"Aumentar zoom","Zoom out":"Diminuir zoom",Crop:"Cortar",Resize:"Redimensionar",Orientation:"Orientação",Brightness:"Brilho",Sharpen:"Aumentar nitidez",Contrast:"Contraste","Color levels":"Níveis de cor",Gamma:"Gama",Invert:"Inverter",Apply:"Aplicar",Back:"Voltar","Insert date/time":"Inserir data/hora","Date/time":"data/hora","Insert link":"Inserir link","Insert/edit link":"Inserir/editar link","Text to display":"Texto para mostrar",Url:"Url",Target:"Alvo",None:"Nenhum","New window":"Nova janela","Remove link":"Remover link",Anchors:"Âncoras",Link:"Link","Paste or type a link":"Cole ou digite um Link","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?":"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?":"A URL que você informou parece ser um link externo. Deseja incluir o prefixo http://?","Link list":"Lista de Links","Insert video":"Inserir vídeo","Insert/edit video":"Inserir/editar vídeo","Insert/edit media":"Inserir/editar imagem","Alternative source":"Fonte alternativa",Poster:"Autor","Paste your embed code below:":"Insira o código de incorporação abaixo:",Embed:"Incorporar",Media:"imagem","Nonbreaking space":"Espaço não separável","Page break":"Quebra de página","Paste as text":"Colar como texto",Preview:"Pré-visualizar",Print:"Imprimir",Save:"Salvar",Find:"Localizar","Replace with":"Substituir por",Replace:"Substituir","Replace all":"Substituir tudo",Prev:"Anterior",Next:"Próximo","Find and replace":"Localizar e substituir","Could not find the specified string.":"Não foi possível encontrar o termo especificado","Match case":"Diferenciar maiúsculas e minúsculas","Whole words":"Palavras inteiras",Spellcheck:"Corretor ortográfico",Ignore:"Ignorar","Ignore all":"Ignorar tudo",Finish:"Finalizar","Add to Dictionary":"Adicionar ao Dicionário","Insert table":"Inserir tabela","Table properties":"Propriedades da tabela","Delete table":"Excluir tabela",Cell:"Célula",Row:"Linha",Column:"Coluna","Cell properties":"Propriedades da célula","Merge cells":"Agrupar células","Split cell":"Dividir célula","Insert row before":"Inserir linha antes","Insert row after":"Inserir linha depois","Delete row":"Excluir linha","Row properties":"Propriedades da linha","Cut row":"Recortar linha","Copy row":"Copiar linha","Paste row before":"Colar linha antes","Paste row after":"Colar linha depois","Insert column before":"Inserir coluna antes","Insert column after":"Inserir coluna depois","Delete column":"Excluir coluna",Cols:"Colunas",Rows:"Linhas",Width:"Largura",Height:"Altura","Cell spacing":"Espaçamento da célula","Cell padding":"Espaçamento interno da célula",Caption:"Legenda",Left:"Esquerdo",Center:"Centro",Right:"Direita","Cell type":"Tipo de célula",Scope:"Escopo",Alignment:"Alinhamento","H Align":"Alinhamento H","V Align":"Alinhamento V",Top:"Superior",Middle:"Meio",Bottom:"Inferior","Header cell":"Célula cabeçalho","Row group":"Agrupar linha","Column group":"Agrupar coluna","Row type":"Tipo de linha",Header:"Cabeçalho",Body:"Corpo",Footer:"Rodapé","Border color":"Cor da borda","Insert template":"Inserir modelo",Templates:"Modelos",Template:"Modelo","Text color":"Cor do texto","Background color":"Cor do fundo","Custom...":"Personalizado...","Custom color":"Cor personalizada","No color":"Nenhuma cor","Table of Contents":"índice de Conteúdo","Show blocks":"Mostrar blocos","Show invisible characters":"Exibir caracteres invisíveis","Words: {0}":"Palavras: {0}","{0} words":"{0} palavras",File:"Arquivo",Edit:"Editar",Insert:"Inserir",View:"Visualizar",Format:"Formatar",Table:"Tabela",Tools:"Ferramentas","Powered by {0}":"Distribuído por {0}","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"Área de texto formatado. Pressione ALT-F9 para exibir o menu, ALT-F10 para exibir a barra de ferramentas ou ALT-0 para exibir a ajuda"})},b2df:function(e,t,a){},c7e5:function(e,t,a){"use strict";a.r(t),function(e,t){a("cadf"),a("551c"),a("f751"),a("097d"),a("15f5"),a("4989"),a("cb1e"),a("8501"),a("f387"),a("3dec"),a("6fc1"),a("e562"),a("acd2"),a("3c51"),a("07d1"),a("84ec"),a("64d8"),a("6bd7"),a("b2df"),a("764b"),a("e3f1");a("d8b4"),window.$=e,window.autorModal(),window.refreshMask(),window.refreshDatePicker(),window.initTextRichEditor("texto-rico")}.call(this,a("1157"),a("1157"))},d8b4:function(e,t,a){"use strict";a.r(t),function(e){var t=a("7618"),o=(a("7f7f"),o||{});o.jQuery=a("1157"),
/*!
* jQuery-runner - v2.3.3 - 2014-08-06
* https://github.com/jylauril/jquery-runner/
diff --git a/sapl/static/sapl/frontend/js/global.522fd995.js.gz b/sapl/static/sapl/frontend/js/global.522fd995.js.gz
new file mode 100644
index 000000000..d43310cfb
Binary files /dev/null and b/sapl/static/sapl/frontend/js/global.522fd995.js.gz differ
diff --git a/sapl/static/sapl/frontend/js/global.a87c35c2.js.gz b/sapl/static/sapl/frontend/js/global.a87c35c2.js.gz
deleted file mode 100644
index ef2be8519..000000000
Binary files a/sapl/static/sapl/frontend/js/global.a87c35c2.js.gz and /dev/null differ
diff --git a/sapl/templates/base.html b/sapl/templates/base.html
index c816d09f6..71a4fc4ee 100644
--- a/sapl/templates/base.html
+++ b/sapl/templates/base.html
@@ -179,7 +179,7 @@
Desenvolvido pelo Interlegis em software livre e aberto.
- Release: 3.1.156
+ Release: 3.1.157-RC5
diff --git a/sapl/templates/base/RelatorioDataFimPrazoTramitacao_filter.html b/sapl/templates/base/RelatorioDataFimPrazoTramitacao_filter.html
index d5b778484..0960a958b 100644
--- a/sapl/templates/base/RelatorioDataFimPrazoTramitacao_filter.html
+++ b/sapl/templates/base/RelatorioDataFimPrazoTramitacao_filter.html
@@ -4,10 +4,9 @@
{% block base_content %}
{% if not show_results %}
+
{% crispy filter.form %}
- {% endif %}
-
- {% if show_results %}
+ {% else %}
@@ -16,24 +15,34 @@
Período: {{ data_tramitacao }}
Tipo de matéria: {{ tipo }}
Status atual: {{ tramitacao__status }}
- Local atual: {{ tramitacao__unidade_tramitacao_local }}
-
+ {% else %}
+
Nenhuma matéria encontrada com esses parâmetros.
+ {% endif %}
{% endif %}
{% endblock base_content %}
\ No newline at end of file
diff --git a/sapl/templates/base/RelatorioHistoricoTramitacaoAdm_filter.html b/sapl/templates/base/RelatorioHistoricoTramitacaoAdm_filter.html
new file mode 100644
index 000000000..ba0488aac
--- /dev/null
+++ b/sapl/templates/base/RelatorioHistoricoTramitacaoAdm_filter.html
@@ -0,0 +1,48 @@
+{% extends "crud/list.html" %}
+{% load i18n %}
+{% load crispy_forms_tags %}
+
+{% block base_content %}
+ {% if not show_results %}
+
+ {% crispy filter.form %}
+ {% else %}
+
+
+
PARÂMETROS DE PESQUISA:
+ Período: {{ data_tramitacao }}
+ Tipo de documento: {{ tipo }}
+ Status atual: {{ tramitacaoadministrativo__status }}
+ Local de origem: {{ tramitacaoadministrativo__unidade_tramitacao_local }}
+ Local de destino: {{ tramitacaoadministrativo__unidade_tramitacao_destino }}
+ {% if object_list %}
+ {% if object_list|length == 1 %}
+
Foi encontrado 1 documento com esses parâmetros.
+ {% else %}
+
Foram encontrados {{object_list|length}} documentos com esses parâmetros.
+ {% endif %}
+
+ {% else %}
+
Nenhum documento encontrado com esses parâmetros.
+ {% endif %}
+ {% endif %}
+{% endblock base_content %}
diff --git a/sapl/templates/base/RelatorioHistoricoTramitacao_filter.html b/sapl/templates/base/RelatorioHistoricoTramitacao_filter.html
index 921f412b2..eb427d8fe 100644
--- a/sapl/templates/base/RelatorioHistoricoTramitacao_filter.html
+++ b/sapl/templates/base/RelatorioHistoricoTramitacao_filter.html
@@ -4,10 +4,9 @@
{% block base_content %}
{% if not show_results %}
+
{% crispy filter.form %}
- {% endif %}
-
- {% if show_results %}
+ {% else %}
@@ -16,24 +15,34 @@
Período: {{ data_tramitacao }}
Tipo de matéria: {{ tipo }}
Status atual: {{ tramitacao__status }}
- Local atual: {{ tramitacao__unidade_tramitacao_local }}
-
+ {% else %}
+
Nenhuma matéria encontrada com esses parâmetros.
+ {% endif %}
{% endif %}
{% endblock base_content %}
diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml
index 4768577b8..b3b0daca0 100644
--- a/sapl/templates/base/layouts.yaml
+++ b/sapl/templates/base/layouts.yaml
@@ -22,6 +22,9 @@ AppConfig:
- protocolo_manual receber_recibo_proposicao
- proposicao_incorporacao_obrigatoria escolher_numero_materia_proposicao
+ {% trans 'Tramitações' %}:
+ - tramitacao_materia tramitacao_documento
+
{% trans 'Textos Articulados' %}:
- texto_articulado_proposicao texto_articulado_materia texto_articulado_norma
diff --git a/sapl/templates/base/relatorios_list.html b/sapl/templates/base/relatorios_list.html
index 012064096..5ac6d4d77 100644
--- a/sapl/templates/base/relatorios_list.html
+++ b/sapl/templates/base/relatorios_list.html
@@ -33,11 +33,11 @@
Atas de Sessão Plenária.
- Histórico de tramitações
+ Histórico de tramitações de Matérias
Histórico de tramitações por período e local informados.
- Tramitações por fim de prazo
+ Tramitações de Matérias por fim de prazo
Tramitações com fim de prazo no intervalo informado.
@@ -56,6 +56,10 @@
Normas por vigência
Normas vigentes ou não vigentes.
+
+ Histórico de tramitações de Documentos
+ Histórico de tramitações de Documentos por período e local informados.
+
{% if estatisticas_acesso_normas %}
Estatísticas de acesso de Normas
diff --git a/sapl/templates/comissoes/pauta.html b/sapl/templates/comissoes/pauta.html
new file mode 100644
index 000000000..757c4cf86
--- /dev/null
+++ b/sapl/templates/comissoes/pauta.html
@@ -0,0 +1,68 @@
+{% extends "crud/detail.html" %}
+{% load i18n crispy_forms_tags %}
+{% block actions %}{% endblock %}
+
+{% block title %}
+
+{% endblock %}
+
+{% block detail_content %}
+ {% if materias %}
+ {% if num_materias == 1 %}
+ Há {{num_materias}} matéria disponível.
+ {% else %}
+ Há {{num_materias}} matérias disponíveis.
+ {% endif %}
+
+ {% else %}
+ Não há matéria disponível.
+ {% endif %}
+{% endblock %}
+{% block extra_js %}
+
+{% endblock %}
diff --git a/sapl/templates/comissoes/reuniao_detail.html b/sapl/templates/comissoes/reuniao_detail.html
new file mode 100644
index 000000000..c8c32cd98
--- /dev/null
+++ b/sapl/templates/comissoes/reuniao_detail.html
@@ -0,0 +1,65 @@
+{% extends "crud/detail.html" %}
+{% load i18n %}
+
+{% block detail_content %}
+ {{ block.super }}
+ Pauta
+ {% if mats %}
+ Total de Registros: {{num_mats}}
+
+
+
+ Matéria
+
+
+
+ {% for mat in mats %}
+
+
+ {{mat}}
+
+
+ {% endfor %}
+
+
+ {% if perms.comissoes.add_reuniao %}
+
+ {% endif %}
+ {% else %}
+ {% if perms.comissoes.add_reuniao %}
+ {% trans 'Adicionar Matéria' %}
+ {% endif %}
+ {% endif %}
+
+ Documentos Acessórios
+ {% if docs %}
+ Total de registros: {{num_docs}}
+
+
+
+ Documento Acessório
+
+
+
+ {% for doc in docs %}
+
+
+ {{ doc.nome }}
+
+
+ {% endfor %}
+
+
+ {% if perms.comissoes.add_reuniao %}
+ {% trans 'Adicionar Documento' %}
+ {% endif %}
+ {% else %}
+ {% if perms.comissoes.add_reuniao %}
+ {% trans 'Adicionar Documento' %}
+ {% endif %}
+ {% endif %}
+
+{% endblock detail_content %}
diff --git a/sapl/templates/compilacao/subnav.html b/sapl/templates/compilacao/subnav.html
index 5fe6758c0..8710eaa63 100644
--- a/sapl/templates/compilacao/subnav.html
+++ b/sapl/templates/compilacao/subnav.html
@@ -19,7 +19,7 @@
{% trans 'Notificações' %}
{% endif %}
{% block extra_sections_nav %}
- {% trans 'Texto' %}
+ {% trans 'Texto Compilado' %}
{% endblock %}
{% endif %}
-
+
diff --git a/sapl/templates/materia/materia_detail.html b/sapl/templates/materia/materia_detail.html
new file mode 100644
index 000000000..ee1e97c9e
--- /dev/null
+++ b/sapl/templates/materia/materia_detail.html
@@ -0,0 +1,36 @@
+{% extends "crud/detail.html" %}
+{% load i18n %}
+
+{% block detail_content %}
+ {{ block.super }}
+ {% if user.is_superuser %}
+
+ {% if materia.user %}
+
+ {% endif %}
+ {% if materia.ip %}
+
+ {% endif %}
+
+ {% endif %}
+{% endblock detail_content %}
diff --git a/sapl/templates/materia/tramitacao_detail.html b/sapl/templates/materia/tramitacao_detail.html
index 4aaca09b6..2015ef513 100644
--- a/sapl/templates/materia/tramitacao_detail.html
+++ b/sapl/templates/materia/tramitacao_detail.html
@@ -1,4 +1,4 @@
-{% extends "crud/detail.html" %}
+{% extends "crud/detail_detail.html" %}
{% load i18n %}
{% block detail_content %}
@@ -12,7 +12,7 @@
diff --git a/sapl/templates/navbar.yaml b/sapl/templates/navbar.yaml
index de556d882..e06638095 100644
--- a/sapl/templates/navbar.yaml
+++ b/sapl/templates/navbar.yaml
@@ -29,8 +29,13 @@
url: sapl.materia:receber-proposicao
- title: {% trans 'Documentos Administrativos' %}
- {% if 'documentos_administrativos'|get_config_attr == 'R' %}check_permission: protocoloadm.list_documentoadministrativo{%endif%}
- url: sapl.protocoloadm:pesq_doc_adm
+ {% if 'documentos_administrativos'|get_config_attr == 'R' %}check_permission: protocoloadm.list_documentoadministrativo {% endif %}
+ children:
+ - title: {% trans 'Pesquisar Documentos Administrativos' %}
+ url: sapl.protocoloadm:pesq_doc_adm
+ - title: {% trans 'Tramitação em Lote' %}
+ url: sapl.protocoloadm:primeira_tramitacao_em_lote_docadm
+ check_permission: sapl.documento:add_tramitacao
- title: {% trans 'Atividade Legislativa' %}
children:
diff --git a/sapl/templates/norma/subnav.yaml b/sapl/templates/norma/subnav.yaml
index f85433e72..8af45f38f 100644
--- a/sapl/templates/norma/subnav.yaml
+++ b/sapl/templates/norma/subnav.yaml
@@ -15,6 +15,6 @@
# Em nada mais a integração interfere em NormaJuridica
{% if 'texto_articulado_norma'|get_config_attr %}
-- title: {% trans 'Texto' %}
+- title: {% trans 'Texto Compilado' %}
url: norma_ta
{% endif %}
diff --git a/sapl/templates/protocoloadm/documentoadministrativo_filter.html b/sapl/templates/protocoloadm/documentoadministrativo_filter.html
index bf3a5e19e..bd8c3a9f4 100644
--- a/sapl/templates/protocoloadm/documentoadministrativo_filter.html
+++ b/sapl/templates/protocoloadm/documentoadministrativo_filter.html
@@ -81,3 +81,42 @@
{% block table_content %}
{% endblock table_content %}
+
+
+{% block extra_js %}
+
+
+
+
+
+{% endblock %}
diff --git a/sapl/templates/protocoloadm/em_lote/subnav_em_lote.yaml b/sapl/templates/protocoloadm/em_lote/subnav_em_lote.yaml
new file mode 100644
index 000000000..cf5beb12b
--- /dev/null
+++ b/sapl/templates/protocoloadm/em_lote/subnav_em_lote.yaml
@@ -0,0 +1,5 @@
+{% load i18n common_tags %}
+- title: {% trans 'Primeira Tramitação' %}
+ url: primeira_tramitacao_em_lote_docadm
+- title: {% trans 'Tramitação em Lote' %}
+ url: tramitacao_em_lote_docadm
diff --git a/sapl/templates/protocoloadm/em_lote/tramitacaoadm.html b/sapl/templates/protocoloadm/em_lote/tramitacaoadm.html
new file mode 100644
index 000000000..94796621f
--- /dev/null
+++ b/sapl/templates/protocoloadm/em_lote/tramitacaoadm.html
@@ -0,0 +1,46 @@
+{% extends "crud/detail.html" %}
+{% load i18n crispy_forms_tags %}
+{% block detail_content %}
+
+ {% if not show_results %}
+ {% crispy filter.form %}
+ {% else %}
+ {% if object_list|length > 0 %}
+ {% if object_list|length == 1 %}
+ {% trans 'Pesquisa concluída com sucesso! Foi encontrado 1 documento.'%}
+ {% else %}
+ Foram encontrados {{object_list|length}} documentos.
+ {% endif %}
+ {% crispy form %}
+ {% else %}
+ Nenhum documento encontrado.
+ {% endif %}
+
+ {% endif%}
+{% endblock detail_content %}
+
+{% block extra_js %}
+
+{% endblock %}
diff --git a/sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html b/sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html
index 20e2289c9..9cce240ba 100644
--- a/sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html
+++ b/sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html
@@ -26,7 +26,7 @@
diff --git a/sapl/templates/relatorios/relatorio_doc_administrativos.html b/sapl/templates/relatorios/relatorio_doc_administrativos.html
new file mode 100644
index 000000000..75723a976
--- /dev/null
+++ b/sapl/templates/relatorios/relatorio_doc_administrativos.html
@@ -0,0 +1,85 @@
+{% load i18n %}
+{% load common_tags %}
+{% load static %}
+
+
+
+
+
+
+
+
+
Documentos Administrativos
+ {% if documentoadministrativo_list|length %}
+
Número de documentos: {{numero_res}}
+ {% for d in documentoadministrativo_list %}
+
+ {% if request.user.is_anonymous and not d.restrito or not request.user.is_anonymous%}
+
{{d.tipo.sigla}} {{d.numero}}/{{d.ano}} - {{d.tipo}}
+
Interessado: {{ d.interessado|default_if_none:"Não informado"}}
+
+
Assunto: {{ d.assunto|safe}}
+
+ {% if d.protocolo %}
+
Protocolo: {{ d.protocolo}}
+ {% endif %}
+ {% define d.tramitacaoadministrativo_set.last as tram %}
+ {% if tram.unidade_tramitacao_destino %}
+
Localização Atual: {{tram.unidade_tramitacao_destino}}
+
+
Status: {{tram.status}}
+
+ {% endif %}
+ {% define d.documentoacessorioadministrativo_set.all as acess %}
+ {% if d.documentoacessorioadministrativo_set.all.exists %}
+
Documentos Acessórios:
+
+ {{ d.documentoacessorioadministrativo_set.all.count }}
+
+
+ {% endif %}
+ {% if d.tramitacao and mail_service_configured %}
+
Acompanhar Documento
+ {% endif %}
+ {% endif %}
+
+
+ {% endfor %}
+ {% else %}
+
Nenhum documento encontrado com essas especificações
+ {% endif %}
+
\ No newline at end of file
diff --git a/sapl/templates/search/search.html b/sapl/templates/search/search.html
index a3070b89c..f59d34e92 100644
--- a/sapl/templates/search/search.html
+++ b/sapl/templates/search/search.html
@@ -7,14 +7,21 @@
{% include 'sessao/blocos_resumo/'|add:primeiro_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:segundo_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:terceiro_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:quarto_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:quinto_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:sexto_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:setimo_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:oitavo_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:nono_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:decimo_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:decimo_primeiro_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:decimo_segundo_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:decimo_terceiro_ordenacao %}
-
{% include 'sessao/blocos_resumo/'|add:decimo_quarto_ordenacao %}
-
{% endblock detail_content %}
diff --git a/sapl/templates/sessao/votacao/votacao_bloco.html b/sapl/templates/sessao/votacao/votacao_bloco.html
new file mode 100644
index 000000000..ac9b10ce9
--- /dev/null
+++ b/sapl/templates/sessao/votacao/votacao_bloco.html
@@ -0,0 +1,166 @@
+{% extends "crud/detail.html" %}
+{% load i18n crispy_forms_tags %}
+
+{% block base_content %}
+
+ {% if sessao_iniciada %}
+
+ {% endif %}
+
+{% endblock base_content %}
+
+{% block extra_js %}
+
+
+
+{% endblock extra_js%}
diff --git a/sapl/templates/sessao/votacao/votacao_bloco_expediente.html b/sapl/templates/sessao/votacao/votacao_bloco_expediente.html
deleted file mode 100644
index 589a2397e..000000000
--- a/sapl/templates/sessao/votacao/votacao_bloco_expediente.html
+++ /dev/null
@@ -1,161 +0,0 @@
-{% extends "crud/detail.html" %}
-{% load i18n crispy_forms_tags %}
-
-{% block base_content %}
-
- {% if sessao_iniciada %}
-
- {% endif %}
-
-{% endblock base_content %}
-
-{% block extra_js %}
-
-
-
-{% endblock extra_js%}
diff --git a/sapl/templates/sessao/votacao/votacao_bloco_ordem.html b/sapl/templates/sessao/votacao/votacao_bloco_ordem.html
deleted file mode 100644
index 8c80d47cc..000000000
--- a/sapl/templates/sessao/votacao/votacao_bloco_ordem.html
+++ /dev/null
@@ -1,162 +0,0 @@
-{% extends "crud/detail.html" %}
-{% load i18n crispy_forms_tags %}
-
-{% block base_content %}
-
- {% if sessao_iniciada %}
-
- {% endif %}
-
-{% endblock base_content %}
-
-{% block extra_js %}
-
-
-
-{% endblock extra_js%}
diff --git a/sapl/utils.py b/sapl/utils.py
index 53ab057a9..f3b4b953c 100644
--- a/sapl/utils.py
+++ b/sapl/utils.py
@@ -965,16 +965,21 @@ def lista_anexados(principal, isMateriaLegislativa=True):
else: #DocAdm
from sapl.protocoloadm.models import Anexado
anexados_iterator = Anexado.objects.filter(documento_principal=principal)
- while anexados_iterator:
- anexados_tmp = []
- for anx in anexados_iterator:
- if isMateriaLegislativa:
+
+ anexadas_temp = list(anexados_iterator)
+
+ while anexadas_temp:
+ anx = anexadas_temp.pop()
+ if isMateriaLegislativa:
+ if anx.materia_anexada not in anexados_total:
anexados_total.append(anx.materia_anexada)
anexados_anexado = Anexada.objects.filter(materia_principal=anx.materia_anexada)
- else:
+ anexadas_temp.extend(anexados_anexado)
+ else:
+ if anx.documento_anexado not in anexados_total:
anexados_total.append(anx.documento_anexado)
anexados_anexado = Anexado.objects.filter(documento_principal=anx.documento_anexado)
- anexados_tmp.extend(anexados_anexado)
- anexados_iterator = anexados_tmp
-
+ anexadas_temp.extend(anexados_anexado)
+ if principal in anexados_total:
+ anexados_total.remove(principal)
return anexados_total
diff --git a/sapl/webpack-stats.json b/sapl/webpack-stats.json
index 88c03cb79..def3e3095 100644
--- a/sapl/webpack-stats.json
+++ b/sapl/webpack-stats.json
@@ -1 +1 @@
-{"status":"done","publicPath":"/static/sapl/frontend/","chunks":{"chunk-vendors":[{"name":"css/chunk-vendors.3c9fe6b4.css","publicPath":"/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css","path":"../sapl/sapl/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css"},{"name":"js/chunk-vendors.0003dc37.js","publicPath":"/static/sapl/frontend/js/chunk-vendors.0003dc37.js","path":"../sapl/sapl/static/sapl/frontend/js/chunk-vendors.0003dc37.js"},{"name":"css/chunk-vendors.3c9fe6b4.css.map","publicPath":"/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css.map","path":"../sapl/sapl/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css.map"}],"compilacao":[{"name":"css/compilacao.1f5fb8cf.css","publicPath":"/static/sapl/frontend/css/compilacao.1f5fb8cf.css","path":"../sapl/sapl/static/sapl/frontend/css/compilacao.1f5fb8cf.css"},{"name":"js/compilacao.411d8643.js","publicPath":"/static/sapl/frontend/js/compilacao.411d8643.js","path":"../sapl/sapl/static/sapl/frontend/js/compilacao.411d8643.js"},{"name":"css/compilacao.1f5fb8cf.css.map","publicPath":"/static/sapl/frontend/css/compilacao.1f5fb8cf.css.map","path":"../sapl/sapl/static/sapl/frontend/css/compilacao.1f5fb8cf.css.map"}],"global":[{"name":"css/global.83a4a89d.css","publicPath":"/static/sapl/frontend/css/global.83a4a89d.css","path":"../sapl/sapl/static/sapl/frontend/css/global.83a4a89d.css"},{"name":"js/global.a87c35c2.js","publicPath":"/static/sapl/frontend/js/global.a87c35c2.js","path":"../sapl/sapl/static/sapl/frontend/js/global.a87c35c2.js"},{"name":"css/global.83a4a89d.css.map","publicPath":"/static/sapl/frontend/css/global.83a4a89d.css.map","path":"../sapl/sapl/static/sapl/frontend/css/global.83a4a89d.css.map"}],"painel":[{"name":"css/painel.baa845ab.css","publicPath":"/static/sapl/frontend/css/painel.baa845ab.css","path":"../sapl/sapl/static/sapl/frontend/css/painel.baa845ab.css"},{"name":"js/painel.de2ce2cd.js","publicPath":"/static/sapl/frontend/js/painel.de2ce2cd.js","path":"../sapl/sapl/static/sapl/frontend/js/painel.de2ce2cd.js"},{"name":"css/painel.baa845ab.css.map","publicPath":"/static/sapl/frontend/css/painel.baa845ab.css.map","path":"../sapl/sapl/static/sapl/frontend/css/painel.baa845ab.css.map"}]}}
\ No newline at end of file
+{"status":"done","publicPath":"/static/sapl/frontend/","chunks":{"chunk-vendors":[{"name":"css/chunk-vendors.3c9fe6b4.css","publicPath":"/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css","path":"../sapl/sapl/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css"},{"name":"js/chunk-vendors.0003dc37.js","publicPath":"/static/sapl/frontend/js/chunk-vendors.0003dc37.js","path":"../sapl/sapl/static/sapl/frontend/js/chunk-vendors.0003dc37.js"},{"name":"css/chunk-vendors.3c9fe6b4.css.map","publicPath":"/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css.map","path":"../sapl/sapl/static/sapl/frontend/css/chunk-vendors.3c9fe6b4.css.map"}],"compilacao":[{"name":"css/compilacao.1f5fb8cf.css","publicPath":"/static/sapl/frontend/css/compilacao.1f5fb8cf.css","path":"../sapl/sapl/static/sapl/frontend/css/compilacao.1f5fb8cf.css"},{"name":"js/compilacao.7625546b.js","publicPath":"/static/sapl/frontend/js/compilacao.7625546b.js","path":"../sapl/sapl/static/sapl/frontend/js/compilacao.7625546b.js"},{"name":"css/compilacao.1f5fb8cf.css.map","publicPath":"/static/sapl/frontend/css/compilacao.1f5fb8cf.css.map","path":"../sapl/sapl/static/sapl/frontend/css/compilacao.1f5fb8cf.css.map"}],"global":[{"name":"css/global.d160bbe2.css","publicPath":"/static/sapl/frontend/css/global.d160bbe2.css","path":"../sapl/sapl/static/sapl/frontend/css/global.d160bbe2.css"},{"name":"js/global.522fd995.js","publicPath":"/static/sapl/frontend/js/global.522fd995.js","path":"../sapl/sapl/static/sapl/frontend/js/global.522fd995.js"},{"name":"css/global.d160bbe2.css.map","publicPath":"/static/sapl/frontend/css/global.d160bbe2.css.map","path":"../sapl/sapl/static/sapl/frontend/css/global.d160bbe2.css.map"}],"painel":[{"name":"css/painel.baa845ab.css","publicPath":"/static/sapl/frontend/css/painel.baa845ab.css","path":"../sapl/sapl/static/sapl/frontend/css/painel.baa845ab.css"},{"name":"js/painel.de2ce2cd.js","publicPath":"/static/sapl/frontend/js/painel.de2ce2cd.js","path":"../sapl/sapl/static/sapl/frontend/js/painel.de2ce2cd.js"},{"name":"css/painel.baa845ab.css.map","publicPath":"/static/sapl/frontend/css/painel.baa845ab.css.map","path":"../sapl/sapl/static/sapl/frontend/css/painel.baa845ab.css.map"}]}}
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 29b23dd01..84d44fa89 100644
--- a/setup.py
+++ b/setup.py
@@ -12,7 +12,7 @@ install_requires = [
'django>=1.11.19,<2.0',
'django-haystack==2.8.1',
'django-filter==2.0.0',
- 'djangorestframework==3.9.0',
+ 'djangorestframework==3.9.1',
'dj-database-url==0.5.0',
'django-braces==1.9.0',
'django-crispy-forms==1.7.2',
@@ -43,7 +43,7 @@ install_requires = [
]
setup(
name='interlegis-sapl',
- version='3.1.156',
+ version='3.1.157-RC5',
packages=find_packages(),
include_package_data=True,
license='GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007',