{"version":3,"sources":["img/background.png","config/config.js","theme/palette.js","theme/typography.js","theme/overrides/MuiIconButton.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTypography.js","theme/index.js","components/SearchInput/SearchInput.js","components/StatusBullet/StatusBullet.js","components/RouteWithLayout/RouteWithLayout.js","components/PrivateRouteWithLayout/PrivateRouteWithLayout.js","components/Utils/Mensagens.jsx","components/Page/Page.js","utils/useRouter.js","components/Label/Label.js","components/CustomButton/CustomButton.jsx","components/ImageUploader/ImageUploader.js","utils/history.js","utils/masks.js","utils/constants.js","utils/getStatus.js","utils/toLongDate.js","utils/chartjs.js","utils/getInitials.js","utils/errorsUploadImage.js","utils/useDidMountEffect.jsx","utils/stringUtils.js","utils/validateCNPJ.js","utils/formatRelativeTime.js","_services/errorHandler.js","_services/auth.service.js","_services/crud.service.js","_services/uploadImage.service.js","_services/uploadFile.service.js","_actions/auth.actions.js","_actions/cidade.actions.js","_actions/tipoUsuario.actions.js","_actions/dashboard.actions.js","_actions/convocacao.actions.js","_actions/empresa.actions.js","_actions/empresaAnexo.actions.js","_actions/empresaOrgao.actions.js","_actions/estado.actions.js","_actions/insumo.actions.js","_actions/log.actions.js","_actions/manual.actions.js","_actions/notificacao.actions.js","_actions/notificacaoFiltro.actions.js","_actions/notificacaoUsuario.actions.js","_actions/obra.actions.js","_actions/obraAnexo.actions.js","_actions/empenho.actions.js","_actions/obraAvaliacao.actions.js","_actions/obraCoordenada.actions.js","_actions/obraCobranca.actions.js","_actions/obraDiario.actions.js","_actions/obraMedicao.actions.js","_actions/obraMedicaoEtapaItemAnexo.actions.js","_actions/obraEtapa.actions.js","_actions/obraEtapaItem.actions.js","_actions/obraOcorrencias.actions.js","_actions/obraOrcamento.actions.js","_actions/obraOrcamentoItem.actions.js","_actions/orgao.actions.js","_actions/parametro.actions.js","_actions/relatorio.actions.js","_actions/subOrgao.actions.js","_actions/tabelaInsumo.actions.js","_actions/tabelaInsumoAno.actions.js","_actions/tabelaInsumoMes.actions.js","_actions/tipoAnexo.actions.js","_actions/tipoObra.actions.js","_actions/tipoServico.actions.js","_actions/unidade.actions.js","_actions/usuario.actions.js","_actions/usuarioOrgao.actions.js","_actions/usuarioEmpresa.actions.js","components/Maps/MapContainerCoordenadasModal.jsx","components/Maps/MapContainer.jsx","components/Maps/MapPublic.jsx","components/SearchBar/components/Filter/Filter.js","components/SearchBar/components/Search/Search.js","components/SearchBar/SearchBar.js","components/Header/Header.jsx","components/PickbusBanner/PickbusBanner.jsx","components/HelperToolTip/HelperToolTip.jsx","components/HelpModal/HelpModal.jsx","layouts/Main/components/Footer/Footer.js","layouts/Main/components/Sidebar/components/Profile/Profile.js","components/Utils/AccessControl.js","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/Sidebar.js","layouts/Main/components/Topbar/components/SelectOrgao/SelectOrgao.js","layouts/Main/components/Topbar/Topbar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","views/Errors/Error404/Error404.jsx","utils/stringTimeHello.js","views/Home/components/Header/Header.jsx","views/Home/Home.jsx","views/Dashboard/components/CardAnexosPendentes/CardAnexosPendentes.jsx","views/Dashboard/components/CardObra/CardObra.jsx","views/Dashboard/components/CardObrasAindaNaoReceberamOrcamento/CardObrasAindaNaoReceberamOrcamento.jsx","views/Dashboard/components/CardHorasRecebimentoOrcamentos/CardHorasRecebimentoOrcamentos.jsx","views/Dashboard/components/CardInfosValues/CardInfosValues.jsx","views/Dashboard/components/CardUsuarios/CardUsuarios.jsx","views/Dashboard/components/CardOrcamentosEnviados/CardOrcamentosEnviados.jsx","views/Dashboard/components/CardObrasRecebendoOrcamentos/CardObrasRecebendoOrcamentos.jsx","views/Dashboard/components/CardEmpresas/CardEmpresas.jsx","views/Dashboard/components/CardMedicoesPendentes/CardMedicoesPendentes.jsx","views/Dashboard/components/GraficoObrasStatusChartCard/GraficoObrasStatusChartCard.jsx","views/Dashboard/components/GraficoObrasPorMesChartCard/options.js","views/Dashboard/components/GraficoObrasPorMesChartCard/GraficoObrasPorMesChartCard.jsx","components/Stars/Stars.js","views/Dashboard/components/CardListaObraInteresse/CardListaObraInteresse.jsx","views/Dashboard/dashboard.component.jsx","views/TitleContent.jsx","views/Errors/AccessDenied/AccessDenied.jsx","views/Empresas/empresa.component.jsx","views/Empresas/usuarioEditModal.component.jsx","views/Empresas/empresaEdit.component.jsx","views/Empresas/empresaAnexoEdit.component.jsx","views/Login/ModalRequestPasswordReset.jsx","views/Login/ModalChooseEmpresaOrgao.jsx","views/Login/ModalChooseTipoEmpresa.jsx","views/Login/login.component.jsx","views/Login/emailVerification.component.jsx","views/Login/passwordReset.component.jsx","views/Login/passwordResetSuccess.component.jsx","views/Login/empresaUsuarioEdit.component.jsx","views/Login/orgaoUsuarioEdit.component.jsx","views/Insumos/insumoModal.component.jsx","views/Manuais/manual.component.jsx","views/Manuais/manualEdit.component.jsx","views/Notificacoes/notificacao.component.jsx","views/Notificacoes/modalNotificacaoFiltrosItens.jsx","views/Notificacoes/modalNotificacaoUsuarios.jsx","views/Notificacoes/modalNotificacaoTestes.jsx","views/Notificacoes/notificacaoEdit.component.jsx","views/Orgaos/orgao.component.jsx","views/Orgaos/usuarioEditModal.component.jsx","views/Orgaos/orgaoEdit.component.jsx","views/Obras/obra.component.jsx","views/Obras/obraMateriais.component.jsx","views/Obras/obraProjetoTecnico.component.jsx","views/Obras/obraReparoPrevencao.component.jsx","views/Obras/obraAguardandoOrcamento.component.jsx","components/Stars/StarRating.js","views/Obras/obraAvaliacaoEdit.component.jsx","views/Obras/obraAjudaModal.component.jsx","views/Obras/obraAnexoEdit.component.jsx","views/Obras/obraCoordenadasModal.component.jsx","views/Obras/obraConvocacaoObservacaoModal.component.jsx","views/Obras/obraConvocacaoModal.component.jsx","views/Obras/ObrasDiarios/usuarioResponsavelAddModal.component.jsx","views/Obras/ObrasDiarios/obraDiarioAddModal.component.jsx","views/Obras/ObrasDiarios/obraDiarioModalEquipe.component.jsx","views/Obras/ObrasDiarios/obraDiarioModalAnexo.component.jsx","views/Obras/ObrasDiarios/obraDiarioEdit.component.js","views/Obras/obraSummaryCard.component.jsx","components/Carousel/CarouselImage.jsx","views/Obras/obraOcorrenciasList.component.js","views/Obras/obraEdit.component.jsx","views/Obras/obraEtapaEdit.component.jsx","views/Obras/obraEtapaItemEdit.component.jsx","views/Obras/ModalCronograma.component.jsx","views/Obras/cardTableFinanceiro.component.jsx","views/Obras/obraFinanceiroEdit.component.js","views/Obras/obraMedicaoAddModal.component.jsx","views/Obras/options.js","views/Obras/obraMedicaoEditModalAnexo.component.jsx","views/Obras/obraMedicaoEditModal.component.jsx","views/Obras/obraMedicaoMotivoModal.component.jsx","views/Obras/obraMedicaoEdit.component.js","views/Obras/obraMedicaoListObrasEtapasItens.component.js","views/Obras/obraMotivoModal.component.jsx","views/Obras/obraMotivoAlteracaoHorasRecebimentoOrcamentosModal.component.jsx","views/ObrasOrcamentos/obraMotivoModal.component.jsx","views/Obras/obraOrcamentoItemEdit.component.js","views/Obras/Timeline/timelineGantt.component.jsx","contexts/ContextEmpenhosInfos.js","views/Empenhos/cardNumberEmpenhos.component.jsx","views/Empenhos/empenho.component.jsx","views/Empenhos/empenhoSummaryCard.component.jsx","views/Empenhos/empenhoEdit.component.jsx","views/EmpresasAnexos/empresaAnexo.component.jsx","views/ObrasCobrancas/obraCobranca.component.jsx","views/ObrasCobrancas/obraCobrancaEdit.component.js","views/ObrasCobrancas/obraCobrancaEditConfirmationModal.component.jsx","views/ObrasMedicoes/obraMedicao.component.jsx","views/ObrasOrcamentos/obraOrcamento.component.jsx","views/ObrasOrcamentos/obraOrcamentoAnexoEmpresaModal.component.jsx","views/ObrasOrcamentos/obraOrcamentoEdit.component.jsx","views/Parametros/bdi.component.jsx","views/Parametros/calcMat.component.jsx","views/Parametros/linksUteis.component.jsx","views/Parametros/parametro.component.jsx","views/Parametros/parametroEdit.component.jsx","views/Parametros/diario.component.jsx","views/politicaPrivacidade.component.jsx","views/mapaPublico.component.jsx","views/TitleContentInformation.jsx","views/Relatorios/relatorioEmpresaPorOrgao.component.jsx","_reports/header.component.js","_reports/footer.component.js","views/Relatorios/relatorioEmpresaPorOrgaoPrint.component.js","views/Relatorios/relatorioEmpresaOrcamentoEnviado.component.jsx","views/Relatorios/relatorioEmpresaOrcamentoEnviadoPrint.component.js","views/Relatorios/relatorioUsuarios.component.jsx","views/Relatorios/relatorioOcorrenciaObra.component.jsx","views/Relatorios/relatorioOcorrenciaObraPrint.component.js","views/Relatorios/relatorioUsuariosPrint.component.js","views/Relatorios/relatorioEmpresaPorTipoServico.component.jsx","views/Relatorios/relatorioEmpresaPorTipoServicoPrint.component.js","views/SubOrgaos/subOrgao.component.jsx","views/SubOrgaos/subOrgaoEdit.component.jsx","views/Usuarios/usuario.component.jsx","views/Usuarios/usuarioEdit.component.jsx","views/Obras/ObrasDiarios/obraDiarioPrintPdf.component.jsx","views/Obras/ObrasDiarios/obraDiarioPrintPdfFooter.component.js","Routes.js","components/Tawkto/Tawkto.jsx","App.js","_reducers/auth.reducer.js","_reducers/cidade.reducer.js","_reducers/convocacao.reducer.js","_reducers/dashboard.reducer.js","_reducers/estado.reducer.js","_reducers/empresa.reducer.js","_reducers/empresaAnexo.reducer.js","_reducers/empresaCidade.reducer.js","_reducers/empresaOrgao.reducer.js","_reducers/insumo.reducer.js","_reducers/log.reducer.js","_reducers/manual.reducer.js","_reducers/notificacao.reducer.js","_reducers/notificacaoFiltro.reducer.js","_reducers/notificacaoUsuario.reducer.js","_reducers/notificacaoTeste.reducer.js","_reducers/orgao.reducer.js","_reducers/obra.reducer.js","_reducers/obraAnexo.reducer.js","_reducers/obraAvaliacao.reducer.js","_reducers/obraDiario.reducer.js","_reducers/empenho.reducer.js","_reducers/obraCobranca.reducer.js","_reducers/obraCoordenada.reducer.js","_reducers/obraMedicao.reducer.js","_reducers/obraMedicaoEtapaItemAnexo.reducer.js","_reducers/obraEtapa.reducer.js","_reducers/obraEtapaItem.reducer.js","_reducers/obraOcorrenciaAnexo.reducer.js","_reducers/obraOcorrencias.reducer.js","_reducers/obraOrcamento.reducer.js","_reducers/obraOrcamentoItem.reducer.js","_reducers/parametro.reducer.js","_reducers/permissao.reducer.js","_reducers/permissaoTipoUsuario.reducer.js","_reducers/permissaoUsuario.reducer.js","_reducers/relatorio.reducer.js","_reducers/subOrgao.reducer.js","_reducers/tabelaInsumo.reducer.js","_reducers/tabelaInsumoAno.reducer.js","_reducers/tabelaInsumoMes.reducer.js","_reducers/tipoAnexo.reducer.js","_reducers/tipoUsuario.reducer.js","_reducers/tipoServico.reducer.js","_reducers/tipoObra.reducer.js","_reducers/unidade.reducer.js","_reducers/usuario.reducer.js","_reducers/usuarioOrgao.reducer.js","_reducers/usuarioEmpresa.reducer.js","_reducers/index.js","index.js","img/raiar.png","img/raiarBlue.png","img/autonomo.jpg","img/pinBlue.png","img/raiarWhite.png","img/login_mini.jpg","img/empresa.jpg","img/cidade.jpg","img/prestador.jpg","img/fornecedor.jpg","img/drmEngenharia.jpg","img/raiarR.png","img/pinRed.png"],"names":["module","exports","headers","accept","baseUrl","white","black","primary","contrastText","dark","colors","grey","main","light","secondary","alternative","success","green","info","blue","warning","orange","error","red","yellow","text","blueGrey","link","background","default","paper","icon","divider","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","body3","button","caption","overline","textTransform","fontFamily","join","root","backgroundColor","MuiButton","contained","boxShadow","MuiIconButton","MuiPaper","elevation1","MuiTableCell","_objectSpread","typography","borderBottom","concat","MuiTableHead","MuiTypography","gutterBottom","marginBottom","theme","createTheme","overrides","zIndex","appBar","drawer","ptBR","makeStyles","borderRadius","alignItems","padding","spacing","display","flexBasis","marginRight","input","flexGrow","useStyles","flexShrink","sm","height","width","md","lg","neutral","danger","StatusBullet","props","className","size","rest","_objectWithoutProperties","_excluded","classes","React","createElement","Object","assign","clsx","defaultProps","RouteWithLayout","layout","Layout","component","Component","Route","render","matchProps","PrivateRouteWithLayout","type","Type","localStorage","getItem","Fragment","key","Redirect","to","pathname","state","from","location","ToastContainer","GA_MEASUREMENT_ID","process","REACT_APP_GA_MEASUREMENT_ID","Page","title","children","router","useContext","__RouterContext","useEffect","window","gtag","page_path","page_name","Helmet","justifyContent","shape","minWidth","whiteSpace","rounded","Label","variant","style","rootClassName","finalStyle","border","Typography","CustomButton","onClick","disabled","customStyle","otherProps","Button","borderColor","AvatarStyled","styled","Avatar","webkitBorderRadius","mozBorderRadius","cursor","ImageUploader","_ref","isObra","images","onChangeImage","onError","acceptType","maxFileSize","resolutionWidth","resolutionHeight","resolutionType","removeImage","imagem","getInitials","isBanner","ImageUploading","value","onChange","dataURLKey","_ref2","onImageUpload","isDragging","dragProps","Card","CardContent","content","CloudUploadTwoToneIcon","Tooltip","substr","lastIndexOf","length","avatar","src","nome","titulo","align","Divider","CardActions","bytes","toFixed","toUpperCase","history","createBrowserHistory","cpfMask","undefined","replace","cnpjMask","phoneMask","TIPO_USUARIO","STATUS_SERVICO","TIPO_OBRA","MANUAIS_CATEGORIAS","ABA_CADASTRO_OBRA","ABA_EDICAO_OBRA","LISTAGEM_ORDEM_SERVICO","CADASTRO_ORGAO_ADMIN","CADASTRO_ORGAO_ORGAO","CADASTRO_EMPRESA_ADMIN","CADASTRO_EMPRESA_EMPRESA","EDICAO_ORGAO","LISTAGEM_ORGAO","CADASTRO_SUB_ORGAO","EDICAO_SUB_ORGAO","LISTAGEM_SUB_ORGAO","EDICAO_PARAMETRO","EDICAO_EMPRESA","CADASTRO_USUARIO","EDICAO_USUARIO","LISTAGEM_USUARIO","LISTAGEM_ORCAMENTO","CADASTRO_ORCAMENTO","LISTAGEM_EMPENHO","CADASTRO_EMPENHO","RELATORIO_EMPRESA_ORGAO","RELATORIO_SERVICO_REALIZADO","CADASTRO_AJUDA","EDICAO_AJUDA","LISTAGEM_AJUDA","ABA_OBRA_FINANCEIRO","ABA_OBRA_OCORRENCIA","ABA_OBRA_ETAPA","ABA_OBRA_ITEM","ABA_OBRA_MEDICAO","LISTAGEM_MEDICAO","RELATORIO_LOGS_SISTEMA","RELATORIO_OCORRENCIA_OBRA","LISTAGEM_COBRANCA","LISTAGEM_EMPRESA","EMPRESA_EDIT_ANEXO","LISTAGEM_NOTIFICACAO","LISTAGEM_PARAMETRO","LISTAGEM_OBRA_REFORMA","LISTAGEM_OBRA_COMPRA_MATERIAL","ABA_CADASTRO_COMPRA_MATERIAL","ABA_OBRA_ANEXO","ABA_OBRA_ORCAMENTO","LISTAGEM_OBRA_AGUARDANDO_ORCAMENTO","LISTAGEM_ORCAMENTO_ENVIADO","RELATORIO_USUARIO","LINK_BDI","LINK_CALCMAT","LINK_DIARIO_OBRA","LINK_GOV","DASHBOARD","CADASTRO_COBRANCA","LISTAGEM_OBRA_PLANO_TRABALHO","LISTAGEM_OBRA_REPARO_PREVENCAO","RELATORIO_EMPRESA_ORCAMENTO_ENVIADO","ABA_DIARIO_OBRA","OBRA_DIARIO_CONDICAO_CLIMATICA","getNomeUltimoEvento","ultimoEvento","obra","isLista","credenciamento","_obra$obrasOrcamentos","obrasOrcamentos","err","getCor","toLongDate","dataString","data","Date","dia","getDate","mes","getMonth","ano","getFullYear","name","arguments","split","slice","map","v","ErrorsUploadImage","erros","toast","maxNumber","resolution","stringUtils","getObraParam","params","URLSearchParams","search","has","obraValue","get","toLowerCase","serialize","obj","keys","reduce","a","k","push","encodeURIComponent","toInputUppercase","e","start","target","selectionStart","end","selectionEnd","setSelectionRange","toInputLowerCase","removeDiacritics","palavra","normalize","validateCNPJ","cnpj","tamanho","numeros","substring","digitos","soma","pos","i","charAt","resultado","moment","locale","errorHandler","response","status","autoClose","Promise","reject","message","removeItem","authServices","post","apiEndpoint","payload","axios","config","then","setItem","JSON","stringify","usuario","token","expires","catch","logout","crudService","getOptions","postWithToken","options","put","putWithOutMessage","deleteDetail","delete","async","uploadImage","FormData","compress_image","resizeFile","file","append","Authorization","url","console","log","resolve","Resizer","imageFileResizer","uri","uploadFile","$package","require","versaoSistema","version","authActions","login","username","password","dispatch","user","senha","admin","isGestor","parse","isPrefeitura","isEmpresa","isMotorista","isFiscal","isUsuarioOrgaoPublico","refresh","_navigator","plataforma","navigator","userAgent","request","cidadeAction","getCidade","getCidadesSelect","unshift","changeCidadesList","getCidadeByUf","uf","getCidadeByIdEstado","idEstado","addCidade","cidade","getCidadeById","id","editCidadesDetails","onChangeProps","event","handleOnChangeProps","changeDetailsCidade","ibge","onChangeDetailsCidade","editCidadeInfo","createCidade","deleteCidadeById","clear","clearAll","estado","tipoUsuarioAction","getTiposUsuarioSelect","tipoUsuario","dashboardAction","getDashboard","filterModel","dashboard","failure","getDashboardGraficoObras","obras","totalObras","items","totalRows","convocacaoAction","getConvocacao","convocacao","totalRegistros","changeConvocacaosList","empresaAction","getEmpresa","addConvocacao","getConvocacaoById","editConvocacaosDetails","checked","editConvocacaoInfo","ex","createConvocacao","payloadOrcamento","idOrgao","idObra","getEmpresaConvocacao","IdOrgao","IdObra","aceita","obraOrcamentoAction","createAndApproveObraOrcamento","changeDetailsConvocacao","onChangeDetailsConvocacao","notIsLoading","isLoading","observacoes","idEmpresa","empresa","showWaiting","changeEmpresasList","getEmpresaSelect","addEmpresa","getEmpresaById","editEmpresasDetails","editEmpresaInfo","editAprovaCadastroEmpresa","editRecusaCadastroEmpresa","createEmpresa","createEmpresaApp","changeDetailsEmpresa","onChangeDetailsEmpresa","deleteEmpresaById","clearUsuariosEmpresas","clearTiposServicos","Limit","Term","razaoSocial","nomeFantasia","cpf","telefone","celular","email","endereco","informacoesCobranca","inscricaoEstadual","idCidade","usuariosEmpresas","empresasOrgaos","empresasCidades","fornecedor","autonomo","prestadorServico","projeto","empresasAnexos","empresasTiposServicos","atendeFimDeSemana","servicosUrgencia","cadastroLiberado","empresaAnexoAction","getEmpresaAnexo","getEmpresaAnexoSelect","changeEmpresaAnexosList","getEmpresaAnexoById","empresaAnexo","idTipoAnexo","caminhoAnexo","excluido","editEmpresaAnexoInfo","responseText","editEmpresaAnexoAprova","IdEmpresa","editEmpresaAnexoRecusa","createEmpresaAnexo","deleteEmpresaAnexoById","Situacao","clearDetail","empresaOrgaoAction","changeDetailsEmpresaOrgao","empresaOrgao","onChangeDetailsEmpresaOrgao","getEmpresaOrgao","editEmpresaOrgaosDetails","getEmpresaOrgaos","changeEmpresaOrgaosList","addUsuarioByEmail","openModalCadastroEmpresaOrgao","open","openModalCadastroTipoEmpresa","deleteUsuarioById","clearSelected","estadoAction","getEstadoSelect","insumoAction","getInsumos","insumo","logAction","getLog","changeLogsList","getLogByUsuario","idUsuario","changeDetailsLog","tipo","tabela","chave","id_usuario","dataHora","campo","valorAntigo","valorNovo","onChangeDetailsLog","editLogInfo","editLogsDetails","manualAction","getManual","getManualById","editManualInfo","changeDetailsManual","manual","onChangeDetailsManual","getManualByTela","changeManualsList","createManual","deleteManualById","categoria","descricao","tiposUsuariosManuais","notificacaoAction","getNotificacao","addNotificacao","notificacao","getNotificacaoById","editNotificacaoInfo","redirect","editNotificacaosDetails","duplicateNotificacao","createNotificacao","ret","sendNotificacao","sendNotificacaoTeste","selectedClientes","deleteNotificacaoById","openModalNotificacaoTestes","openModalNotificacaoFiltrosItens","openModalNotificacaoUsuarios","Order","Direction","notificacaoFiltroAction","getNotificacaoFiltroByNotificacao","getNotificacaoFiltro","changeNotificacaoFiltrosList","addNotificacaoFiltro","notificacaoFiltro","getNotificacaoFiltroById","editNotificacaoFiltrosDetails","createNotificacaoFiltro","idNotificacao","deleteNotificacaoFiltroById","clearInfo","notificacaoUsuarioAction","getNotificacaoUsuario","addNotificacaoUsuario","notificacaoUsuario","getNotificacaoUsuarioById","editNotificacaoUsuariosDetails","getNotificacoesByCliente","changeNotificacaoUsuariosList","createNotificacaoUsuario","IdNotificacao","deleteNotificacaoUsuarioById","obraAction","getObra","getObraSemEmpenho","changeObrasList","getObraSelect","getObraSelectTitle","getGraficoEvolucaoObra","graficoEvolucaoObra","getObraSelectPublic","filterModelPublic","getObraById","changeDetailsObra","descritivo","dataInicio","dataTermino","onChangeDetailsObra","editObraInfo","isProjetoTecnico","isReparo","IsProjetoTecnico","IsReparoPrevencao","IsObra","editObraCoordenadas","editObraAprova","editObraAprovaOrcamento","editObraFinalizaLancamentoItens","idObraEtapa","Id","obraEtapaItemAction","getObraEtapaItem","editObraAlteraStatusEmLancamento","editObraDevolveParaRevisao","editObraRecusa","editObraRecusaOrcamento","createObra","putFinalizaObra","deleteObraById","isReparoPrevencao","handleModalCronograma","editObrasDetails","goBack","idTipoObra","idTabelaInsumo","anoTabelaInsumo","mesTabelaInsumo","idEstadoTabelaInsumo","horasRecebimentoOrcamentos","caminhoImagem","onerado","urgencia","latitude","longitude","bdi","valorReferencia","valorReferenciaComBdi","valorFinal","orgao","idSubOrgao","eventos","idUsuarioMudancaSituacao","usuarioMudancaSituacao","dataMudancaSituacao","dataAprovacao","veiculo","motivoExclusao","motivoMudancaHorasRecebimentoOrcamentos","tipoObra","obrasAnexos","obrasEtapas","obrasCoordenadas","obrasCobrancas","tabelaInsumo","estadoTabelaInsumo","obrasAvaliacoes","obrasEmpenhos","percentualConclusaoObra","percentualObraOrcamentosPagos","obraAnexoAction","getObraAnexo","getObraAnexoPublic","changeObraAnexosList","getObraAnexoSelect","getObraAnexoById","obraAnexo","editObraAnexoInfo","createObraAnexo","deleteObraAnexoById","empenhoAction","getEmpenho","getEmpenhoById","empenho","caminhoArquivo","caminhoNotaFiscal","dataCadastro","dataPagamento","editEmpenhoInfo","editEmpenhoRealizaPagamento","changeDetailsEmpenho","onChangeDetailsEmpenho","createEmpenho","deleteEmpenhoById","obraAvaliacaoAction","getObraAvaliacao","getObraAvaliacaoPublic","changeObraAvaliacaosList","getObraAvaliacaoById","obraAvaliacao","nota","editObraAvaliacaoInfo","createObraAvaliacao","deleteObraAvaliacaoById","obraCoordenadaAction","getObraCoordenada","getObraCoordenadaById","obraCoordenada","indice","createObraCoordenada","deleteObraCoordenadaById","obraCobrancaAction","getObraCobranca","getObraCobrancaSelect","changeObrasCobrancasList","getObraCobrancaById","obraCobranca","dataCobranca","caminhoNota","obrasMedicoesCobrancas","valor","editObraCobrancaInfo","createObraCobranca","deleteObraCobrancaById","editObraCobrancaPaga","obraDiarioAction","getObraDiario","getObraDiarioById","obraDiario","condicaoClimatica","responsavelTecnico","obrasDiariosAnexos","obrasDiariosEquipes","createObraDiario","deleteObraDiarioById","obraMedicaoAction","getObraMedicao","getObraMedicaoGraficoGantt","changeObraMedicaosList","getObraMedicaoSelect","getObraMedicaoById","obraMedicao","situacao","obrasMedicoesEtapasItens","obrasOcorrencias","obrasMedicoesAnexos","editObraMedicaoInfo","editObraMedicaoAprova","motivo","obraEtapaAction","getObraEtapa","editObraMedicaoRecusa","createObraMedicao","deleteObraMedicaoById","obraMedicaoEtapaItemAnexoAction","getObraMedicaoEtapaItemAnexos","obraMedicaoEtapaItemAnexo","changeObrasEtapasList","getObraEtapaSelect","getObraEtapaById","obraEtapa","periodos","obrasEtapasItens","editObraEtapaInfo","createObraEtapa","deleteObraEtapaById","getObraEtapaItemSelect","getObraEtapaItemById","obraEtapaItem","codigo","idUnidade","quantidade","idTipoServico","tipoServico","editObraEtapaItemInfo","createObraEtapaItem","deleteObraEtapaItemById","clearCampos","obraOcorrenciasAction","getObraOcorrenciasSistema","changeObraOcorrenciasList","getObraOcorrencias","obraOcorrencias","getObraOrcamento","getObraOrcamentoSelect","changeObraOrcamentosList","getObraOrcamentoById","obraOrcamento","prazo","diasPrazo","statusOrcamento","obrasOrcamentosItens","editObraOrcamentoInfo","editObraOrcamentoAprova","editObraOrcamentoRecusa","createObraOrcamento","deleteObraOrcamentoById","revert","obraOrcamentoItemAction","getObraOrcamentoItem","getObraOrcamentoItemObra","getObraOrcamentoItemSelect","changeObraOrcamentoItemsList","getObraOrcamentoItemById","obraOrcamentoItem","idObraOrcamentoItem","idObraEtapaItem","dataAlteracaoStatus","editObraOrcamentoItemsDetails","editObraOrcamentoItemInfo","editObraOrcamentoItemAprova","editObraOrcamentoItemRecusa","createObraOrcamentoItem","deleteObraOrcamentoItemById","totalEmpresas","orgaoAction","getOrgao","getOrgaoSelect","changeOrgaosList","getOrgaoSelectPublic","getOrgaoById","mapaPublico","naoExigeOrcamentos","usuariosOrgaos","editOrgaoInfo","editAprovaCadastroOrgao","editRecusaCadastroOrgao","changeDetailsOrgao","onChangeDetailsOrgao","createOrgao","createOrgaoApp","deleteOrgaoById","clearUsuariosOrgaos","parametroAction","getAjuda","editParametrosDetails","getParametro","addParametro","parametro","getBdi","getDiario","getLinksUteis","getTabelaPadraoObra","getTermoAceiteEmpresas","getCalcMat","getParametroById","getParametroByChave","onChangePropsHtml","editParametroInfo","createParametro","deleteParametroById","relatorioAction","getRelatorioEmpresaOrcamentoEnviado","changeRelatorioList","getRelatorioEmpresaOrcamentoEnviadoArquivo","BOM","FileSaver","blob","Blob","format","saveAs","getRelatorioEmpresaPorOrgao","getRelatorioEmpresaPorTipoServico","getRelatorioEmpresaOrgaoArquivo","getRelatorioEmpresaTipoServicoArquivo","getRelatorioUsuarios","getRelatorioUsuariosArquivo","getRelatorioOrcamentosArquivo","getRelatorioOcorrenciaObra","getRelatorioOcorrenciaObraArquivo","relatorio","subOrgaoAction","getSubOrgao","getSubOrgaoSelect","changeSubOrgaosList","getSubOrgaoById","subOrgao","usuariosSubOrgaos","editSubOrgaoInfo","getSubOrgaoByIdOrgao","editAprovaCadastroSubOrgao","editRecusaCadastroSubOrgao","changeDetailsSubOrgao","onChangeDetailsSubOrgao","createSubOrgao","deleteSubOrgaoById","tabelaInsumoAction","getTabelasInsumosSelect","tabelaInsumoAnoAction","getAnosImportadosSelect","tabelaInsumoAno","tabelaInsumoMesAction","getMesesImportadosSelect","tabelaInsumoMes","tipoAnexoAction","getTiposAnexosSelect","changeTiposAnexosList","getTiposAnexosEmpresaSelect","tipoAnexo","tipoObraAction","getTipoObraSelect","isProjeto","tipoServicoAction","getTiposServicoSelect","changeTiposServicosList","getTiposServicoProjetosSelect","getTiposServico","changeDetailsTipoServico","onChangeDetailsTipoServico","unidadeAction","getUnidadeById","changeUnidadesList","getUnidadesSelect","unidade","usuarioAction","getUsuario","getUsuarioSelect","changeUsuariosList","getUsuarioOrgaoSelect","getUsuarioSemOrgaoAindaSelect","getUsuarioMotoristaByOrgaoSelect","getUsuarioById","sobrenome","idTipoUsuario","dataHoraUltimoAcesso","caminhoCnh","cnh","matricula","idUsuarioOrgao","emailVerificado","getUsuarioByTipo","changeDetailsUsuario","onChangeDetailsUsuario","editUsuarioInfo","editUsuarioEmailInfo","createUsuario","setIdUsuarioOrgao","createUsuarioOrgao","createUsuarioEmpresa","emailVerification","requestEmailVerification","requestPasswordReset","warn","passwordReset","openModalRequestPasswordReset","verifyUsuarioEmail","usuarioOrgaoAction","changeDetailsUsuarioOrgao","usuarioOrgao","onChangeDetailsUsuarioOrgao","getUsuarioOrgao","editUsuarioOrgaosDetails","getUsuarioOrgaos","changeUsuarioOrgaosList","usuarioEmpresaAction","changeDetailsUsuarioEmpresa","usuarioEmpresa","onChangeDetailsUsuarioEmpresa","getUsuarioEmpresa","editUsuarioEmpresasDetails","getUsuarioEmpresas","changeUsuarioEmpresasList","DialogCustom","Dialog","overflow","CustomDeleteIcon","DeleteIcon","marginLeft","GoogleApiWrapper","apiKey","toggle","modal","google","forceUpdate","useState","confirm","useConfirm","useDispatch","pinBlue","setEndereco","mapProps","setMapProps","marker","region","lat","lng","showInfoWindow","setMarker","onMarkerClick","propsMarker","selectedPlace","activeMarker","n","changeMapProps","newProps","fullWidth","maxWidth","onClose","DialogTitle","Grid","container","item","textAlign","CloseIcon","DialogContent","xl","xs","TextValidator","textField","InputLabelProps","shrink","label","margin","onInput","getLatitudeLongitude","maps","Geocoder","geocode","address","_response$","_response$$geometry","_response$$geometry$l","_response$2","_response$2$geometry","_response$2$geometry$","changeLatEvent","geometry","changeLngEvent","marginTop","startIcon","SearchIcon","endIcon","CircularProgress","handleAddCoordenada","find","f","changeCoordenadaEvent","AddCircleOutlineIcon","Map","zoom","position","center","initialCenter","oc","Marker","draggable","labelStyle","onDragend","t","coordIndex","handleMarkerDrag","latLng","formatted_address","index","TableContainer","Table","TableHead","TableRow","TableCell","hover","flexDirection","IconButton","handleRemoveOnList","description","confirmationText","cancellationText","verticalAlign","handleSaveCoordenadas","SaveIcon","handleClean","CleaningServicesIcon","isEditable","exibeBotaoPontosAdicionais","setExibeBotaoPontosAdicionais","setModal","displayMarkers","geolocation","getCurrentPosition","changeLatUser","coords","changeLongUser","tracksViewChanges","changeEnderecoEvent","handleOpenModalPontosAdicionais","AddLocationAltOutlinedIcon","top","left","right","MapContainerCoordenadasModal","pinRed","_mapProps$obra","_mapProps$obra2","_mapProps$obra3","_mapProps$obra4","_mapProps$obra4$valor","mapRef","useRef","_props$obras","obraSelecionada","prev","current","mapInstance","panTo","setZoom","centerAroundCurrentLocation","ref","selectedId","InfoWindow","visible","onCloseInfoWindow","Box","columnGap","logo","objectFit","mb","mt","toLocaleString","minimumFractionDigits","header","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","field","addButton","tags","minAmount","maxAmount","radioGroup","actions","searchIcon","searchInput","searchButton","flexWrap","filterButton","filterIcon","Header","card","learnMore","minHeight","img","bottom","img2","shell","transform","useOfferInfoStyles","subtitle","memo","styles","shadowStyles","useSoftRiseShadowStyles","cx","Column","gap","mr","Info","InfoTitle","InfoSubtitle","Item","rel","href","Hidden","smDown","alt","paddingLeft","HelperToolTip","HelpModal","tela","useSelector","authentication","InsertText","SegHeader","paddingTop","paddingBottom","CardHeader","subheader","Paper","TableBody","Array","_","scope","Skeleton","animation","_n$tiposUsuariosManua","u","Chip","aria-label","LinkIcon","colSpan","Footer","Profile","_user$tipoUsuario","RouterLink","AccessControl","check","rule","permissaoTipoUsuario","permissaoUsuario","some","permissao","permitido","yes","no","propTypes","PropTypes","string","isRequired","connectedAccessControlPage","connect","mapStateToProps","permissoesTiposUsuarios","permissoesUsuarios","active","fontWeightMedium","tooltipText","ListItemStyled","ListItem","CustomRouterLink","forwardRef","SidebarNav","pages","List","page","arrow","disableFocusListener","disableHoverListener","disableTouchListener","clicked","activeClassName","disableGutters","clickedSub","connectedSidebarPage","withRouter","withStyles","breakpoints","up","paddingRight","_user$usuariosEmpresa","_user$usuariosEmpresa2","_user$usuariosEmpresa3","_user$usuariosEmpresa4","_user$usuariosEmpresa5","_user$usuariosEmpresa6","staticContext","_excluded2","openMenuLinks","setOpenMenuLinks","openMenuCadastros","setOpenMenuCadastros","openMenuOrcamentos","setOpenMenuOrcamentos","openMenuRelatorios","setOpenMenuRelatorios","isClickedOptionSubmenu","setIsClickedOptionSubMenu","isEmpresaProjeto","isEmpresaFornecedorMateriais","isPrestador","isDisabled","HomeIcon","AddCircleIcon","pagesFiscal","pageAjuda","HelpOutlineOutlinedIcon","pagesLinks","pagesRelatorios","SummarizeOutlinedIcon","pagesOrcamentos","AttachMoneyIcon","pagesPadrao","ConstructionIcon","ShoppingCartIcon","ArchitectureOutlinedIcon","BuildIcon","pagesObra","pagesEmpenhos","LocationCityIcon","pagesObraMedicao","TimelineIcon","pagesObraCobrancas","CreditCardIcon","pagesSubOrcamentos","AccessTimeIcon","ContentPasteGoIcon","pagesSubLinks","PercentIcon","CalculateIcon","CalendarMonthIcon","PublicIcon","pagesSubRelatorios","ApprovalOutlinedIcon","DesignServicesOutlinedIcon","CorporateFareIcon","GroupsIcon","pagesSubRelatoriosPrefeitura","pagesSair","ExitToAppIcon","pagesCadastrosItensGestor","WorkOutlineIcon","NotificationsIcon","BusinessIcon","SettingsIcon","PeopleIcon","pagesCadastrosItensEmpresa","pagesCadastrosItensPrefeitura","Drawer","anchor","PerfectScrollbar","Collapse","in","timeout","disablePadding","stye","formControl","showPrefeitura","SelectOrgao","setOpen","setDisabled","_u$orgao","_u$orgao2","_u$orgao2$nome","setValue","inputValue","setInputValue","hasOrgaoSelected","setInitialUsuarioOrgao","handleChangeAutoComplete","selectedUsuarioOrgao","filter","handleClickOpen","handleClose","handleClear","ArrowDropDownIcon","disableBackdropClick","disableEscapeKeyDown","Autocomplete","newValue","onInputChange","newInputValue","defaultValue","getOptionLabel","option","renderInput","TextField","DialogActions","SpanStyled","ButtonStyled","ButtonStyledCenter","transition","TableStyled","ToolTipFormatted","popper","tooltipClasses","tooltip","TopbarPage","topBar","textDecoration","_ref3","onSidebarOpen","_excluded3","handleOpenLastsEvents","renderTooltip","leaveTouchDelay","leaveDelay","onMouseClick","placement","TransitionComponent","Fade","o","_o$descricao","_o$descricao2","_o$descricao2$substri","_o$empresa","_o$empresa$razaoSocia","_o$orgao","_o$orgao$nome","_o$usuario","_o$usuario$nome","_o$obra","_o$descricao3","_o$obra2","_o$obra3","_o$obra3$obrasOrcamen","_o$obra3$obrasOrcamen2","_o$obra4","_o$descricao4","_o$obra5","_o$obra5$obrasCobranc","_o$obra5$obrasCobranc2","sx","date","now","duration","diff","days","hours","minutes","seconds","relativeTime","formatRelativeTime","includes","handleNavigation","preventDefault","NotificationsNoneOutlinedIcon","AppBar","Toolbar","lgDown","selectLoja","InputIcon","lgUp","MenuIcon","shiftContent","Main","useTheme","isDesktop","useMediaQuery","defaultMatches","openSidebar","setOpenSidebar","shouldOpenSidebar","Topbar","handleSidebarOpen","Sidebar","handleSidebarClose","Minimal","alignContent","imageContainer","image","maxHeight","buttonContainer","Error404","mobileDevice","down","curHr","getHours","summaryButton","barChartIcon","values","statistics","notifications","summary","titleCard","flex","Home","CustomAvatar","CardAnexosPendentes","totalAnexosPendentes","AttachFileIcon","CardObra","obrasPendentes","MiscellaneousServicesIcon","CardObrasAindaNaoReceberamOrcamento","obrasAindaSemOrcamento","ScheduleSendIcon","CardHorasRecebimentoOrcamentos","CardInfosValues","indicator","_state$dashboard","_state$dashboard$dash","Icon","CardUsuarios","CardOrcamentosEnviados","orcamentosEnviados","MonetizationOnOutlinedIcon","CardObrasRecebendoOrcamentos","obrasRecebendoOrcamento","EngineeringOutlinedIcon","CardEmpresas","CardMedicoesPendentes","totalMedicoesPendentes","PendingActionsIcon","chartContainer","GraficoObrasPorMesChartCard","Stars","avaliacoes","mediaNota","fullStars","Math","floor","decimalPart","starArray","FontAwesomeIcon","faStar","clipPath","GridStyled","CardListaObraInteresse","setPage","limit","setLimit","term","setTerm","debounceTerm","useDebounce","order","direction","fetchData","Status","Input","placeholder","_o$titulo","_o$descritivo","_o$tipoObra","_o$tipoObra$nome","_o$obrasAvaliacoes$","VisibilityIcon","apply","rowSpan","TablePagination","count","labelRowsPerPage","labelDisplayedRows","onPageChange","handleChangePage","newPage","rowsPerPage","onRowsPerPageChange","parseInt","connectedDashboardPage","backgroundRepeat","gridCards","match","pendentes","setPendentes","modalHelp","setModalHelp","toggleModalHelp","useLayoutEffect","messageTime","HelpIcon","float","LocalAtmOutlined","PriceCheck","MonetizationOnIcon","TitleContent","subTitle","telaManual","Content","AccessDenied","BlockIcon","connectedEmpresaPage","ready","setReady","handleChangeLimit","ConfirmationText","totalAvaliacoes","EditIcon","handleClick","UsuarioEditModal","idempresa","formRef","createRef","handleChange","prop","ValidatorForm","onSubmit","payloadUsuario","handleSubmit","validators","errorMessages","autoComplete","SelectValidator","displayEmpty","labelId","MenuItem","selected","Badge","TabPanel","other","role","hidden","aria-labelledby","p","a11yProps","SwitchBlue","Switch","connectedEmpresaEditPage","textAlgin","uploadButton","backdrop","_props$empresa","_props$empresa2","_props$empresa3","_props$empresa4","isAnexo","useLocation","setIdOrgao","textOrgao","setTextOrgao","setIdCidade","textCidade","setTextCidade","valueOrgao","setValueOrgao","openOrgao","setOpenOrgao","valueEstado","setValueEstado","inputValueEstado","setInputValueEstado","valueCidade","setValueCidade","inputValueCidade","setInputValueCidade","modalUsuario","setModalUsuario","toggleUsuario","selectedTiposServicos","setSelectedTiposServicos","selectedEmpresaOrgaos","setSelectedEmpresaOrgaos","tiposServico","estados","optionsEstados","tabValue","setTabValue","interval","setInterval","clearInterval","IsProjeto","isTipoServicoSelected","_props$empresa5","isArray","selectedTipos","isEmpresaOrgaosSelected","_props$empresa6","_props$empresa6$empre","EditText","Tabs","handleChangeTab","Tab","form","inputProps","maxLength","isEmpty","row","required","multiline","minRows","placeItems","FormControlLabel","control","handleChangeTipoServico","prevSelected","validPrevSelected","newSelected","newSelecteds","handleChangeEmpresaOrgaos","newValueEstado","newInputValueEstado","newValueCidade","newInputValueCidade","isOptionEqualToValue","handleAddCidadeOnList","ts","faPlus","deleteIcon","faTrashAlt","onDelete","handleRemoveCidadeOnList","faUserPlus","fontWeigth","handleRecusaCadastroEmpresa","handleAprovaCadastroEmpresa","DoneIcon","EmpresaAnexoEdit","setKey","setFile","handleOpenFile","upload","setTimeout","event2","toString","dataValidade","toISOString","files","handleChangeFile","placeHolder","pathArray","nomeArquivo","CheckCircleIcon","CancelIcon","WatchLaterIcon","PictureAsPdfIcon","PhotoIcon","DescriptionIcon","TableViewIcon","AlertIcon","handleDelete","handleAprovaAnexo","handleReprovaAnexo","ModalRequestPasswordReset","setEmail","finishedTimeout","setFinishedTimeout","clearTimeout","currentEmail","DialogContentText","autoFocus","minLength","ImageButton","ButtonBase","opacity","GridCustom","heightModalL","heightModalM","heightModalS","ImageSrc","backgroundSize","backgroundPosition","Image","common","ImageBackdrop","_ref4","transitions","create","ModalChooseEmpresaOrgao","focusRipple","handleOpenModalTipoEmpresa","backgroundImage","pt","pb","handleOpenModalOrgaoCadastro","ModalChooseTipoEmpresa","handleOpenModalEmpresaCadastro","prestador","Copyright","Link","packageInfo","Login","constructor","super","this","setState","handleChangeBox","handleClickopenModalRequestPasswordReset","handleClickopenModalCadastroEmpresaOrgao","showPassword","submitted","componentDidMount","loggingIn","elevation","square","Checkbox","submit","LockOpenIcon","AddCircleOutlineRoundedIcon","handleOpenPublicMap","PersonPinCircleOutlinedIcon","connectedLoginPage","EmailVerification","refreshed","loggedIn","verificaEmail","query","indexOf","decodeURIComponent","PasswordReset","repeatPassword","handleChangePassword","handleChangeRepeatPassword","addValidationRule","loading","Container","CssBaseline","connectedPasswordResetPage","backButton","PasswordResetSuccess","handleOpenWeb","connectedPasswordResetSuccessPage","CustomGrid","CustomTypography","connectedEmpresaUsuarioEditPage","_location$search","_location$search2","_location$search3","_location$search4","isAutonomo","isFornecedor","isEngenheiro","engenheiro","aceiteTermos","setAceiteTermos","modalConfirm","setModalConfirm","_props$empresa5$empre","handleChangeUsuario","_tiposServico$","_tiposServico$2","paddingVertical","justifycontent","frameBorder","scrolling","connectedOrgaoUsuarioEditPage","orgaosOrgaos","bgcolor","InsumoModal","tipoTabela","isLoadingInsumoModal","nomeClasse","setNomeClasse","nomeUnidade","setNomeUnidade","Ano","Mes","Uf","TipoTabela","NomeClasse","NomeUnidade","aria-describedby","classe","Intl","NumberFormat","currency","valorOnerado","valorNaoOnerado","event1","filteredUnidades","event3","filteredTiposServicos","event4","event5","OpenInNewIcon","connectedManualPage","CustomCardActions","CustomGridButtonsAction","connectedManualEditPage","selectedTiposUsuarios","setSelectedTiposUsuarios","valueCategoria","setValueCategoria","inputValueCategoria","setInputValueCategoria","sort","b","localeCompare","_options$find","_options$find2","m","tiposUsuarios","isTipoUsuarioSelected","_props$manual","_props$manual$tiposUs","newValueCategoria","newInputValueCategoria","idManual","handleChangeTipoUsuario","connectedNotificacaoPage","automatic","setAutomatic","Automatica","dataHoraEnvio","handleDuplicate","FileCopyIcon","connectedModalNotificacaoFiltrosItensPage","selectedItems","setSelectedItems","setIdTipoUsuario","setOrder","setDirection","isLoadingTipoUsuario","totalRegistrosUsuarios","filtro","notificacoesFiltrosItens","idNotificaoFiltro","connectedModalNotificacaoUsuariosPage","dataHoraAbertura","connectedModalNotificacaoTestesPage","ModalNotificacaoTestes","selectedUsuarios","setSelectedUsuarios","idNotificaoTeste","SendIcon","connectedNotificacaoEditPage","setImages","setImagem","acao","handleClickOpenModalNotificacaoFiltrosItens","Backdrop","wrap","imageList","errorsUploadImage","taxaAbertura","totalNotificacoesUsuarios","LinearProgress","val","answer","switchFiltro","FilterListIcon","PersonIcon","ModalNotificacaoFiltrosItens","ModalNotificacaoUsuarios","connectedOrgaoPage","setStatus","buttons","FormControl","FormLabel","ButtonGroup","ultimoAcesso","idorgao","connectedOrgaoEditPage","selectedCidade","handleRecusaCadastroOrgao","handleAprovaCadastroOrgao","DivStyled","connectedObraPage","firstTimeAcessPage","setFirstTimeAcessPage","credenciada","setCredenciada","setIdObra","modalMotivo","setModalMotivo","toggleModalMotivo","Credenciada","param","RadioGroup","Radio","_props$authentication","_props$authentication2","_props$authentication3","orcamento","isWinner","CircleIcon","TurnedInNotIcon","CheckIcon","totalObraMedicoesPendentes","TimeIcon","handleOpenModalMotivo","ObraMotivoModal","pure","connectedObraAguardandoOrcamentoPage","RecebePropostas","StarRating","ratingClear","rating","setRating","setHover","changeNotaEvent","star","outline","setRatingProps","onMouseEnter","onMouseLeave","connectedObraEditPage","setRatingClear","empresas","setEmpresas","_response$data","r","handleEdit","ObraAjudaModal","formattedParametro","useMemo","__html","dangerouslySetInnerHTML","ObraConvocacaoObservacaoModal","aceitar","setObservacoes","setDiasPrazo","min","ObraConvocacaoModal","setIdEmpresa","setAceitar","modalConvocacao","setModalConvocacao","toggleModalConvocacao","handleChangeStatusConvocacao","aprovar","allowOutsideClick","handleOpenModalObservacoes","convocacoes","UsuarioResponsavelAddModal","setResponsibleRegistereds","setNome","cargo","setCargo","handleAddResponsavel","prevItems","CustomInput","_templateObject","_taggedTemplateLiteral","ObraDiarioAddModal","currentDate","filesUploaded","setFilesUploaded","responsibleRegistereds","openFile","setOpenFile","modalAddUsuario","setModalAddUsuario","toggleModalAddUsuario","handleRemoveOnListUser","multiple","uploadPromises","all","uploadedFiles","successfulUploads","handleUploadClickFiles","htmlFor","Fab","handleRemoveOnListFile","ObraDiarioModalEquipe","equipe","ObraDiarioModalAnexo","anexos","handleOpenImagem","endsWith","ObraDiarioEdit","isLoadingObraDiario","setAnexos","setEquipe","modalDiario","setModalDiario","toggleModalDiario","modalAnexos","setModalAnexos","toggleModalAnexos","modalEquipe","setModalEquipe","toggleModalEquipe","TitleText","handleOpenModalDiario","AddBoxIcon","handleDeleteDiario","handleOpenPdf","faFilePdf","handleOpenModalAnexos","faFile","handleOpenModalEquipe","faUsers","BorderLinearProgress","linearProgressClasses","colorPrimary","mode","bar","CustomGrid2","connectedObraSummaryCard","_props$obra$usuario","_props$obra$usuario$n","_props$obra","_props$obra2","_props$obra3","_props$obra$orgao","_props$obra$orgao$nom","_props$obra$usuarioMu","isOrcamento","obraCarregada","empenhos","_state$obra","results","formattedAddress","WarningAmberOutlinedIcon","ml","CarouselImage","openCarousel","Carousel","autoPlay","indicators","fullHeightHover","navButtonsAlwaysVisible","ObraOcorrenciasList","_props$obraOcorrencia","_props$obraOcorrencia2","_props$obraOcorrencia3","_props$obraOcorrencia4","formChat","carouselVisible","setCarouselVisible","selectedEmpresa","ocorrencia","ocorrencias","_ocorrencias","rightSide","origem","obrasOcorrenciasAnexos","marginY","_location$state","_location$state2","_props$obra$tipoObra","_props$obra2$tipoObra","isOpen","setIsOpen","isTyping","setIsTyping","initialHorasRecebimentoOrcamentos","setInitialHorasRecebimentoOrcamentos","payloadObra","setPayloadObra","setIsObra","setIsProjeto","setIsReparo","searchParams","isCronograma","isCobranca","horasRecebimentoOrcamentosParametro","duracaoObra","modalObraConvocacao","setModalObraConvocacao","toggleObraConvocacao","modalAlteracaoHorasRecebimentoOrcamentos","setModalAlteracaoHorasRecebimentoOrcamentos","toggleModalAlteracaoHorasRecebimentoOrcamentos","subOrgaos","_state$subOrgao","notIsUsuarioOrgaoPublico","handleTextFieldChange","_obra$tipoObra","_obra$tipoObra2","_obra$tipoObra3","reparo","isObraParam","fakeEvent","add","tipoObraNome","artigo","ObraSummaryCard","freeSolo","filterSelectedOptions","InputProps","handleInputChange","endAdornment","InputAdornment","step","MapContainer","handleRecusaObra","handleAprovaObra","handleDevolveObraRevisao","EditNoteIcon","WorkOutlineRoundedIcon","ObraEtapaEdit","ObraEtapaItemEdit","ObraAnexoEdit","fullwidth","ObraOrcamentoItemEdit","ObraMedicaoEdit","ObraFinanceiroEdit","ObraAvaliacaoEdit","ObraMotivoAlteracaoHorasRecebimentoOrcamentosModal","_props$obraEtapa","duracaoEtapa","setDuracaoEtapa","newDataTermino","duracao","_n$periodos","itensObra","setItensObra","disabledEdicao","setDisabledEdicao","d","year","month","setIdObraEtapa","orgaoSelecionado","_state$usuarioOrgao","modalId","setModalId","changeEstadoEvent","changeTabelaEvent","Number","isNaN","changeMesEvent","_tabelaInsumoMes$","changeAnoEvent","handleCalculaValorReferenciaTotal","handleCalculaValorReferenciaTotalObra","updateItensObra","handleFinalizaLancamentoItens","itens","acc","etapa","arrayValorTotal","valorTotalItens","accumulator","handleCalculaValorReferenciaTotalObraSemBdi","InfoIcon","handleOpenModal","_props$obra$tipoObra2","_props$obra$tipoObra3","startAdornment","ChecklistRtlIcon","handleAlteraStatusParaEmLancamento","KeyboardReturnIcon","ModalCronograma","table","setTable","columns","rows","setSelected","getTableSize","_obra$obrasEtapas","innerColumns","innerRows","forEach","_etapa$periodos","openModalCronograma","cellPadding","_etapa$periodos2","total","_item$obrasOrcamentos","itemOrc","cells","maximumFractionDigits","porc","handleChangeSelected","borderBottomColor","_item$obrasOrcamentos2","cells2","_item$obrasOrcamentos3","connectedModalCronograma","CardTableFinanceiro","valorEmAberto","valorPago","valorTotal","textValorTotal","valueEmpresa","setValueEmpresa","inputValueEmpresa","setInputValueEmpresa","openNf","setOpenNf","optionsEmpresa","empresaListar","_state$obra2","totalValorOrcamentosAprovados","setTotalValorOrcamentosAprovados","pagarEmpenho","setPagarEmpenho","idEmpenho","setIdEmpenho","_props$obra$obrasOrca","realizarPagamentoEmpenho","isItemPaid","handleOpenVisualiza","isEmpenhoPaid","_n$empenho","verifyObraHasEmpenho","totalEmAbertoFinanceiro","totalPagoFinanceiro","totalCobrancasEmitidasFinanceiro","TitleTextProgresso","SegHeaderProgresso","TitleTextEmpenho","SegHeaderEmpenho","handleUploadNotaFiscal","_props$obra4","_props$obra$obrasOrca2","_props$obra5","_props$obra5$obrasOrc","orc","handleOpenVisualizaNF","handleRealizaPagamento","_n$empenho2","handleRealizaPagamentoEmpenho","connectedObraFinanceiroEditPage","ObraMedicaoAddModal","_props$authentication4","_props$authentication5","_props$authentication6","_props$authentication7","_props$authentication8","_props$authentication9","_props$authentication10","_props$authentication11","_props$authentication12","_obraEtapaItem$descri","_props$unidade","_props$unidade$unidad","_props$unidade2","_props$unidade2$unida","_props$authentication26","_props$authentication27","_props$authentication28","_props$authentication29","_props$authentication30","_props$authentication31","_obraEtapaModal$titul","_obraEtapaModal$obras","_props$authentication32","_props$authentication33","_props$authentication34","_props$authentication35","_props$authentication36","_props$authentication37","percentual","obraEtapaModal","imagesUploaded","setImagesUploaded","setDescricao","setTitulo","setQuantidade","percentualValor","setPercentualValor","obraOcorrenciaAnexo","handleUploadClickImage","handleUploadClickFile","_props$authentication17","_props$authentication18","_props$authentication19","_props$authentication20","_props$authentication21","_props$authentication22","_props$authentication23","_props$authentication24","_props$authentication25","listaItens","_props$authentication15","_props$authentication16","_props$authentication13","_props$authentication14","idObraMedicao","obrasMedicoesEtapasItensAnexos","sistema","_props$unidade3","_props$unidade3$unida","_o$obrasMedicoesEtapa","object","_object$obraMedicao","AddPhotoAlternateIcon","ImageList","cols","ImageListItem","updatePercentualValorEtapa","perc","updatePercentualValor","max","quant","updateQuantidade","tooltips","callbacks","tooltipItems","round","scales","yAxes","ticks","callback","labels","ObraMedicaoEditModalAnexo","idObraMedicaoEtapaItem","ObraMedicaoEditModal","_obraMedicaoEtapaItem2","_obraMedicaoAnexo$obr2","medicao","razoesSociaisProcessadas","Set","setIdObraMedicaoEtapaItem","obraMedicaoEtapaItem","setObraMedicaoEtapaItem","idObraMedicaoAnexo","setIdObraMedicaoAnexo","obraMedicaoAnexo","setObraMedicaoAnexo","toggleAnexos","modalAnexosImagem","setModalAnexosImagem","toggleAnexosImagem","CircularProgressWithLabel","AttachmentIcon","_n$empresa","_n$empresa2","_obraMedicaoEtapaItem","_obraMedicaoAnexo$obr","ObraMedicaoMotivoModal","_medicao$obrasMedicoe","aprovaMedicao","setMotivo","_filesUploaded$","_graficoEvolucaoObra$","isLoadingObraMedicao","setAprovaMedicao","modalMedicao","setModalMedicao","setMedicao","setIdObraMedicao","toggleModalMedicao","handleOpenModalMedicao","aprovaRecusa","getTotalConclusao","qntd","_item$obrasMedicoesEt","TitleTextGraficoObra","SegHeaderGraficoObra","handleAdicionaMedicaoItem","_n$obrasMedicoesEtapa","_n$obrasMedicoesEtapa2","_n$obrasMedicoesEtapa3","handleAprovaMedicao","handleReprovaMedicao","_item$obrasMedicoesEt2","_object$obraMedicao2","Line","generateData","datasets","fill","series","tension","connectedObraMedicaoEditPage","connectedObraMedicaoListObrasEtapasItensPage","setObraEtapaItem","setObraEtapaModal","setPercentual","ListMedicoesText","SegHeaderMedicoes","handleOpenModalEtapas","_item$obrasMedicoesEt3","valorOrcamentoAprovado","isItensNaoAprovados","itensAprovados","motivoInvalido","naoMenorPreco","curr","isMenorPreco","Itens","Motivo","dataLimiteRecebimentoOrcamentos","setDataLimiteRecebimentoOrcamentos","modalOrcamentoMotivo","setModalOrcamentoMotivo","setValorOrcamentoAprovado","idOrcamentoAprovado","setIdOrcamentoAprovado","toggleModalOrcamentoMotivo","textObra","expanded","setExpanded","setItensAprovados","idObraOrcamento","dataLimite","isOrcamentoAtrasado","dataOrcamento","dataObra","isItemSelected","handleExportExcel","faFileExcel","SquareIcon","handleClickEmpresaOrcamento","idOrcamento","valorOrcamento","itensAprovadosEmpresa","n1","changeEtapasItensEvent","existingRow","existingItem","subItems","_row$items$0$subItems","newExpanded","handleExpand","ExpandLess","ExpandMore","_n$obrasOrcamentosIte","_n$obrasOrcamentosIte2","_n$obrasOrcamentosIte3","_n$obrasOrcamentosIte4","_n$obrasOrcamentosIte7","_n$obrasOrcamentosIte8","_n$obrasOrcamentosIte9","_n$obrasOrcamentosIte10","_n$obrasOrcamentosIte11","_n$obrasOrcamentosIte12","_n$obrasOrcamentosIte5","_n$obrasOrcamentosIte6","totalValue","_o$obrasOrcamentosIte","_o$obrasOrcamentosIte2","formattedValue","canRevert","isAdmin","isInExec","arrEvent","isMoreThanDay","hasMedicao","handleAprovaOrcamento","connectedObraOrcamentoItemEditPage","clickElement","element","alert","inicio","fim","diasNoMes","timebar","montarMeses","meses","toLocaleDateString","useAsGrid","Timeline","scale","tracks","newArray","flatMap","elements","n2","getEtapas","scrollToNow","ContextEmpenhosInfos","createContext","ContextEmpenhosInfosProvider","empenhosInfos","setEmpenhosInfos","getEmpenhosInfos","useCallback","Provider","CardNumberEmpenhos","comArquivo","comNf","connectedEmpenhoPage","handleOpenArquivo","_n$obrasEmpenhos","_n$orgao$nome","_calcValorTotalEmpenh","_o$obra2$obrasOrcamen","_o$obra2$obrasOrcamen2","_o$obra3$titulo","_o$obra5$descritivo","_o$obra6","InfoOutlinedIcon","InsertDriveFileOutlinedIcon","em","_em$obrasEmpenhos","subtotal","os","_os$obra","_os$obra$obrasOrcamen","subSubtotal","calcValorTotalEmpenho","connectedEmpenhoSummaryCardPage","_props$empenho2","_props$empenho$orgao","_props$empenho$orgao$","_props$empenho$empres","_props$empenho$empres2","_props$empenho3","_props$empenho3$valor","_props$empenho","_props$empenho$obrasE","TableCellStyled","TableCellStyled2","connectedEmpenhoEditPage","fileNF","setFileNF","idEmpresas","setIdEmpresas","setObrasEmpenhos","obrasPorEmpresa","expandedEmpresaId","setExpandedEmpresaId","_o$obrasOrcamentos$","empresaId","fileUpload","returnNameArquivoEmpenho","returnNameArquivoNF","_props$empenho4","_props$empenho5","_props$empenho6","EmpenhoSummaryCard","ordensServicosEmpenhos","objArray","empresaIds","every","areObjectsEqual","_obrasEmpresa$","_obrasEmpresa$$obrasO","_obrasEmpresa$$obrasO2","_obrasEmpresa$$obrasO3","obrasEmpresa","empresaNome","isExpanded","ExpandMoreIcon","handleToggle","idEmpresaSelected","handleChangeFileNotaFiscal","connectedEmpresaAnexoPage","_n$empresa$razaoSocia","connectedObraCobrancaPage","_n$obra$orgao","_n$obra","ObraCobrancaEdit","_props$obraCobranca$e","_props$obraCobranca$e2","_props$obraCobranca","_props$obraCobranca$o","_props$obraCobranca$o2","_props$obraCobranca2","_props$obraCobranca2$","_props$obraCobranca2$2","_props$obraCobranca3","_props$obraCobranca3$","setValor","setItems","itemsValor","setItemsValor","sum","currentValue","SegTitle","Title","PageForm","readOnly","frameborder","_n$obrasMedicoesEtapa4","valorItem","handleCheckboxChange","isChecked","updatedItems","updatedItemsValor","indexValor","splice","handleCheckboxSelectAll","newItems","newItemsValor","ChecklistIcon","ObraCobrancaEditConfirmationModal","connectedObraCobrancaEditPage","Text","connectedObraMedicaoPage","_obraMedicao$length","connectedObraOrcamentoPage","ObraOrcamentoAnexoEmpresaModal","handleOpen","CustomButton2","connectedObraOrcamentoEditPage","_props$obraOrcamento6","_props$obraOrcamento7","_props$obraOrcamento8","_props$obraOrcamento9","_props$obraOrcamento$","_props$obraOrcamento$2","_props$obraOrcamento10","_props$obraOrcamento11","cont","setCont","setOptionsEmpresa","setValorOrcamento","handleChangeAutoCompleteEmpresa","day","getValor","quantidadeItem","_props$obraOrcamento4","_props$obraOrcamento5","_n$obrasEtapasItens","handleChangeValor","_props$obraOrcamento3","findIndex","x","novosValores","parseFloat","oe","_oe$valorReferencia","_oe$unidade","_oe$valorReferenciaCo","_props$obraOrcamento2","getValorOrcado","_props$obraOrcamento","getValorTotalOrcado","connectedBdiPage","_parametro$valor","connectedCalcMatPage","connectedLinksUteisPage","connectedParametroPage","connectedParametroEditPage","editor","setContent","JoditEditor","readonly","tabIndex","onBlur","newContent","connectedDiarioPage","connectedPoliticaPrivacidadePage","connectedMapaPublicoPage","emptyList","listItem","_props$obra$obra$","formMapRef","orgaos","setFiltro","handleOpenCarousel","MapPublic","gridTemplateRows","gridRow","LoadingButton","overflowX","ListItemButton","CollectionsSharpIcon","TitleContentInformation","connectedRelatorioEmpresaPorOrgaoPage","setRazaoSocial","setCnpj","inputValueOrgao","setInputValueOrgao","optionsOrgaos","selectedOrgao","handleChangeAutoCompleteOrgao","RazaoSocial","Cnpj","newInputValueOrgao","optionOrgao","nomeEmpresa","getTotal","StyleSheet","details","View","footer","fixed","pageNumber","totalPages","borderTop","borderLeft","borderRight","cell","CustomPage","connectedRelatorioEmpresaPorOrgaoPrintPage","PDFViewer","Document","onRender","onRendered","orientation","connectedRelatorioEmpresaOrcamentoEnviadoPage","openEmpresa","setOpenEmpresa","optionsEmpresas","newInputValueEmpresa","tituloObra","connectedRelatorioEmpresaOrcamentoEnviadoPrintPage","connectedRelatorioUsuariosPage","Nome","Email","AdminPanelSettingsIcon","WorkIcon","nomeUsuario","connectedRelatorioOcorrenciaObraPage","valueObra","setValueObra","inputValueObra","setInputValueObra","openObra","setOpenObra","optionsObras","handleChangeAutoCompleteObra","selectedObra","newInputValueObra","descricaoOcorrencia","usuarioEmail","connectedRelatorioOcorrenciaObraPrintPage","descritivoObra","connectedRelatorioUsuariosPrintPage","connectedRelatorioEmpresaPorTipoServicoPage","valueTipoServico","setValueTipoServico","inputValueTipoServico","setInputValueTipoServico","openTipoServico","setOpenTipoServico","setIdTipoServico","optionsTiposServicos","handleChangeAutoCompleteTipoServico","selectedTípoServico","IdTipoServico","newInputValueTipoServico","optionTipoServico","connectedRelatorioEmpresaPorTipoServicoPrintPage","connectedSubOrgaoPage","connectedSubOrgaoEditPage","setIdUsuario","textUsuario","setTextUsuario","valueUsuario","setValueUsuario","inputValueUsuario","setInputValueUsuario","newValueUsuario","newInputValueUsuario","handleAddUsuarioOnList","handleRemoveUsuarioOnList","connectedUsuarioPage","_n$usuariosOrgaos$","_n$usuariosOrgaos$$or","_n$usuariosOrgaos$$or2","_n$usuariosEmpresas$","handleVerificaEmailUsuario","handleRequestPasswordReset","connectedUsuarioEditPage","_log$usuario$nome","emailEditable","setEmailEditable","InsertEmailText","EditEmailText","SegHeaderEmail","handleSubmitUsuarioEmail","column","cellCabecalho","cellLastCabecalho","cellLastCabecalhoAlignLeft","cellRow","cellLastRow","cellLabel","cellValue","imageAnexo","connectedObraDiarioPrintPdfPage","_obraDiario$obra","_obraDiario$obra$orga","_obraDiario$obra2","_obraDiario$obra3","_obraDiario$obra3$obr","equipes","imageBase64","setImageBase64","anexosCarregadosPrint","setAnexosCarregadosPrint","anexosCarregados","setAnexosCarregados","fetchImageAsBase64","fetch","reader","FileReader","onloadend","result","readAsDataURL","drmEngenharia","loadedAnexos","anexo","test","base64Image","base64","Boolean","loadImagesParallel","borderRightWidth","borderRightColor","borderRightStyle","ObraDiarioPrintPdfFooter","Routes","DashboardView","exact","MainLayout","path","ManualView","ManualEditView","SubOrgaoView","SubOrgaoEditView","NotificacaoView","NotificacaoEditView","PoliticaPrivacidadeView","MapaPublicoView","UsuarioView","UsuarioEditView","EmpresaView","EmpresaEditView","EmpresaUsuarioEditView","EmpenhoView","EmpenhoEditView","OrgaoUsuarioEditView","ObraDiarioPrintPdfView","OrgaoView","OrgaoEditView","ParametroView","ParametroEditView","RelatorioOcorrenciaObraView","RelatorioOcorrenciaObraPrintView","RelatorioEmpresaOrcamentoEnviadoView","RelatorioEmpresaOrcamentoEnviadoPrintView","RelatorioEmpresaPorOrgaoView","RelatorioEmpresaPorOrgaoPrintView","RelatorioEmpresaPorTipoServicoView","RelatorioEmpresaPorTipoServicoPrintView","RelatorioUsuariosView","RelatorioUsuariosPrintView","ObraView","ObraMateriaisView","ObraProjetoTecnicoView","ObraReparoPrevencaoView","ObraMedicaoView","EmpresaAnexoView","ObraMedicaoListObrasEtapasItensView","ObraAguardandoOrcamentoView","ObraCobrancaView","ObraCobrancaEditView","ObraEditView","ObraOrcamentoView","ObraOrcamentoEditView","BdiView","DiarioView","LinksUteisView","CalcMatView","LoginView","EmailVerificationView","PasswordResetView","PasswordResetSuccessView","Error404View","MinimalLayout","Tawkto","s","document","charset","setAttribute","head","appendChild","App","LocalizationProvider","dateAdapter","AdapterDayjs","ThemeProvider","ConfirmProvider","Mensagens","Router","initialState","obrasAprovadaEmAndamento","obrasRecusadas","obrasConcluidas","totalUsuarios","graficoObras","graficoObrasPorMes","valorTotalEmpenhos","valorTotalEmpenhosEmAberto","valorTotalEmpenhosPagos","isLoadingObrasEmAberto","isLoadingGraficoObras","empresaCidade","notificacoesFiltros","idObraOcorrencia","permissaoId","checkedAll","usuarioId","foto","appReducer","combineReducers","action","openModalCadastroEmpresaCidade","notificacaoTeste","obraEtapasEtapasItens","obraobraEtapa","obraobraEtapaItem","categoriaId","formReducer","rootReducer","routing","persistConfig","storage","blacklist","persistedReducer","persistReducer","reducer","devTools","__REDUX_DEVTOOLS_EXTENSION__","store","applyMiddleware","thunk","multi","createStore","persistor","persistStore","ReactDOM","createRoot","getElementById","PersistGate"],"mappings":"oFAAAA,EAAOC,QAAU,IAA0B,wC,2HCC3CD,EAAOC,QAAU,CACfC,QAAS,CACPC,OAAQ,oBAIVC,QAAS,mD,uLCLX,MAAMC,EAAQ,UAGC,OACbC,MAHY,UAIZD,QACAE,QAAS,CACPC,aAAcH,EACdI,KAAMC,SAAOC,KAAK,KAClBC,KAAM,UACNC,MAAOH,SAAOC,KAAK,MAErBG,UAAW,CACTN,aAAcH,EACdI,KAAM,UACNG,KAAM,UACNC,MAAO,WAETE,YAAa,CACXP,aAAcH,EACdI,KAAM,UACNG,KAAM,UACNC,MAAO,WAETG,QAAS,CACPR,aAAcH,EACdI,KAAMC,SAAOO,MAAM,KACnBL,KAAMF,SAAOO,MAAM,KACnBJ,MAAOH,SAAOO,MAAM,MAEtBC,KAAM,CACJV,aAAcH,EACdI,KAAMC,SAAOS,KAAK,KAClBP,KAAMF,SAAOS,KAAK,KAClBN,MAAOH,SAAOS,KAAK,MAErBC,QAAS,CACPZ,aAAcH,EACdI,KAAMC,SAAOW,OAAO,KACpBT,KAAMF,SAAOW,OAAO,KACpBR,MAAOH,SAAOW,OAAO,MAEvBC,MAAO,CACLd,aAAcH,EACdI,KAAMC,SAAOa,IAAI,KACjBX,KAAMF,SAAOa,IAAI,KACjBV,MAAOH,SAAOa,IAAI,MAEpBC,OAAQ,CACNjB,QAAS,WAEXkB,KAAM,CACJlB,QAASG,SAAOgB,SAAS,KACzBZ,UAAWJ,SAAOgB,SAAS,KAC3BC,KAAM,UACNtB,MAAOA,GAETuB,WAAY,CACVC,QAAS,UACTC,MAAOzB,GAET0B,KAAMrB,SAAOgB,SAAS,KACtBM,QAAStB,SAAOC,KAAK,MC9DR,GACbsB,GAAI,CACFC,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdC,GAAI,CACFN,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdE,GAAI,CACFP,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdG,GAAI,CACFR,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdI,GAAI,CACFT,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdK,GAAI,CACFV,MAAOC,EAAQV,KAAKlB,QACpB6B,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdM,UAAW,CACTX,MAAOC,EAAQV,KAAKlB,QACpB8B,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdO,UAAW,CACTZ,MAAOC,EAAQV,KAAKX,UACpBsB,WAAY,IACZC,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdQ,MAAO,CACLb,MAAOC,EAAQV,KAAKlB,QACpB8B,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdS,MAAO,CACLd,MAAOC,EAAQV,KAAKX,UACpBuB,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdU,MAAO,CACLf,MAAOC,EAAQV,KAAKX,UACpBuB,SAAU,OACVC,cAAe,UACfC,WAAY,QAEdW,OAAQ,CACNhB,MAAOC,EAAQV,KAAKlB,QACpB8B,SAAU,QAEZc,QAAS,CACPjB,MAAOC,EAAQV,KAAKX,UACpBuB,SAAU,OACVC,cAAe,SACfC,WAAY,QAEda,SAAU,CACRlB,MAAOC,EAAQV,KAAKX,UACpBuB,SAAU,OACVD,WAAY,IACZE,cAAe,SACfC,WAAY,OACZc,cAAe,aAEjBC,WAAY,CACV,UACA,gBACA,qBACA,aACA,SACA,mBACA,QACA,aACA,cACA,YACA,SACA,SACA,sBACA,mBACA,qBACAC,KAAK,MC5GM,GACbC,KAAM,CACJtB,MAAOC,EAAQJ,KACf,UAAW,CACT0B,gBAAiB,yB,OCCR,GACbC,UCRa,CACbC,UAAW,CACTC,UACE,8FACFH,gBAAiB,YDKnBI,gBACAC,SEVa,CACbC,WAAY,CACVH,UAAW,mEFSbI,aGRa,CACbR,KAAIS,wBAAA,GACCC,EAAWjB,OAAK,IACnBkB,aAAa,aAADC,OAAejC,EAAQH,YHMrCqC,aIVa,CACbb,KAAM,CACJC,gBAAiB/C,SAAOC,KAAK,MJS/B2D,cKba,CACbC,aAAc,CACZC,aAAc,KCiBHC,MAbDC,YACZ,CACEvC,UACA+B,aACAS,YACAC,OAAQ,CACNC,OAAQ,KACRC,OAAQ,OAGZC,K,6DCTgBC,YAAYP,IAAK,CACjCjB,KAAM,CACJyB,aAAc,MACdC,WAAY,SACZC,QAASV,EAAMW,QAAQ,GACvBC,QAAS,OACTC,UAAW,KAEbvD,KAAM,CACJwD,YAAad,EAAMW,QAAQ,GAC3BlD,MAAOuC,EAAMtC,QAAQV,KAAKX,WAE5B0E,MAAO,CACLC,SAAU,EACVpD,SAAU,OACVE,WAAY,OACZD,cAAe,c,qCClBboD,EAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,eACTJ,aAAc,MACdQ,SAAU,EACVE,WAAY,GAEdC,GAAI,CACFC,OAAQpB,EAAMW,QAAQ,GACtBU,MAAOrB,EAAMW,QAAQ,IAEvBW,GAAI,CACFF,OAAQpB,EAAMW,QAAQ,GACtBU,MAAOrB,EAAMW,QAAQ,IAEvBY,GAAI,CACFH,OAAQpB,EAAMW,QAAQ,GACtBU,MAAOrB,EAAMW,QAAQ,IAEvBa,QAAS,CACPxC,gBAAiBgB,EAAMtC,QAAQ8D,SAEjC1F,QAAS,CACPkD,gBAAiBgB,EAAMtC,QAAQ5B,QAAQK,MAEzCM,KAAM,CACJuC,gBAAiBgB,EAAMtC,QAAQjB,KAAKN,MAEtCQ,QAAS,CACPqC,gBAAiBgB,EAAMtC,QAAQf,QAAQR,MAEzCsF,OAAQ,CACNzC,gBAAiBgB,EAAMtC,QAAQb,MAAMV,MAEvCI,QAAS,CACPyC,gBAAiBgB,EAAMtC,QAAQnB,QAAQJ,SAIrCuF,EAAgBC,IACpB,MAAM,UAAEC,EAAS,KAAEC,EAAI,MAAEpE,GAAmBkE,EAATG,EAAIC,YAAKJ,EAAKK,GAE3CC,EAAUhB,IAEhB,OACEiB,IAAAC,cAAA,OAAAC,OAAAC,OAAA,GACMP,EAAI,CACRF,UAAWU,kBACT,CACE,CAACL,EAAQlD,OAAO,EAChB,CAACkD,EAAQJ,IAAQA,EACjB,CAACI,EAAQxE,IAASA,GAEpBmE,OAmBRF,EAAaa,aAAe,CAC1BV,KAAM,KACNpE,MAAO,W,uCCtDM+E,MArBUb,IACvB,MAAQc,OAAQC,EAAQC,UAAWC,GAAuBjB,EAATG,EAAIC,YAAKJ,EAAKK,GAE/D,OACEE,IAAAC,cAACU,QAAKT,OAAAC,OAAA,GACAP,EAAI,CACRgB,OAASC,GACPb,IAAAC,cAACO,EAAM,KACLR,IAAAC,cAACS,EAAcG,Q,sCCsBVC,MA9BiBrB,IAC9B,MAAQc,OAAQC,EAAQC,UAAWC,EAAWK,KAAMC,GAAkBvB,EAATG,EAAIC,YAAKJ,EAAKK,GAE3E,OACEE,IAAAC,cAACU,QAAKT,OAAAC,OAAA,GACAP,EAAI,CACRgB,OAASC,GACPI,aAAaC,QAAQ,QACnBlB,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAK,IACnBpB,IAAAC,cAACO,EAAM,CAACO,KAAMC,GACZhB,IAAAC,cAACS,EAAcG,KAInBb,IAAAC,cAACoB,WAAQ,CACPC,GAAI,CAAEC,SAAU,SAAUC,MAAO,CAAEC,KAAMhC,EAAMiC,iB,QCf3CjC,G,OAAAA,GAAUO,IAAAC,cAAC0B,IAAc,O,+CCInCC,EAAoBC,mHAAYC,4BAmCvBC,MAjCDtC,IACZ,MAAM,MAAEuC,EAAK,SAAEC,GAAsBxC,EAATG,EAAIC,YAAKJ,EAAKK,GAEpCoC,ECVaC,qBAAWC,KDyB9B,OAbAC,oBAAU,KAKJC,OAAOC,MACTD,OAAOC,KAAK,SAAUX,EAAmB,CACvCY,UAAWN,EAAOR,SAASH,SAC3BkB,UAAWT,KAGd,CAACA,EAAOE,IAGTlC,IAAAC,cAAA,MAASL,EACPI,IAAAC,cAACyC,IAAM,KACL1C,IAAAC,cAAA,aAAQ+B,IAETC,I,4EE3BDlD,EAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,cACTH,WAAY,SACZoE,eAAgB,SAChB7D,SAAU,EACVE,WAAY,EACZV,aAAcR,EAAM8E,MAAMtE,aAC1B1C,WAAY,OACZF,SAAU,OACVwD,OAAQ,GACR2D,SAAU,GACVC,WAAY,SACZtE,QAASV,EAAMW,QAAQ,GAAK,IAE9BsE,QAAS,CACPzE,aAAc,GACdE,QAASV,EAAMW,QAAQ,QAIrBuE,EAASvD,IACb,MAAM,UAAEC,EAAS,QAAEuD,EAAO,MAAE1H,EAAK,MAAEqH,EAAK,SAAEX,EAAQ,MAAEiB,GAAmBzD,EAATG,EAAIC,YAAKJ,EAAKK,GAEtEC,EAAUhB,IAEVoE,EAAgB/C,kBACpB,CACE,CAACL,EAAQlD,OAAO,EAChB,CAACkD,EAAQgD,SAAoB,YAAVH,GAErBlD,GAGI0D,EAAU9F,YAAA,GAAQ4F,GAUxB,MARgB,cAAZD,GACFG,EAAWtG,gBAAkBvB,EAC7B6H,EAAW7H,MAAQ,SAEnB6H,EAAWC,OAAM,aAAA5F,OAAgBlC,GACjC6H,EAAW7H,MAAQA,GAInByE,IAAAC,cAACqD,IAAUpD,OAAAC,OAAA,GACLP,EAAI,CACRF,UAAWyD,EACXD,MAAOE,EACPH,QAAQ,aAEPhB,IAcPe,EAAM3C,aAAe,CACnB6C,MAAO,GACP3H,MAAOxB,SAAOC,KAAK,KACnBiJ,QAAS,YACTL,MAAO,UAGMI,I,2FCxCAO,MAnCO9D,IACpB,MAAM,QAAE+D,EAAO,SAAEC,EAAQ,SAAExB,EAAUiB,MAAOQ,EAAW,KAAE5J,GAAwB2F,EAAfkE,EAAU9D,YAAKJ,EAAKK,GAEtF,OACEhG,EAEEkG,IAAAC,cAAC2D,IAAM1D,OAAAC,OAAA,CACH+C,MAAK5F,YAAA,CACHsB,YAAa,EAAG9B,gBAAiB,OACjCvB,MAAO,OACP,UAAW,CACTuB,gBAAiB,OACjBvB,MAAO,SACHmI,GACVF,QAASA,EACTC,SAAUA,GACNE,GAEH1B,GAKHjC,IAAAC,cAAC2D,IAAM1D,OAAAC,OAAA,CACH+C,MAAK5F,YAAA,CAAIsB,YAAa,EAAGrD,MAAO,OAAQsI,YAAa,QAAWH,GAClEF,QAASA,EACTC,SAAUA,GACNE,GAEH1B,I,+ECjBT,MAAM6B,GAAeC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,YAyGKC,OAtGOC,IAAoN,IAAnN,OAAEC,EAAM,SAAEb,EAAQ,OAAEc,EAAM,cAAEC,EAAa,QAAEC,EAAO,WAAEC,EAAU,YAAEC,EAAW,gBAAEC,EAAe,iBAAEC,EAAgB,eAAEC,EAAc,YAAEC,EAAW,MAAEtF,EAAK,OAAEuF,EAAM,YAAEC,EAAW,QAAElF,EAAO,KAAEH,EAAI,UAAEF,EAAS,SAAEwF,GAAUb,EAKlO,OACErE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACkF,IAAc,CACbR,YAAaA,EACbF,QAASA,EACTC,WAAYA,EACZU,MAAOb,EACPd,SAAUA,EACV4B,SAAUb,EACVc,WAAW,WACXV,gBAAiBA,EACjBC,iBAAkBA,EAClBC,eAAgBA,GAEfS,IAAA,IAAC,cAAEC,EAAa,WAAEC,EAAU,UAAEC,GAAWH,EAAA,OACxCvF,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWK,EAAQlD,KAAMqG,MAAO,CAAErF,aAAc,MAC9DmC,IAAAC,cAAC2F,KAAW1F,OAAAC,OAAA,GAAKuF,EAAS,CAAEhG,UAAWK,EAAQ8F,UAC5CJ,EACCzF,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6F,KAAsB,CACrBvK,MAAM,UACN2H,MAAO,CAAExH,SAAU,MAErBsE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,WAAU,yBAK3CyE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC8F,KAAO,CACN/D,MACW,MAATvC,GACY,MAAVuF,GACU,IAAVA,GACCvB,GAEAA,GACD,oCAFE,gCAKNzD,IAAAC,cAAC6D,GAAY,CACX1C,IAAgB,IAAV4D,GAA0B,MAAVA,EAAiBA,EAAOgB,OAAOhB,EAAOiB,YAAY,KAAMjB,EAAOkB,OAASlB,EAAOiB,YAAY,MAAQ,GACzHzC,SAAUC,GAAY+B,EACtBvC,QAAQ,UACRQ,SAAUA,EACV/D,UAAWK,EAAQoG,OAEnBC,IAAKpB,GAEU,MAAdvF,EAAM4G,KAAepB,EAAYxF,EAAM4G,MAAQpB,EAAYxF,EAAM6G,UAGtEtG,IAAAC,cAACqD,IAAU,CACTiD,MAAM,SACN7G,UAAWK,EAAQsG,KACnBzI,cAAY,EACZqF,QAAQ,UAOdQ,GACAzD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,CAACvD,MAAO,CAClBP,eAAgB,UACf4D,MAAM,UACPvG,IAAAC,cAACsD,EAAY,CAAC5D,KAAK,QAAQsD,QAAQ,WAAWC,MAAO,CAAEP,eAAgB,UAAYa,QAASgC,GACxFlB,EACA7E,GAASuF,EAAS,+BAAiC,yBAD1CvF,GAASuF,EAAS,gBAAkB,mBAGhDvF,GAASuF,GACRhF,IAAAC,cAACsD,EAAY,CAAC5D,KAAK,QAAQsD,QAAQ,WAAWO,QAASuB,GACnDT,EAA4B,wBAAnB,uBAS3BtE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAY1H,MAAM,WAAU,6CAxFjCmL,EAyFoC/B,EAxF9C+B,EAAK,SAwFsDC,QAAQ,GAAG,QAE3E3G,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAY1H,MAAM,WAAU,8BAC3BqJ,EAAgB,IAAEC,EAAiB,OAExD7E,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAY1H,MAAM,WAAU,qBAC3BmJ,EAAW9H,KAAK,MAAMgK,gBA/F/C,IAAmBF,G,wDCxBd,MAAMG,GAAUC,kCCwBVC,GAAW3B,IACtB,GAAc,OAAVA,QAA4B4B,IAAV5B,EACpB,OAAOA,EACJ6B,QAAQ,MAAO,IACfA,QAAQ,cAAe,SACvBA,QAAQ,cAAe,SACvBA,QAAQ,mBAAoB,SAC5BA,QAAQ,gBAAiB,OAGnBC,GAAY9B,IACvB,GAAc,OAAVA,QAA4B4B,IAAV5B,EACpB,OAAOA,EACJ6B,QAAQ,MAAO,IACfA,QAAQ,cAAe,SACvBA,QAAQ,cAAe,SACvBA,QAAQ,cAAe,SACvBA,QAAQ,cAAe,SACvBA,QAAQ,gBAAiB,OAInBE,GAAa/B,IACxB,GAAc,OAAVA,QAA4B4B,IAAV5B,EACpB,OAAOA,EACJ6B,QAAQ,MAAO,IACfA,QAAQ,cAAe,WACvBA,QAAQ,cAAe,SACvBA,QAAQ,sBAAuB,WAC/BA,QAAQ,gBAAiB,OCtDnBG,GACJ,EAQIC,GACC,KADDA,GAED,IAFCA,GAGW,IAHXA,GAIS,IAJTA,GAKD,IALCA,GAMA,IANAA,GAOD,IAPCA,GAQF,IAREA,GASF,IATEA,GAUE,IAVFA,GAWE,KASFC,GAIK,EAJLA,GAKM,EAKNC,GAAqB,CAChCC,kBAAmB,EACnBC,gBAAiB,EACjBC,uBAAwB,EACxBC,qBAAsB,EACtBC,qBAAsB,EACtBC,uBAAwB,EACxBC,yBAA0B,EAC1BC,aAAc,EACdC,eAAgB,EAChBC,mBAAoB,GACpBC,iBAAkB,GAClBC,mBAAoB,GACpBC,iBAAkB,GAClBC,eAAgB,GAChBC,iBAAkB,GAClBC,eAAgB,GAChBC,iBAAkB,GAClBC,mBAAoB,GACpBC,mBAAoB,GACpBC,iBAAkB,GAClBC,iBAAkB,GAClBC,wBAAyB,GACzBC,4BAA6B,GAC7BC,eAAgB,GAChBC,aAAc,GACdC,eAAgB,GAChBC,oBAAqB,GACrBC,oBAAqB,GACrBC,eAAgB,GAChBC,cAAe,GACfC,iBAAkB,GAClBC,iBAAkB,GAClBC,uBAAwB,GACxBC,0BAA2B,GAC3BC,kBAAmB,GACnBC,iBAAkB,GAClBC,mBAAoB,GACpBC,qBAAsB,GACtBC,mBAAoB,GACpBC,sBAAuB,GACvBC,8BAA+B,GAC/BC,6BAA8B,GAC9BC,eAAgB,GAChBC,mBAAoB,GACpBC,mCAAoC,GACpCC,2BAA4B,GAC5BC,kBAAmB,GACnBC,SAAU,GACVC,aAAc,GACdC,iBAAkB,GAClBC,SAAU,GACVC,UAAW,GACXC,kBAAmB,GACnBC,6BAA8B,GAC9BC,+BAAgC,GAChCC,oCAAqC,GACrCC,gBAAiB,IAGNC,GACN,IADMA,GAEJ,IAFIA,GAGF,ICxEJ,SAASC,GAAoBC,EAAcC,EAAMC,GACtD,IACE,OAAIF,GAAgB9D,GACX,mBACE8D,GAAgB9D,GAClB,WACE8D,GAAgB9D,IAA8D,GAAvB+D,EAAKE,gBAAqC,GAAXD,EACxF,yBAA8B,OAAJD,QAAI,IAAJA,GAAqB,QAAjBG,EAAJH,EAAMI,uBAAe,IAAAD,OAAjB,EAAJA,EAAuBrF,QAAS,IACxDiF,GAAgB9D,IAA8D,GAAvB+D,EAAKE,eAC9D,cACEH,GAAgB9D,IAAkD,GAAXgE,EACzD,sBACEF,GAAgB9D,GAClB,oBACE8D,GAAgB9D,GAClB,uBACE8D,GAAgB9D,GAClB,eACE8D,GAAgB9D,GAClB,WACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,cAEA,oBArB0G,IAADkE,EAuBlH,MAAOE,GACP,MAAO,IAIJ,SAASC,GAAOP,GACrB,IACE,OAAIA,GAAgB9D,GACX,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UACE8D,GAAgB9D,GAClB,UAEA,UAET,MAAOoE,GACP,MAAO,IC7EIE,OAfKC,IAChB,MAKMC,EAAO,IAAIC,KAAKF,GAChBG,EAAMF,EAAKG,UACXC,EAPQ,CACV,UAAW,YAAa,WAAS,QAAS,OAAQ,QAClD,QAAS,SAAU,WAAY,UAAW,WAAY,YAKxCJ,EAAKK,YACjBC,EAAMN,EAAKO,cAGjB,MADmB,GAAA3O,OAAMsO,EAAG,QAAAtO,OAAOwO,EAAG,QAAAxO,OAAO0O,ICuLlC,IClMA,kBAACE,EAAIC,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG,GAAE,OACvBD,EACGpF,QAAQ,MAAO,KACfsF,MAAM,KACNC,MAAM,EAAG,GACTC,IAAKC,GAAMA,GAAKA,EAAE,GAAG9F,eACrBhK,KAAK,K,gCCJK,SAAS+P,GAAkBC,IACf,IAArBA,EAAMlI,WACRmI,IAAMlS,MAAM,oDACmB,IAAtBiS,EAAMjI,YACfkI,IAAMlS,MAAM,mDACiB,IAApBiS,EAAME,UACfD,IAAMlS,MAAM,uDACkB,IAArBiS,EAAMG,YACfF,IAAMlS,MAAM,kECRT,MCFMqS,GAAc,CACzBC,aAeF,WAEE,MAAMC,EAAS,IAAIC,gBAAgB7K,OAAOZ,SAAS0L,QAGnD,IAAIF,EAAOG,IAAI,QAWb,OAAO,KAXe,CAEtB,MAAMC,EAAYJ,EAAOK,IAAI,QAAQC,cAGrC,GAAkB,SAAdF,EACF,OAAO,EACF,GAAkB,UAAdA,EACT,OAAO,IA3BXG,UAMF,SAAmBC,GAKjB,MAJU,IAAMxN,OAAOyN,KAAKD,GAAKE,QAAO,SAAUC,EAAGC,GAEnD,OADAD,EAAEE,KAAKD,EAAI,IAAME,mBAAmBN,EAAII,KACjCD,IACN,IAAIjR,KAAK,MATZqR,iBAiCF,SAA0BC,GACxB,IAAIC,EAAQD,EAAEE,OAAOC,eACjBC,EAAMJ,EAAEE,OAAOG,aACnBL,EAAEE,OAAOhJ,MAAQ8I,EAAEE,OAAOhJ,MAAMwB,cAChCsH,EAAEE,OAAOI,kBAAkBL,EAAOG,IApClCG,iBAuCF,SAA0BP,GACxB,IAAIC,EAAQD,EAAEE,OAAOC,eACjBC,EAAMJ,EAAEE,OAAOG,aACnBL,EAAEE,OAAOhJ,MAAQ8I,EAAEE,OAAOhJ,MAAMoI,cAChCU,EAAEE,OAAOI,kBAAkBL,EAAOG,IA1ClCI,iBA6CK,SAA0BC,GAC/B,OAAOA,EAAQC,UAAU,OAAO3H,QAAQ,mBAAoB,MCnDvD,MAAM4H,GAAgBC,IAGzB,GAAY,KAFZA,EAAOA,EAAK7H,QAAQ,UAAW,KAEf,OAAO,EAEvB,GAAmB,IAAf6H,EAAK5I,OAAc,OAAO,EAG9B,IAAI6I,EAAUD,EAAK5I,OAAS,EACxB8I,EAAUF,EAAKG,UAAU,EAAGF,GAC5BG,EAAUJ,EAAKG,UAAUF,GACzBI,EAAO,EACPC,EAAML,EAAU,EAEpB,IAAK,IAAIM,EAAIN,EAASM,GAAK,EAAGA,IAC1BF,GAAQH,EAAQM,OAAOP,EAAUM,GAAKD,IAClCA,EAAM,IAAGA,EAAM,GAGvB,IAAIG,EAAYJ,EAAO,GAAK,EAAI,EAAI,GAAKA,EAAO,GAEhD,GAAII,GAAaL,EAAQI,OAAO,GAAI,OAAO,EAE3CP,GAAoB,EACpBC,EAAUF,EAAKG,UAAU,EAAGF,GAC5BI,EAAO,EACPC,EAAML,EAAU,EAEhB,IAAK,IAAIM,EAAIN,EAASM,GAAK,EAAGA,IAC1BF,GAAQH,EAAQM,OAAOP,EAAUM,GAAKD,IAClCA,EAAM,IAAGA,EAAM,GAKvB,OAFAG,EAAYJ,EAAO,GAAK,EAAI,EAAI,GAAKA,EAAO,GAExCI,GAAaL,EAAQI,OAAO,I,+BChCpCE,KAAOC,OAAO,S,oCCAP,SAASC,GAAa/U,GAC3B,OAA8B,MAA1BA,EAAMgV,SAASC,QACU,MAAvBjV,EAAMgV,SAAS9D,KACjBgB,IAAMlS,MAAMA,EAAMgV,SAAS9D,KAAM,CAC/BgE,UAAW,OAKbhD,IAAMlS,MAAM,qCAA4B,CACtCkV,UAAW,OAIRC,QAAQC,OAAOpV,EAAMgV,UAAYhV,EAAMqV,UAElB,MAA1BrV,EAAMgV,SAASC,QACjB/C,IAAMlS,MAAM,qEACLmV,QAAQC,OAAOpV,EAAMgV,UAAYhV,EAAMqV,UAElB,MAA1BrV,EAAMgV,SAASC,QACjB3O,aAAagP,WAAW,SACxBhP,aAAagP,WAAW,QACxBhP,aAAagP,WAAW,WACxBpJ,GAAQkH,KAAK,UACN+B,QAAQC,OAAOpV,IAEM,MAA1BA,EAAMgV,SAASC,QACjB/C,IAAMlS,MAAM,SAAD8C,OAAU9C,EAAMgV,SAAS9D,KAAI,kBACjCiE,QAAQC,OAAOpV,EAAMgV,UAAYhV,EAAMqV,UAEzCF,QAAQC,OAAOpV,EAAMgV,UAAYhV,EAAMqV,SC7BzC,MAAME,GAAe,CAC1BC,KAIF,SAAcC,EAAaC,GACzB,OAAOC,KACJH,KAAKI,KAAO9W,QAAU2W,EAAaC,GACnCG,KAAMb,IACL1O,aAAawP,QAAQ,OAAQC,KAAKC,UAAUhB,EAAS9D,KAAK+E,UAC1D3P,aAAawP,QAAQ,QAASd,EAAS9D,KAAKgF,OAC5C5P,aAAawP,QAAQ,UAAWd,EAAS9D,KAAKiF,SACvCnB,IAERoB,MAAOpW,IACN,GAA4B,KAAxBA,EAAMgV,SAAS9D,KAGjB,OAAO6D,GAAa/U,GAFpBkS,IAAMlS,MAAM,4DAdlBqW,OAqBF,WAEE/P,aAAagP,WAAW,SACxBhP,aAAagP,WAAW,QACxBhP,aAAagP,WAAW,aC3BnB,MAAMgB,GAAc,CACzB1D,IAQF,SAAa6C,GACX,OAAOE,KACJ/C,IAAIgD,KAAO9W,QAAU2W,EAAac,MAClCV,KAAMb,GACEA,GAERoB,MAAOpW,GACC+U,GAAa/U,KAdxBwV,KAkBF,SAAcC,EAAaC,GACzB,OAAOC,KACJH,KAAKI,KAAO9W,QAAU2W,EAAaC,EAASa,MAC5CV,KAAMb,GACEA,GAERoB,MAAOpW,GACC+U,GAAa/U,KAxBxBwW,cA4BF,SAAuBf,EAAaC,EAASQ,GAC3C,IAAIO,EAAU,GAEZA,EAAQ7X,QADNsX,EACgB,CAAE,cAAiB,UAAYA,EAAO,gBAAiB,YAEvD,CAAE,gBAAiB,YAGvC,OAAOP,KACJH,KAAKI,KAAO9W,QAAU2W,EAAaC,EAASe,GAC5CZ,KAAMb,GACEA,GAERoB,MAAOpW,GACC+U,GAAa/U,KAzCxB0W,IA6CF,SAAajB,EAAaC,GACxB,OAAOC,KACJe,IAAId,KAAO9W,QAAU2W,EAAaC,EAASa,MAC3CV,KAAMb,IACL9C,IAAMxS,QAAQ,oDACPsV,IAERoB,MAAOpW,GACC+U,GAAa/U,KApDxB2W,kBAwDF,SAA2BlB,EAAaC,GACtC,OAAOC,KACJe,IAAId,KAAO9W,QAAU2W,EAAaC,EAASa,MAC3CV,KAAMb,GACEA,GAERoB,MAAOpW,GACC+U,GAAa/U,KA9DxB4W,aAkEF,SAAsBnB,GACpB,OAAOE,KACJkB,OAAOjB,KAAO9W,QAAU2W,EAAac,MACrCV,KAAMb,IACL9C,IAAMxS,QAAQ,yDACPsV,IAERoB,MAAOpW,GACC+U,GAAa/U,MAI1B,SAASuW,KACP,IAAIE,EAAU,GAMd,OALInQ,aAAaC,QAAQ,SACvBkQ,EAAQ7X,QAAU,CAAE,cAAiB,UAAY0H,aAAaC,QAAQ,SAAU,gBAAiB,YAEjGkQ,EAAQ7X,QAAU,CAAE,gBAAiB,YAEhC6X,E,yBC3FFK,eAAeC,GAAYrB,GAChC,MAAMxE,EAAO,IAAI8F,SACjB,IAAIC,QAAuBC,GAAWxB,EAAQyB,MAG9C,OAFAjG,EAAKkG,OAAO,OAAQH,EAAgBvB,EAAQyB,KAAKzF,MAE1CiE,KACJH,KAAKI,KAAO9W,QAAU,aAAcoS,EA4CzC,WACE,IAAIuF,EAAU,GACVnQ,aAAaC,QAAQ,WACvBkQ,EAAQ7X,QAAU,CAChByY,cAAe,UAAY/Q,aAAaC,QAAQ,WAGpD,OAAOkQ,EAnDsCF,IAC1CV,KAAMb,GACEA,EAAS9D,KAAKoG,KAEtBlB,MAAOpW,IACNuX,QAAQC,IAAI,QAASxX,GACd+U,GAAa/U,KAK1B,MAAMkX,GAAcC,GAClB,IAAIhC,QAASsC,IACXC,KAAQC,iBACNR,EACA,KACA,KACA,OACA,GACA,EACCS,IACCH,EAAQG,IAEV,UC9BCd,eAAee,GAAWV,GAC/B,MAAMjG,EAAO,IAAI8F,SAGjB,OAFA9F,EAAKkG,OAAO,OAAQD,GAEbxB,KACJH,KAAKI,KAAO9W,QAAU,aAAcoS,EAWzC,WACE,IAAIuF,EAAU,GACVnQ,aAAaC,QAAQ,WACvBkQ,EAAQ7X,QAAU,CAChByY,cAAe,UAAY/Q,aAAaC,QAAQ,WAGpD,OAAOkQ,EAlBsCF,IAC1CV,KAAMb,GACEA,EAAS9D,KAAKoG,KAEtBlB,MAAOpW,GAEC+U,GAAa/U,ICX1B,MAAM8X,GAAWC,EAAQ,KACnBC,IAAwB,OAARF,SAAQ,IAARA,QAAQ,EAARA,GAAUG,UAAW,QAE9BC,GAAc,CACzBC,MAWF,SAAeC,EAAUC,GACvB,OAAQC,IACNA,EAmBO,CAAElS,KAAM,gBAAiBmS,KAnBf,CAAEH,cACnB,IACI1C,EAAU,CACZyC,MAAOC,EACPI,MAAOH,EACPI,OAAO,GAETlD,GACGC,KAPe,uBAOGE,GAClBG,KAAMb,IACLsD,EAYN,SAAiBC,GACf,MAAO,CACLnS,KAAM,gBACN8P,MAAOqC,EAAKrC,MACZC,QAASoC,EAAKpC,QACdoC,KAAMA,EAAKtC,SAjBAvW,CAAQsV,EAAS9D,OAC1BhF,GAAQkH,KAAK,gBAEdgD,MAAOtF,IACNwH,EAkBG,CAAElS,KAAM,gBAAiBpG,MAlBX8Q,QA1BvB4H,SAyFF,WAEE,OAD+E,GAA7D3C,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eAzF1EqS,aAkGF,WAEE,OADmF,GAA7D7C,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eAAuE,GAA7DwP,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eAlGhJsS,UA2GF,WAEE,OADgF,GAA7D9C,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eA3G3EuS,YA2FF,WAEE,OADkF,GAA7D/C,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eA3F7EwS,SAoGF,WAEE,OAD+E,GAA7DhD,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eApG1EyS,sBA6GF,WAEE,OAD4F,GAA7DjD,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAwB,eA7GvF0S,QA0CF,WACE,OAAQX,IAAc,IAADY,EACnB,MAAMhD,EAAQ5P,aAAaC,QAAQ,SAE7BmP,EAAU,CACd+C,OAAO,EACPU,WAAqB,QAAXD,EAAEE,iBAAS,IAAAF,OAAA,EAATA,EAAWG,UACvBrB,cAAeA,IAGjB,GAAc,OAAV9B,QAA4B7J,IAAV6J,EAAqB,CACzCoC,EAcJ,SAAiBpC,GACf,MAAO,CAAE9P,KAAM,iCAAkC8P,SAftCoD,CAAQpD,IACjB,IAAIT,EAAc,yBAClBa,GACGE,cAAcf,EAAaC,EAASQ,GACpCL,KAAMb,IACLsD,EAcC,CACLlS,KAAM,iCACNmS,KAhBqBvD,EAAS9D,KAgBnB+E,YAdRG,MAAOtF,IACNwH,EAkBC,CAAElS,KAAM,iCAAkCpG,MAlB1B8Q,IACjBwH,EAASjC,WA7DjBA,OACF,IA+GA,SAASA,KACP,OAAQiC,IACN/C,GAAac,SACbiC,EAcK,CACLlS,KAAM,mBAdN8F,GAAQkH,KAAK,WClIV,MAAMmG,GAAe,CAC1BC,aACAC,iBA6BF,WACE,OAAQnB,IAENhC,GACG1D,IAFe,kBAGfiD,KAAMb,IACDA,EAAS9D,OACX8D,EAAS9D,KAAKwI,QAAQ,CAAEjP,MAAO,GAAItK,KAAM,mBACzCmY,EAASqB,GAAkB3E,EAAS9D,UAGvCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAxClB8I,cA6CF,SAAuBC,GACrB,OAAQvB,IACN,IAAI7C,EAAc,qBAAuBoE,EACzCvD,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASqB,GAAkB3E,EAAS9D,SAGvCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAvDlBgJ,oBA4DF,SAA6BC,GAE3B,OAAQzB,IACN,IAAI7C,EAAc,yBAA2BsE,EAC7CzD,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASqB,GAAkB3E,EAAS9D,SAGvCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAvElBkJ,UAmIK,SAAmBtE,GACxB,MAAO,CAAC,CAAEtP,KAAM,aAAc6T,OAAQvE,GAW/B,CACLtP,KAAM,kBA/IR8T,cAqFF,SAAuBC,GACrB,OAAQ7B,IACN,IAAI7C,EAAc,WAAa0E,EAC/B7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EAAS8B,GAAmBpF,EAAS9D,WAxFzCmJ,cAuGF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACNA,EA+CG,SAA6BxT,EAAO2F,GACzC,MAAO,CACLrE,KAAM,0BACNtB,MAAOA,EACP2F,MAAOA,GAnDE8P,CAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAxGnD+P,oBA4FF,SAA6BP,GAC3B,OAAQ3B,IACF2B,GACF3B,EA6FC,SAA+B2B,GACpC,MAAO,CACL,CACE7T,KAAM,wBACN+T,GAAIF,EAAOE,GACXzO,KAAMuO,EAAOvO,KACbqO,SAAUE,EAAOF,SACjBU,KAAMR,EAAOQ,OApGJC,CAAsBT,MA9FnCU,eA2GF,SAAwBR,EAAIzE,GAC1B,OAAQ4C,IACN,IAAI7C,EAAc,WAAa0E,EAC/B7D,GAAYI,IAAIjB,EAAaC,GAASG,KAAK,KACzCyC,EA2DG,CACLlS,KAAM,mBA3DJkS,EA2BG,CACLlS,KAAM,qBA3IRgU,sBACAQ,aAsEF,SAAsBlF,GACpB,OAAQ4C,IAENhC,GAAYd,KADM,WACYE,GAASG,KAAK,KAC1CyC,EAoGG,CACLlS,KAAM,gCApGJkS,EA8DG,CACLlS,KAAM,qBAzIRyU,iBAkHF,SAA0BV,GACxB,OAAQ7B,IACN,IAAI7C,EAAc,WAAa0E,EAC/B7D,GAAYM,aAAanB,GAAaI,KAAK,KACzCyC,EA6DG,CACLlS,KAAM,2BA7DJkS,EAASkB,UAtHbsB,SACAC,SA2IK,WACL,MAAO,CACL3U,KAAM,sBA1IV,SAASoT,KACP,OAAQlB,IAENhC,GACG1D,IAFe,WAGfiD,KAAMb,IACLsD,EAASqB,GAAkB3E,EAAS9D,SAErCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,MAkHb,SAAS6I,GAAkBM,GAChC,MAAO,CACL7T,KAAM,qBACN6T,OAAQA,GAIL,SAASa,KACd,MAAO,CACL1U,KAAM,gBAkBH,SAASgU,GAAmBH,GACjC,MAAO,CACL7T,KAAM,gBACN+T,GAAIF,EAAOE,GACXzO,KAAMuO,EAAOvO,KACbqO,SAAUE,EAAOF,SACjBU,KAAMR,EAAOQ,KACbO,OAAQf,EAAOe,QC7KZ,MAAMC,GAAoB,CAC/BC,sBAIF,WACE,OAAQ5C,IAENhC,GACG1D,IAFe,wBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAUD,CACLlS,KAAM,2BACN+U,YAZuCnG,EAAS9D,SAG7CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAdlBgK,MAsCK,WACL,MAAO,CACL1U,KAAM,wBC1CH,MAAMgV,GAAkB,CAC7BC,aAKF,SAAsBC,GACpB,OAAQhD,IACNA,EAaO,CACLlS,KAAM,8BAbR,IAAIqP,EAAc,YAAcpD,GAAYS,UAAUwI,GACtDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAcG,CACLlS,KAAM,4BACNmV,UAhBmBvG,EAAS9D,SAE3BkF,MAAOpW,IACNsY,EAiBN,SAAiBtY,GACf,MAAO,CAAEoG,KAAM,4BAA6BpG,SAlB/Bwb,CAAQxb,QAdvByb,yBAoCF,WACE,OAAQnD,IACNA,EAaO,CACLlS,KAAM,qDAZRkQ,GACG1D,IAFe,0BAGfiD,KAAMb,IAcX,IAAiB0G,EAAOC,EAZlBrD,GAYWoD,EAZM1G,EAAS9D,KAAK0K,MAYbD,EAZoB3G,EAAS9D,KAAK2K,UAajD,CACLzV,KAAM,mDACNsV,MAAOA,EACPC,WAAYA,OAdXvF,MAAOpW,IACNsY,EAiBN,SAAiBtY,GACf,MAAO,CAAEoG,KAAM,mDAAoDpG,SAlBtDwb,CAAQxb,QA9CvB8a,MAqEK,WACL,MAAO,CACL1U,KAAM,qBCvEH,MAAM0V,GAAmB,CAC9BC,cAcF,SAAuBT,GACrB,OAAQhD,IACNA,EAmKK,CACLlS,KAAM,yBAnKN,IAAIqP,EAAc,cAAgBpD,GAAYS,UAAUwI,GACxDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAoGD,SAA+B0D,EAAYH,GAChD,MAAO,CACLzV,KAAM,yBACN4V,WAAYA,EACZC,eAAgBJ,GAxGHK,CAAsBlH,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAClEvD,EAmKC,CACLlS,KAAM,4BAnKFkS,EAAS6D,GAAcC,WAAWd,MAEnClF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAzBlBuL,cAoHK,SAAuB3G,GAC5B,MAAO,CAAC,CAAEtP,KAAM,iBAAkB4V,WAAYtG,GAYvC,CACLtP,KAAM,sBAjIRkW,kBA0DF,SAA2BnC,GACzB,OAAQ7B,IACN,IAAI7C,EAAc,eAAiB0E,EACnC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EAASiE,GAAuBvH,EAAS9D,WA7D7CmJ,cAkEF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAtErDgS,mBA8FF,SAA4BtC,EAAIzE,GAC9B,OAAQ4C,IACNA,EA+EK,CACLlS,KAAM,yBA/EN,IAAIqP,EAAc,eAAiB0E,EACnC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAwBD,CACLlS,KAAM,qBAxBAkS,EA8ED,CACLlS,KAAM,4BA9EA8F,GAAQkH,KAAK,mBAKhBgD,MAAMsG,GAAMpE,EAwEV,CACLlS,KAAM,+BArLRmW,0BACAI,iBAwBF,SAA0BjH,EAASkH,EAAkBC,EAASC,GAC5D,OAAQxE,IACNA,EAmJK,CACLlS,KAAM,yBAlJNkQ,GACGd,KAFe,eAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAwID,CACLlS,KAAM,oCAxIAkS,EAAS6D,GAAcY,qBAAqB,CAAE3V,KAAM,EAAG4V,QAASH,EAASI,OAAQH,KAG3D,GAAlBpH,EAAQwH,QACV5E,EAAS6E,GAAoBC,8BAA8BR,IAE3D1K,IAAMxS,QAAQ,yCAEdwS,IAAMxS,QAAQ,0CAEhB4Y,EAiFD,CACLlS,KAAM,qBAhFAkS,EAsID,CACLlS,KAAM,+BApIHgQ,MAAOtF,IACNwH,EAkIC,CACLlS,KAAM,gCAnLRiX,wBAuEF,SAAiCrB,GAC/B,OAAQ1D,IACF0D,GACF1D,EAOC,SAAmC0D,GACxC,MAAO,CACL,CACE5V,KAAM,4BACN+T,GAAI6B,EAAW7B,GACfzO,KAAMsQ,EAAWtQ,OAZR4R,CAA0BtB,MAzEvClB,MAAK,GACLC,SA8HK,WACL,MAAO,CACL3U,KAAM,yBA/HRmX,aAAY,GACZC,UACF,IAqHO,SAAS1C,KACd,MAAO,CACL1U,KAAM,oBAUH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,8BACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAAS8R,GAAuBP,GACrC,MAAO,CACL5V,KAAM,oBACN+T,GAAI6B,EAAW7B,GACfjJ,KAAM8K,EAAW9K,KACjBuM,YAAazB,EAAWyB,YACxBC,UAAW1B,EAAW0B,UACtBC,QAAS3B,EAAW2B,QACpBb,OAAQd,EAAWc,OACnBrM,KAAMuL,EAAWvL,KACjByM,OAAQlB,EAAWkB,QAmBhB,SAASM,KACd,MAAO,CACLpX,KAAM,wBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,2BC5LH,MAAM+V,GAAgB,CAC3BC,cACAW,qBA2CF,SAA8BzB,EAAasC,GACzC,OAAQtF,IACNA,EAuRK,CACLlS,KAAM,sBAvRN,IAAIqP,EAAc,uBAAyBpD,GAAYS,UAAUwI,GACjEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASuF,GAAmB7I,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC/DvD,EAuRC,CACLlS,KAAM,2BAtRHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OArDlBgN,iBA0DF,SAA0BxC,GACxB,OAAQhD,IACN,IAAI7C,EAAc,mBAAqB6F,EAAcjJ,GAAYS,UAAUwI,GAAe,MAC1FhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,OACX8D,EAAS9D,KAAKwI,QAAQ,CAAEjP,MAAO,GAAItK,KAAM,mBACzCmY,EAASuF,GAAmB7I,EAAS9D,UAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OArElBiN,WA4OK,SAAoBrI,GACzB,MAAO,CAAC,CAAEtP,KAAM,cAAeuX,QAASjI,GAYjC,CACLtP,KAAM,mBAzPR4X,eAuKF,SAAwB7D,GACtB,OAAQ7B,IACN,IAAI7C,EAAc,YAAc0E,EAChC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EAAS2F,GAAoBjJ,EAAS9D,WA1K1CmJ,cA+KF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAnLrDyT,gBA2MF,SAAyB/D,EAAIzE,GAC3B,OAAQ4C,IACNA,EAkHK,CACLlS,KAAM,sBAlHN,IAAIqP,EAAc,YAAc0E,EAChC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAmCD,CACLlS,KAAM,kBAnCAkS,EAiHD,CACLlS,KAAM,yBAjHA8F,GAAQkH,KAAK,gBAKhBgD,MAAMsG,GAAMpE,EA2GV,CACLlS,KAAM,4BArUR+X,0BAkHF,SAAmChE,GACjC,OAAQ7B,IACNA,EA0MK,CACLlS,KAAM,sBA1MN,IAAIqP,EAAc,mBAAqB0E,EACvC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAyMD,CACLlS,KAAM,yBAzMA8F,GAAQkH,KAAK,gBAKhBgD,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,qBAAsBpG,MAPhB8Q,IACjBwH,EAiMC,CACLlS,KAAM,6BApURgY,0BA4IF,SAAmCjE,GACjC,OAAQ7B,IACNA,EA+KK,CACLlS,KAAM,sBA/KN,IAAIqP,EAAc,mBAAqB0E,EACvC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EA8KD,CACLlS,KAAM,yBA9KA8F,GAAQkH,KAAK,gBAKhBgD,MAAOtF,IACNwH,EAkJC,CAAElS,KAAM,uBAAwBpG,MAlJhB8Q,IACjBwH,EAsKC,CACLlS,KAAM,6BAnUR6X,uBACAI,cAmEF,SAAuB3I,GACrB,OAAQ4C,IACNA,EAsPK,CACLlS,KAAM,sBArPNkQ,GACGd,KAFe,YAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAqOD,CACLlS,KAAM,iCApOAkS,EAqKD,CACLlS,KAAM,kBArKAkS,EAmPD,CACLlS,KAAM,yBAnPA8F,GAAQkH,KAAK,gBAGhBgD,MAAOtF,IACNwH,EA8OC,CACLlS,KAAM,6BAjURkY,iBAwFF,SAA0B5I,GACxB,OAAQ4C,IACNA,EAgOK,CACLlS,KAAM,sBA/NNkQ,GACGd,KAFe,sBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EA+MD,CACLlS,KAAM,iCA/MA8L,IAAMxS,QAAQ,mCACd4Y,EA+ID,CACLlS,KAAM,kBA/IAkS,EA6ND,CACLlS,KAAM,yBA7NA8F,GAAQkH,KAAK,aAGhBgD,MAAOtF,IACNwH,EAwNC,CACLlS,KAAM,6BAhURmY,qBAiLF,SAA8BZ,GAC5B,OAAQrF,IACFqF,GACFrF,EAOC,SAAgCqF,GACrC,MAAO,CACL,CACEvX,KAAM,yBACN+T,GAAIwD,EAAQxD,GACZzO,KAAMiS,EAAQjS,OAZL8S,CAAuBb,MAnLpCc,kBAuNF,SAA2BtE,GACzB,OAAQ7B,IACN,IAAI7C,EAAc,YAAc0E,EAChC7D,GAAYM,aAAanB,GAAaI,KAAK,KACzCyC,EAwFG,CACLlS,KAAM,4BAxFJkS,EAAS8D,GAAWd,KACpBpP,GAAQkH,KAAK,iBA5NjB0H,MAAK,GACLC,SAkPK,WACL,MAAO,CACL3U,KAAM,sBAnPRsY,sBAgUK,WACL,MAAO,CACLtY,KAAM,oCAjURuY,mBAqUK,WACL,MAAO,CACLvY,KAAM,iCAtURmX,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASzC,GAAWd,EAAasC,GAC/B,OAAQtF,IACNA,EAuSK,CACLlS,KAAM,sBAvSN,IAAIqP,EAAc,WAAapD,GAAYS,UAAUwI,GACrDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASuF,GAAmB7I,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC/DvD,EAuSC,CACLlS,KAAM,2BAtSHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MA4Mb,SAAS+M,GAAmBF,EAAS9B,GAC1C,MAAO,CACLzV,KAAM,sBACNuX,QAASA,EACT1B,eAAgBJ,GAIb,SAASf,KACd,MAAO,CACL1U,KAAM,iBAUH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,2BACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAASwT,GAAoBN,GAClC,MAAO,CACLvX,KAAM,iBACN+T,GAAIwD,EAAQxD,GACZ2E,YAAanB,EAAQmB,YACrBC,aAAcpB,EAAQoB,aACtB5K,KAAMwJ,EAAQxJ,KACd6K,IAAKrB,EAAQqB,IACbC,SAAUtB,EAAQsB,SAClBC,QAASvB,EAAQuB,QACjBC,MAAOxB,EAAQwB,MACfC,SAAUzB,EAAQyB,SAClBC,oBAAqB1B,EAAQ0B,oBAC7BC,kBAAmB3B,EAAQ2B,kBAC3BC,SAAU5B,EAAQ4B,SAClBxF,SAAU4D,EAAQ5D,SAClByF,iBAAkB7B,EAAQ6B,iBAC1BC,eAAgB9B,EAAQ8B,eACxBC,gBAAiB/B,EAAQ+B,gBACzBC,WAAYhC,EAAQgC,WACpBC,SAAUjC,EAAQiC,SAClB3F,OAAQ0D,EAAQ1D,OAChB4F,iBAAkBlC,EAAQkC,iBAC1BC,QAASnC,EAAQmC,QACjBC,eAAgBpC,EAAQoC,eACxBC,sBAAuBrC,EAAQqC,sBAC/BC,kBAAmBtC,EAAQsC,kBAC3BC,iBAAkBvC,EAAQuC,iBAC1BC,iBAAkBxC,EAAQwC,kBAyBvB,SAAS3C,KACd,MAAO,CACLpX,KAAM,qBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,wBC9UH,MAAMga,GAAqB,CAChCC,mBACAC,sBA2BF,WACE,OAAQhI,IAENhC,GACG1D,IAFe,yBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAASiI,GAAwBvL,EAAS9D,SAG7CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OArClB0P,oBA6MF,SAA6BrG,GAC3B,OAAQ7B,IACN,IAAI7C,EAAc,kBAAoB0E,EACtC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAoDhC,IAAkCyL,EAnDnCnI,EAoDG,CACLlS,KAAM,uBACN+T,IAHqCsG,EAnDDzL,EAAS9D,MAsD5BiJ,GACjBuG,YAAaD,EAAaC,YAC1BC,aAAcF,EAAaE,aAC3BjD,UAAW+C,EAAa/C,UACxBC,QAAS8C,EAAa9C,QACtBiD,SAAUH,EAAaG,SACvBH,aAAcA,EAAaA,eA1DzB,IAAInF,EAAc,CAChB2B,OAAQjI,EAAS9D,KAAKwM,WAExBpF,EAAS+H,GAAgB/E,QArN7BjB,cA0NF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UA9NrDoW,qBAsKF,SAA8B1G,EAAIzE,GAChC,OAAQ4C,IACNA,EAiHK,CACLlS,KAAM,4BAjHNkS,EAyBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,6BAA8BsP,WA1BpC4D,CAAQ5D,IACjB,IAAID,EAAc,kBAAoB0E,EACtC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EAgHD,CACLlS,KAAM,+BA9GA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAAS+H,GAAgB/E,SAGzBhD,EAuGD,CACLlS,KAAM,iCArGHgQ,MAAOtF,IACNwH,EAWG,CAAElS,KAAM,6BAA8BpG,MAXxB8Q,IACjBwH,EAkGC,CACLlS,KAAM,+BAlGF8L,IAAMlS,MAAM,4DA7LlB+gB,uBAwCF,SAAgCrL,GAC9B,OAAQ4C,IACNA,EA8OK,CACLlS,KAAM,4BA9ONkS,EAASgB,GAAQ5D,IACjB,IAAID,EAAc,yBAA2BC,EAAQyE,GACrD7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EA6OD,CACLlS,KAAM,+BA5OA,IAAIkV,EAAc,CAChBlU,KAAM,EACNyX,KAAM,GACNmC,UAAWtL,EAAQgI,WAGrBpF,EAAS+H,GAAgB/E,SAEzBhD,EAmOD,CACLlS,KAAM,iCAjOHgQ,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,4BAA6BpG,MAPvB8Q,IACjBwH,EA8NC,CACLlS,KAAM,mCA9RR6a,uBAyEF,SAAgCvL,GAC9B,OAAQ4C,IACNA,EA4MK,CACLlS,KAAM,4BA5MNkS,EAASgB,GAAQ5D,IACjB,IAAID,EAAc,yBAA2BC,EAAQyE,GACrD7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EA2MD,CACLlS,KAAM,+BA1MA,IAAIkV,EAAc,CAChBlU,KAAM,EACNyX,KAAM,GACNmC,UAAWtL,EAAQgI,WAGrBpF,EAAS+H,GAAgB/E,SAEzBhD,EAiMD,CACLlS,KAAM,iCA/LHgQ,MAAOtF,IACNwH,EAiEC,CAAElS,KAAM,6BAA8BpG,MAjEtB8Q,IACjBwH,EA4LC,CACLlS,KAAM,mCA7RR8a,mBAsGF,SAA4BxL,GAC1B,OAAQ4C,IACNA,EA8KK,CACLlS,KAAM,4BA9KNkS,EA6BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,+BAAgCsP,WA9BtC4D,CAAQ5D,IAEjBY,GACGd,KAFe,iBAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EAgCD,CACLlS,KAAM,wBAhCAkS,EA2KD,CACLlS,KAAM,+BAzKA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,IACZua,UAAWtL,EAAQgI,WAGrBpF,EAAS+H,GAAgB/E,SAEzBpJ,IAAMlS,MAAM,iDAGfoW,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,+BAAgCpG,MAX1B8Q,IACjBwH,EA2JC,CACLlS,KAAM,+BA3JF8L,IAAMlS,MAAM,mDAjIlBmhB,uBA+NF,SAAgChH,GAC9B,OAAQ7B,IACNA,EAoDK,CACLlS,KAAM,4BApDN,IAAIqP,EAAc,kBAAoB0E,EACtC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA4CG,CACLlS,KAAM,kCA5CJkS,EAsDG,CACLlS,KAAM,+BAjDJkS,EAAS+H,GAJS,CAChBe,SAAU,SAvOhBtG,MAAK,GACLuG,YAkJK,WACL,MAAO,CACLjb,KAAM,gCAhJV,SAASia,GAAgB/E,GACvB,OAAQhD,IACN,IAAI7C,EAAc,iBAAmBpD,GAAYS,UAAUwI,GAC3DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASiI,GAAwBvL,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,cAErEzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MA+Hb,SAASgK,KACd,MAAO,CACL1U,KAAM,uBAUV,SAASkT,GAAQ5D,GACf,MAAO,CAAEtP,KAAM,6BAA8BsP,WAqFxC,SAAS6K,GAAwBE,EAAc5E,GACpD,MAAO,CACLzV,KAAM,4BACNqa,aAAcA,EACdxE,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,iCACNtB,MAAOA,EACP2F,MAAOA,GCpQJ,MAAM6W,GAAqB,CAChCC,0BA0EF,SAAmCC,GACjC,OAAQlJ,IACFkJ,GACFlJ,EAuEC,SAAqCkJ,GAC1C,MAAO,CACL,CACEpb,KAAM,+BACN+T,GAAIqH,EAAarH,GACjB0C,QAAS2E,EAAa3E,QACtBa,UAAW8D,EAAa9D,UACxBkD,SAAUY,EAAaZ,SACvBjD,QAAS6D,EAAa7D,SAExBxB,GAAc6B,eACZwD,EAAa9D,YAlFJ+D,CAA4BD,MA5EzCE,gBA+FF,SAAyBF,GACvB,OAAQlJ,IACNA,EAASqJ,GAAyBH,MAhGpCI,iBAkFF,SAA0BJ,GACxB,OAAQlJ,IACNA,EAuBG,SAAiCkJ,GACtC,MAAO,CACLpb,KAAM,4BACNob,aAAcA,GA1BLK,CAAwBL,SAE/BnV,IAAcmV,GACU,IAAxBA,EAAajW,QAEb+M,EAASqJ,GAAyBH,EAAa,OAxFnDM,kBAUF,SAA2BpM,GACzB,OAAQ4C,IACNA,EAcO,CAAElS,KAAM,4BAA6B8K,KAd3B,CAAEwE,aAEnBY,GACGd,KAFe,yBAEGE,GAClBG,KAAMb,IACLsD,EAYN,SAAiBpH,GACf,MAAO,CACL9K,KAAM,4BACN8K,KAAMA,GAfKxR,CAAQsV,EAAS9D,OAC1BgB,IAAMxS,QAAQ,qDAEf0W,MAAOtF,IACNwH,EAgBG,CAAElS,KAAM,4BAA6BpG,MAhBvB8Q,QApBvB6Q,4BACAI,8BAiIK,SAAuCC,GAC5C,MAAO,CACL5b,KAAM,4CACN4b,KAAMA,IAnIRC,6BAuIK,SAAsCD,GAC3C,MAAO,CACL5b,KAAM,2CACN4b,KAAMA,IAzIRE,kBAqCF,SAA2B/H,GACzB,OAAQ7B,IACNA,EAYF,SAAiB6B,GACf,MAAO,CAAE/T,KAAM,+BAAgC+T,MAbtCb,CAAQa,IACjB,IAAI1E,EAAc,4BAA8B0E,EAChD7D,GACGM,aAAanB,GACbI,KAAMb,IACLsD,EAYG,CACLlS,KAAM,+BACN8K,KAdmB8D,EAAS9D,SAE3BkF,MAAOtF,IACNwH,EAgBG,CAAElS,KAAM,+BAAgCpG,MAhB1B8Q,QA9CvBqR,cAwHK,WACL,MAAO,CACL/b,KAAM,iCAzHR0U,MAAK,GACLC,SAgHK,WACL,MAAO,CACL3U,KAAM,6BARH,SAAS0U,KACd,MAAO,CACL1U,KAAM,uBA8CH,SAASub,GAAyBH,GACvC,MAAO,CACLpb,KAAM,uBACN+T,GAAIqH,EAAarH,GACjB0C,QAAS2E,EAAa3E,QACtBa,UAAW8D,EAAa9D,UACxBkD,SAAUY,EAAaZ,SACvBjD,QAAS6D,EAAa7D,SC9KnB,MAAMyE,GAAe,CAC1BC,gBAEF,WACE,OAAQ/J,IAENhC,GACG1D,IAFe,kBAGfiD,KAAMb,IACLsD,EAQC,CACLlS,KAAM,qBACN4U,OAV+BhG,EAAS9D,SAErCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QCVb,MAAMwR,GAAe,CAC1BC,WAMF,SAAoBjH,GAClB,OAAQhD,IACNA,EAmCK,CACLlS,KAAM,qBAnCN,IAAIqP,EAAc,UAAYpD,GAAYS,UAAUwI,GACpDhF,GACG1D,IAAI6C,GACJI,KAAMb,IAuBN,IAA4BwN,EAAQ3G,EAtB/B7G,EAAS9D,MAAQ8D,EAAS9D,KAAK0K,OACjCtD,GAqByBkK,EArBGxN,EAAS9D,KAAK0K,MAqBTC,EArBgB7G,EAAS9D,KAAK2K,UAsBhE,CACLzV,KAAM,qBACNoc,OAAQA,EACRvG,eAAgBJ,KAxBVvD,EAkCD,CACLlS,KAAM,yBAlCS4O,EAAS9D,OAClBgB,IAAMlS,MAAMgV,EAAS9D,MACrBoH,EA+BD,CACLlS,KAAM,2BA7BHgQ,MAAOtF,IACNoB,IAAMlS,MAAM8Q,GACZyG,QAAQC,IAAI1G,GACZwH,EAyBC,CACLlS,KAAM,4BAjDR0U,MA4BK,WACL,MAAO,CACL1U,KAAM,iBA7BRmX,aAAY,GACZC,UACF,IAsCO,SAASA,KACd,MAAO,CACLpX,KAAM,oBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,uBCrDH,MAAMqc,GAAY,CACvBC,OAUF,WACE,OAAQpK,IAENhC,GACG1D,IAFe,QAGfiD,KAAMb,IACLsD,EAASqK,GAAe3N,EAAS9D,SAElCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAlBlB8R,gBAuBF,SAAyBC,GACvB,OAAQvK,IACN,IAAI7C,EAAc,QAAUoN,EAC5BvM,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASqK,GAAe3N,EAAS9D,SAGpCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAjClBuJ,cAgDF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACNA,EAiCG,SAA6BxT,EAAO2F,GACzC,MAAO,CACLrE,KAAM,uBACNtB,MAAOA,EACP2F,MAAOA,GArCE8P,CAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAjDnDqY,iBAqCF,SAA0BtL,GACxB,OAAQc,IACFd,GACFc,EAoFC,SAA4Bd,GACjC,MAAO,CACL,CACEpR,KAAM,qBACN+T,GAAI3C,EAAI2C,GACR4I,KAAMvL,EAAIuL,KACVC,OAAQxL,EAAIwL,OACZC,MAAOzL,EAAIyL,MACXC,WAAY1L,EAAI0L,WAChBC,SAAU3L,EAAI2L,SACdC,MAAO5L,EAAI4L,MACXC,YAAa7L,EAAI6L,YACjBC,UAAW9L,EAAI8L,UACfrN,QAASuB,EAAIvB,UAjGJsN,CAAmB/L,MAvChCgM,YAoDF,SAAqBrJ,EAAIzE,GACvB,OAAQ4C,IACN,IAAI7C,EAAc,QAAU0E,EAC5B7D,GAAYI,IAAIjB,EAAaC,GAASG,KAAK,KACzCyC,EAkDG,CACLlS,KAAM,gBAlDJkS,EAaG,CACLlS,KAAM,kBAtERqd,gBAwFK,SAAyBjM,GAC9B,MAAO,CACLpR,KAAM,aACN+T,GAAI3C,EAAI2C,GACR4I,KAAMvL,EAAIuL,KACVC,OAAQxL,EAAIwL,OACZC,MAAOzL,EAAIyL,MACXC,WAAY1L,EAAI0L,WAChBC,SAAU3L,EAAI2L,SACdC,MAAO5L,EAAI4L,MACXC,YAAa7L,EAAI6L,YACjBC,UAAW9L,EAAI8L,UACfrN,QAASuB,EAAIvB,UAnGf6E,MAAK,GACLC,SAwEK,WACL,MAAO,CACL3U,KAAM,mBAfH,SAASuc,GAAenL,GAC7B,MAAO,CACLpR,KAAM,kBACNoR,IAAKA,GAIF,SAASsD,KACd,MAAO,CACL1U,KAAM,aCzEH,MAAMsd,GAAe,CAC1BC,aACAC,iBACAvJ,cAqIF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACQ,WAAVxT,EACFwT,EAASiC,GAAoBzV,EAAOwV,IACL,aAAtBA,EAAM7G,OAAOrN,KACtBkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UA3IrDoZ,eA0FF,SAAwB1J,EAAIzE,GAC1B,OAAQ4C,IACNA,EAyHK,CACLlS,KAAM,qBAzHNkS,EAqBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,sBAAuBsP,WAtB7B4D,CAAQ5D,IACjB,IAAID,EAAc,WAAa0E,EAC/B7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAuHD,CACLlS,KAAM,wBAvHA8F,GAAQkH,KAAK,eAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,sBAAuBpG,MAXjB8Q,IACjBwH,EA8GC,CACLlS,KAAM,4BA3NR0d,oBA8IF,SAA6BC,GAC3B,OAAQzL,IACFyL,GACFzL,EAOC,SAA+ByL,GACpC,MAAO,CACL,CACE3d,KAAM,wBACN+T,GAAI4J,EAAO5J,GACXzO,KAAMqY,EAAOrY,OAZJsY,CAAsBD,MAhJnCE,gBA8BF,SAAyB3I,GACvB,OAAQhD,IACNA,EAmLK,CACLlS,KAAM,qBAnLN,IAAIqP,EAAc,gBAAkBpD,GAAYS,UAAUwI,GAC1DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS4L,GAAkBlP,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC9DvD,EAmLC,CACLlS,KAAM,0BAlLHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAxClBqT,aA6CF,SAAsBzO,GACpB,OAAQ4C,IACNA,EAmKK,CACLlS,KAAM,qBAnKNkS,EAwBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,wBAAyBsP,WAzB/B4D,CAAQ5D,IAEjBY,GACGd,KAFe,UAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EA2BD,CACLlS,KAAM,iBA3BAkS,EAgKD,CACLlS,KAAM,wBAhKI4O,EAAS9D,KAAKzK,KAChB6R,EAASsL,GAAc5O,EAAS9D,KAAKzK,SAM1C2P,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,wBAAyBpG,MAXnB8Q,IACjBwH,EAqJC,CACLlS,KAAM,4BAxNRge,iBA+JF,SAA0BjK,EAAI0C,GAC5B,OAAQvE,IACNA,EAgDK,CACLlS,KAAM,qBAhDN,IAAIqP,EAAc,WAAa0E,EAC/B7D,GAAYM,aAAanB,GAAaI,KAAK,KACzCyC,EAwCG,CACLlS,KAAM,2BAxCJ8F,GAAQkH,KAAK,YACbkF,EAASqL,GAAU,CAAE3G,QAASH,KAC9BvE,EAgDG,CACLlS,KAAM,4BAvNR0U,MAAK,GACLyC,aAAY,GACZC,UACF,IAQA,SAASmG,GAAUrI,GACjB,OAAQhD,IACNA,EAmMK,CACLlS,KAAM,qBAnMN,IAAIqP,EAAc,UAAYpD,GAAYS,UAAUwI,GACpDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS4L,GAAkBlP,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC9DvD,EAmMC,CACLlS,KAAM,0BAlMHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAyDb,SAASgK,KACd,MAAO,CACL1U,KAAM,gBAqCV,SAASwd,GAAczJ,GACrB,OAAQ7B,IACN,IAAI7C,EAAc,WAAa0E,EAC/B7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA+DhC,IAA4B+O,EA9D7BzL,EA+DG,CACLlS,KAAM,gBACN+T,IAH+B4J,EA9DD/O,EAAS9D,MAiE5BiJ,GACXqD,UAAWuG,EAAOvG,UAClB9R,KAAMqY,EAAOrY,KACb2Y,UAAWN,EAAOM,UAClBC,UAAWP,EAAOO,UAClBjkB,KAAM0jB,EAAO1jB,KACbkkB,qBAAsBR,EAAOQ,qBAC7B3D,SAAUmD,EAAOnD,cAxBd,SAASsD,GAAkBH,EAAQlI,GACxC,MAAO,CACLzV,KAAM,qBACN2d,OAAQA,EACR9H,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,0BACNtB,MAAOA,EACP2F,MAAOA,GA0BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,oBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,uBC/NH,MAAMoe,GAAoB,CAC/BC,kBACAC,eA+JK,SAAwBhP,GAC7B,MAAO,CAAC,CAAEtP,KAAM,kBAAmBue,YAAajP,GAiCzC,CACLtP,KAAM,uBAjMRwe,sBACAvK,cA8GF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAlHrDoa,oBAuHF,SAA6B1K,EAAIzE,EAASoP,GACxC,OAAQxM,IACFwM,GACFxM,EA+GG,CACLlS,KAAM,0BA9GN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GAAYI,IAAIjB,EAAaC,GAC1BG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CAC1Dc,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAuFD,CACLlS,KAAM,wBAvFI0e,IACFxM,EA2DH,CACLlS,KAAM,sBA3DEkS,EA2GH,CACLlS,KAAM,6BA3GE8F,GAAQkH,KAAK,qBAGhBgD,MAAOtF,IACNwH,EAsGD,CACLlS,KAAM,6BAtGA8L,IAAMlS,MAAM,yDACL8Q,EAAIkE,aA1InB+P,2BACAC,qBA2DF,SAA8B7K,EAAI2K,GAChC,OAAQxM,IACN,IAAI7C,EAAc,yBAA2B0E,EAC7C7D,GAAYd,KAAKC,GAAaI,KAAMb,IACxBe,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EA4JG,CACLlS,KAAM,qCA5JJ8L,IAAMxS,QAAQ,gEACd4Y,EAASmM,GAAenJ,SAjE5B2J,kBAiCF,SAA2BvP,GACzB,OAAQ4C,IACNA,EAmMK,CACLlS,KAAM,0BAlMNkQ,GAAYd,KADM,gBACYE,GAC3BG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,IAAIiQ,EAAMnP,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAkLD,CACLlS,KAAM,qCAlLA8L,IAAMxS,QAAQ,uDACd4Y,EAASsM,GAAmBM,EAAIze,MAChC6R,EAgMD,CACLlS,KAAM,6BAhMA8F,GAAQkH,KAAK,gBAAkB8R,EAAIze,UAEnCyL,IAAMpB,IAAI,8DAEZsF,MAAQtF,IAETwH,EAyLE,CACLlS,KAAM,6BAzLN8L,IAAMlS,MAAM,2DACL8Q,EAAIkE,aApDbmQ,gBAqEF,SAAyBhL,GACvB,OAAQ7B,IACN,IAAI7C,EAAc,uBAAyB0E,EAC3C7D,GAAYd,KAAKC,GAAaI,KAAMb,IACxBe,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAgJG,CACLlS,KAAM,qCAhJJ8L,IAAMxS,QAAQ,uDACd4Y,EA8GG,CACLlS,KAAM,sBA9GJ8F,GAAQkH,KAAK,qBA5EjBgS,qBAiFF,SAA8BjL,EAAIkL,GAChC,OAAQ/M,IACN,IAAI7C,EAAc,4BAA8B0E,EAChD7D,GAAYd,KAAKC,EAAa4P,GAAkBxP,KAAMb,IAC1Ce,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAmIG,CACLlS,KAAM,qCAnIJ8L,IAAMxS,QAAQ,gEACd4Y,EAiGG,CACLlS,KAAM,sBAjGJ8F,GAAQkH,KAAK,qBAxFjBkS,sBA0IF,SAA+BnL,GAC7B,OAAQ7B,IACNA,EAuFK,CACLlS,KAAM,0BAvFN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GAAYM,aAAanB,GAAaI,KAAK,KACzCyC,EA+EG,CACLlS,KAAM,gCA/EJkS,EAASmM,GAAenJ,KACxBhD,EAwFG,CACLlS,KAAM,iCAzORmf,2BAwKK,SAAoCvD,GACzC,MAAO,CACL5b,KAAM,gCACN4b,KAAMA,IA1KRwD,iCAgKK,SAA0CxD,GAC/C,MAAO,CACL5b,KAAM,uCACN4b,KAAMA,IAlKRyD,6BA6KK,SAAsCzD,GAC3C,MAAO,CACL5b,KAAM,kCACN4b,KAAMA,IA/KRlH,MAAK,GACLC,SAwLK,WACL,MAAO,CACL3U,KAAM,2BAvLV,IAAIkV,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,GACN6G,MAAO,WACPC,UAAW,QAGb,SAASlB,GAAenJ,EAAasC,GACnC,OAAQtF,IACN,IAAI7C,EAAc,eAAiBpD,GAAYS,UAAUwI,GACzDhF,GACG1D,IAAI6C,GACJI,KAAMb,IAqIN,IAAgC2P,EAAa9I,EApI5CvD,GAoI+BqM,EApIC3P,EAAS9D,KAAK0K,MAoIFC,EApIS7G,EAAS9D,KAAK2K,UAqIlE,CACLzV,KAAM,0BACNue,YAAaA,EACb1I,eAAgBJ,OAtIbzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MAoEpB,SAAS8T,GAAmBzK,GAC1B,OAAQ7B,IACN,IAAI7C,EAAc,gBAAkB0E,EACpC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EAASyM,GAAwB/P,EAAS9D,OAC1CoH,EAASsN,GAAwBC,kCAAkC1L,OAqFlE,SAASW,KACd,MAAO,CACL1U,KAAM,qBAUH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,+BACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAASsa,GAAwBJ,GACtC,MAAO,CACL,CAAEve,KAAM,qBAAsBue,gBC1N3B,MAAMiB,GAA0B,CACrCE,qBAeF,SAA8BxK,EAAasC,GACzC,OAAQtF,IACN,IAAI7C,EAAc,sBAAwBpD,GAAYS,UAAUwI,GAChEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASyN,GAA6B/Q,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,cAE1EzF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAvBlBkV,qBA+FK,SAA8BtQ,GACnC,MAAO,CAAC,CAAEtP,KAAM,yBAA0B6f,kBAAmBvQ,GAYtD,CACLtP,KAAM,8BA5GR8f,yBAwCF,SAAkC/L,GAChC,OAAQ7B,IACN,IAAI7C,EAAc,uBAAyB0E,EAC3C7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAEjCsD,EAAS6N,GAA8BnR,EAAS9D,WA5CpD2U,qCACAxL,cA0DF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UA7DrD0b,iCACAC,wBAsBF,SAAiC1Q,GAC/B,OAAQ4C,IACNA,EAgIK,CACLlS,KAAM,iCA/HNkQ,GAAYd,KADM,uBACYE,GAASG,KAAK,KAC1CyC,EAiHG,CACLlS,KAAM,4CAjHJ8L,IAAMxS,QAAQ,uDACd4Y,EAASuN,GAAkCnQ,EAAQ2Q,gBACnD/N,EAgIG,CACLlS,KAAM,wCA9JRkgB,4BA6EF,SAAqCnM,GACnC,OAAQ7B,IACN,IAAI7C,EAAc,uBAAyB0E,EAC3C7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1C,IAAIkQ,EAAMnP,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EA+DG,CACLlS,KAAM,uCA/DJkS,EAASuN,GAAkCX,EAAIze,UAlFnDqU,MAAK,GACLC,SAwGK,WACL,MAAO,CACL3U,KAAM,iCAzGRmgB,UA6GK,WACL,MAAO,CACLngB,KAAM,mCAtEV,SAASyf,GAAkC1L,GACzC,OAAQ7B,IACN,IAAI7C,EAAc,mCAAqC0E,EACvD7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAEjCsD,EAASyN,GAA6B/Q,EAAS9D,KAAM,OA2CpD,SAAS6U,GAA6BE,EAAmBpK,GAC9D,MAAO,CACLzV,KAAM,iCACN6f,kBAAmBA,EACnBhK,eAAgBJ,GAIb,SAASf,KACd,MAAO,CACL1U,KAAM,4BAgBH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,sCACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAAS0b,GAA8BF,GAC5C,MAAO,CACL,CAAE7f,KAAM,4BAA6B6f,sBCzIlC,MAAMO,GAA2B,CACtCC,yBACAC,sBAmHK,SAA+BhR,GACpC,MAAO,CAAC,CAAEtP,KAAM,0BAA2BugB,mBAAoBjR,GAYxD,CACLtP,KAAM,+BAhIRwgB,0BA8DF,SAAmCzM,GACjC,OAAQ7B,IACN,IAAI7C,EAAc,wBAA0B0E,EAC5C7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAEjCsD,EAASuO,GAA+B7R,EAAS9D,WAlErD4V,yBA2BF,SAAkCxL,EAAasC,GAC7C,OAAQtF,IACN,IAAI7C,EAAc,+BAAiCpD,GAAYS,UAAUwI,GACzEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASyO,GAA8B/R,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,cAE3EzF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAnClBuJ,cAsEF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAzErDoc,kCACAG,yBAqCF,SAAkCtR,GAChC,OAAQ4C,IAENhC,GAAYd,KADM,wBACYE,GAASG,KAAK,KAC1CyC,EAuHG,CACLlS,KAAM,6CAvHJ8L,IAAMxS,QAAQ,uDAEd,IAAI4b,EAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,GACNoI,cAAevR,EAAQ2Q,eAEzB/N,EAASmO,GAAsBnL,GAAa,QAjDhD4L,6BAyFF,SAAsC/M,GACpC,OAAQ7B,IACN,IAAI7C,EAAc,wBAA0B0E,EAC5C7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1C,IAAIkQ,EAAMnP,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAuEG,CACLlS,KAAM,wCAtEJ,IAAIkV,EAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,GACNoI,cAAe/B,EAAIze,KAErB6R,EAASmO,GAAsBnL,GAAa,QArGhDR,MAAK,GACLC,SA4HK,WACL,MAAO,CACL3U,KAAM,kCA7HRmgB,UAiIK,WACL,MAAO,CACLngB,KAAM,oCAhIV,SAASqgB,GAAsBnL,EAAasC,GAC1C,OAAQtF,IACNA,EAmKK,CACLlS,KAAM,kCAnKN,IAAIqP,EAAc,uBAAyBpD,GAAYS,UAAUwI,GACjEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASyO,GAA8B/R,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC1EvD,EAmKC,CACLlS,KAAM,uCAlKHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MA+Fb,SAASiW,GAA8BJ,EAAoB9K,GAChE,MAAO,CACLzV,KAAM,kCACNugB,mBAAoBA,EACpB1K,eAAgBJ,GAIb,SAASf,KACd,MAAO,CACL1U,KAAM,6BAgBH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,uCACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAASoc,GAA+BF,GAC7C,MAAO,CACL,CAAEvgB,KAAM,6BAA8BugB,uBC3JnC,MAAMQ,GAAa,CACxBC,WACAC,kBAgDF,SAA2B/L,GACzB,OAAQhD,IACNA,EA8lBK,CACLlS,KAAM,mBA9lBN,IAAIqP,EAAc,iBAAmBpD,GAAYS,UAAUwI,GAC3DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASgP,GAAgBtS,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC5DvD,EAomBC,CACLlS,KAAM,wBAnmBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OA1DlByW,cA+DF,SAAuBjM,GACrB,OAAQhD,IACN,IAAI7C,EAAc,eAAiBpD,GAAYS,UAAUwI,GACzDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASgP,GAAgBtS,EAAS9D,SAGrCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAzElB0W,mBA8EF,SAA4BlM,GAC1B,OAAQhD,IACN,IAAI7C,EAAc,qBAAuBpD,GAAYS,UAAUwI,GAC/DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASgP,GAAgBtS,EAAS9D,SAGrCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAxFlB2W,uBA6FF,SAAgCtN,GAC9B,OAAO7B,IACL,IAAI7C,EAAc,6BAA+B0E,EACjD7D,GAAY1D,IAAI6C,GACbI,KAAMb,IACDA,EAAS9D,MACXoH,EASD,CACLlS,KAAM,+BACNshB,oBAXmC1S,EAAS9D,SAEvCkF,MAAOtF,IACRyG,QAAQC,IAAI1G,OArGlB6W,oBAiHF,SAA6BC,GAC3B,OAAQtP,IACN,IAAI7C,EAAW,eAAA3S,OAAkB8kB,GACjCtR,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MAEXoH,EAASgP,GAAgBtS,EAAS9D,SAGrCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA5HlB+W,eACAxN,cAuhBF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACQ,WAAVxT,EACFwT,EAASiC,GAAoBzV,EAAOwV,IACL,aAAtBA,EAAM7G,OAAOrN,KACtBkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UA7hBrDqd,kBA+HF,SAA2BrX,GACzB,OAAQ6H,IACF7H,GACF6H,EAOC,SAA6B7H,GAClC,MAAO,CACL,CACErK,KAAM,sBACN+T,GAAI1J,EAAK0J,GACTxO,OAAQ8E,EAAK9E,OACboc,WAAYtX,EAAKsX,WACjBC,WAAYvX,EAAKuX,WACjBC,YAAaxX,EAAKwX,cAfTC,CAAoBzX,MAjIjC0X,aA4PF,SAAsBhO,EAAIzE,EAASmH,EAASlT,EAAQye,EAAkBC,GACpE,OAAQ/P,IACNA,EA0YK,CACLlS,KAAM,mBA1YNkS,EAoPJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,oBAAqBsP,WArPzB4D,CAAQ5D,IACjB,IAAID,EAAc,SAAW0E,EAC7B7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC3BmT,GACFlc,GAAQkH,KAAK,qBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGkhB,kBAAkB,MACvDD,GACTnc,GAAQkH,KAAK,sBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGmhB,mBAAmB,MACxD5e,GACTuC,GAAQkH,KAAK,UACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,OAEtDtc,GAAQkH,KAAK,cACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,MAExDlQ,EAkYD,CACLlS,KAAM,uBAjYAkS,EAgYD,CACLlS,KAAM,wBA9XHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,oBAAqBpG,MANf8Q,IACjBwH,EA2XC,CACLlS,KAAM,0BAppBRqiB,oBAkMF,SAA6B3L,EAAQpH,GACnC,OAAQ4C,IACNA,EAmcK,CACLlS,KAAM,mBAncNkS,EAiBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,oBAAqBsP,WAlB3B4D,CAAQ5D,IACjB,IAAID,EAAc,oBAAsBqH,EACxCxG,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAYA,EAASsE,QAAQrE,OAC/BqD,EAwcD,CACLlS,KAAM,wBApcHgQ,MAAOtF,IACNwH,EASG,CAAElS,KAAM,oBAAqBpG,MATf8Q,IACjBwH,EAicC,CACLlS,KAAM,0BAnpBRsiB,eAgSF,SAAwBvO,EAAI0C,EAASlT,EAAQye,EAAkBC,GAC7D,OAAQ/P,IACNA,EAoWK,CACLlS,KAAM,mBApWN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAyWD,CACLlS,KAAM,sBAzWIgiB,GACFlc,GAAQkH,KAAK,qBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGkhB,kBAAkB,MACvDD,GACTnc,GAAQkH,KAAK,sBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGmhB,mBAAmB,MACxD5e,GACTuC,GAAQkH,KAAK,UACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,OAEtDtc,GAAQkH,KAAK,cACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,SAM3DpS,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,oBAAqBpG,MAPf8Q,IACjBwH,EAqVC,CACLlS,KAAM,0BAlpBRuiB,wBAyWF,SAAiCxO,GAC/B,OAAQ7B,IACNA,EA0RK,CACLlS,KAAM,mBA1RN,IAAIqP,EAAc,0BAA4B0E,EAC9C7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAE/BqD,EA+RD,CACLlS,KAAM,sBA/RA8F,GAAQkH,KAAK,WAEbkF,EA4RD,CACLlS,KAAM,wBA1RHgQ,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,oBAAqBpG,MAPf8Q,IACjBwH,EAuRC,CACLlS,KAAM,0BAjpBRwiB,gCA8ZF,SAAyCzO,EAAI2C,EAAQ+L,GACnD,OAAQvQ,IACNA,EAoOK,CACLlS,KAAM,mBApON,IAAIqP,EAAc,iCAAmC0E,EACrD7D,GACGI,IAAIjB,GACJI,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EA0OD,CACLlS,KAAM,sBA1OAkS,EAASuP,GAAY/K,IAErB,IAAIxB,EAAc,CAChBwN,GAAID,GAGNvQ,EAASyQ,GAAoBC,iBAAiB1N,GAAa,SAE3DhD,EAiOD,CACLlS,KAAM,wBA/NHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,oBAAqBpG,MANf8Q,IACjBwH,EA4NC,CACLlS,KAAM,0BAhpBR6iB,iCAqdF,SAA0C9O,GACxC,OAAQ7B,IACNA,EA4KK,CACLlS,KAAM,mBA5KN,IAAIqP,EAAc,mCAAqC0E,EACvD7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,EAkLD,CACLlS,KAAM,sBAlLAkS,EAASuP,GAAY1N,KAErB7B,EA+KD,CACLlS,KAAM,wBA7KHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,oBAAqBpG,MANf8Q,IACjBwH,EA0KC,CACLlS,KAAM,0BA/oBR8iB,2BA2bF,SAAoC/O,GAClC,OAAQ7B,IACNA,EAqMK,CACLlS,KAAM,mBArMN,IAAIqP,EAAc,4BAA8B0E,EAChD7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,EA2MD,CACLlS,KAAM,sBA3MAkS,EAASuP,GAAY1N,KAErB7B,EAwMD,CACLlS,KAAM,wBAtMHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,oBAAqBpG,MANf8Q,IACjBwH,EAmMC,CACLlS,KAAM,0BA9oBR+iB,eAkUF,SAAwBhP,EAAI0C,EAASlT,EAAQye,EAAkBC,GAC7D,OAAQ/P,IACNA,EA6TK,CACLlS,KAAM,mBA7TN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAkUD,CACLlS,KAAM,sBAlUIgiB,GACFlc,GAAQkH,KAAK,qBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGkhB,kBAAkB,MACvDD,GACTnc,GAAQkH,KAAK,sBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGmhB,mBAAmB,MACxD5e,GACTuC,GAAQkH,KAAK,UACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,OAEtDtc,GAAQkH,KAAK,cACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,SAM3DpS,MAAOtF,IACNwH,EA0JC,CAAElS,KAAM,oBAAqBpG,MA1Jb8Q,IACjBwH,EA8SC,CACLlS,KAAM,0BA7oBRgjB,wBA+XF,SAAiCjP,GAC/B,OAAQ7B,IACNA,EA+PK,CACLlS,KAAM,mBA/PN,IAAIqP,EAAc,0BAA4B0E,EAC9C7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAoQD,CACLlS,KAAM,sBApQA8F,GAAQkH,KAAK,aAKhBgD,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,oBAAqBpG,MAPf8Q,IACjBwH,EA4PC,CACLlS,KAAM,0BA5oBRijB,WA4IF,SAAoB3T,EAASmH,EAASlT,EAAQye,EAAkBC,GAC9D,OAAQ/P,IACNA,EAifK,CACLlS,KAAM,mBAjfNkS,EAkCF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,sBAAuBsP,WAnC7B4D,CAAQ5D,IAEjBY,GACGd,KAFe,QAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EAwFD,CACLlS,KAAM,eAxFAkS,EAofD,CACLlS,KAAM,sBApfIgiB,GACFlc,GAAQkH,KAAK,qBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGkhB,kBAAkB,MACvDD,GACTnc,GAAQkH,KAAK,sBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGmhB,mBAAmB,MACxD5e,GACTuC,GAAQkH,KAAK,UACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,OAEtDtc,GAAQkH,KAAK,cACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,SAM3DpS,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,sBAAuBpG,MAXjB8Q,IACjBwH,EA+dC,CACLlS,KAAM,0BA3oBRkjB,gBAqNF,SAAyBnP,GACvB,OAAQ7B,IACNA,EAuaK,CACLlS,KAAM,mBAvaN,IAAIqP,EAAc,mBAAqB0E,EACvC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAC/BqD,EA6aD,CACLlS,KAAM,sBA7aA8F,GAAQkH,KAAK,aAGhBgD,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,oBAAqBpG,MANf8Q,IACjBwH,EAuaC,CACLlS,KAAM,0BA1oBRmjB,eAshBF,SAAwBpP,EAAI0C,EAASnH,EAAS/L,EAAQye,EAAkBoB,GACtE,OAAQlR,IACNA,EAqGK,CACLlS,KAAM,mBArGN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GAAYI,IAAIjB,EAAaC,GAASG,KAAMb,IACtCA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAC/BqD,EA6GC,CACLlS,KAAM,sBA7GEgiB,GACFlc,GAAQkH,KAAK,qBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGkhB,kBAAkB,MACvDkB,GACTtd,GAAQkH,KAAK,sBACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGmhB,mBAAmB,MACxD5e,GACTuC,GAAQkH,KAAK,UACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,OAEtDtc,GAAQkH,KAAK,cACbkF,EAAS8O,GAAQ,CAAEpK,QAASH,EAASzV,KAAM,EAAGohB,QAAQ,WAviB9D1N,MAAK,GACL2O,sBAgoBK,WACL,MAAO,CACLrjB,KAAM,+BAjoBRmX,aAAY,GACZC,UACF,IAQA,SAAS4J,GAAQ9L,GACf,OAAQhD,IACNA,EA8mBK,CACLlS,KAAM,mBA9mBN,IAAIqP,EAAc,QAAUpD,GAAYS,UAAUwI,GAClDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASgP,GAAgBtS,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC5DvD,EAonBC,CACLlS,KAAM,wBAnnBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAmNb,SAASgK,KACd,MAAO,CACL1U,KAAM,cA2QV,SAASyhB,GAAY1N,GACnB,OAAQ7B,IACN,IAAI7C,EAAc,SAAW0E,EAE7B7D,GAAY1D,IAAI6C,GACbI,KAAMb,IACL,MAAM9D,EAAO8D,EAAS9D,KACtBoH,EAASoR,GAAiBxY,MAE3BkF,MAAOpW,IACFA,GAA0B,MAAjBA,EAAMiV,QACjB/I,GAAQyd,YA4CX,SAASrC,GAAgB7W,EAAMoL,GACpC,MAAO,CACLzV,KAAM,mBACNqK,KAAMA,EACNwL,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,wBACNtB,MAAOA,EACP2F,MAAOA,GAGJ,SAASif,GAAiBjZ,GAC/B,MAAO,CACLrK,KAAM,cACN+T,GAAI1J,EAAK0J,GACT4N,WAAYtX,EAAKsX,WACjBpc,OAAQ8E,EAAK9E,OACbkX,UAAWpS,EAAKoS,UAChB+G,WAAYnZ,EAAKmZ,WACjB5B,WAAYvX,EAAKuX,WACjBC,YAAaxX,EAAKwX,YAClBpL,QAASpM,EAAKoM,QACdgN,eAAgBpZ,EAAKoZ,eACrBC,gBAAiBrZ,EAAKqZ,gBACtBC,gBAAiBtZ,EAAKsZ,gBACtBC,qBAAsBvZ,EAAKuZ,qBAC3BC,2BAA4BxZ,EAAKwZ,2BACjCC,cAAezZ,EAAKyZ,cACpBC,QAAS1Z,EAAK0Z,QACdxZ,eAAgBF,EAAKE,eACrByZ,SAAU3Z,EAAK2Z,SACfC,SAAU5Z,EAAK4Z,SACfC,UAAW7Z,EAAK6Z,UAChBC,IAAK9Z,EAAK8Z,IACVC,gBAAiB/Z,EAAK+Z,gBACtBC,sBAAuBha,EAAKga,sBAC5BC,WAAYja,EAAKia,WACjBC,MAAOla,EAAKka,MACZC,WAAYna,EAAKma,WACjBpa,aAAcC,EAAKD,aACnBmN,QAASlN,EAAKkN,QACdkN,QAASpa,EAAKoa,QACd5U,QAASxF,EAAKwF,QACd6U,yBAA0Bra,EAAKqa,yBAC/BC,uBAAwBta,EAAKsa,uBAC7BC,oBAAqBva,EAAKua,oBAC1BC,cAAexa,EAAKwa,cACpBC,QAASza,EAAKya,QACdC,eAAgB1a,EAAK0a,eACrBC,wCAAyC3a,EAAK2a,wCAC9CC,SAAU5a,EAAK4a,SACfC,YAAa7a,EAAK6a,YAClBC,YAAa9a,EAAK8a,YAClB1a,gBAAiBJ,EAAKI,gBACtB2a,iBAAkB/a,EAAK+a,iBACvBC,eAAgBhb,EAAKgb,eACrBC,aAAcjb,EAAKib,aACnBC,mBAAoBlb,EAAKkb,mBACzBC,gBAAiBnb,EAAKmb,gBACtBC,cAAepb,EAAKob,cACpBC,wBAAyBrb,EAAKqb,wBAC9BC,8BAA+Btb,EAAKsb,+BAajC,SAASvO,KACd,MAAO,CACLpX,KAAM,kBAUH,SAASmX,KACd,MAAO,CACLnX,KAAM,qBCjqBH,MAAM4lB,GAAkB,CAC7BC,gBACAC,mBA0BF,SAA4B5Q,GAC1B,OAAQhD,IACN,IAAI7C,EAAc,sBAAwBpD,GAAYS,UAAUwI,GAChEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS6T,GAAqBnX,EAAS9D,SAExCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAlClBsb,mBAuCF,WACE,OAAQ9T,IAENhC,GACG1D,IAFe,sBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAAS6T,GAAqBnX,EAAS9D,SAG1CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAlDlBub,iBAyJF,SAA0BlS,GACxB,OAAQ7B,IACN,IAAI7C,EAAc,eAAiB0E,EACnC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAuDhC,IAA+BsX,EAtDhChU,EAuDG,CACLlS,KAAM,oBACN+T,IAHkCmS,EAtDDtX,EAAS9D,MAyD5BiJ,GACduG,YAAa4L,EAAU5L,YACvBC,aAAc2L,EAAU3L,aACxB7D,OAAQwP,EAAUxP,OAClBrM,KAAM6b,EAAU7b,KAChBmQ,SAAU0L,EAAU1L,SACpB0L,UAAWA,EAAUA,YA7DnB,IAAIhR,EAAc,CAChB2B,OAAQjI,EAAS9D,KAAK4L,QAExBxE,EAAS2T,GAAa3Q,GAAa,QAjKvCjB,cAsKF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UA1KrD8hB,kBAyGF,SAA2BpS,EAAIzE,EAASoP,GACtC,OAAQxM,IACNA,EA6HK,CACLlS,KAAM,yBA7HNkS,EA2BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,0BAA2BsP,WA5BjC4D,CAAQ5D,IACjB,IAAID,EAAc,eAAiB0E,EACnC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAE/CqD,EA2HD,CACLlS,KAAM,4BAzHA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAAS2T,GAAa3Q,GAAa,OAMtClF,MAAOtF,IAENwH,EAkBG,CAAElS,KAAM,0BAA2BpG,MAlBrB8Q,IACjBwH,EA4GC,CACLlS,KAAM,4BA5GF8L,IAAMlS,MAAM,yDAlIlBwsB,gBAoDF,SAAyB9W,GACvB,OAAQ4C,IACNA,EAiLK,CACLlS,KAAM,yBAjLNkS,EA4BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,4BAA6BsP,WA7BnC4D,CAAQ5D,IAEjBY,GACGd,KAFe,cAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EA+BD,CACLlS,KAAM,qBA/BAkS,EA8KD,CACLlS,KAAM,4BA5KA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAAS2T,GAAa3Q,GAAa,SAEnCpJ,IAAMlS,MAAM,iDAGfoW,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,4BAA6BpG,MAXvB8Q,IACjBwH,EA+JC,CACLlS,KAAM,4BA/JF8L,IAAMlS,MAAM,mDA9ElBysB,oBA6KF,SAA6BtS,GAC3B,OAAQ7B,IACNA,EAuDK,CACLlS,KAAM,yBAvDN,IAAIqP,EAAc,eAAiB0E,EACnC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA+CG,CACLlS,KAAM,+BA/CJkS,EAyDG,CACLlS,KAAM,4BAxDJkS,EAuDG,CACLlS,KAAM,4BArDJ,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAAS2T,GAAa3Q,GAAa,QA3LvCR,MAAK,GACLuG,YA+FK,WACL,MAAO,CACLjb,KAAM,6BA7FV,SAAS6lB,GAAa3Q,EAAasC,GACjC,OAAQtF,IACN,IAAI7C,EAAc,cAAgBpD,GAAYS,UAAUwI,GACxDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS6T,GAAqBnX,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,cAElEzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MA4Eb,SAASgK,KACd,MAAO,CACL1U,KAAM,oBAoGH,SAAS+lB,GAAqBG,EAAWzQ,GAC9C,MAAO,CACLzV,KAAM,yBACNkmB,UAAWA,EACXrQ,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,8BACNtB,MAAOA,EACP2F,MAAOA,GClNJ,MAAMiiB,GAAgB,CAC3BC,cACAC,eA2GF,SAAwBzS,GACtB,OAAQ7B,IACN,IAAI7C,EAAc,YAAc0E,EAChC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA2FhC,IAA6B6X,EA1F9BvU,EA2FG,CACLlS,KAAM,iBACN+T,IAHgC0S,EA1FD7X,EAAS9D,MA6F5BiJ,GACZqD,UAAWqP,EAAQrP,UACnBsP,eAAgBD,EAAQC,eACxBC,kBAAmBF,EAAQE,kBAC3BlQ,QAASgQ,EAAQhQ,QACjBmQ,aAAcH,EAAQG,aACtBC,cAAeJ,EAAQI,cACvBtC,MAAOkC,EAAQlC,MACfjN,UAAWmP,EAAQnP,UACnBC,QAASkP,EAAQlP,QACjBkO,cAAegB,EAAQhB,cACvBjL,SAAUiM,EAAQjM,eAtNpBvG,cA+IF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACQ,WAAVxT,EACFwT,EAASiC,GAAoBzV,EAAOwV,IACL,aAAtBA,EAAM7G,OAAOrN,KACtBkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UArJrDyiB,gBAwEF,SAAyB/S,EAAIzE,GAC3B,OAAQ4C,IACNA,EAyJK,CACLlS,KAAM,sBAzJNkS,EAqBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,uBAAwBsP,WAtB9B4D,CAAQ5D,IACjB,IAAID,EAAc,YAAc0E,EAChC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAuJD,CACLlS,KAAM,yBAvJA8F,GAAQkH,KAAK,gBAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,uBAAwBpG,MAXlB8Q,IACjBwH,EA8IC,CACLlS,KAAM,6BAzOR+mB,4BAiHF,SAAqChT,EAAI0C,EAASC,EAAQpH,GACxD,OAAQ4C,IACNA,EA+GK,CACLlS,KAAM,sBA/GN,IAAIqP,EAAc,kBAAoB0E,EACtC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,EA+GD,CACLlS,KAAM,yBA/GAkS,EAASqU,GAAW,CAAE3P,QAASH,KAC3BC,GAAoB,GAAVA,GACZxE,EAAS6O,GAAWU,YAAY/K,KAGlCxE,EAyGD,CACLlS,KAAM,2BAvGHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,uBAAwBpG,MANlB8Q,IACjBwH,EAoGC,CACLlS,KAAM,6BAxORgnB,qBAuJF,SAA8BP,GAC5B,OAAQvU,IACFuU,GACFvU,EAOC,SAAgCuU,GACrC,MAAO,CACL,CACEzmB,KAAM,yBACN+T,GAAI0S,EAAQ1S,GACZzO,KAAMmhB,EAAQnhB,OAZL2hB,CAAuBR,MAzJpCS,cA6BF,SAAuB5X,GACrB,OAAQ4C,IACNA,EAiMK,CACLlS,KAAM,sBAjMNkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,yBAA0BsP,WAvBhC4D,CAAQ5D,IAEjBY,GACGd,KAFe,WAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EAyBD,CACLlS,KAAM,kBAzBAkS,EA8LD,CACLlS,KAAM,yBA9LA8F,GAAQkH,KAAK,gBAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,yBAA0BpG,MAXpB8Q,IACjBwH,EAqLC,CACLlS,KAAM,6BAtORmnB,kBAyKF,SAA2BpT,GACzB,OAAQ7B,IACNA,EAoDK,CACLlS,KAAM,sBApDN,IAAIqP,EAAc,YAAc0E,EAChC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA4CG,CACLlS,KAAM,4BA5CJ8F,GAAQkH,KAAK,aACbkF,EAASqU,GAAWrR,KACpBhD,EAoDG,CACLlS,KAAM,6BArOR0U,MAAK,GACLyC,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAAS8N,GAAWrR,GAClB,OAAQhD,IACNA,EAiNK,CACLlS,KAAM,sBAjNN,IAAIqP,EAAc,WAAapD,GAAYS,UAAUwI,GACrDhF,GACG1D,IAAI6C,GACJI,KAAMb,IAmKN,IAA4B6X,EAAShR,EAlKpCvD,GAkK2BuU,EAlKC7X,EAAS9D,KAAK0K,MAkKNC,EAlKa7G,EAAS9D,KAAK2K,UAmK9D,CACLzV,KAAM,sBACNymB,QAASA,EACT5Q,eAAgBJ,KArKZvD,EAiNC,CACLlS,KAAM,2BAhNHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAuCb,SAASgK,KACd,MAAO,CACL1U,KAAM,iBA4HH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,2BACNtB,MAAOA,EACP2F,MAAOA,GA8BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,qBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,wBC/OH,MAAMonB,GAAsB,CACjCC,oBACAC,uBAyBF,SAAgCpS,GAC9B,OAAQhD,IACN,IAAI7C,EAAc,sBAAwBpD,GAAYS,UAAUwI,GAChEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASqV,GAAyB3Y,EAAS9D,SAE5CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAjClB8c,qBAyIF,SAA8BzT,GAC5B,OAAQ7B,IACN,IAAI7C,EAAc,mBAAqB0E,EACvC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAuDhC,IAAmC6Y,EAtDpCvV,EAuDG,CACLlS,KAAM,wBACN+T,IAHsC0T,EAtDD7Y,EAAS9D,MAyD5BiJ,GAClBuD,UAAWmQ,EAAcnQ,UACzBmF,UAAWgL,EAAchL,UACzBiL,KAAMD,EAAcC,KACpBxJ,UAAWuJ,EAAcvJ,UACzBxH,OAAQ+Q,EAAc/Q,OACtBD,QAASgR,EAAchR,QACvBpM,KAAMod,EAAcpd,KACpBmQ,SAAUiN,EAAcjN,SACxBiN,cAAeA,EAAcA,gBAhE3B,IAAIvS,EAAc,CAChB2B,OAAQjI,EAAS9D,KAAK4L,QAExBxE,EAASmV,GAAiBnS,GAAa,QAjJ3CjB,cAsJF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UA1JrDsjB,sBAyFF,SAA+B5T,EAAIzE,EAASoP,GAC1C,OAAQxM,IACNA,EAgIK,CACLlS,KAAM,6BAhINkS,EA2BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,8BAA+BsP,WA5BrC4D,CAAQ5D,IACjB,IAAID,EAAc,mBAAqB0E,EACvC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAE/CqD,EA8HD,CACLlS,KAAM,gCA5HA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAASmV,GAAiBnS,GAAa,SAGvChD,EAqHD,CACLlS,KAAM,kCAnHHgQ,MAAOtF,IAENwH,EAkBG,CAAElS,KAAM,8BAA+BpG,MAlBzB8Q,IACjBwH,EA+GC,CACLlS,KAAM,gCA/GF8L,IAAMlS,MAAM,yDAlHlBguB,oBAmCF,SAA6BtY,GAC3B,OAAQ4C,IACNA,EAqLK,CACLlS,KAAM,6BArLNkS,EA6BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,gCAAiCsP,WA9BvC4D,CAAQ5D,IAEjBY,GACGd,KAFe,kBAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EAgCD,CACLlS,KAAM,yBAhCAkS,EAkLD,CACLlS,KAAM,gCAjLA,IAAI8e,EAAMnP,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtC,IAAIxF,EAAc,CAChB2B,OAAQiI,EAAIze,KAGd6R,EAASmV,GAAiBnS,GAAa,IACvChD,EAAS6O,GAAWU,YAAY3C,EAAIze,WAEpC6R,EAwKD,CACLlS,KAAM,kCAtKHgQ,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,gCAAiCpG,MAX3B8Q,IACjBwH,EAkKC,CACLlS,KAAM,oCAhOR6nB,wBA6JF,SAAiC9T,GAC/B,OAAQ7B,IACNA,EA0DK,CACLlS,KAAM,6BA1DN,IAAIqP,EAAc,mBAAqB0E,EACvC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAkDG,CACLlS,KAAM,mCAlDJkS,EA4DG,CACLlS,KAAM,gCA3DJkS,EA0DG,CACLlS,KAAM,gCAxDJ,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAASmV,GAAiBnS,GAAa,QA3K3CR,MAAK,GACLuG,YA+EK,WACL,MAAO,CACLjb,KAAM,iCA7EV,SAASqnB,GAAiBnS,EAAasC,GACrC,OAAQtF,IACN,IAAI7C,EAAc,kBAAoBpD,GAAYS,UAAUwI,GAC5DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASqV,GAAyB3Y,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,cAEtEzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MA4Db,SAASgK,KACd,MAAO,CACL1U,KAAM,wBAoGH,SAASunB,GAAyBE,EAAehS,GACtD,MAAO,CACLzV,KAAM,6BACNynB,cAAeA,EACf5R,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,kCACNtB,MAAOA,EACP2F,MAAOA,GCnMJ,MAAMyjB,GAAuB,CAClCC,qBACAC,sBA2EF,SAA+BjU,GAC7B,OAAQ7B,IACN,IAAI7C,EAAc,oBAAsB0E,EACxC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA+ChC,IAAoCqZ,EA9CrC/V,EA+CG,CACLlS,KAAM,yBACN+T,IAHuCkU,EA9CDrZ,EAAS9D,MAiD5BiJ,GACnBmU,OAAQD,EAAeC,OACvBxR,OAAQuR,EAAevR,OACvBrM,KAAM4d,EAAe5d,KACrB4Z,SAAUgE,EAAehE,SACzBC,UAAW+D,EAAe/D,UAC1BlL,SAAUiP,EAAejP,SACzBiP,eAAgBA,EAAeA,iBAtD7B,IAAI/S,EAAc,CAChB2B,OAAQjI,EAAS9D,KAAK4L,QAExBxE,EAAS6V,GAAkB7S,GAAa,QAnF5CjB,cAwFF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UA5FrD8jB,qBAqBF,SAA8B7Y,GAC5B,OAAQ4C,IACNA,EA4HK,CACLlS,KAAM,8BA5HNkS,EA4BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,iCAAkCsP,WA7BxC4D,CAAQ5D,IAEjBY,GACGd,KAFe,mBAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EA+BD,CACLlS,KAAM,0BA/BAkS,EAyHD,CACLlS,KAAM,iCAvHA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAAS6V,GAAkB7S,GAAa,SAExChD,EAgHD,CACLlS,KAAM,mCA9GHgQ,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,iCAAkCpG,MAX5B8Q,IACjBwH,EA0GC,CACLlS,KAAM,qCAzJRooB,yBAgGF,SAAkCrU,GAChC,OAAQ7B,IACNA,EAgDK,CACLlS,KAAM,8BAhDN,IAAIqP,EAAc,oBAAsB0E,EACxC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAwCG,CACLlS,KAAM,oCAxCJkS,EAkDG,CACLlS,KAAM,iCAlDJ,IAAI8e,EAAMlQ,EAAS9D,KACnBoH,EAAS6O,GAAWU,YAAY3C,EAAIze,UAvGxCqU,MAAK,GACLuG,YAgEK,WACL,MAAO,CACLjb,KAAM,kCA9DV,SAAS+nB,GAAkB7S,EAAasC,GACtC,OAAQtF,IACN,IAAI7C,EAAc,mBAAqBpD,GAAYS,UAAUwI,GAC7DhF,GACG1D,IAAI6C,GACJI,KAAMb,IAiGN,IAAmCqZ,EAAgBxS,EAhGlDvD,GAgGkC+V,EAhGCrZ,EAAS9D,KAAK0K,MAgGCC,EAhGM7G,EAAS9D,KAAK2K,UAiGrE,CACLzV,KAAM,8BACNioB,eAAgBA,EAChBpS,eAAgBJ,OAlGbzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MA6Cb,SAASgK,KACd,MAAO,CACL1U,KAAM,yBAqDH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,mCACNtB,MAAOA,EACP2F,MAAOA,GC5HJ,MAAMgkB,GAAqB,CAChCC,mBACAC,sBA8DF,WACE,OAAQrW,IAENhC,GACG1D,IAFe,yBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASsW,GAAyB5Z,EAAS9D,SAG9CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAzElB+d,oBAuLF,SAA6B1U,GAC3B,OAAQ7B,IACN,IAAI7C,EAAc,kBAAoB0E,EACtC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAgDhC,IAAmC8Z,EA/CpCxW,EAgDG,CACLlS,KAAM,uBACN+T,IAHsC2U,EA/CD9Z,EAAS9D,MAkD7BiJ,GACjB4U,aAAcD,EAAaC,aAC3B9B,cAAe6B,EAAa7B,cAC5BvP,UAAWoR,EAAapR,UACxBsR,YAAaF,EAAaE,YAC1BrR,QAASmR,EAAanR,QACtBlN,KAAMqe,EAAare,KACnBwe,uBAAwBH,EAAaG,uBACrCC,MAAOJ,EAAaI,YApPtB7U,cA+LF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAAgC,qBAAVA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UAnMrD0kB,qBAiIF,SAA8BhV,EAAIzE,EAASoP,GACzC,OAAQxM,IACNA,EA8HK,CACLlS,KAAM,4BA9HNkS,EAiCJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,6BAA8BsP,WAlClC4D,CAAQ5D,IACjB,IAAID,EAAc,kBAAoB0E,EACtC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAE/CqD,EA4HD,CACLlS,KAAM,+BA5HAkS,EAtBD,CACLlS,KAAM,wBAwBA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAASmW,GAAmBC,gBAAgBpT,GAAa,OAM5DlF,MAAOtF,IAENwH,EAOG,CAAElS,KAAM,6BAA8BpG,MAPxB8Q,IACjBwH,EA4GC,CACLlS,KAAM,+BA5GF8L,IAAMlS,MAAM,wDA3JlBovB,mBA2EF,SAA4B1Z,EAASmH,GACnC,OAAQvE,IACNA,EAmLK,CACLlS,KAAM,4BAnLNkS,EA6BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,+BAAgCsP,WA9BtC4D,CAAQ5D,IAEjBY,GACGd,KAFe,iBAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,mCACd4Y,EAiLD,CACLlS,KAAM,+BAjLAkS,EA+BD,CACLlS,KAAM,wBA/BA8F,GAAQkH,KAAK,mBAEb,IAAIkI,EAAc,CAChB0B,QAASH,GAGXvE,EAASmW,GAAmBC,gBAAgBpT,GAAa,SAGzDhD,EAsKD,CACLlS,KAAM,iCApKHgQ,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,+BAAgCpG,MAX1B8Q,IACjBwH,EAgKC,CACLlS,KAAM,mCAtQRipB,uBAsMF,SAAgClV,GAC9B,OAAQ7B,IACNA,EAuDK,CACLlS,KAAM,4BAvDN,IAAIqP,EAAc,kBAAoB0E,EACtC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA+CG,CACLlS,KAAM,kCA/CJkS,EAyDG,CACLlS,KAAM,+BAvDJ,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAASmW,GAAmBC,gBAAgBpT,GAAa,QAlN7DgU,qBA8BF,SAA8BnV,EAAI2C,GAChC,OAAQxE,IACNA,EA8NK,CACLlS,KAAM,4BA9NN,IAAIqP,EAAc,uBAAyB0E,EAC3C7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,EA8ND,CACLlS,KAAM,+BA9NAkS,EAAS6O,GAAWU,YAAY/K,IAChCxE,EAASoW,GAAgB,CAAEzR,OAAQH,MAEnCxE,EA0ND,CACLlS,KAAM,iCAxNHgQ,MAAOtF,IACNwH,EAMG,CAAElS,KAAM,6BAA8BpG,MANxB8Q,IACjBwH,EAqNC,CACLlS,KAAM,mCApQR0U,MAAK,GACLuG,YAsHK,WACL,MAAO,CACLjb,KAAM,+BAvHRmX,aAAY,GACZC,UACF,IAQA,SAASkR,GAAgBpT,EAAasC,GACpC,OAAQtF,IACNA,EA+OK,CACLlS,KAAM,4BA/ON,IAAIqP,EAAc,iBAAmBpD,GAAYS,UAAUwI,GAC3DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASsW,GAAyB5Z,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YACrEvD,EA+OC,CACLlS,KAAM,iCA9OHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EA2OC,CACLlS,KAAM,kCAnJH,SAAS0U,KACd,MAAO,CACL1U,KAAM,uBAmGH,SAASwoB,GAAyBE,EAAcjT,GACrD,MAAO,CACLzV,KAAM,4BACN0oB,aAAcA,EACd7S,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,iCACNtB,MAAOA,EACP2F,MAAOA,GA2BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,2BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,8BC9QH,MAAMmpB,GAAmB,CAC9BC,iBACAC,kBA8EF,SAA2BtV,GACzB,OAAQ7B,IACN,IAAI7C,EAAc,gBAAkB0E,EACpC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA8ChC,IAAgC0a,EA7CjCpX,EA8CG,CACLlS,KAAM,qBACN+T,IAHmCuV,EA7CD1a,EAAS9D,MAgD5BiJ,GACf2C,OAAQ4S,EAAW5S,OACnBY,UAAWgS,EAAWhS,UACtBxM,KAAMwe,EAAWxe,KACjBye,kBAAmBD,EAAWC,kBAC9BC,mBAAoBF,EAAWE,mBAC/Bnf,KAAMif,EAAWjf,KACjBkN,QAAS+R,EAAW/R,QACpBkS,mBAAoBH,EAAWG,mBAC/BC,oBAAqBJ,EAAWI,0BA1IlCzV,cAsFF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UA1FrDslB,iBAoBF,SAA0Bra,GACxB,OAAQ4C,IACNA,EAiIK,CACLlS,KAAM,0BAjINkS,EAgCF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,6BAA8BsP,WAjCpC4D,CAAQ5D,IAEjBY,GACGd,KAFe,eAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,0CAEd4Y,EAkCD,CACLlS,KAAM,sBAlCAkS,EA6HD,CACLlS,KAAM,6BA5HA,IAAIkV,EAAc,CAChB2B,OAAQvH,EAAQoH,QAGlBxE,EAASkX,GAAclU,QAElB,CACL,IAAIA,EAAc,CAChB2B,OAAQvH,EAAQoH,QAGlBxE,EAASkX,GAAclU,OAG1BlF,MAAOtF,IAENwH,EAUG,CAAElS,KAAM,6BAA8BpG,MAVxB8Q,IACjBwH,EA0GC,CACLlS,KAAM,iCA7JR4pB,qBA8FF,SAA8B7V,EAAI2C,GAChC,OAAQxE,IACNA,EAsDK,CACLlS,KAAM,0BAtDN,IAAIqP,EAAc,gBAAkB0E,EACpC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA8CG,CACLlS,KAAM,gCA9CJkS,EAwDG,CACLlS,KAAM,6BAnDJkS,EAASkX,GAJS,CAChBvS,OAAQH,SAtGdhC,MAAK,GACLuG,YAmEK,WACL,MAAO,CACLjb,KAAM,8BAlEV,SAASopB,GAAclU,GACrB,OAAQhD,IACN,IAAI7C,EAAc,eAAiBpD,GAAYS,UAAUwI,GACzDhF,GACG1D,IAAI6C,GACJI,KAAMb,IAoGN,IAA+B0a,EAAY7T,EAnG1CvD,GAmG8BoX,EAnGC1a,EAAS9D,KAAK0K,MAmGHC,EAnGU7G,EAAS9D,KAAK2K,UAoGjE,CACLzV,KAAM,0BACNspB,WAAYA,EACZzT,eAAgBJ,OArGbzF,MAAOtF,IACNyG,QAAQC,IAAI1G,MAiDb,SAASgK,KACd,MAAO,CACL1U,KAAM,qBAoDH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,+BACNtB,MAAOA,EACP2F,MAAOA,GC5HJ,MAAMwlB,GAAoB,CAC/BC,kBACAC,2BAqCF,SAAoC7U,GAClC,OAAQhD,IACNA,EAkQK,CACLlS,KAAM,2BAlQN,IAAIqP,EAAc,sBAAwBpD,GAAYS,UAAUwI,GAChEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS8X,GAAuBpb,EAAS9D,OACzCoH,EAkQC,CACLlS,KAAM,gCAjQHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/ClBuf,qBAoDF,WACE,OAAQ/X,IAENhC,GACG1D,IAFe,wBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAAS8X,GAAuBpb,EAAS9D,SAG5CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/DlBwf,mBAsNF,SAA4BnW,GAC1B,OAAQ7B,IACN,IAAI7C,EAAc,iBAAmB0E,EACrC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA0ChC,IAAiCub,EAzClCjY,EA0CG,CACLlS,KAAM,sBACN+T,IAHoCoW,EAzCDvb,EAAS9D,MA4C5BiJ,GAChBjJ,KAAMqf,EAAYrf,KAClB4L,OAAQyT,EAAYzT,OACpBrM,KAAM8f,EAAY9f,KAClBoS,UAAW0N,EAAY1N,UACvB5M,QAASsa,EAAYta,QACrB2K,SAAU2P,EAAY3P,SACtBjV,OAAQ4kB,EAAY5kB,OACpBujB,MAAOqB,EAAYrB,MACnBsB,SAAUD,EAAYC,SACtBC,yBAA0BF,EAAYE,yBACtCC,iBAAkBH,EAAYG,iBAC9BC,oBAAqBJ,EAAYI,0BAjRnCtW,cA8NF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAA+B,sBAATA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UAlOrDmmB,oBAuGF,SAA6BzW,EAAIzE,EAASoP,GACxC,OAAQxM,IACNA,EA4LK,CACLlS,KAAM,2BA5LNkS,EA0FJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,4BAA6BsP,WA3FjC4D,CAAQ5D,IACjB,IAAID,EAAc,iBAAmB0E,EACrC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAE/BqD,EA0LD,CACLlS,KAAM,gCAtLHgQ,MAAOtF,IAENwH,EAOG,CAAElS,KAAM,4BAA6BpG,MAPvB8Q,IACjBwH,EAkLC,CACLlS,KAAM,8BAlLF8L,IAAMlS,MAAM,mDAzHlB6wB,sBAkIF,SAA+B1W,EAAI2C,EAAQ7H,EAAQ6b,EAAQH,GACzD,OAAQrY,IACNA,EAgKK,CACLlS,KAAM,2BAhKN,IAAIqP,EAAc,wBAA0B0E,EAC5C7D,GACGI,IAAIjB,EAAa,CAAEqb,OAAQA,GAAkB,KAAMH,oBAAqBA,IACxE9a,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EAgKD,CACLlS,KAAM,8BAhKA,IAAIkV,EAAc,CAChBlU,KAAM,EACNyX,KAAM,GACN5B,OAAQH,EACRsE,SAAUnM,GAGZqD,EAAS4X,GAAe5U,GAAa,IACrChD,EAASyY,GAAgBC,aAAa1V,GAAa,IACnDhD,EAAS6O,GAAWM,uBAAuB3K,SAE3CxE,EAoJD,CACLlS,KAAM,gCAlJHgQ,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,4BAA6BpG,MAPvB8Q,IACjBwH,EA+IC,CACLlS,KAAM,kCA1SR6qB,sBAoKF,SAA+B9W,EAAI2C,EAAQ7H,EAAQ6b,GACjD,OAAQxY,IACNA,EA6HK,CACLlS,KAAM,2BA7HN,IAAIqP,EAAc,wBAA0B0E,EAC5C7D,GACGI,IAAIjB,EAAa,CAAEqb,OAAQA,GAAkB,OAC7Cjb,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAC/CqD,EA6HD,CACLlS,KAAM,8BA7HA,IAAIkV,EAAc,CAChBlU,KAAM,EACNyX,KAAM,GACN5B,OAAQH,EACRsE,SAAUnM,GAGZqD,EAAS4X,GAAe5U,GAAa,IACrChD,EAASyY,GAAgBC,aAAa1V,GAAa,SAEnDhD,EAkHD,CACLlS,KAAM,gCAhHHgQ,MAAOtF,IACNwH,EAmBC,CAAElS,KAAM,4BAA6BpG,MAnBrB8Q,IACjBwH,EA6GC,CACLlS,KAAM,kCAzSR8qB,kBA+DF,SAA2Bxb,GACzB,OAAQ4C,IACNA,EAiOK,CACLlS,KAAM,2BAjONkS,EAmBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,8BAA+BsP,WApBrC4D,CAAQ5D,IAEjBY,GACGd,KAFe,gBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpD/C,IAAMxS,QAAQ,mCACd4Y,EAsBD,CACLlS,KAAM,uBAtBAkS,EA8ND,CACLlS,KAAM,+BA7NAkS,EA4ND,CACLlS,KAAM,gCA1NHgQ,MAAOtF,IACNwH,EAUG,CAAElS,KAAM,8BAA+BpG,MAVzB8Q,IACjBwH,EAuNC,CACLlS,KAAM,kCAxSR+qB,sBAmOF,SAA+BhX,GAC7B,OAAQ7B,IACNA,EA4DK,CACLlS,KAAM,2BA5DN,IAAIqP,EAAc,iBAAmB0E,EACrC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAoDG,CACLlS,KAAM,iCApDJkS,EA8DG,CACLlS,KAAM,8BA9DJ8F,GAAQkH,KAAK,qBACbkF,EAAS4X,GAAe5U,SA1O5BR,MAAK,GACLuG,YAmRK,WACL,MAAO,CACLjb,KAAM,8BApRRmX,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASqR,GAAe5U,EAAasC,GACnC,OAAQtF,IACNA,EAkRK,CACLlS,KAAM,2BAlRN,IAAIqP,EAAc,gBAAkBpD,GAAYS,UAAUwI,GAC1DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS8X,GAAuBpb,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YACnEvD,EAkRC,CACLlS,KAAM,gCAjRHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAqEb,SAASgK,KACd,MAAO,CACL1U,KAAM,sBAgJH,SAASgqB,GAAuBG,EAAa1U,GAClD,MAAO,CACLzV,KAAM,2BACNmqB,YAAaA,EACbtU,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,gCACNtB,MAAOA,EACP2F,MAAOA,GAsCJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,0BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,6BCtTH,MAAMgrB,GAAkC,CAC7CC,8BAoBF,SAAuClX,GACrC,OAAQ7B,IACNA,EA8EK,CACLlS,KAAM,4CA9EN,IAAIqP,EAAc,kCAAoC0E,EACtD7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EAUG,CACLlS,KAAM,4CACNkrB,0BAZmDtc,EAAS9D,OAC1DoH,EAgFG,CACLlS,KAAM,iDA/EHgQ,MAAOtF,IACNwH,EA6EC,CACLlS,KAAM,mDA1GRiU,cAiDF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,kBAAVA,GAAsC,kCAATA,EACKwV,EAEAA,EAAM7G,OAAOhJ,UArDrDqQ,MAYK,WACL,MAAO,CACL1U,KAAM,wCAbRib,YAqFK,WACL,MAAO,CACLjb,KAAM,+CAtFRmX,aAAY,GACZC,UACF,IA6DO,SAASjD,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,iDACNtB,MAAOA,EACP2F,MAAOA,GA4BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,2CAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,8CCzGH,MAAM2qB,GAAkB,CAC7BC,aAmBF,SAAsB1V,EAAasC,GACjC,OAAQtF,IACNA,EAiNK,CACLlS,KAAM,yBAjNN,IAAIqP,EAAc,cAAgBpD,GAAYS,UAAUwI,GACxDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASiZ,GAAsBvc,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAClEvD,EAiNC,CACLlS,KAAM,8BAhNHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EA6MC,CACLlS,KAAM,gCA5ORorB,mBAmCF,WACE,OAAQlZ,IAENhC,GACG1D,IAFe,sBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASiZ,GAAsBvc,EAAS9D,SAG3CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA9ClB2gB,iBAwJF,SAA0BtX,GACxB,OAAQ7B,IACN,IAAI7C,EAAc,eAAiB0E,EACnC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAgDhC,IAAgC0c,EA/CjCpZ,EAgDG,CACLlS,KAAM,oBACN+T,IAHmCuX,EA/CD1c,EAAS9D,MAkD7BiJ,GACd4N,WAAY2J,EAAU3J,WACtBpc,OAAQ+lB,EAAU/lB,OAClBgmB,SAAUD,EAAUC,SACpB7U,OAAQ4U,EAAU5U,OAClBkL,WAAY0J,EAAU1J,WACtBC,YAAayJ,EAAUzJ,YACvBxX,KAAMihB,EAAUjhB,KAChBmhB,iBAAkBF,EAAUE,uBArN9BvX,cAgKF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAAgC,kBAAVA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UApKrDonB,kBAqGF,SAA2B1X,EAAIzE,EAASoP,GACtC,OAAQxM,IACNA,EA2HK,CACLlS,KAAM,yBA3HNkS,EA8BJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,0BAA2BsP,WA/B/B4D,CAAQ5D,IACjB,IAAID,EAAc,eAAiB0E,EACnC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAE/CqD,EAyHD,CACLlS,KAAM,4BAzHAkS,EAtBD,CACLlS,KAAM,qBAuBA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAASyY,GAAgBC,aAAa1V,GAAa,SAEnDhD,EAiHD,CACLlS,KAAM,8BA/GHgQ,MAAOtF,IAENwH,EAMG,CAAElS,KAAM,0BAA2BpG,MANrB8Q,IACjBwH,EA2GC,CACLlS,KAAM,gCAxOR0rB,gBAgDF,SAAyBpc,EAAS6C,GAChC,OAAQD,IACNA,EA+KK,CACLlS,KAAM,yBA/KNkS,EA4BF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,4BAA6BsP,WA7BnC4D,CAAQ5D,IAEjBY,GACGd,KAFe,cAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EA6KD,CACLlS,KAAM,4BA7KAkS,EA8BD,CACLlS,KAAM,qBA5BA,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAEd6R,EAASyY,GAAgBC,aAAa1V,GAAa,OAMtDlF,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,4BAA6BpG,MAXvB8Q,IACjBwH,EA6JC,CACLlS,KAAM,gCAvOR2rB,oBAuKF,SAA6B5X,GAC3B,OAAQ7B,IACNA,EAuDK,CACLlS,KAAM,yBAvDN,IAAIqP,EAAc,eAAiB0E,EACnC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA+CG,CACLlS,KAAM,+BA/CJkS,EAyDG,CACLlS,KAAM,4BAvDJ,IAAIkV,EAAc,CAChB2B,OAFQlH,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAExBra,KAGd6R,EAASyY,GAAgBC,aAAa1V,GAAa,QAnLvDR,MAAK,GACLuG,YA2FK,WACL,MAAO,CACLjb,KAAM,4BA5FRmX,aAAY,GACZC,UACF,IAkFO,SAAS1C,KACd,MAAO,CACL1U,KAAM,oBAgGH,SAASmrB,GAAsBG,EAAW7V,GAC/C,MAAO,CACLzV,KAAM,yBACNsrB,UAAWA,EACXzV,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,8BACNtB,MAAOA,EACP2F,MAAOA,GA2BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,wBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,2BC9OH,MAAM2iB,GAAsB,CACjCC,iBAoBF,SAA0B1N,EAAasC,GACrC,OAAQtF,IACNA,EA6NK,CACLlS,KAAM,8BA7NN,IAAIqP,EAAc,mBAAqBpD,GAAYS,UAAUwI,GAC7DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASiZ,GAAsBvc,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAClEvD,EA6NC,CACLlS,KAAM,mCA5NHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAyNC,CACLlS,KAAM,qCAzPR4rB,uBAoCF,WACE,OAAQ1Z,IAENhC,GACG1D,IAFe,2BAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASiZ,GAAsBvc,EAAS9D,SAG3CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/ClBmhB,qBA8JF,SAA8B9X,GAC5B,OAAQ7B,IACN,IAAI7C,EAAc,oBAAsB0E,EACxC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAgDhC,IAAgCkd,EA/CjC5Z,EAgDG,CACLlS,KAAM,yBACN+T,IAHmC+X,EA/CDld,EAAS9D,MAkDzBiJ,GAClB4N,WAAYmK,EAAcnK,WAC1BoK,OAAQD,EAAcC,OACtBtJ,YAAaqJ,EAAcrJ,YAC3BuJ,UAAWF,EAAcE,UACzBC,WAAYH,EAAcG,WAC1BC,cAAeJ,EAAcI,cAC7BC,YAAaL,EAAcK,YAC3B7G,aAAcwG,EAAcxG,aAC5BlB,gBAAiB0H,EAAc1H,gBAC/BX,eAAgBqI,EAAcrI,eAC9BG,qBAAsBkI,EAAclI,qBACpCF,gBAAiBoI,EAAcpI,gBAC/BC,gBAAiBmI,EAAcnI,gBAC/BI,QAAS+H,EAAc/H,QACvBuH,UAAWQ,EAAcR,gBAlO3BrX,cAsKF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAAgC,kBAAVA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UA1KrD+nB,sBAyGF,SAA+BrY,EAAIzE,EAASoP,GAC1C,OAAQxM,IACNA,EAoIK,CACLlS,KAAM,8BApINkS,EAgCJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,+BAAgCsP,WAjCpC4D,CAAQ5D,IACjB,IAAID,EAAc,oBAAsB0E,EACxC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAE/CqD,EAkID,CACLlS,KAAM,iCAhIA,IAAIkV,EAAc,CAChBwN,GAFQ/S,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAE5Bra,KAEV6R,EAASyQ,GAAoBC,iBAAiB1N,GAAa,OAM9DlF,MAAOtF,IAENwH,EAOG,CAAElS,KAAM,+BAAgCpG,MAP1B8Q,IACjBwH,EAmHC,CACLlS,KAAM,iCAnHF8L,IAAMlS,MAAM,yDAlIlByyB,oBAiDF,SAA6B/c,EAAS6C,GACpC,OAAQD,IACNA,EA2LK,CACLlS,KAAM,8BA3LNkS,EAyBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,iCAAkCsP,WA1BxC4D,CAAQ5D,IAEjBY,GACGd,KAFe,mBAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd4Y,EAyLD,CACLlS,KAAM,iCAxLA,IAAIkV,EAAc,CAChBwN,GAFQ/S,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAE5Bra,KAEV6R,EAASyQ,GAAoBC,iBAAiB1N,GAAa,SAG3DhD,EAiLD,CACLlS,KAAM,mCA/KHgQ,MAAOtF,IAENwH,EAUG,CAAElS,KAAM,iCAAkCpG,MAV5B8Q,IACjBwH,EA2KC,CACLlS,KAAM,qCApPRssB,wBA6KF,SAAiCvY,GAC/B,OAAQ7B,IACNA,EA8DK,CACLlS,KAAM,8BA9DN,IAAIqP,EAAc,oBAAsB0E,EACxC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAsDG,CACLlS,KAAM,oCAtDJkS,EAgEG,CACLlS,KAAM,iCA9DJ,IAAIkV,EAAc,CAChBwN,GAFQ/S,KAAK4C,MAAM3D,EAASsE,QAAQwH,cAE5Bra,KAGV6R,EAASyQ,GAAoBC,iBAAiB1N,GAAa,QAzL/DR,MAoFK,WACL,MAAO,CACL1U,KAAM,0BArFRusB,YA+FK,WACL,MAAO,CACLvsB,KAAM,iCAhGRib,YAwFK,WACL,MAAO,CACLjb,KAAM,iCAzFRmX,aAAY,GACZC,UACF,IAyLO,SAAS+T,GAAsBW,EAAerW,GACnD,MAAO,CACLzV,KAAM,8BACN8rB,cAAeA,EACfjW,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,mCACNtB,MAAOA,EACP2F,MAAOA,GAkCJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,6BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,gCC7PH,MAAMwsB,GAAwB,CACnCC,0BAsBF,WACE,OAAQva,IACNA,EAwBK,CACLlS,KAAM,+BAvBNkQ,GACG1D,IAFe,8CAGfiD,KAAMb,IACLsD,EAASwa,GAA0B9d,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YACtEvD,EAwBC,CACLlS,KAAM,oCAvBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAoBC,CACLlS,KAAM,sCAtDR2sB,mBAKF,SAA4BzX,EAAasC,GACvC,OAAQtF,IACNA,EAwCK,CACLlS,KAAM,+BAxCN,IAAIqP,EAAc,mBAAqBpD,GAAYS,UAAUwI,GAC7DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASwa,GAA0B9d,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YACtEvD,EAwCC,CACLlS,KAAM,oCAvCHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAflByM,aAAY,GACZC,UACF,IAmCO,SAASsV,GAA0BE,EAAiBnX,GACzD,MAAO,CACLzV,KAAM,+BACN4sB,gBAAiBA,EACjB/W,eAAgBJ,GAIb,SAAS2B,KACd,MAAO,CACLpX,KAAM,8BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,iCCrDH,MAAM+W,GAAsB,CACjC8V,oBACAC,uBAsCF,WACE,OAAQ5a,IAENhC,GACG1D,IAFe,0BAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAAS6a,GAAyBne,EAAS9D,SAG9CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAjDlBsiB,qBA4NF,SAA8BjZ,GAC5B,OAAQ7B,IACN,IAAI7C,EAAc,mBAAqB0E,EACvC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA6DhC,IAAmCqe,EA5DpC/a,EA6DG,CACLlS,KAAM,wBACN+T,IAHsCkZ,EA5DDre,EAAS9D,MA+D5BiJ,GAClBjJ,KAAMmiB,EAAcniB,KACpBoiB,MAAOD,EAAcC,MACrBC,UAAWF,EAAcE,UACzBrE,MAAOmE,EAAcnE,MACrBsE,gBAAiBH,EAAcG,gBAC/B3W,QAASwW,EAAcxW,QACvBC,OAAQuW,EAAcvW,OACtBrM,KAAM4iB,EAAc5iB,KACpBiN,UAAW2V,EAAc3V,UACzBC,QAAS0V,EAAc1V,QACvBiD,SAAUyS,EAAczS,SACxBnD,YAAa4V,EAAc5V,YAC3BgW,qBAAsBJ,EAAcI,2BA3StCpZ,cAoOF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAA+B,wBAATA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UAxOrDipB,sBA2HF,SAA+BvZ,EAAIzE,EAASoP,GAC1C,OAAQxM,IACNA,EAkMK,CACLlS,KAAM,6BAlMNkS,EA4EJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,8BAA+BsP,WA7EnC4D,CAAQ5D,IACjB,IAAID,EAAc,mBAAqB0E,EACvC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAE/BqD,EAgMD,CACLlS,KAAM,kCA5LHgQ,MAAOtF,IAENwH,EAOG,CAAElS,KAAM,8BAA+BpG,MAPzB8Q,IACjBwH,EAwLC,CACLlS,KAAM,gCAxLF8L,IAAMlS,MAAM,wDA7IlB2zB,wBAsJF,SAAiCje,GAC/B,OAAQ4C,IACNA,EAsKK,CACLlS,KAAM,6BArKNkQ,GACGd,KAFe,yBAEGE,GAClBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/B/C,IAAMxS,QAAQ,6CACd4Y,EAqKD,CACLlS,KAAM,gCArKA8F,GAAQkH,KAAK,WAEbkF,EAkKD,CACLlS,KAAM,kCA/JHgQ,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,8BAA+BpG,MAPzB8Q,IACjBwH,EA4JC,CACLlS,KAAM,oCApURwtB,wBAiLF,SAAiCzZ,GAC/B,OAAQ7B,IACNA,EA0IK,CACLlS,KAAM,6BA1IN,IAAIqP,EAAc,0BAA4B0E,EAC9C7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAyID,CACLlS,KAAM,gCAzIA8F,GAAQkH,KAAK,aAKhBgD,MAAOtF,IACNwH,EAmBC,CAAElS,KAAM,8BAA+BpG,MAnBvB8Q,IACjBwH,EAiIC,CACLlS,KAAM,oCAnURytB,oBAiDF,SAA6Bne,EAAS6C,GACpC,OAAQD,IACNA,EAyQK,CACLlS,KAAM,6BAzQNkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,gCAAiCsP,WAvBvC4D,CAAQ5D,IAEjBY,GACGd,KAFe,kBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EAwDD,CACLlS,KAAM,yBAxDAkS,EAsQD,CACLlS,KAAM,gCAtQA8F,GAAQkH,KAAK,uBAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,gCAAiCpG,MAX3B8Q,IACjBwH,EA6PC,CACLlS,KAAM,oCAlURgX,8BAkFF,SAAuC1H,GACrC,OAAQ4C,IACNA,EAuOK,CACLlS,KAAM,6BAvONkS,EAmBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,gCAAiCsP,WApBvC4D,CAAQ5D,IAEjBY,GACGd,KAFe,iCAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAAS6O,GAAWU,YAAYnS,EAAQoH,SACxC5K,IAAMxS,QAAQ,0CACd4Y,EAqBD,CACLlS,KAAM,0BApBFkS,EAkOC,CACLlS,KAAM,kCAjOHgQ,MAAOtF,IAENwH,EAUG,CAAElS,KAAM,gCAAiCpG,MAV3B8Q,IACjBwH,EA6NC,CACLlS,KAAM,oCAjUR0tB,wBAwOF,SAAiC3Z,GAC/B,OAAQ7B,IACNA,EAgFK,CACLlS,KAAM,6BAhFN,IAAIqP,EAAc,mBAAqB0E,EACvC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAwEG,CACLlS,KAAM,mCAxEJkS,EAkFG,CACLlS,KAAM,gCAlFJ8F,GAAQkH,KAAK,oBACbkF,EAAS2a,GAAiB3X,OAEzBlF,MAAOtF,IACNwH,EA6EC,CACLlS,KAAM,oCAhUR2tB,OAuPF,SAAgB5Z,GACd,OAAQ7B,IACNA,EAgEK,CACLlS,KAAM,6BAhEN,IAAIqP,EAAc,qCAAuC0E,EACzD7D,GAAYI,IAAIjB,GAAaI,KAAMb,IACjCsD,EAAS2a,GAAiB3X,KAC1BhD,EAkEG,CACLlS,KAAM,gCAlEJ8F,GAAQkH,KAAK,YAEZgD,MAAOtF,IACNwH,EA8DC,CACLlS,KAAM,oCA/TR0U,MAAK,GACLuG,YA2SK,WACL,MAAO,CACLjb,KAAM,gCA5SRmX,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASoU,GAAiB3X,EAAasC,GACrC,OAAQtF,IACNA,EA0SK,CACLlS,KAAM,6BA1SN,IAAIqP,EAAc,kBAAoBpD,GAAYS,UAAUwI,GAC5DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS6a,GAAyBne,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YACrEvD,EA0SC,CACLlS,KAAM,kCAzSHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAuFb,SAASgK,KACd,MAAO,CACL1U,KAAM,wBAqJH,SAAS+sB,GAAyBE,EAAexX,GACtD,MAAO,CACLzV,KAAM,6BACNitB,cAAeA,EACfpX,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,kCACNtB,MAAOA,EACP2F,MAAOA,GAuCJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,4BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,+BC5UH,MAAM4tB,GAA0B,CACrCC,wBACAC,4BACAC,2BAqDF,WACE,OAAQ7b,IAENhC,GACG1D,IAFe,+BAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAAS8b,GAA6Bpf,EAAS9D,SAGlDkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAhElBujB,yBA4MF,SAAkCla,GAChC,OAAQ7B,IACN,IAAI7C,EAAc,wBAA0B0E,EAC5C7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IACjCsD,EA0CC,SAAuCgc,GAC5C,MAAO,CACLluB,KAAM,6BACN+T,GAAIma,EAAkBna,GACtBoa,oBAAqBD,EAAkBC,oBACvCC,gBAAiBF,EAAkBE,gBACnCtF,MAAOoF,EAAkBpF,MACzBtO,SAAU0T,EAAkB1T,SAC5B0T,kBAAmBA,EAAkBA,kBACrC1C,iBAAkB0C,EAAkB1C,iBACpC/gB,gBAAiByjB,EAAkB1C,iBACnC3c,OAAQqf,EAAkBrf,OAC1Bwf,oBAAqBH,EAAkBG,qBAtD5BC,CAA8B1f,EAAS9D,WA/MpDmJ,cAoNF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,GAAgC,kBAAVA,EACYwV,EAEAA,EAAM7G,OAAOhJ,UAxNrDkqB,0BA2GF,SAAmCxa,EAAIzE,EAASoP,GAC9C,OAAQxM,IACNA,EAqKK,CACLlS,KAAM,kCArKNkS,EA4EJ,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,mCAAoCsP,WA7ExC4D,CAAQ5D,IACjB,IAAID,EAAc,wBAA0B0E,EAC5C7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAYA,EAASsE,QAAQrE,OAC/BqD,EAoKD,CACLlS,KAAM,uCAhKHgQ,MAAOtF,IAENwH,EAOG,CAAElS,KAAM,mCAAoCpG,MAP9B8Q,IACjBwH,EA4JC,CACLlS,KAAM,qCA5JF8L,IAAMlS,MAAM,gDA5HlB40B,4BAqIF,SAAqCza,EAAI2C,GACvC,OAAQxE,IACNA,EA0IK,CACLlS,KAAM,kCA1IN,IAAIqP,EAAc,+BAAiC0E,EACnD7D,GACEK,kBAAkBlB,GACjBI,KAAMb,IACL,GAAIA,GAAwC,MAA5BA,EAASsE,QAAQrE,OAAgB,CAI/CqD,EAAS4b,GAHS,CAChBpL,GAAIhM,KAGNxE,EAsID,CACLlS,KAAM,0CArIAkS,EAoID,CACLlS,KAAM,uCAlIHgQ,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,mCAAoCpG,MAP9B8Q,IACjBwH,EA+HC,CACLlS,KAAM,yCAvRRyuB,4BAiKF,SAAqC1a,GACnC,OAAQ7B,IACNA,EA6GK,CACLlS,KAAM,kCA7GN,IAAIqP,EAAc,+BAAiC0E,EACnD7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAE/BqD,EA4GD,CACLlS,KAAM,qCA5GA8F,GAAQkH,KAAK,WAEbkF,EAyGD,CACLlS,KAAM,uCAvGHgQ,MAAOtF,IACNwH,EAmBC,CAAElS,KAAM,mCAAoCpG,MAnB5B8Q,IACjBwH,EAoGC,CACLlS,KAAM,yCAtRR0uB,wBAgEF,SAAiCpf,EAAS6C,GACxC,OAAQD,IACNA,EA6MK,CACLlS,KAAM,kCA7MNkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,qCAAsCsP,WAvB5C4D,CAAQ5D,IAEjBY,GACGd,KAFe,uBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,0CACd4Y,EAyBD,CACLlS,KAAM,8BAzBAkS,EA0MD,CACLlS,KAAM,qCA1MA8F,GAAQkH,KAAK,4BAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,qCAAsCpG,MAXhC8Q,IACjBwH,EAiMC,CACLlS,KAAM,yCArRR2uB,4BAyNF,SAAqC5a,GACnC,OAAQ7B,IACNA,EAmDK,CACLlS,KAAM,kCAnDN,IAAIqP,EAAc,wBAA0B0E,EAC5C7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EA2CG,CACLlS,KAAM,wCA3CJkS,EAqDG,CACLlS,KAAM,qCArDJ8F,GAAQkH,KAAK,yBACbkF,EAAS2b,GAAqB3Y,SAhOlCR,MAAK,GACLyC,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASoV,GAAqB3Y,EAAasC,GACzC,OAAQtF,IACNA,EAgQK,CACLlS,KAAM,kCAhQN,IAAIqP,EAAc,uBAAyBpD,GAAYS,UAAUwI,GACjEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS8b,GAA6Bpf,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,UAAW7G,EAAS9D,KAAK8jB,gBAClG1c,EAgQC,CACLlS,KAAM,uCA/PHgQ,MAAOtF,IACNwH,EA6PC,CACLlS,KAAM,qCA7PFmR,QAAQC,IAAI1G,MAKpB,SAASojB,GAAyB5Y,GAChC,OAAQhD,IACNA,EA+OK,CACLlS,KAAM,kCA/ON,IAAIqP,EAAc,4BAA8BpD,GAAYS,UAAUwI,GACtEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS8b,GAA6Bpf,EAAS9D,KAAM,OACrDoH,EA+OC,CACLlS,KAAM,uCA9OHgQ,MAAOtF,IACNwH,EA4OC,CACLlS,KAAM,qCA5OFmR,QAAQC,IAAI1G,MAwDb,SAASgK,KACd,MAAO,CACL1U,KAAM,6BAkIH,SAASguB,GAA6BE,EAAmBzY,EAAWmZ,GACzE,MAAO,CACL5uB,KAAM,kCACNkuB,kBAAmBA,EACnBrY,eAAgBJ,EAChBmZ,cAAeA,GAGZ,SAASza,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,uCACNtB,MAAOA,EACP2F,MAAOA,GA4BJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,iCAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,oCC/RH,MAAM6uB,GAAc,CACzBC,YACAC,eAuCF,WACE,OAAQ7c,IAENhC,GACG1D,IAFe,iBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAAS8c,GAAiBpgB,EAAS9D,SAGtCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAlDlBukB,qBAuDF,SAA8BzN,GAC5B,OAAQtP,IACNA,EA6RK,CACLlS,KAAM,oBA7RN,IAAIqP,EAAW,oBAAA3S,OAAuB8kB,GACtCtR,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,OAEXoH,EAAS8c,GAAiBpgB,EAAS9D,OACnCoH,EA2RD,CACLlS,KAAM,0BAzRHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAASkD,GAAQ1K,IACjBwH,EAqRC,CACLlS,KAAM,2BA5VRkvB,aAmPF,SAAsBnb,GACpB,OAAQ7B,IACN,IAAI7C,EAAc,UAAY0E,EAC9B7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA+DhC,IAA2B2V,EA9D5BrS,EA+DG,CACLlS,KAAM,eACN+T,IAH8BwQ,EA9DD3V,EAAS9D,MAiE5BiJ,GACVqD,UAAWmN,EAAMnN,UACjB9R,KAAMif,EAAMjf,KACZwT,QAASyL,EAAMzL,QACf/K,KAAMwW,EAAMxW,KACZgL,MAAOwL,EAAMxL,MACbC,SAAUuL,EAAMvL,SAChBH,SAAU0L,EAAM1L,SAChBM,SAAUoL,EAAMpL,SAChBxF,SAAU4Q,EAAM5Q,SAChB6G,SAAU+J,EAAM/J,SAChB3G,OAAQ0Q,EAAM1Q,OACdkG,iBAAkBwK,EAAMxK,iBACxBoV,YAAa5K,EAAM4K,YACnBC,mBAAoB7K,EAAM6K,mBAC1BC,eAAgB9K,EAAM8K,qBAtUxBpb,cA2PF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACQ,WAAVxT,EACFwT,EAASiC,GAAoBzV,EAAOwV,IACL,aAAtBA,EAAM7G,OAAOrN,KACtBkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UAjQrDirB,cAyMF,SAAuBvb,EAAIzE,EAASoP,GAClC,OAAQxM,IACNA,EAwIK,CACLlS,KAAM,oBAxINkS,EAqBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,qBAAsBsP,WAtB5B4D,CAAQ5D,IACjB,IAAID,EAAc,UAAY0E,EAC9B7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAsID,CACLlS,KAAM,uBAtIA8F,GAAQkH,KAAK,cAKhBgD,MAAOtF,IAENwH,EAkBG,CAAElS,KAAM,qBAAsBpG,MAlBhB8Q,IACjBwH,EA6HC,CACLlS,KAAM,2BAzVRuvB,wBAsJF,SAAiCxb,GAC/B,OAAQ7B,IACNA,EA0LK,CACLlS,KAAM,oBA1LN,IAAIqP,EAAc,iBAAmB0E,EACrC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAyLD,CACLlS,KAAM,uBAzLA8F,GAAQkH,KAAK,cAKhBgD,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,qBAAsBpG,MAPhB8Q,IACjBwH,EAiLC,CACLlS,KAAM,2BAxVRwvB,wBAgLF,SAAiCzb,GAC/B,OAAQ7B,IACNA,EA+JK,CACLlS,KAAM,oBA/JN,IAAIqP,EAAc,iBAAmB0E,EACrC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EA8JD,CACLlS,KAAM,uBA9JA8F,GAAQkH,KAAK,cAKhBgD,MAAOtF,IACNwH,EAASkD,GAAQ1K,IACjBwH,EAsJC,CACLlS,KAAM,2BAvVRyvB,mBAkQF,SAA4BlL,GAC1B,OAAQrS,IACFqS,GACFrS,EAOC,SAA8BqS,GACnC,MAAO,CACL,CACEvkB,KAAM,uBACN+T,GAAIwQ,EAAMxQ,GACVzO,KAAMif,EAAMjf,OAZHoqB,CAAqBnL,MApQlCoL,YAqEF,SAAqBrgB,EAAS6C,GAC5B,OAAQD,IACNA,EAwQK,CACLlS,KAAM,oBAxQNkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,uBAAwBsP,WAvB9B4D,CAAQ5D,IAEjBY,GACGd,KAFe,SAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EA+DD,CACLlS,KAAM,gBA/DAkS,EAqQD,CACLlS,KAAM,uBArQA8F,GAAQkH,KAAK,cAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,uBAAwBpG,MAXlB8Q,IACjBwH,EA4PC,CACLlS,KAAM,2BArVR4vB,eAsGF,SAAwBtgB,EAAS6C,GAC/B,OAAQD,IACNA,EAsOK,CACLlS,KAAM,oBAtONkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,uBAAwBsP,WAvB9B4D,CAAQ5D,IAEjBY,GACGd,KAFe,kBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uCACd4Y,EA6BD,CACLlS,KAAM,gBA7BAkS,EAmOD,CACLlS,KAAM,uBAnOA8F,GAAQkH,KAAK,aAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,uBAAwBpG,MAXlB8Q,IACjBwH,EA0NC,CACLlS,KAAM,2BApVR6vB,gBAmRF,SAAyB9b,GACvB,OAAQ7B,IACNA,EAwDK,CACLlS,KAAM,oBAxDN,IAAIqP,EAAc,UAAY0E,EAC9B7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAgDG,CACLlS,KAAM,0BAhDJ8F,GAAQkH,KAAK,WACbkF,EAAS4c,GAAS5Z,IAAa,IAC/BhD,EAwDG,CACLlS,KAAM,2BAnVR0U,MAAK,GACLob,oBAsVK,WACL,MAAO,CACL9vB,KAAM,gCAvVRmX,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASqW,GAAS5Z,EAAasC,GAC7B,OAAQtF,IACNA,EA8TK,CACLlS,KAAM,oBA9TN,IAAIqP,EAAc,SAAWpD,GAAYS,UAAUwI,GACnDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAAS8c,GAAiBpgB,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC7DvD,EA8TC,CACLlS,KAAM,yBA7THgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MA+GpB,SAAS0K,GAAQxb,GACf,MAAO,CAAEoG,KAAM,qBAAsBpG,SAGhC,SAAS8a,KACd,MAAO,CACL1U,KAAM,eAkJH,SAASgvB,GAAiBzK,EAAO9O,GACtC,MAAO,CACLzV,KAAM,oBACNukB,MAAOA,EACP1O,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,yBACNtB,MAAOA,EACP2F,MAAOA,GAkCJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,mBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,sBChWH,MAAM+vB,GAAkB,CAC7BC,SA6GF,WACE,OAAQ9d,IACNA,EA0LK,CACLlS,KAAM,wBAzLNkQ,GACG1D,IAFe,oBAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0LC,CACLlS,KAAM,6BAzLHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAvHlBwlB,gBACAC,aA8OK,SAAsB7gB,GAC3B,MAAO,CAAC,CAAEtP,KAAM,gBAAiBowB,UAAW9gB,GAYrC,CACLtP,KAAM,qBA3PRqwB,OA0CF,WACE,OAAQne,IACNA,EA0PK,CACLlS,KAAM,wBAzPNkQ,GACG1D,IAFe,kBAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0PC,CACLlS,KAAM,6BAzPHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OApDlB4lB,UAyDF,WACE,OAAQpe,IACNA,EA0OK,CACLlS,KAAM,wBAzONkQ,GACG1D,IAFe,qBAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0OC,CACLlS,KAAM,6BAzOHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAnElB6lB,cAwEF,WACE,OAAQre,IACNA,EA0NK,CACLlS,KAAM,wBAzNNkQ,GACG1D,IAFe,yBAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0NC,CACLlS,KAAM,6BAzNHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAlFlB8lB,oBAuFF,WACE,OAAQte,IACNA,EA0MK,CACLlS,KAAM,wBAzMNkQ,GACG1D,IAFe,+BAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0MC,CACLlS,KAAM,6BAzMHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAjGlB+lB,uBAsHF,WACE,OAAQve,IACNA,EA0KK,CACLlS,KAAM,wBAzKNkQ,GACG1D,IAFe,kCAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0KC,CACLlS,KAAM,6BAzKHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OAhIlBgmB,WAqIF,WACE,OAAQxe,IACNA,EA0JK,CACLlS,KAAM,wBAzJNkQ,GACG1D,IAFe,sBAGfiD,KAAMb,IACLsD,EAAS+d,GAAsBrhB,EAAS9D,OACxCoH,EA0JC,CACLlS,KAAM,6BAzJHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/IlBimB,iBA+JF,SAA0B5c,GACxB,OAAQ7B,IACN,IAAI7C,EAAc,cAAgB0E,EAClC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAEjCsD,EAAS+d,GAAsBrhB,EAAS9D,WAnK5C8lB,oBAwKF,SAA6B/T,GAC3B,OAAQ3K,IACN,IAAI7C,EAAc,oBAAsBwN,EACxC3M,GAAY1D,IAAI6C,GAAaI,KAAMb,IAEjCsD,EAAS+d,GAAsBrhB,EAAS9D,WA5K5CmJ,cAiLF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IACoB,aAAtBgC,EAAM7G,OAAOrN,KACfkS,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAO+I,UAEjDlE,EAASiC,GAAoBzV,EAAOwV,EAAM7G,OAAOhJ,UArLrDwsB,kBA0LF,SAA2BnyB,EAAOwV,GAChC,OAAQhC,IACNA,EAASiC,GAAoBzV,EAAOwV,MA3LtC4c,kBA+LF,SAA2B/c,EAAIzE,EAASoP,GACtC,OAAQxM,IACNA,EA2FK,CACLlS,KAAM,wBA3FN,IAAIqP,EAAc,cAAgB0E,EAClC7D,GAAYI,IAAIjB,EAAaC,GAC1BG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CAC1Dc,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAmED,CACLlS,KAAM,sBAnEAkS,EAwCD,CACLlS,KAAM,oBAxCI0e,IACFxM,EAwFH,CACLlS,KAAM,2BAxFE8F,GAAQkH,KAAK,qBAGflB,IAAMpB,IAAI,qDAEXsF,MAAOtF,IAERwH,EAgFC,CACLlS,KAAM,2BAhFF8L,IAAMlS,MAAM,mDACL8Q,EAAIkE,aAnNjBqhB,yBACAc,gBA8IF,SAAyBzhB,GACvB,OAAQ4C,IAENhC,GAAYd,KADM,cACYE,GAASG,KAAK,KAC1CyC,EA4HG,CACLlS,KAAM,mCA5HJkS,EA2FG,CACLlS,KAAM,oBA3FJ8F,GAAQkH,KAAK,mBAnJjBgkB,oBAsNF,SAA6Bjd,GAC3B,OAAQ7B,IACN,IAAI7C,EAAc,cAAgB0E,EAClC7D,GAAYM,aAAanB,GAAaI,KAAK,KACzCyC,EAyDG,CACLlS,KAAM,8BAzDJkS,EAASge,GAAahb,SA1N1BR,MAAK,GACLC,SAgPK,WACL,MAAO,CACL3U,KAAM,wBAjPRmX,aAAY,GACZC,UACF,IAEA,IAAIlC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAASyX,GAAahb,EAAasC,GACjC,OAAQtF,IACNA,EA0QK,CACLlS,KAAM,wBA1QN,IAAIqP,EAAc,aAAepD,GAAYS,UAAUwI,GACvDhF,GACG1D,IAAI6C,GACJI,KAAMb,IAiNN,IAA8BwhB,EAAW3a,EAhNxCvD,GAgN6Bke,EAhNCxhB,EAAS9D,KAAK0K,MAgNJC,EAhNW7G,EAAS9D,KAAK2K,UAiNhE,CACLzV,KAAM,wBACNowB,UAAWA,EACXva,eAAgBJ,KAnNZvD,EA0QC,CACLlS,KAAM,6BAzQHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAoNb,SAASgK,KACd,MAAO,CACL1U,KAAM,mBAUH,SAASmU,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,6BACNtB,MAAOA,EACP2F,MAAOA,GAIJ,SAAS4rB,GAAsBG,GACpC,MAAO,CACL,CAAEpwB,KAAM,mBAAoBowB,cAsBzB,SAAShZ,KACd,MAAO,CACLpX,KAAM,uBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,0BCjTH,MAAMixB,GAAkB,CAC7BC,oCAiEF,SAA6Chc,GAC3C,OAAQhD,IACNA,EA+PK,CACLlS,KAAM,wBA/PN,IAAIqP,EAAc,yCAA2CpD,GAAYS,UAAUwI,GACnFhF,GACG1D,IAAI6C,GACJI,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EA+PD,CACLlS,KAAM,2BA/PAkS,EAASif,GAAoBviB,EAAS9D,KAAM,SAE5CoH,EA4PD,CACLlS,KAAM,2BA5PAkS,EAiOD,CACLlS,KAAM,uBA/NHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,EAAIkE,UAChBsD,EAsPC,CACLlS,KAAM,2BAtPK0K,EAAIkE,aAlFjBwiB,2CAqCF,SAAoDlc,GAClD,OAAQhD,IACNA,EA0RK,CACLlS,KAAM,wBA1RN,IAAIqP,EAAc,gDAAkDpD,GAAYS,UAAUwI,GAC1FhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,yCAA2CzmB,EAAO,QACzEgB,IAAMxS,QAAQ,8CACd4Y,EAoRD,CACLlS,KAAM,gCAnRAkS,EAkRD,CACLlS,KAAM,2BAlRAkS,EAuPD,CACLlS,KAAM,sBArPHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EA4QC,CACLlS,KAAM,+BAvUR2xB,4BAsFF,SAAqCzc,GACnC,OAAQhD,IACNA,EAwOK,CACLlS,KAAM,wBAxON,IAAIqP,EAAc,+BAAiCpD,GAAYS,UAAUwI,GACzEhF,GACG1D,IAAI6C,GACJI,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EAwOD,CACLlS,KAAM,2BAxOAkS,EAASif,GAAoBviB,EAAS9D,KAAM,SAE5CoH,EAqOD,CACLlS,KAAM,2BArOAkS,EA0MD,CACLlS,KAAM,uBAxMHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,EAAIkE,UAChBsD,EA+NC,CACLlS,KAAM,2BA/NK0K,EAAIkE,aAvGjBgjB,kCAYF,SAA2C1c,GACzC,OAAQhD,IACNA,EAiTK,CACLlS,KAAM,wBAjTN,IAAIqP,EAAc,qCAAuCpD,GAAYS,UAAUwI,GAC/EhF,GACG1D,IAAI6C,GACJI,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EAiTD,CACLlS,KAAM,2BAjTAkS,EAASif,GAAoBviB,EAAS9D,KAAM,SAE5CoH,EA8SD,CACLlS,KAAM,2BA9SAkS,EAmRD,CACLlS,KAAM,uBAjRHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,EAAIkE,UAChBsD,EAwSC,CACLlS,KAAM,2BAxSK0K,EAAIkE,aA7BjBijB,gCA0OF,SAAyC3c,GACvC,OAAQhD,IACNA,EAkFK,CACLlS,KAAM,wBAlFN,IAAIqP,EAAc,oCAAsCpD,GAAYS,UAAUwI,GAC9EhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,6BAA+BzmB,EAAO,QAC7DgB,IAAMxS,QAAQ,8CACd4Y,EA4ED,CACLlS,KAAM,gCA3EAkS,EA0ED,CACLlS,KAAM,2BA1EAkS,EA+CD,CACLlS,KAAM,sBA7CHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAoEC,CACLlS,KAAM,+BApUR8xB,sCA8MF,SAA+C5c,GAC7C,OAAQhD,IACNA,EA6GK,CACLlS,KAAM,wBA7GN,IAAIqP,EAAc,2CAA6CpD,GAAYS,UAAUwI,GACrFhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,qCAAuCzmB,EAAO,QACrEgB,IAAMxS,QAAQ,8CACd4Y,EAuGD,CACLlS,KAAM,gCAtGAkS,EAqGD,CACLlS,KAAM,2BArGAkS,EA0ED,CACLlS,KAAM,sBAxEHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EA+FC,CACLlS,KAAM,+BAnUR+xB,qBAyGF,SAA8B7c,GAC5B,OAAQhD,IACNA,EAiNK,CACLlS,KAAM,wBAjNN,IAAIqP,EAAc,uBAAyBpD,GAAYS,UAAUwI,GACjEhF,GACG1D,IAAI6C,GACJI,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EAiND,CACLlS,KAAM,2BAjNAkS,EAASif,GAAoBviB,EAAS9D,KAAM,SAE5CoH,EA8MD,CACLlS,KAAM,2BA9MAkS,EAmLD,CACLlS,KAAM,uBAjLHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,EAAIkE,UAChBsD,EAwMC,CACLlS,KAAM,2BAxMK0K,EAAIkE,aA1HjBojB,4BAiLF,SAAqC9c,GACnC,OAAQhD,IACNA,EAwIK,CACLlS,KAAM,wBAxIN,IAAIqP,EAAc,8BAAgCpD,GAAYS,UAAUwI,GACxEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,sBAAwBzmB,EAAO,QACtDgB,IAAMxS,QAAQ,8CACd4Y,EAkID,CACLlS,KAAM,gCAjIAkS,EAgID,CACLlS,KAAM,2BAhIAkS,EAqGD,CACLlS,KAAM,sBAnGHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EA0HC,CACLlS,KAAM,+BAjURiyB,8BAiQF,SAAuC/c,GACrC,OAAQhD,IACNA,EAuDK,CACLlS,KAAM,wBAvDN,IAAIqP,EAAc,gCAAkCpD,GAAYS,UAAUwI,GAC1EhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,wBAA0BzmB,EAAO,QACxDgB,IAAMxS,QAAQ,8CACd4Y,EAiDD,CACLlS,KAAM,2BAjDAkS,EAsBD,CACLlS,KAAM,yBArBAkS,EA8CD,CACLlS,KAAM,2BA9CAkS,EAmBD,CACLlS,KAAM,sBAjBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAwCC,CACLlS,KAAM,+BAhURkyB,2BA6HF,SAAoChd,GAClC,OAAQhD,IACNA,EA0LK,CACLlS,KAAM,wBA1LN,IAAIqP,EAAc,6BAA+BpD,GAAYS,UAAUwI,GACvEhF,GACG1D,IAAI6C,GACJI,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EA0LD,CACLlS,KAAM,2BA1LAkS,EAASif,GAAoBviB,EAAS9D,KAAM,SAE5CoH,EAuLD,CACLlS,KAAM,2BAvLAkS,EA4JD,CACLlS,KAAM,uBA1JHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,EAAIkE,UAChBsD,EAiLC,CACLlS,KAAM,2BAjLK0K,EAAIkE,aA9IjBujB,kCAmJF,SAA2Cjd,GACzC,OAAQhD,IACNA,EAmKK,CACLlS,KAAM,wBAnKN,IAAIqP,EAAc,qCAAuCpD,GAAYS,UAAUwI,GAC/EhF,GACG1D,IAAI6C,GACJI,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE,MAAMwiB,EAAM,SACZ,IAAIC,EAAY3f,EAAQ,KACpB4f,EAAO,IAAIC,KAAK,CAACH,EAAMziB,EAAS9D,MAAO,CAAE9K,KAAM,2BAC/C8K,EAAO2D,KAAO,IAAI1D,MAAQ0mB,OAAO,cACrCH,EAAUI,OAAOH,EAAM,6BAA+BzmB,EAAO,QAC7DgB,IAAMxS,QAAQ,8CACd4Y,EA6JD,CACLlS,KAAM,gCA5JAkS,EA2JD,CACLlS,KAAM,2BA3JAkS,EAgID,CACLlS,KAAM,sBA9HHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZwH,EAqJC,CACLlS,KAAM,+BA9TR0U,MAAK,GACLC,SAuSK,WACL,MAAO,CACL3U,KAAM,yBAhBH,SAASmxB,GAAoBiB,EAAW3c,GAC7C,MAAO,CACLzV,KAAM,wBACNoyB,UAAWA,EACXvc,eAAgBJ,GAIb,SAASf,KACd,MAAO,CACL1U,KAAM,mBChTH,MAAMqyB,GAAiB,CAC5BC,eACAC,kBAqCF,WACE,OAAQrgB,IAENhC,GACG1D,IAFe,oBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASsgB,GAAoB5jB,EAAS9D,SAGzCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAhDlB+nB,gBA4MF,SAAyB1e,GACvB,OAAQ7B,IACN,IAAI7C,EAAc,aAAe0E,EACjC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IA6DhC,IAA8B8jB,EA5D/BxgB,EA6DG,CACLlS,KAAM,mBACN+T,IAHiC2e,EA5DD9jB,EAAS9D,MA+D5BiJ,GACbqD,UAAWsb,EAAStb,UACpB9R,KAAMotB,EAASptB,KACfif,MAAOmO,EAASnO,MAChB9N,QAASic,EAASjc,QAClBkc,kBAAmBD,EAASC,kBAC5BnY,SAAUkY,EAASlY,eApRrBvG,cAoNF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UAxNrDuuB,iBAkKF,SAA0B7e,EAAIzE,EAASoP,GACrC,OAAQxM,IACNA,EA6HK,CACLlS,KAAM,wBA7HNkS,EAqBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,yBAA0BsP,WAtBhC4D,CAAQ5D,IACjB,IAAID,EAAc,aAAe0E,EACjC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EA2HD,CACLlS,KAAM,2BA3HA8F,GAAQkH,KAAK,iBAKhBgD,MAAOtF,IAENwH,EAkBG,CAAElS,KAAM,yBAA0BpG,MAlBpB8Q,IACjBwH,EAkHC,CACLlS,KAAM,+BAvSR6yB,qBA8FF,SAA8Bpc,GAE5B,OAAQvE,IACN,IAAI7C,EAAc,0BAA4BoH,EAC9CvG,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASsgB,GAAoB5jB,EAAS9D,SAGzCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAzGlBooB,2BA8GF,SAAoC/e,GAClC,OAAQ7B,IACNA,EA+KK,CACLlS,KAAM,wBA/KN,IAAIqP,EAAc,oBAAsB0E,EACxC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EA8KD,CACLlS,KAAM,2BA9KA8F,GAAQkH,KAAK,iBAKhBgD,MAAOtF,IACNwH,EAOG,CAAElS,KAAM,yBAA0BpG,MAPpB8Q,IACjBwH,EAsKC,CACLlS,KAAM,+BArSR+yB,2BAwIF,SAAoChf,GAClC,OAAQ7B,IACNA,EAoJK,CACLlS,KAAM,wBApJN,IAAIqP,EAAc,oBAAsB0E,EACxC7D,GACGI,IAAIjB,GACJI,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,SAE/BqD,EAmJD,CACLlS,KAAM,2BAnJA8F,GAAQkH,KAAK,iBAKhBgD,MAAOtF,IACNwH,EArEC,CAAElS,KAAM,yBAA0BpG,MAqElB8Q,IACjBwH,EA2IC,CACLlS,KAAM,+BApSRgzB,sBAwNF,SAA+BN,GAC7B,OAAQxgB,IACFwgB,GACFxgB,EAOC,SAAiCwgB,GACtC,MAAO,CACL,CACE1yB,KAAM,2BACN+T,GAAI2e,EAAS3e,GACbzO,KAAMotB,EAASptB,OAZN2tB,CAAwBP,MA1NrCQ,eA8CF,SAAwB5jB,EAAS6C,GAC/B,OAAQD,IACNA,EA4OK,CACLlS,KAAM,wBA5ONkS,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,2BAA4BsP,WAvBlC4D,CAAQ5D,IAEjBY,GACGd,KAFe,YAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpD/C,IAAMxS,QAAQ,uDACd4Y,EA6BD,CACLlS,KAAM,oBA7BAkS,EAyOD,CACLlS,KAAM,2BAzOA8F,GAAQkH,KAAK,iBAKhBgD,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,2BAA4BpG,MAXtB8Q,IACjBwH,EAgOC,CACLlS,KAAM,+BAlSRmzB,mBA0OF,SAA4Bpf,GAC1B,OAAQ7B,IACNA,EA+CK,CACLlS,KAAM,wBA/CN,IAAIqP,EAAc,aAAe0E,EACjC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAuCG,CACLlS,KAAM,8BAvCJ8F,GAAQkH,KAAK,cACbkF,EAASogB,GAAYpd,IAAa,IAClChD,EA+CG,CACLlS,KAAM,+BAjSR0U,MAAK,GACL0C,UAAS,GACTD,aACF,IAEA,IAAIjC,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAGR,SAAS6Z,GAAYpd,EAAasC,GAChC,OAAQtF,IACNA,EA6QK,CACLlS,KAAM,wBA7QN,IAAIqP,EAAc,YAAcpD,GAAYS,UAAUwI,GACtDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASsgB,GAAoB5jB,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAChEvD,EA6QC,CACLlS,KAAM,6BA5QHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MA4Db,SAASgK,KACd,MAAO,CACL1U,KAAM,mBAiKH,SAASwyB,GAAoBE,EAAUjd,GAC5C,MAAO,CACLzV,KAAM,wBACN0yB,SAAUA,EACV7c,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,6BACNtB,MAAOA,EACP2F,MAAOA,GAyBJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,uBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,0BChTH,MAAMozB,GAAqB,CAChCC,wBAGF,WACE,OAAQnhB,IAENhC,GACG1D,IAFe,yBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAUD,CACLlS,KAAM,4BACNslB,aAZwC1W,EAAS9D,SAG9CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QCdb,MAAM4oB,GAAwB,CACnCC,wBAGF,SAAiCre,GAC/B,OAAQhD,IACN,IAAI7C,EAAc,4BAA8BpD,GAAYS,UAAUwI,GACtEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAUD,CACLlS,KAAM,gCACNwzB,gBAZ2C5kB,EAAS9D,SAGjDkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QCfb,MAAM+oB,GAAwB,CACnCC,yBAIF,SAAkCxe,GAChC,OAAQhD,IACN,IAAI7C,EAAc,4BAA8BpD,GAAYS,UAAUwI,GACtEhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAUD,CACLlS,KAAM,gCACN2zB,gBAZ2C/kB,EAAS9D,SAGjDkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAdlBgK,MA0BK,WACL,MAAO,CACL1U,KAAM,eC/BH,MAAM4zB,GAAkB,CAC7BC,qBAoBF,WACE,OAAQ3hB,IAENhC,GACG1D,IAFe,sBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAAS4hB,GAAsBllB,EAAS9D,SAG3CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA9BlBqpB,4BAGF,WACE,OAAQ7hB,IAENhC,GACG1D,IAFe,8BAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAAS4hB,GAAsBllB,EAAS9D,SAG3CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QAqBb,SAASopB,GAAsBE,GACpC,MAAO,CACLh0B,KAAM,yBACNg0B,UAAWA,GCxCR,MAAMC,GAAiB,CAC5BC,kBAEF,SAA2B3wB,EAAQ4wB,EAAWlS,GAC5C,OAAQ/P,IACN,IAAI7C,EAAW,4BAAA3S,OAA+B6G,EAAM,eAAA7G,OAAcy3B,EAAS,cAAAz3B,OAAaulB,GACxF/R,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAQC,CACLlS,KAAM,wBACNilB,SAVkCrW,EAAS9D,SAExCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QCXb,MAAM0pB,GAAoB,CAC/BC,sBAMF,WACE,OAAQniB,IAENhC,GACG1D,IAFe,uBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAASoiB,GAAwB1lB,EAAS9D,SAG7CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OAhBlB6pB,8BAqBF,WACE,OAAQriB,IAENhC,GACG1D,IAFe,gCAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAASoiB,GAAwB1lB,EAAS9D,SAG7CkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/BlB8pB,gBAoCF,SAAyBtf,GACvB,OAAQhD,IACN,IAAI7C,EAAc,eAAiBpD,GAAYS,UAAUwI,GACzDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASoiB,GAAwB1lB,EAAS9D,KAAK0K,UAGlDxF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA9ClB+pB,yBAgEF,SAAkCtI,GAChC,OAAQja,IACFia,GACFja,EAOC,SAAoCia,GACzC,MAAO,CACL,CACEnsB,KAAM,8BACN+T,GAAIoY,EAAYpY,GAChBzO,KAAM6mB,EAAY7mB,OAZTovB,CAA2BvI,OAhBnC,SAASmI,GAAwBnI,GACtC,MAAO,CACLnsB,KAAM,2BACNmsB,YAAaA,GC3DV,MAAMwI,GAAgB,CAC3BC,eAqBF,SAAwB7gB,GACtB,OAAQ7B,IACN,IAAI7C,EAAc,YAAc0E,EAChC7D,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAAS2iB,GAAmBjmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA/BlBoqB,kBAGF,WACE,OAAQ5iB,IAENhC,GACG1D,IAFe,mBAGfiD,KAAMb,IACDA,EAAS9D,MACXoH,EAAS2iB,GAAmBjmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,QAsBb,SAASmqB,GAAmBE,GACjC,MAAO,CACL/0B,KAAM,sBACN+0B,QAASA,GCpCN,MAAMC,GAAgB,CAC3BC,cACAC,iBAgEF,WACE,OAAQhjB,IAENhC,GACG1D,IAFe,mBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASijB,GAAmBvmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA3ElB0qB,sBAiFF,SAA+B3e,GAC7B,OAAQvE,IACN,IAAI7C,EAAc,iCAAmCoH,EACrDvG,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MACXoH,EAASijB,GAAmBvmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA3FlB2qB,8BAgGF,WACE,OAAQnjB,IAENhC,GACG1D,IAFe,yBAGfiD,KAAMb,IACDA,EAAS9D,MAEXoH,EAASijB,GAAmBvmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA3GlB4qB,iCAgHF,SAA0C7e,GACxC,OAAQvE,IACN,IAAI7C,EAAc,oCAAsCoH,EACxDvG,GACG1D,IAAI6C,GACJI,KAAMb,IACDA,EAAS9D,MAEXoH,EAASijB,GAAmBvmB,EAAS9D,SAGxCkF,MAAOtF,IACNyG,QAAQC,IAAI1G,OA3HlB6qB,eAufF,SAAwBxhB,GACtB,OAAQ7B,IACN,IAAI7C,EAAc,YAAc0E,EAChC7D,GAAY1D,IAAI6C,GAAaI,KAAMb,IAsDhC,IAA6BiB,EArD9BqC,EAsDG,CACLlS,KAAM,iBACN+T,IAHgClE,EArDDjB,EAAS9D,MAwD5BiJ,GACZqD,UAAWvH,EAAQuH,UACnB2B,MAAOlJ,EAAQkJ,MACfzT,KAAMuK,EAAQvK,KACd8M,MAAOvC,EAAQuC,MACfojB,UAAW3lB,EAAQ2lB,UACnBC,cAAe5lB,EAAQ4lB,cACvBC,qBAAsB7lB,EAAQ6lB,qBAC9BC,WAAY9lB,EAAQ8lB,WACpB7c,QAASjJ,EAAQiJ,QACjB8c,IAAK/lB,EAAQ+lB,IACbC,UAAWhmB,EAAQgmB,UACnBhd,SAAUhJ,EAAQgJ,SAClBid,eAAgBjmB,EAAQimB,eACxBC,gBAAiBlmB,EAAQkmB,sBAhkB3BC,iBA2CF,SAA0B9gB,GACxB,OAAQhD,IACNA,EAiiBK,CACLlS,KAAM,sBAjiBN,IAAIqP,EAAc,iBAAmBpD,GAAYS,UAAUwI,GAC3DhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASijB,GAAmBvmB,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC/DvD,EAiiBC,CACLlS,KAAM,2BAhiBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,OArDlBurB,qBA2SF,SAA8BpmB,GAC5B,OAAQqC,IACFrC,GACFqC,EAOC,SAAgCrC,GACrC,MAAO,CACL,CACE7P,KAAM,yBACN+T,GAAIlE,EAAQkE,GACZzO,KAAMuK,EAAQvK,OAZL4wB,CAAuBrmB,MA7SpCoE,cAmgBF,SAAuBvV,EAAOwV,GAC5B,OAAQhC,IAEJA,EAASiC,GAAoBzV,EADjB,WAAVA,EACkCwV,EAEAA,EAAM7G,OAAOhJ,UAvgBrD8xB,gBA+aF,SAAyBpiB,EAAIzE,GAC3B,OAAQ4C,IACNA,EA0JK,CACLlS,KAAM,sBA1JNkS,EAuBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,oBAAqBsP,WAxB3B4D,CAAQ5D,IACjB,IAAID,EAAc,YAAc0E,EAChC7D,GACGI,IAAIjB,EAAaC,GACjBG,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,EAyJD,CACLlS,KAAM,yBAzJK8R,GAAYa,WAGf7M,GAAQkH,KAAK,KAFblH,GAAQkH,KAAK,cAKfkF,EAkJD,CACLlS,KAAM,2BAhJHgQ,MAAOtF,IACNwH,EAkBG,CAAElS,KAAM,oBAAqBpG,MAlBf8Q,IACjBwH,EA6IC,CACLlS,KAAM,yBA7IF8L,IAAMlS,MAAM,sDApclBw8B,qBAwdF,SAA8BriB,EAAIzE,GAChC,OAAQ4C,IACNA,EAgHK,CACLlS,KAAM,sBAhHN,IAAIqP,EAAc,kBAAoB0E,EACtC7D,GAAYI,IAAIjB,EAAaC,GAC1BG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,SACpDqD,EAcD,CACLlS,KAAM,yBAdAkS,EA7LD,CACLlS,KAAM,eA6LAkS,EAASJ,GAAYe,WACrBX,EA8GD,CACLlS,KAAM,yBA9GA8F,GAAQkH,KAAK,gBAEdgD,MAAOtF,IACRwH,EA0GC,CACLlS,KAAM,yBA1GK0K,EAAIkE,aAtejBynB,cA0JF,SAAuB/mB,GACrB,OAAQ4C,IACNA,EAsBA,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,sBAAuBsP,WAvB/B4D,CAAQ5D,IAEjBY,GACGd,KAFe,WAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACd,IAAIwlB,EAAMnP,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EA8HD,CACLlS,KAAM,eA9HAkS,EA0aD,CACLlS,KAAM,yBA1aAkS,EAASokB,GAAkBxX,EAAIze,MAC/ByF,GAAQkH,KAAK,gBAKhBgD,MAAOtF,IAENwH,EASK,CAAElS,KAAM,sBAAuBpG,MATnB8Q,IACjBwH,EAgaC,CACLlS,KAAM,6BA/kBRu2B,mBA2LF,SAA4BjnB,GAC1B,OAAQ4C,IACNA,EAyBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,sBAAuBsP,WA1B7B4D,CAAQ5D,IACjB4C,EA0YK,CACLlS,KAAM,sBAzYNkQ,GACGd,KAFe,WAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACJqW,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EA2FD,CACLlS,KAAM,eA3FAkS,EAuYD,CACLlS,KAAM,yBAtYAkS,EAAS2c,GAAYK,aAAa5f,EAAQ+f,eAAe,GAAG5Y,eAE5DvE,EAmYD,CACLlS,KAAM,2BAjYHgQ,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,sBAAuBpG,MAXjB8Q,IACjBwH,EA6XC,CACLlS,KAAM,6BA9kBRw2B,qBA8NF,SAA8BlnB,GAC5B,OAAQ4C,IACNA,EAyBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,sBAAuBsP,WA1B7B4D,CAAQ5D,IACjB4C,EAsWK,CACLlS,KAAM,sBArWNkQ,GACGd,KAFe,WAEGE,GAClBG,KAAMb,IACL,QAAwB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,OAAgB,CACpE/C,IAAMxS,QAAQ,uDACJqW,KAAK4C,MAAM3D,EAASsE,QAAQwH,cACtCxI,EAuDD,CACLlS,KAAM,eAvDAkS,EAmWD,CACLlS,KAAM,yBAlWAkS,EAAS6D,GAAc6B,eAAetI,EAAQ8J,iBAAiB,GAAG9B,iBAElEpF,EA+VD,CACLlS,KAAM,2BA7VHgQ,MAAOtF,IAENwH,EAWG,CAAElS,KAAM,sBAAuBpG,MAXjB8Q,IACjBwH,EAyVC,CACLlS,KAAM,6BA7kBR8b,kBAugBF,SAA2B/H,EAAI0C,GAC7B,OAAQvE,IACNA,EA6DK,CACLlS,KAAM,sBA7DN,IAAIqP,EAAc,YAAc0E,EAChC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAqDG,CACLlS,KAAM,4BArDJkS,EA+DG,CACLlS,KAAM,yBA9DJ8F,GAAQkH,KAAK,aAKbkF,EAAS+iB,GAJS,CAChBre,QAASH,SAhhBfggB,kBA6YF,SAA2BnnB,EAASQ,GAClC,OAAQoC,IAENhC,GACGE,cAFe,8BAEYd,EAASQ,GACpCL,KAAMb,IACDA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/B/C,IAAMxS,QAAQ,+CACdwM,GAAQkH,KAAK,KACbkF,EAaC,CACLlS,KAAM,+BAbO4O,GAAwC,MAA5BA,EAASsE,QAAQrE,QACtC/C,IAAMxS,QAAQ,6DAKjB0W,MAAM,UA5ZX0mB,yBAqHF,SAAkC3d,GAChC,IAAIzJ,EAAU,CACZyJ,MAAOA,GAET,OAAQ7G,IACNA,EAYF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,qCAAsCsP,WAb5C4D,CAAQ5D,IAEjBY,GACGd,KAFe,sCAEGE,GAClBG,KAAK,KACJyC,EAYG,CACLlS,KAAM,yCAXLgQ,MAAOtF,IACNwH,EAeG,CAAElS,KAAM,qCAAsCpG,MAfhC8Q,QAjIvBisB,qBAqTF,SAA8B5d,GAC5B,IAAIzJ,EAAU,CACZyJ,MAAOA,GAET,OAAQ7G,IACNA,EAyQK,CACLlS,KAAM,sBAzQNkS,EAoBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,iCAAkCsP,WArBxC4D,CAAQ6F,IAEjB7I,GACGd,KAFe,kCAEGE,GAClBG,KAAMb,IACLsD,GAAiBtD,EAAS9D,KAoBvB,CACL9K,KAAM,oCApBJkS,EAwQC,CACLlS,KAAM,yBAxQE4O,GAAwC,MAA5BA,EAASsE,QAAQrE,OAC/B/C,IAAMxS,QAAQ,wCACLsV,GAAwC,MAA5BA,EAASsE,QAAQrE,OACtC/C,IAAM8qB,KAAK,mDAEX1kB,EAkQD,CACLlS,KAAM,2BAhQHgQ,MAAOtF,IACNwH,EA8PC,CACLlS,KAAM,yBA9PFkS,EAcG,CAAElS,KAAM,iCAAkCpG,MAd5B8Q,QA3UvBmsB,cAoWF,SAAuBvnB,EAASQ,GAC9B,OAAQoC,IACNA,EAqBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,yBAA0BsP,WAtBhC4D,CAAQ5D,IAEjBY,GACGE,cAFe,0BAEYd,EAASQ,GACpCL,KAAMb,IACLuC,QAAQC,IAAI,mCAA0BxC,GAClCA,GAAwC,MAA5BA,EAASsE,QAAQrE,QAC/BqD,GAAiBtD,EAAS9D,KAmBzB,CACL9K,KAAM,4BAnBF8L,IAAMxS,QAAQ,8CACdwM,GAAQkH,KAAK,4BACJ4B,GAAYA,EAASsE,QAAQrE,SAMzCmB,MAAOtF,IACNyG,QAAQC,IAAI,+BAAsB1G,GAClCwH,EAcG,CAAElS,KAAM,yBAA0BpG,MAdpB8Q,QAvXvBosB,8BAkfK,SAAuClb,GAC5C,MAAO,CACL5b,KAAM,oCACN4b,KAAMA,IApfR0a,qBACAS,mBA0PF,SAA4BhjB,EAAI0C,GAC9B,OAAQvE,IACNA,EAmBJ,SAAiB6B,GACf,MAAO,CAAE/T,KAAM,uBAAwB+T,MApB5Bb,CAAQa,IACjB,IAAI1E,EAAc,iCAAmC0E,EACrD7D,GACGd,KAAKC,GACLI,KAAK,KACJ3D,IAAMxS,QAAQ,sDAMd4Y,EAAS+iB,GAJS,CAChBre,QAASH,OAKZzG,MAAOtF,IACNwH,EAUC,CAAElS,KAAM,uBAAwBpG,MAVhB8Q,QAzQvBgK,MAAK,GACL0C,UAAS,GACTD,aACF,IAQA,SAAS8d,GAAW/f,EAAasC,GAC/B,OAAQtF,IACNA,EAijBK,CACLlS,KAAM,sBAjjBN,IAAIqP,EAAc,WAAapD,GAAYS,UAAUwI,GACrDhF,GACG1D,IAAI6C,GACJI,KAAMb,IACLsD,EAASijB,GAAmBvmB,EAAS9D,KAAK0K,MAAO5G,EAAS9D,KAAK2K,YAC/DvD,EAijBC,CACLlS,KAAM,2BAhjBHgQ,MAAOtF,IACNyG,QAAQC,IAAI1G,MAgQb,SAASgK,KACd,MAAO,CACL1U,KAAM,cAiEV,SAASs2B,GAAkBviB,GACzB,MAAO,CACL/T,KAAM,uBACN81B,eAAgB/hB,GAqLb,SAASohB,GAAmBtlB,EAAS4F,GAC1C,MAAO,CACLzV,KAAM,sBACN6P,QAASA,EACTgG,eAAgBJ,GAGb,SAAStB,GAAoBzV,EAAO2F,GACzC,MAAO,CACLrE,KAAM,2BACNtB,MAAOA,EACP2F,MAAOA,GAiCJ,SAAS+S,KACd,MAAO,CACLpX,KAAM,qBAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,wBC9lBH,MAAMg3B,GAAqB,CAChCC,0BAqIF,SAAmCC,GACjC,OAAQhlB,IACFglB,GACFhlB,EA2EC,SAAqCglB,GAC1C,MAAO,CACL,CACEl3B,KAAM,+BACN+T,GAAImjB,EAAanjB,GACjB0I,UAAWya,EAAaza,UACxBhG,QAASygB,EAAazgB,QACtB+D,SAAU0c,EAAa1c,SACvB+J,MAAO2S,EAAa3S,OAEtBsK,GAAYK,aACVgI,EAAazgB,UAtFJ0gB,CAA4BD,MAvIzCE,gBA2KF,SAAyBF,GACvB,OAAQhlB,IACNA,EAASmlB,GAAyBH,MA5KpCI,iBA8JF,SAA0BJ,GACxB,OAAQhlB,IACNA,EAuBG,SAAiCglB,GACtC,MAAO,CACLl3B,KAAM,4BACNk3B,aAAcA,GA1BLK,CAAwBL,SAE/BjxB,IAAcixB,GACU,IAAxBA,EAAa/xB,QAEb+M,EAASmlB,GAAyBH,EAAa,OApKnDxb,kBA0DF,SAA2BpM,GACzB,OAAQ4C,IACNA,EAcO,CAAElS,KAAM,4BAA6B8K,KAd3B,CAAEwE,aAEnBY,GACGd,KAFe,uBAEGE,GAClBG,KAAMb,IACLsD,EAYN,SAAiBpH,GACf,MAAO,CACL9K,KAAM,4BACN8K,KAAMA,GAfKxR,CAAQsV,EAAS9D,OAC1BgB,IAAMxS,QAAQ,qDAEf0W,MAAOtF,IACNwH,EAgBG,CAAElS,KAAM,4BAA6BpG,MAhBvB8Q,QApEvB6rB,mBAgBF,SAA4BjnB,GAC1B,OAAQ4C,IACNA,EAuBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,4BAA6BsP,WAxBnC4D,CAAQ5D,IAEjBY,GACGd,KAFe,iBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EAqOD,CACLlS,KAAM,+BArOAkS,EAASJ,GAAYe,WAErBX,EAAS2c,GAAYK,aAAa5f,EAAQmH,UAC1CvE,EAiKD,CACLlS,KAAM,0BAhKAkS,EA+JD,CACLlS,KAAM,wBA/JAkS,EA8ND,CACLlS,KAAM,kCA5NHgQ,MAAOtF,IACNwH,EA0JC,CACLlS,KAAM,wBA1JFkS,EAUG,CAAElS,KAAM,4BAA6BpG,MAVvB8Q,IACjBwH,EAwNC,CACLlS,KAAM,mCA7PRq3B,4BACAvb,kBAsFF,SAA2B/H,GACzB,OAAQ7B,IACNA,EA6JK,CACLlS,KAAM,4BA7JN,IAAIqP,EAAc,kBAAoB0E,EACtC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAuBG,CACLlS,KAAM,kCAvBJkS,EA+JG,CACLlS,KAAM,+BA/JJkS,EAAS8iB,GAAcC,WAAW/f,SA5FtC6G,cAqMK,WACL,MAAO,CACL/b,KAAM,iCAtMRoX,UAAS,GACTD,aAAY,GACZzC,MAAK,GACLC,SA2LK,WACL,MAAO,CACL3U,KAAM,6BA1LV,IAAIkV,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IA+KD,SAAS/D,KACd,MAAO,CACL1U,KAAM,uBAiCH,SAASq3B,GAAyBH,GACvC,MAAO,CACLl3B,KAAM,uBACN+T,GAAImjB,EAAanjB,GACjB0I,UAAWya,EAAaza,UACxBhG,QAASygB,EAAazgB,QACtB+D,SAAU0c,EAAa1c,SACvB+J,MAAO2S,EAAa3S,OAgBjB,SAASnN,KACd,MAAO,CACLpX,KAAM,2BAIH,SAASmX,KACd,MAAO,CACLnX,KAAM,8BCrQH,MAAMw3B,GAAuB,CAClCC,4BA0FF,SAAqCC,GACnC,OAAQxlB,IACFwlB,GACFxlB,EA0DC,SAAuCwlB,GAC5C,MAAO,CACL,CACE13B,KAAM,iCACN+T,GAAI2jB,EAAe3jB,GACnB0I,UAAWib,EAAejb,UAC1BnF,UAAWogB,EAAepgB,UAC1BkD,SAAUkd,EAAeld,SACzBjD,QAASmgB,EAAengB,SAE1BxB,GAAc6B,eACZ8f,EAAepgB,YArENqgB,CAA8BD,MA5F3CE,kBA+GF,SAA2BF,GACzB,OAAQxlB,IACNA,EAAS2lB,GAA2BH,MAhHtCI,mBAkGF,SAA4BJ,GAC1B,OAAQxlB,IACNA,EAuBG,SAAmCwlB,GACxC,MAAO,CACL13B,KAAM,8BACN03B,eAAgBA,GA1BPK,CAA0BL,SAEjCzxB,IAAcyxB,GACY,IAA1BA,EAAevyB,QAEf+M,EAAS2lB,GAA2BH,EAAe,OAxGvDlB,qBAcF,SAA8BlnB,GAC5B,OAAQ4C,IACNA,EAsBF,SAAiB5C,GACf,MAAO,CAAEtP,KAAM,8BAA+BsP,WAvBrC4D,CAAQ5D,IAEjBY,GACGd,KAFe,mBAEGE,GAClBG,KAAMb,SACmB3I,GAApB2I,EAASsE,SAAoD,MAA5BtE,EAASsE,QAAQrE,QACpDqD,EAyBC,CACLlS,KAAM,iCACN8K,KA3BqB8D,EAAS9D,OAC1BoH,EA2KD,CACLlS,KAAM,iCA3KAkS,EAAS6D,GAAc6B,eAAetI,EAAQgI,YAC9CpF,EAyGD,CACLlS,KAAM,4BAxGAkS,EAuGD,CACLlS,KAAM,0BAvGAkS,EAsKD,CACLlS,KAAM,oCApKHgQ,MAAOtF,IACNwH,EAkGC,CACLlS,KAAM,0BAlGFkS,EAUG,CAAElS,KAAM,8BAA+BpG,MAVzB8Q,IACjBwH,EAgKC,CACLlS,KAAM,qCAlMR63B,8BACA/b,kBAoDF,SAA2B/H,GACzB,OAAQ7B,IACNA,EAoIK,CACLlS,KAAM,8BApIN,IAAIqP,EAAc,oBAAsB0E,EACxC7D,GAAYM,aAAanB,GAAaI,KAAMb,IAC1CsD,EAuBG,CACLlS,KAAM,oCAvBJkS,EAsIG,CACLlS,KAAM,iCAtIJkS,EAAS8iB,GAAcC,WAAW/f,SA1DtC6G,cA0IK,WACL,MAAO,CACL/b,KAAM,mCA3IR0U,MAAK,GACLC,SAkIK,WACL,MAAO,CACL3U,KAAM,+BAjIV,IAAIkV,GAAc,CAChBlU,KAAM,EACNwX,MAAO,GACPC,KAAM,IAsHD,SAAS/D,KACd,MAAO,CACL1U,KAAM,yBAiCH,SAAS63B,GAA2BH,GACzC,MAAO,CACL13B,KAAM,yBACN+T,GAAI2jB,EAAe3jB,GACnB0I,UAAWib,EAAejb,UAC1BnF,UAAWogB,EAAepgB,UAC1BkD,SAAUkd,EAAeld,SACzBjD,QAASmgB,EAAengB,S,yNC9I5B,MAAMygB,GAAeh1B,YAAOi1B,KAAPj1B,CAAe,MAClC,qBAAsB,CACpB7E,OAAQ,IACR+5B,SAAU,aAIRC,GAAmBn1B,YAAOo1B,KAAPp1B,CAAmB,MAC1CxI,MAAO,UACPG,SAAU,GACV09B,WAAY,KA4WCC,mCAAkB55B,IAAK,CACpC65B,OAAQ,4CADKD,CAzWsBh1B,IAA+B,IAA9B,OAAEk1B,EAAM,MAAEC,EAAK,MAAE/5B,GAAO4E,EAE5D,MAAM,QAAEtE,EAAO,UAAEL,EAAS,KAAE0L,EAAI,OAAEquB,GAAWh6B,GACtC,CAAEi6B,GAAe15B,IAAM25B,SAAS,GACjCC,EAAUC,cAEV5mB,EAAW6mB,eAEXC,EAAUrnB,EAAQ,MAEjBqH,EAAUigB,GAAeL,mBAAS,KAElCM,EAAUC,GAAeP,mBAAS,IAEzCt3B,oBAAU,KACR,GAAI5C,EAAMulB,UAAYvlB,EAAMwlB,UAAW,CAClBkV,KACjBD,EAAY,CACVE,OAAQ,CACNC,IAAK56B,EAAMulB,SACXsV,IAAK76B,EAAMwlB,WAEbkV,OAAQA,EACRI,gBAAgB,KAGpBC,KAGD,IAEH,MAIMC,EAAgBA,CAACC,EAAaP,KAClCD,EAAW58B,wBAAC,GACP28B,GAAQ,IACXM,gBAAgB,EAChBI,cAAeD,EACfE,aAAcT,MA4ElB93B,oBAAU,KACRq3B,EAAYmB,IAAMA,IACjB,CAACp7B,EAAM2L,KAAK+a,mBAEf,MAmBM2U,EAAkBC,IACtBb,EAAW58B,wBAAC,GACP28B,GACAc,KAoDP,OACE/6B,IAAAC,cAAC84B,GAAY,CACXpc,KAAM6c,EACNwB,WAAS,EACTC,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,gBAAgBpE,WAAW,SAASE,QAAS,GAC1EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IACzFoB,IAAAC,cAAA,cAAQ,iBAGZD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,QAC1B0G,QAASA,KArLnB+1B,MAuLUv5B,IAAAC,cAACu7B,KAAS,UAKlBx7B,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGkE,eAAe,OAAOpE,WAAW,UAC3DyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,WACHknB,MAAM,cACNv4B,SAA2C,IA5CnCyK,EA4Ca9C,EAAKD,aA3C3B,KAAL+C,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GA4C1C+tB,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU+kB,EAAY/kB,EAAM7G,OAAOhJ,OAC9CA,MAAO2U,EACP9W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAtMiB24B,KAE3B,GAAIpiB,EAAU,EACK,IAAIta,EAAMg6B,OAAO2C,KAAKC,UAE9BC,QAAQ,CAAEC,QAASxiB,GAAapK,IACvC,GAAY,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUzJ,OAAQ,CAAC,IAADs2B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpB,IAAIC,EAAiB,CACnB/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAkB,QAAbo3B,EAAE7sB,EAAS,UAAE,IAAA6sB,GAAU,QAAVC,EAAXD,EAAaO,gBAAQ,IAAAN,GAAU,QAAVC,EAArBD,EAAuB/6B,gBAAQ,IAAAg7B,OAApB,EAAXA,EAAiCrC,QAG5CpnB,EAAS6O,GAAW9M,cAAc,WAAY8nB,IAE9C,IAAIE,EAAiB,CACnBj8B,KAAM,OACNqN,OAAQ,CACNhJ,MAAkB,QAAbu3B,EAAEhtB,EAAS,UAAE,IAAAgtB,GAAU,QAAVC,EAAXD,EAAaI,gBAAQ,IAAAH,GAAU,QAAVC,EAArBD,EAAuBl7B,gBAAQ,IAAAm7B,OAApB,EAAXA,EAAiCvC,QAG5CrnB,EAAS6O,GAAW9M,cAAc,YAAagoB,QACjB,oBAAb,OAARrtB,QAAQ,IAARA,OAAQ,EAARA,EAAUC,QACnB/C,IAAMlS,MAAM,0DAEZkS,IAAMlS,MAAM,wDAIhBkS,IAAMlS,MAAM,0BA0KJuI,MAAO,CAAE+5B,UAAW,GAAI/9B,OAAQ,UAChCuE,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,iBAAmB,cAG/CnY,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAjLgB85B,KAE1B,GAAIvjB,EACF,QAA6G/S,GAAzGvH,EAAM2L,KAAK+a,iBAAiBoX,KAAKC,GAAKA,EAAExY,UAAYvlB,EAAMulB,UAAYwY,EAAEvY,WAAaxlB,EAAMwlB,WAAyB,CACtH,IAYIwY,EAAwB,CAC1B18B,KAAM,OACNqN,OAAQ,CACNhJ,MAfiB,IAChB3F,EAAM2L,KAAK+a,iBACd,CACErR,GAAIrV,EAAMqV,GACVmU,OAAQxpB,EAAM2L,KAAK+a,iBAAiBjgB,OAAS,EAC7CuR,OAAQrM,EAAK0J,GACbkQ,SAAUvlB,EAAMulB,SAChBC,UAAWxlB,EAAMwlB,UACjBlL,SAAUA,MAWd+gB,IAEA7nB,EAAS6O,GAAW9M,cAAc,mBAAoByoB,IACtDzD,EAAY,SAEZntB,IAAMlS,MAAM,qCAGdkS,IAAMlS,MAAM,0BAmJJuI,MAAO,CAAE+5B,UAAW,GAAI/9B,OAAQ,SAAUyD,eAAgB,QAC1Dc,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACy9B,KAAoB,MAChCN,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,iBAAmB,cAG/CnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGkE,eAAe,UACzC3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC09B,OAAG,CACFlE,OAAQh6B,EAAMg6B,OACdmE,KAAM,GACN16B,MAAO,CAAE/D,MAAO,MAAOD,OAAQ,IAAKk6B,WAAY,EAAGyE,SAAU,YAC7DC,OAAQ7D,EAASG,OACjB2D,cAAe9D,EAASG,QAEvB36B,EAAM2L,KAAK+a,kBAAoB1mB,EAAM2L,KAAK+a,iBAAiB1Z,IAAKuxB,GAC/Dh+B,IAAAC,cAACg+B,UAAM,CACL5xB,KAAM5M,EAAM2L,KAAK9E,OACjBtE,MAAOvC,EAAM2L,KAAK9E,OAClB8E,KAAM3L,EAAM2L,KACZ4wB,MAAK,GAAAv+B,OAAKugC,EAAG/U,QACb7nB,IAAK48B,EAAG/U,OACRiV,WAAS,EACTC,WAAY,CAAErhC,gBAAiB,SAAUpB,SAAU,OAAQ8C,QAAS,QACpE4/B,UAAWA,CAACC,EAAG5xB,EAAK6xB,IAvIbC,EAAC9xB,EAAK0tB,EAAQmE,MACpB,IAAI7+B,EAAMg6B,OAAO2C,KAAKC,UAG9BC,QAAQ,CAAE56B,SAAU,CAAE24B,IAAKF,EAAOqE,OAAOnE,MAAOC,IAAKH,EAAOqE,OAAOlE,QAAY3qB,IACtF,GAAY,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUzJ,OAAQ,CAGpB8zB,EAAYrqB,EAAS,GAAG8uB,kBAAkB73B,eAe1C,IAAI62B,EAAwB,CAC1B18B,KAAM,OACNqN,OAAQ,CACNhJ,MAfuB3F,EAAM2L,KAAK+a,iBAAiB1Z,IAAI,CAACuxB,EAAIU,IAC1DA,EAAQ,GAAKJ,EAAWtC,MAC1B1+B,wBAAA,GACK0gC,GAAE,IACLhZ,SAAUmV,EAAOqE,OAAOnE,MACxBpV,UAAWkV,EAAOqE,OAAOlE,QAGtB0D,KAUT/qB,EAAS6O,GAAW9M,cAAc,mBAAoByoB,IAEtD3C,SAEAjuB,IAAMlS,MAAM,6DAsGmC4jC,CAAiBF,EAAGC,EAAY7xB,GACnEoxB,SAAU,CAAExD,IAAK2D,EAAGhZ,SAAUsV,IAAK0D,EAAG/Y,WACtCzhB,QAASi3B,EACTr/B,KAAM2+B,OAKd/5B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAAC0+B,KAAc,CAACz7B,MAAO,CAAEk2B,WAAY,KACnCp5B,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACC,OAAK,GACdh/B,IAAAC,cAACqD,IAAU,CAACiD,MAAM,UAChBvG,IAAAC,cAAA,cAAQ,iDAKfR,EAAM2L,KAAK+a,kBAAmD,MAA/B1mB,EAAM2L,KAAK+a,iBACzC1mB,EAAM2L,KAAK+a,iBAAiB1Z,IAAIuxB,GAE5Bh+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KACR/+B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,WACzF3C,IAAAC,cAACqD,IAAU,CAACiD,MAAM,UAChBvG,IAAAC,cAAA,SAAI+9B,EAAG/U,OAAS+U,EAAG/U,OAAS,IAAO,gBACjC+U,EAAGjkB,SAAW/Z,IAAAC,cAAA,SAAI+9B,EAAGjkB,UAAgB,GAAI,cACzCikB,EAAGhZ,SAAWgZ,EAAGhZ,SAASre,QAAQ,GAAK,KAAK,QAC7Cq3B,EAAG/Y,UAAY+Y,EAAG/Y,UAAUte,QAAQ,GAAK,KAAK,KAEjD3G,IAAAC,cAACi/B,KAAU,CAAC17B,QAASA,KAAM27B,OAAmBnB,EAAG/U,OA1LzCnU,EA0LiDkpB,EAAGlpB,QAzLtF8kB,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,kEACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,0BAA4B,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS4V,GAAqBM,yBAAyBrU,MARhCqqB,IAASrqB,GA0LyD5R,MAAO,CAAEq8B,cAAe,WACvFv/B,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQuD,MAAO,CAAE1E,QAAS,UAQ7D,OAILiB,EAAM2L,KAAK+a,kBAAmD,MAA/B1mB,EAAM2L,KAAK+a,kBAA4B1mB,EAAM2L,KAAK+a,iBAAiBjgB,OAAS,EAC1GlG,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAlNYg8B,KAC5B//B,EAAM2L,KAAK+a,iBAAiB1Z,IAAKouB,IAC/B5nB,EAAS4V,GAAqBK,qBAAqB2R,IACnDtB,OAgNcr2B,MAAO,CAAE+5B,UAAW,GAAIt6B,eAAgB,UACxCc,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,cAAgB,gBAE1CnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QApOEk8B,KAClB1F,EAAY,KAoOI92B,MAAO,CAAE+5B,UAAW,GAAIt6B,eAAgB,UACxCc,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAAC0/B,KAAoB,MAChCvC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,cAAgB,WAI1C,UAnKhB,IAAoBjK,ICdPmrB,mCAAkB55B,IAAK,CACpC65B,OAAQ,4CADKD,CAjNO55B,IAEpB,MAAM,QAAEM,EAAO,KAAEqL,EAAI,eAAE4d,EAAc,WAAE4W,GAAengC,EAEhDwT,EAAW6mB,gBAEV/f,EAAUigB,GAAeL,mBAAS,KAClCkG,EAA4BC,GAAiCnG,oBAAS,IACtEH,EAAOuG,GAAYpG,oBAAS,GAC7BJ,EAASA,IAAMwG,GAAUvG,GAE/Bn3B,oBAAU,KAEH5C,EAAMulB,UAAavlB,EAAMwlB,UA4BxBxlB,GAASA,EAAMulB,UAAYvlB,EAAMwlB,WACnC+a,IA5BEjsB,UAAUksB,YACZlsB,UAAUksB,YAAYC,mBACpBrC,IACE,IAAIsC,EAAgB,CAClBp/B,KAAM,SACNqN,OAAQ,CACNhJ,MAAOy4B,EAASuC,OAAOpb,WAG3B/R,EAAS6O,GAAW9M,cAAc,WAAYmrB,IAE9C,IAAIE,EAAiB,CACnBt/B,KAAM,SACNqN,OAAQ,CACNhJ,MAAOy4B,EAASuC,OAAOnb,YAG3BhS,EAAS6O,GAAW9M,cAAc,YAAaqrB,KAEjD1lC,IACEuX,QAAQvX,MAAM,oDAA4CA,KAI9DuX,QAAQvX,MAAM,0DAOjB,IAEH,MA4EMqlC,EAAiBA,IAEnBhgC,IAAAC,cAACg+B,UAAM,CACL78B,IAAK,SACL0T,GAAI,EACJ+oB,SAAU,CAAExD,IAAK56B,EAAMulB,SAAUsV,IAAK76B,EAAMwlB,WAC5C7pB,KAAMsX,EAAQ,KACdwrB,UAA4C,GAAjC0B,EAAWx0B,EAAKD,cAC3BizB,UAAWA,CAAClwB,EAAGzB,IArCKA,MACP,IAAIhN,EAAMg6B,OAAO2C,KAAKC,UAE9BC,QAAQ,CAAE56B,SAAU,CAAE24B,IAAK5tB,EAAIoxB,SAASxD,MAAOC,IAAK7tB,EAAIoxB,SAASvD,QAAY3qB,IAEpF,GAAY,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUzJ,OAAQ,CACpB8zB,EAAYrqB,EAAS,GAAG8uB,kBAAkB73B,eAC1C,IAAIk2B,EAAiB,CACnB/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAOqH,EAAIoxB,SAASxD,QAGxBpnB,EAAS6O,GAAW9M,cAAc,WAAY8nB,IAE9C,IAAIE,EAAiB,CACnBj8B,KAAM,OACNqN,OAAQ,CACNhJ,MAAOqH,EAAIoxB,SAASvD,QAGxBrnB,EAAS6O,GAAW9M,cAAc,YAAagoB,SAE/CnwB,IAAMlS,MAAM,6DAcW4jC,CAAiB9xB,GACxC6zB,mBAAiB,IAKvB,OACEtgC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,KACTtD,IAAAC,cAAA,cAAQ,iBAGZD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,WACHknB,MAAM,cACNv4B,SAA2C,GAAjCm8B,EAAWx0B,EAAKD,cAC1B8wB,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU+kB,EAAY/kB,EAAM7G,OAAOhJ,OAC9CA,MAAO2U,EACP9W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAjHmB24B,KAE3B,GAAIpiB,EAAU,EACK,IAAIta,EAAMg6B,OAAO2C,KAAKC,UAE9BC,QAAQ,CAAEC,QAASxiB,GAAapK,IACvC,GAAY,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUzJ,OAAQ,CAAC,IAADs2B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpB,IAAIC,EAAiB,CACnB/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAkB,QAAbo3B,EAAE7sB,EAAS,UAAE,IAAA6sB,GAAU,QAAVC,EAAXD,EAAaO,gBAAQ,IAAAN,GAAU,QAAVC,EAArBD,EAAuB/6B,gBAAQ,IAAAg7B,OAApB,EAAXA,EAAiCrC,QAG5CpnB,EAAS6O,GAAW9M,cAAc,WAAY8nB,IAE9C,IAAIE,EAAiB,CACnBj8B,KAAM,OACNqN,OAAQ,CACNhJ,MAAkB,QAAbu3B,EAAEhtB,EAAS,UAAE,IAAAgtB,GAAU,QAAVC,EAAXD,EAAaI,gBAAQ,IAAAH,GAAU,QAAVC,EAArBD,EAAuBl7B,gBAAQ,IAAAm7B,OAApB,EAAXA,EAAiCvC,QAG5CrnB,EAAS6O,GAAW9M,cAAc,YAAagoB,IAE/C,IAAIuD,EAAsB,CACxBx/B,KAAM,OACNqN,OAAQ,CACNhJ,MAAO2U,IAGX9G,EAAS6O,GAAW9M,cAAc,WAAYurB,QAEhB,oBAAb,OAAR5wB,QAAQ,IAARA,OAAQ,EAARA,EAAUC,QACnB/C,IAAMlS,MAAM,0DAEZkS,IAAMlS,MAAM,wDAIhBkS,IAAMlS,MAAM,0BA4EN8I,SAA2C,GAAjCm8B,EAAWx0B,EAAKD,eAA0B1L,EAAM2L,KAAK+M,UAC/DjV,MAAO,CAAE+5B,UAAW,OAAQ/9B,OAAQ,UACpCg+B,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,iBAAmB,eAG7CqhB,GAAgC,MAAvB/5B,EAAM2L,KAAK4Z,UAA4C,MAAxBvlB,EAAM2L,KAAK6Z,WACnDjlB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRQ,SAA2C,GAAjCm8B,EAAWx0B,EAAKD,cAC1B3H,QApI4Bg9B,KACtCV,GAA8B,GAC9BvG,KAmIUr2B,MAAO,CAAE+5B,UAAW,OAAQ/9B,OAAQ,UACpCg+B,UAAWl9B,IAAAC,cAACwgC,KAA0B,OACvC,+BAMPzgC,IAAAC,cAAC09B,OAAG,CACFlE,OAAQh6B,EAAMg6B,OACdv2B,MAAO,CAAEhE,OAAQ,QAASwhC,IAAK,OAAQC,KAAM,EAAGC,MAAO,OAAQtiC,aAAc,QAC7Es/B,KAAM,GACNE,OAAQ,CAAEzD,IAAK56B,EAAMulB,SAAUsV,IAAK76B,EAAMwlB,WAC1C8Y,cAAe,CAAE1D,IAAK56B,EAAMulB,SAAUsV,IAAK76B,EAAMwlB,YAEhD+a,KAIAxG,EACCx5B,IAAAC,cAAC4gC,GAA4B,CAACtH,OAAQA,EAAQC,MAAOA,EAAO/5B,MAAOA,EAAO2L,KAAM3L,EAAM2L,KAAMqM,OAAQhY,EAAM2L,KAAK0J,GAAIkU,eAAgBA,IAEnI,Q,gCC9MV,MAAM8X,GAASpuB,EAAQ,KACjBqnB,GAAUrnB,EAAQ,KAwGT2mB,mCAAkB55B,IAAK,CACpC65B,OAAQ,4CADKD,CAtGI55B,IAAW,IAADshC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3B,MAAMluB,EAAW6mB,eACXsH,EAASC,iBAAO,OAEfpH,EAAUC,GAAeP,mBAAS,CACvCS,OAAQ,CAAEC,KAAM,kBAAmBC,KAAM,mBACzCsD,KAAM,GACNzD,OAAQ,KACR/uB,KAAM,KACNmvB,gBAAgB,IAIlBl4B,oBAAU,KAAO,IAADi/B,EACd,IAAe,QAAXA,EAAA7hC,EAAM4W,aAAK,IAAAirB,OAAA,EAAXA,EAAap7B,QAAS,EAAG,CAE3B,MAAMq7B,EAAkB9hC,EAAM4W,MAAMknB,KAAKnyB,GAAQA,EAAK4Z,UAAY5Z,EAAK6Z,WAEvE,GAAIsc,IACFrH,EAAasH,GAAIlkC,wBAAA,GACZkkC,GAAI,IACPpH,OAAQ,CAAEC,IAAKkH,EAAgBvc,SAAUsV,IAAKiH,EAAgBtc,WAC9D2Y,KAAM,MAGJwD,EAAOK,SAAWhiC,EAAMg6B,QAAQ,CAClC,MAAMiI,EAAcN,EAAOK,QAAQh1B,IACnCi1B,EAAYC,MAAM,CAAEtH,IAAKkH,EAAgBvc,SAAUsV,IAAKiH,EAAgBtc,YACxEyc,EAAYE,QAAQ,OAIzB,CAACniC,EAAM4W,MAAO5W,EAAMg6B,SAEvB,MAAMgB,EAAgBA,CAACC,EAAaP,KAClCD,EAAY,CACVE,OAAQM,EAAYmD,SACpB1D,OAAQA,EACR/uB,KAAMsvB,EAAYtvB,KAClBmvB,gBAAgB,EAChBqD,KAAM,KAGR3qB,EAASoR,GAAiBqW,EAAYtvB,QAUxC,OACEpL,IAAAC,cAAC09B,OAAG,CACFlE,OAAQh6B,EAAMg6B,OACdmE,KAAM3D,EAAS2D,KACfE,OAAQ7D,EAASG,OACjB2D,cAAe9D,EAASG,OACxByH,6BAA2B,EAC3BC,IAAKV,IAEC,OAAL3hC,QAAK,IAALA,OAAK,EAALA,EAAO4W,MAAMnQ,QAAS,GAAKzG,EAAM4W,MAAM5J,IAAKrB,IAC3C,GAAIA,EAAK4Z,UAAY5Z,EAAK6Z,UACxB,OACEjlB,IAAAC,cAACg+B,UAAM,CACL5xB,KAAMjB,EAAK9E,OACXtE,MAAOoJ,EAAK9E,OACZ8E,KAAMA,EACNhK,IAAKgK,EAAK0J,GACV+oB,SAAU,CAAExD,IAAKjvB,EAAK4Z,SAAUsV,IAAKlvB,EAAK6Z,WAC1CzhB,QAASi3B,EACTr/B,KAAMqE,EAAMsiC,aAAe32B,EAAK0J,GAAKilB,GAAU+G,OAKtD7G,EAASM,gBACRv6B,IAAAC,cAAC+hC,cAAU,CACT7H,OAAQF,EAASE,OACjB0D,SAAU5D,EAASG,OACnB6H,QAAShI,EAASM,eAClBW,QApCkBgH,KACxBhI,EAAasH,GAAIlkC,wBAAA,GACZkkC,GAAI,IACPjH,gBAAgB,OAmCZv6B,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOugC,cAAc,MAAM1gC,WAAW,SAASoE,eAAe,gBAAgBs4B,SAAS,QAAQmH,UAAW,GACrHpiC,IAAAC,cAAA,OAAKmG,KAAkB,QAAb26B,EAAA9G,EAAS7uB,YAAI,IAAA21B,OAAA,EAAbA,EAAelc,gBAAiBwd,KAAMljC,MAAO,IAAKD,OAAQ,IAAKgE,MAAO,CAAE5E,aAAc,MAAOgkC,WAAwB,QAAbtB,EAAA/G,EAAS7uB,YAAI,IAAA41B,OAAA,EAAbA,EAAenc,eAAgB,QAAU,aAC3J7kB,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOugC,cAAc,UAChCj/B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKC,MAAO,CAAExH,SAAU,OAAQE,WAAY,OAAQiC,aAAc,QAAUo8B,EAAS7uB,KAAK9E,QAC9GtG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIs/B,GAAI,GAAItI,EAAS7uB,KAAKsX,YAC9C1iB,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOugC,cAAc,MAAMt8B,eAAe,gBAAgBpE,WAAW,UAChFyB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAI,cAASuM,KAAOyqB,EAAS7uB,KAAKuX,YAAY6P,OAAO,eACxEyH,EAAS7uB,KAAKwX,YAAc5iB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAI,eAAUuM,KAAOyqB,EAAS7uB,KAAKwX,aAAa4P,OAAO,eAA8B,OAE1H,QAAbyO,EAAAhH,EAAS7uB,YAAI,IAAA61B,OAAA,EAAbA,EAAe9b,iBAAkBnlB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIu/B,GAAI,EAAGt/B,MAAO,CAAEzH,WAAY,SAAU,6BAAqC,QAAdylC,EAACjH,EAAS7uB,YAAI,IAAA81B,GAAiB,QAAjBC,EAAbD,EAAe/b,uBAAe,IAAAgc,OAAjB,EAAbA,EAAgCsB,eAAe,QAAS,CAAEC,sBAAuB,KAAqB,W,gKCjF1NrkC,YAAYP,IAAK,CACjCjB,KAAM,CACJqC,OAAQ,OACRR,QAAS,OACTugC,cAAe,UAEjB9gC,OAAQ,CACNgB,MAAO,IACP87B,SAAU,QAEZ0H,OAAQ,CACNnkC,QAASV,EAAMW,QAAQ,EAAG,GAC1BC,QAAS,OACTiE,eAAgB,iBAElBigC,WAAY,CACVhkC,YAAad,EAAMW,QAAQ,IAE7BoH,QAAS,CACPrH,QAASV,EAAMW,QAAQ,EAAG,GAC1BK,SAAU,GAEZ+jC,eAAgB,CACdrkC,QAASV,EAAMW,QAAQ,EAAG,IAE5BqkC,qBAAsB,CACpBpkC,QAAS,OACTiE,eAAgB,gBAChBwB,OAAQ,WAEV4+B,sBAAuB,GACvBC,UAAW,CACTxkC,QAASV,EAAMW,QAAQ,EAAG,IAE5BwkC,WAAY,CACVvkC,QAAS,OACTH,WAAY,UAEd2kC,MAAO,CACLjG,UAAW,EACXp/B,aAAc,GAEhBiB,SAAU,CACRA,SAAU,GAEZqkC,UAAW,CACT/J,WAAYt7B,EAAMW,QAAQ,IAE5B2kC,KAAM,CACJnG,UAAWn/B,EAAMW,QAAQ,IAE3B4kC,UAAW,CACTzkC,YAAad,EAAMW,QAAQ,IAE7B6kC,UAAW,CACTlK,WAAYt7B,EAAMW,QAAQ,IAE5B8kC,WAAY,GACZC,QAAS,CACPhlC,QAASV,EAAMW,QAAQ,GACvB,YAAa,CACXw+B,UAAWn/B,EAAMW,QAAQ,QC9EbJ,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,OACTH,WAAY,UAEd6O,OAAQ,CACNtO,SAAU,EACVI,OAAQ,GACRV,QAASV,EAAMW,QAAQ,EAAG,GAC1BC,QAAS,OACTH,WAAY,UAEdklC,WAAY,CACV7kC,YAAad,EAAMW,QAAQ,GAC3BlD,MAAOuC,EAAMtC,QAAQJ,MAEvBsoC,YAAa,CACX5kC,SAAU,GAEZ6kC,aAAc,CACZvK,WAAYt7B,EAAMW,QAAQ,OClBZJ,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,OACTH,WAAY,SACZoE,eAAgB,gBAChBihC,SAAU,QAEZx2B,OAAQ,CACNtO,SAAU,EACVm8B,SAAU,IACVt8B,UAAW,KAEbklC,aAAc,CACZzK,WAAY,QAEd0K,WAAY,CACVllC,YAAad,EAAMW,QAAQ,OCnBbJ,YAAW,MAC3BxB,KAAM,MA0BOknC,I,yCCvBf,MAAMhlC,GAAYV,YAAYP,IAAK,CACjCkmC,KAAM,CACJnG,SAAU,WACVv/B,aAAc,GACdE,QAAS,GACT1B,gBAAiB,UACjB+F,SAAU,KAEZohC,UAAW,CACTnnC,gBAAiB,qBACjBvB,MAAO,UACP+C,aAAc,GACduE,SAAU,IACVqhC,UAAW,GACXxnC,cAAe,UACfhB,SAAU,WACVD,WAAY,IACZE,cAAe,GAEjBwoC,IAAK,CACHtG,SAAU,WACV1+B,MAAO,MACPilC,OAAQ,MACRxD,MAAO,MACPliC,QAAS,SAEX2lC,KAAM,CACJxG,SAAU,WACV1+B,MAAO,MACPilC,OAAQ,EACRxD,MAAO,EACPliC,QAAS,SAEX4lC,MAAO,CACLzG,SAAU,WACVuG,OAAQ,EACRxD,MAAO,EACP2D,UAAW,sBACXjmC,aAAc,MACdxB,gBAAiB,2BACjB0B,QAAS,MACT,WAAY,CACVq/B,SAAU,WACVv/B,aAAc,MACduH,QAAS,KACTnH,QAAS,QACTgiC,IAAK,EACLC,KAAM,EACNC,MAAO,EACPwD,OAAQ,EACRnI,OAAQ,OACRn/B,gBAAiB,gCAKjB0nC,GAAqBnmC,YAAW,KAC7B,CACL2D,MAAO,CACLzG,MAAO,UACPG,SAAU,WACVD,WAAY,KAEdgpC,SAAU,CACRlpC,MAAO,UACPG,SAAU,WACVD,WAAY,QAKWuE,IAAM0kC,MAAK,WACtC,MAAMC,EAAS5lC,KACT6lC,EAAeC,qCACrB,OACE7kC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC0F,KAAI,CAACjG,UAAWolC,kBAAGH,EAAOX,KAAMY,EAAa/nC,OAC5CmD,IAAAC,cAAC8kC,UAAM,CAACC,IAAK,EAAGC,GAAI,GAClBjlC,IAAAC,cAACilC,QAAI,CAACrH,SAAU,SAAU9+B,UAAWylC,IACnCxkC,IAAAC,cAACklC,aAAS,KAAC,yDAGXnlC,IAAAC,cAACmlC,gBAAY,KAAC,iGAKhBplC,IAAAC,cAAColC,QAAI,CAAC7C,GAAI,GACRxiC,IAAAC,cAAC2D,IAAM,CACLwK,OAAO,SACPk3B,IAAI,WACJ5lC,UAAWilC,EAAOV,UAClBsB,KAAK,2BACN,0BAKLvlC,IAAAC,cAACulC,KAAM,CAACC,QAAM,GACZzlC,IAAAC,cAAA,OACEP,UAAWilC,EAAOR,IAClBuB,IAAK,GACLt/B,IAAK,+DAEPpG,IAAAC,cAAA,OACEP,UAAWilC,EAAON,KAClBqB,IAAK,GACLt/B,IACE,oEAINpG,IAAAC,cAAA,OAAKP,UAAWilC,EAAOL,a,OCpHbjmC,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,OACTinC,YAAa7nC,EAAMW,QAAQ,IAE7BrD,KAAM,CACJM,SAAU,GACV,UAAW,CACTH,MAAOuC,EAAMtC,QAAQ5B,QAAQK,KAC7BkK,OAAQ,YA6BCyhC,I,oFCwIAC,OArJGxhC,IAAqC,IAApC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,KAAEqmC,GAAMzhC,EAE/C,MAAM4O,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAMlC,OAAEif,EAAM,UAAEvG,IANmBtY,YAAKJ,EAAKK,IAMfimC,aAC3BvkC,GAAUA,EAAMkd,SAEnBrc,oBAAU,KACR4Q,EAASoL,GAAa5I,SAEtB,IAAIQ,EAAc,CAChBwN,GAAIqiB,GAEN7yB,EAASoL,GAAaO,gBAAgB3I,KACrC,IAEH,MAAM,KAAE/C,GAAS6yB,aACdvkC,GAAUA,EAAMwkC,gBAEnB,SAASC,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,0CAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA1Cf+1B,MA2CMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,gCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,UACVlsB,GAAYQ,YAAcrT,IAAAC,cAAC8+B,KAAS,KAAC,4BACtC/+B,IAAAC,cAAC8+B,KAAS,KAAC,UAGf/+B,IAAAC,cAACumC,KAAS,KACPruB,EAECsuB,MAAMhlC,KAAK,IAAIglC,MAAM,IAAIh6B,IAAI,CAACi6B,EAAGhI,IAC/B1+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKs9B,EAAOM,OAAK,GACzBh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAErBh0B,GAAYQ,YACXrT,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAO5BnoB,GAAUA,EAAOxY,OAAS,EACxBwY,EAAOjS,IAAKouB,IAEkK,IAADiM,EAA3K,OAAIj0B,GAAYQ,YAAewnB,EAAE3b,sBAAwB2b,EAAE3b,qBAAqBhZ,OAAS,GAAK20B,EAAE3b,qBAAqBqe,KAAMwJ,GAAMA,EAAEvQ,gBAAqB,OAAJtjB,QAAI,IAAJA,OAAI,EAAJA,EAAMsjB,gBAEtJx2B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEx0B,KAAOw0B,EAAEx0B,KAAKO,cAAgB,IAElCiM,GAAYQ,YACXrT,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC+mC,KAAI,CAAChL,MAAM,gBAAgB94B,MAAO,CAAE3H,MAAO,UAAW0gC,OAAQ,KACxC,QAD+C6K,EACrEjM,EAAE3b,4BAAoB,IAAA4nB,OAAA,EAAtBA,EAAwBr6B,IAAK4xB,GAC5Br+B,IAAAC,cAAC+mC,KAAI,CAAC5lC,IAAKi9B,EAAEvoB,YAAYhB,GAAIknB,MAAOqC,EAAEvoB,YAAYzP,KAAMnD,MAAO,CAAE3H,MAAO,UAAW0gC,OAAQ,QAKnGj8B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7/B,KACDgF,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IAAMlB,OAAOqa,KAAKke,EAAE7/B,KAAM,UACnC2E,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,qBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACinC,KAAQ,SAIb,KAML,OAEPxoB,GAAUA,EAAOxY,OAAS,GAC5BwY,EAAOjS,IAAKouB,GAAuC,GAAjCA,EAAE3b,qBAAqBhZ,SACvClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAASt0B,GAAYQ,WAAa,EAAI,EAAG9M,MAAM,SAAS9F,UAAU,KAAKkmC,MAAM,OAAM,qC,qBChKtGtoC,YAAYP,IAAK,CACjCjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBrD,KAAM,CACJ+D,MAAO,OACPD,OAAQ,OACR2+B,SAAU,WACV6C,IAAK,UAoBM0G,I,2rBCzBTroC,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ6B,QAAS,OACTugC,cAAe,SACf1gC,WAAY,SACZ2lC,UAAW,cACXiC,WAAY,GACZC,cAAe,OAwCJiB,OApCE5nC,IAAW,IAAD6nC,EACzB,MAAM,KAAEp0B,EAAI,UAAExT,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAEpCC,EAAUhB,KAEhB,OACEiB,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GAASP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CM,IAAAC,cAAC+D,KAAM,CACL0hC,IAAKzgC,GAAYiO,EAAK7M,MACtBnD,MAAO,CAAE/D,MAAO,GAAID,OAAQ,IAC5BuB,UAAW8mC,KACXnhC,IAAS,OAAJ8M,QAAI,IAAJA,OAAI,EAAJA,EAAMlO,OACX1D,GAAE,YAAA7D,OAAkB,OAAJyV,QAAI,IAAJA,OAAI,EAAJA,EAAM4B,KAErB,IACA7P,GAAYiO,EAAK7M,OAEpBrG,IAAAC,cAACqD,IAAU,CAACiD,MAAM,SAASrD,MAAO,CAAE+5B,UAAW,GAAKh6B,QAAQ,MACzDiQ,EAAK7M,MAERrG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYC,MAAO,CAAExH,SAAU,IAAMkC,cAAY,GAClEsV,EAAK4G,OAER9Z,IAAAC,cAAC+mC,KAAI,CAAC9jC,MAAO,CAAE1E,QAAS,GAAKw9B,MAC3Bh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAWC,MAAO,CAAExH,SAAU,GAAI8C,QAAS,IACpC,KAApB,OAAJ0U,QAAI,IAAJA,OAAI,EAAJA,EAAMsjB,eAA0B,OAAJtjB,QAAI,IAAJA,OAAI,EAAJA,EAAMiH,iBAAiB,GAAG7B,QAAQoB,aAAmB,OAAJxG,QAAI,IAAJA,GAAiB,QAAbo0B,EAAJp0B,EAAM4C,mBAAW,IAAAwxB,OAAb,EAAJA,EAAmBjhC,U,mBCzC3G,MAQMmhC,GAAiB/nC,IACrBgoC,OATaC,EASPjoC,EAAMioC,KATOC,EASDloC,EAAMkoC,qBATiBC,EASKnoC,EAAMmoC,iBAR9BD,EAAqBlqC,OAAOmqC,GAClBC,KAC7BvM,GAASA,EAAKwM,UAAUzhC,OAASqhC,GAAQpM,EAAKyM,WAO7CtoC,EAAMuoC,MACNvoC,EAAMwoC,KAXER,IAACC,EAAMC,EAAsBC,GAa3CJ,GAAcnnC,aAAe,CAC3B2nC,IAAKA,IAAM,KACXC,GAAIA,IAAM,MAGZT,GAAcU,UAAY,CACxBR,KAAMS,KAAUC,OAAOC,YAGzB,MAWMC,GAA6BC,aAXXC,CAAChnC,EAAOk9B,KACvB,CACLt9B,IAAI,SAAWs9B,EACfiJ,0BAC4C3gC,IAA1CxF,EAAMwkC,eAAe9yB,KAAK4C,aAC1BtU,EAAMwkC,eAAe9yB,KAAK4C,YAAY2yB,wBACxCb,sBACmD5gC,IAAjDxF,EAAMwkC,eAAe9yB,KAAKw1B,oBAC1BlnC,EAAMwkC,eAAe9yB,KAAKw1B,qBAGGH,CAAyBf,I,yBCpBtDzoC,GAAYV,YAAYP,IAAK,CACjC1C,KAAM,CACJG,MAAO,UACP4D,MAAO,GACPD,OAAQ,GACRR,QAAS,OACTH,WAAY,SACZK,YAAad,EAAMW,QAAQ,IAE7BkqC,OAAQ,CACNptC,MAAOuC,EAAMtC,QAAQ5B,QAAQK,KAC7BwB,WAAYqC,EAAMP,WAAWqrC,iBAC7B,UAAW,CACTrtC,MAAOuC,EAAMtC,QAAQ5B,QAAQK,OAGjC4uC,YAAa,CACXtN,UAAW,UAEblgC,QAAS,CACP4gC,OAAQn+B,EAAMW,QAAQ,EAAG,OAIvBqqC,GAAiB/kC,YAAOglC,KAAPhlC,CAAiBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CACtD3F,QAAS,OACTynC,WAAY,EACZC,cAAe,EACf7qC,MAAO,aAGHgI,GAAeQ,YAAOH,IAAPG,CAAewB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAClDhK,MAAO,UACPiD,QAAS,UACTmE,eAAgB,aAChBjG,cAAe,OACff,cAAe,EACfwD,MAAO,OACP1D,WAAYqC,EAAMP,WAAWqrC,oBAGzBI,GAAmBC,qBAAW,CAACxpC,EAAOqiC,IAC1C9hC,IAAAC,cAAA,OAAK6hC,IAAKA,EAAK5+B,MAAO,CAAEpE,SAAU,IAChCkB,IAAAC,cAACsnC,KAAe9nC,KA4ILypC,OAxIKzpC,IAClB,MAAM,MAAE0pC,EAAK,UAAEzpC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IACrCC,EAAUhB,KAEhB,OACEiB,IAAAC,cAACmpC,KAAIlpC,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CypC,EAAM18B,IAAI,CAAC48B,EAAM3K,IAChB1+B,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKs9B,QACJ13B,IAAdqiC,EAAK3B,KACJ1nC,IAAAC,cAACunC,GAAa,CACZE,KAAM2B,EAAK3B,KACXM,IAAKA,IACHhoC,IAAAC,cAAC8F,KAAO,CACN/D,MACEhC,IAAAC,cAAA,QAAMP,UAAWK,EAAQ8oC,aACvB7oC,IAAAC,cAAA,SAAG,wCACHD,IAAAC,cAAA,SAAG,wCAGPqpC,OAAK,EACL9lC,QAASA,IACP6lC,EAAK5lC,UACLoD,GAAQkH,KAAK,qBAEfw7B,sBAAuBF,EAAK5lC,SAC5B+lC,sBAAuBH,EAAK5lC,SAC5BgmC,sBAAuBJ,EAAK5lC,UAEX,GAAhB4lC,EAAKK,QACJ1pC,IAAAC,cAAC6oC,GAAc,CACb5lC,MAAO,CAAEiB,OAAQ,eACjBV,SAAU4lC,EAAK5lC,SACfkmC,gBAAiB5pC,EAAQ4oC,OACzBjpC,UAAWK,EAAQu7B,KACnBoO,QAASL,EAAKK,QACdE,gBAAc,GAEd5pC,IAAAC,cAACsD,GAAY,CACXE,SAAU4lC,EAAK5lC,SACf/D,UAAWK,EAAQxD,OACnBotC,gBAAiB5pC,EAAQ4oC,OACzBloC,UAAWuoC,GACX1nC,GAAI+nC,EAAK9D,KACT/hC,QAAS6lC,EAAK7lC,SAEdxD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ3E,MAAOiuC,EAAKjuC,MACnCiuC,EAAKrnC,QAIVhC,IAAAC,cAAC6oC,GAAc,CACb5lC,MAAO,CAAEiB,OAAQ,eACjBV,SAAU4lC,EAAK5lC,SACf/D,UAAWK,EAAQu7B,KACnBoO,QAASL,EAAKK,QACdE,gBAAc,GAEM,GAAnBP,EAAKQ,WACJ7pC,IAAAC,cAACsD,GAAY,CACXE,SAAU4lC,EAAK5lC,SACfkmC,gBAAiB5pC,EAAQ4oC,OACzBjpC,UAAWK,EAAQxD,OACnBkE,UAAWuoC,GACX1nC,GAAI+nC,EAAK9D,KACT/hC,QAAS6lC,EAAK7lC,SAEdxD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ3E,MAAOiuC,EAAKjuC,MACnCiuC,EAAKrnC,OAGRhC,IAAAC,cAACsD,GAAY,CACXE,SAAU4lC,EAAK5lC,SACf/D,UAAWK,EAAQxD,OACnBkE,UAAWuoC,GACX1nC,GAAI+nC,EAAK9D,KACT/hC,QAAS6lC,EAAK7lC,SAGdxD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ3E,MAAOiuC,EAAKjuC,MACnCiuC,EAAKrnC,WASpBhC,IAAAC,cAAC8F,KAAO,CACN/D,MACEhC,IAAAC,cAAA,QAAMP,UAAWK,EAAQ8oC,aACvB7oC,IAAAC,cAAA,SAAG,wCACHD,IAAAC,cAAA,SAAG,wCAGPqpC,OAAK,EACL9lC,QAASA,IACP6lC,EAAK5lC,UACLoD,GAAQkH,KAAK,qBAEfw7B,sBAAuBF,EAAK5lC,SAC5B+lC,sBAAuBH,EAAK5lC,SAC5BgmC,sBAAuBJ,EAAK5lC,UAE5BzD,IAAAC,cAAC6oC,GAAc,CACb5lC,MAAO,CAAEiB,OAAQ,eACjBV,SAAU4lC,EAAK5lC,SACf/D,UAAWK,EAAQu7B,KACnBsO,gBAAc,GAEd5pC,IAAAC,cAACsD,GAAY,CACXE,SAAU4lC,EAAK5lC,SACfkmC,gBAAiB5pC,EAAQ4oC,OACzBjpC,UAAWK,EAAQxD,OACnBkE,UAAWuoC,GACX1nC,GAAI+nC,EAAK9D,KACT/hC,QAAS6lC,EAAK7lC,SAEdxD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ3E,MAAOiuC,EAAKjuC,MACnCiuC,EAAKrnC,SAKbqnC,EAAKhuC,SAAW2E,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,c,uEC2mBjDyuC,GAAuBC,qBAI3BxB,aATuB/mC,IAChB,CACL0R,KAAM1R,EAAMwkC,eAAe9yB,OAOJ,KAAM,KAA/Bq1B,CAAqCyB,aAhwBvBlsC,IAAK,CACnBK,OAAQ,CACNgB,MAAO,IACP,CAACrB,EAAMmsC,YAAYC,GAAG,OAAQ,CAC5BjN,UAAW,KAGfpgC,KAAM,CACJC,gBAAiBgB,EAAMtC,QAAQ9B,MAC/BisC,YAAa7nC,EAAMW,QAAQ,GAC3B0rC,aAAcrsC,EAAMW,QAAQ,IAE9BpD,QAAS,CACP4gC,OAAQn+B,EAAMW,QAAQ,EAAG,GACzBlD,MAAO,aAkvB4ByuC,CA9uBvB3lC,IAAkC,IAAD+lC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAhC,cAAEC,GAAyBrmC,EAAP5E,EAAKI,YAAAwE,EAAAvE,IAExC,MAAM,KAAE6c,EAAI,QAAE1Z,EAAO,QAAEi4B,EAAO,UAAEx7B,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKkrC,IACtD13B,EAAW6mB,gBACX,KAAE5mB,GAASzT,GACVmrC,EAAeC,GAAoBlR,oBAAS,IAC5CmR,EAAmBC,GAAwBpR,oBAAS,IACpDqR,EAAoBC,GAAyBtR,oBAAS,IACtDuR,EAAoBC,GAAyBxR,oBAAS,IACtDyR,EAAwBC,GAA6B1R,oBAAS,GAE/D2R,EAAmBp4B,EAAKiH,mBAA4C,QAA5BiwB,EAAIl3B,EAAKiH,iBAAiB,UAAE,IAAAiwB,GAAS,QAATC,EAAxBD,EAA0B9xB,eAAO,IAAA+xB,OAAT,EAAxBA,EAAmC5vB,SAC/E8wB,EAA+Br4B,EAAKiH,mBAA4C,QAA5BmwB,EAAIp3B,EAAKiH,iBAAiB,UAAE,IAAAmwB,GAAS,QAATC,EAAxBD,EAA0BhyB,eAAO,IAAAiyB,OAAT,EAAxBA,EAAmCjwB,YAC3FkxB,EAAct4B,EAAKiH,mBAA4C,QAA5BqwB,EAAIt3B,EAAKiH,iBAAiB,UAAE,IAAAqwB,GAAS,QAATC,EAAxBD,EAA0BlyB,eAAO,IAAAmyB,OAAT,EAAxBA,EAAmCjwB,mBAM1E,QAAEza,GAAYN,EAEdgsC,EAAa1F,aAAavkC,IACvB,GAmBH2nC,EAAQ,CACZ,CACEnnC,MAAO,OACPujC,KAAM,IACNnqC,KAAM4E,IAAAC,cAACyrC,KAAQ,OAEjB,CACEjoC,SAAUgoC,EACVzpC,MAAO,YACP0nC,QAASoB,EACTvF,KAAM,IACNmC,KAAM,YACNtsC,KAAM4E,IAAAC,cAAC0rC,KAAa,MACpBnoC,QAASA,KA5BXunC,GAAsBD,MAkClBc,EAAc,CAClB,CACE5pC,MAAO,OACPujC,KAAM,IACNnqC,KAAM4E,IAAAC,cAACyrC,KAAQ,QAIbG,EAAY,CAChB,CACE7pC,MAAO,QACPujC,KAAM,WAENmC,KAAM,eACNtsC,KAAM4E,IAAAC,cAAC6rC,KAAuB,QAI5BC,EAAa,CACjB,CACEtoC,SAAUgoC,EACVzpC,MAAO,QACP0nC,QAASkB,EACTrF,KAAM,IACNmC,KAAM,YACNtsC,KAAM4E,IAAAC,cAACinC,KAAQ,MACf1jC,QAASA,KApDXqnC,GAAkBD,MA0DdoB,EAAkB,CACtB,CACEvoC,SAAUgoC,EACVzpC,MAAO,gBACP0nC,QAASwB,EACT3F,KAAM,IACNmC,KAAM,YACNtsC,KAAM4E,IAAAC,cAACgsC,KAAqB,MAC5BzoC,QAASA,KA9DX2nC,GAAuBD,MAoEnBgB,EAAkB,CACtB,CACEzoC,SAAUgoC,EACVzpC,MAAO,YACP0nC,QAASsB,EACTzF,KAAM,IACNmC,KAAM,uBACNtsC,KAAM4E,IAAAC,cAACksC,KAAe,MACtB3oC,QAASA,KApFXynC,GAAuBD,MA0FnBoB,EAAc,CAClB,CACEpqC,MAAO,QACPujC,KAAM,SACNnqC,KAAM4E,IAAAC,cAACosC,KAAgB,MACvB3E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,GAEd,CACEppC,MAAO,YACPujC,KAAM,aACNnqC,KAAM4E,IAAAC,cAACqsC,KAAgB,MACvB5E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,GAEd,CACEppC,MAAO,uBACPujC,KAAM,oBACNnqC,KAAM4E,IAAAC,cAACssC,KAAwB,MAC/B7E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,GAEd,CACEppC,MAAO,2BACPujC,KAAM,qBACNnqC,KAAM4E,IAAAC,cAACusC,KAAS,MAChB9E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,IAIhB,IAAIqB,EAAY,GAGZ55B,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYa,WACtE+4B,EAAYL,GAGRd,GACFmB,EAAU1+B,KAAK,CACb/L,MAAO,uBACPujC,KAAM,oBACNnqC,KAAM4E,IAAAC,cAACssC,KAAwB,MAC/B7E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,IAKZG,GACFkB,EAAU1+B,KAAK,CACb/L,MAAO,YACPujC,KAAM,aACNnqC,KAAM4E,IAAAC,cAACqsC,KAAgB,MACvB5E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,MAKVE,IAAqBC,GAAiCC,IAC1DiB,EAAU1+B,KACR,CACE/L,MAAO,QACPujC,KAAM,SACNnqC,KAAM4E,IAAAC,cAACosC,KAAgB,MACvB3E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,GAEd,CACEppC,MAAO,2BACPujC,KAAM,qBACNnqC,KAAM4E,IAAAC,cAACusC,KAAS,MAChB9E,KAAM,aACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,KAMpB,MAAMsB,EAAgB,CACpB,CACE1qC,MAAO,WACPujC,KAAM,YACNnqC,KAAM4E,IAAAC,cAAC0sC,KAAgB,MACvBjF,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,IAIVwB,EAAmB,CACvB,CACE5qC,MAAO,iBACPujC,KAAM,oBACNnqC,KAAM4E,IAAAC,cAAC4sC,KAAY,MACnBnF,KAAM,qBACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,IAIV0B,EAAqB,CACzB,CACE9qC,MAAO,eACPujC,KAAM,kBACNnqC,KAAM4E,IAAAC,cAAC8sC,KAAc,MACrBrF,KAAM,sBACNlkC,QAASA,KACP6nC,GAA0B,IAE5B5nC,SAAUgoC,EACV5B,WAAYuB,IAIV4B,EAAqB,CACzB,CACEvpC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,6BACPujC,KAAM,4BACNmC,KAAM,uBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACgtC,KAAc,OAEvB,CACExpC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,qBACPujC,KAAM,mBACNmC,KAAM,uBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACitC,KAAkB,QAIvBC,EAAgB,CAEpB,CACE1pC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,MACPujC,KAAM,OACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACmtC,KAAW,OAEpB,CACE3pC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,UACPujC,KAAM,WACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACotC,KAAa,OAEtB,CACE5pC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,YACPujC,KAAM,UACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACqtC,KAAiB,OAE1B,CACE7pC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,SACPujC,KAAM,eACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACstC,KAAU,QAIfC,EAAqB,CACzB,CACE/pC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,2BACPujC,KAAM,6BACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACwtC,KAAoB,OAE7B,CACEhqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,kCACPujC,KAAM,mCACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACytC,KAA0B,OAEnC,CACEjqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,0BACPujC,KAAM,4BACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAAC0tC,KAAiB,OAE1B,CACElqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,iCACPujC,KAAM,uCACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACksC,KAAe,OAExB,CACE1oC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,cACPujC,KAAM,qBACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAAC2tC,KAAU,QAIfC,EAA+B,CACnC,CACEpqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,2BACPujC,KAAM,6BACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACwtC,KAAoB,OAE7B,CACEhqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,kCACPujC,KAAM,mCACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACytC,KAA0B,OAEnC,CACEjqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,0BACPujC,KAAM,4BACNmC,KAAM,YACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAAC0tC,KAAiB,QAItBG,EAAY,CAChB,CACE9rC,MAAO,OACPujC,KAAM,SACNnqC,KAAM4E,IAAAC,cAAC8tC,KAAa,MACpBvqC,QAASA,KA9aXyP,EAASJ,GAAY7B,aAobjBg9B,EAA4B,CAChC,CACEvqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,WACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACguC,KAAe,OAExB,CACExqC,SAAUgoC,EACVzpC,MAAO,qBACPwB,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZ7F,KAAM,gBACNmC,KAAM,eACNtsC,KAAM4E,IAAAC,cAACiuC,KAAiB,OAE1B,CACEzqC,SAAUgoC,EACVjoC,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZppC,MAAO,eACPujC,KAAM,UACNmC,KAAM,cACNtsC,KAAM4E,IAAAC,cAACkuC,KAAY,OAErB,CACE1qC,SAAUgoC,EACVjoC,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZppC,MAAO,gBACPujC,KAAM,cACNmC,KAAM,kBACNtsC,KAAM4E,IAAAC,cAACmuC,KAAY,OAErB,CACE3qC,SAAUgoC,EACVjoC,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZppC,MAAO,mBACPujC,KAAM,aACNmC,KAAM,iBACNtsC,KAAM4E,IAAAC,cAAC0tC,KAAiB,OAE1B,CACElqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,cACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACouC,KAAU,QAIfC,EAA6B,CACjC,CACE7qC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,WACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACguC,KAAe,OAExB,CACExqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,cACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACouC,KAAU,QAIfE,GAAgC,CACpC,CACE9qC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,WACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACguC,KAAe,OAExB,CACExqC,SAAUgoC,EACVjoC,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZppC,MAAO,eACPujC,KAAM,UACNmC,KAAM,cACNtsC,KAAM4E,IAAAC,cAACkuC,KAAY,OAErB,CACE1qC,SAAUgoC,EACVjoC,QAASA,KACP6nC,GAA0B,IAE5BxB,WAAYuB,EACZppC,MAAO,mBACPujC,KAAM,aACNmC,KAAM,iBACNtsC,KAAM4E,IAAAC,cAAC0tC,KAAiB,OAE1B,CACElqC,SAAUgoC,EACV5B,WAAYuB,EACZppC,MAAO,cACPujC,KAAM,YACNmC,KAAM,gBACNlkC,QAASA,KACP6nC,GAA0B,IAE5BjwC,KAAM4E,IAAAC,cAACouC,KAAU,QAIrB,OACEruC,IAAAC,cAACuuC,KAAM,CACLC,OAAO,OACP1uC,QAAS,CAAE5E,MAAO4E,EAAQ5B,QAC1B+8B,QAASA,EACTve,KAAMA,EACN1Z,QAASA,GAETjD,IAAAC,cAACyuC,KAAgB,CAACxrC,MAAO,CAAEhE,OAAQ,sBACjCc,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GAASP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CM,IAAAC,cAAConC,GAAO,CAACn0B,KAAMA,KACbL,GAAYa,YAAc1T,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,UACtDwX,GAAYa,WAA4C1T,IAAAC,cAACipC,GAAU,CAACC,MAAOyC,IAAlD5rC,IAAAC,cAACipC,GAAU,CAACC,MAAOA,IAC7Ct2B,GAAYQ,YACXrT,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI9D,EAAmB+D,QAAQ,QACvC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,IAC7BnmC,IAAAC,cAACipC,GAAU,CAACC,MAAO6E,EAA2B9qC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAM/GgV,GAAYW,aACXxT,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI9D,EAAmB+D,QAAQ,QACvC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAOmF,EAA4BprC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAMhHgV,GAAYU,gBACXvT,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI9D,EAAmB+D,QAAQ,QACvC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAOoF,GAA+BrrC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAMpHmC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,WAC1BwX,GAAYU,gBAAkBV,GAAYQ,YAAcR,GAAYW,aAAeX,GAAYa,aAC/F1T,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACipC,GAAU,CAACC,MAAOsD,IACnBzsC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,YAG9BwX,GAAYU,gBAAkBV,GAAYQ,aAC1CrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACipC,GAAU,CAACC,MAAOuD,IACnB1sC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,WAG9BwX,GAAYa,YAAe1T,IAAAC,cAAAD,IAAAmB,SAAA,KAC3BnB,IAAAC,cAACipC,GAAU,CAACC,MAAOyD,IACnB5sC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,YAG5BwX,GAAYW,aAAeX,GAAYQ,aACvCrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACipC,GAAU,CAACC,MAAOyD,IACnB5sC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,UAC5B2E,IAAAC,cAACipC,GAAU,CAACC,MAAO+C,IACnBlsC,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI5D,EAAoB6D,QAAQ,QACxC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAO6D,EAAoB9pC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAKvGmC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,UAC5B2E,IAAAC,cAACipC,GAAU,CAACC,MAAO2D,IACnB9sC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,WAG9BwX,GAAYQ,aAAeR,GAAYc,yBACvC3T,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACipC,GAAU,CAACC,MAAO6C,IACnBhsC,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI1D,EAAoB2D,QAAQ,QACxC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAOqE,EAAoBtqC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAKvGmC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,WAG9BwX,GAAYU,gBACZvT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACipC,GAAU,CAACC,MAAO6C,IACnBhsC,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAI1D,EAAoB2D,QAAQ,QACxC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAO0E,EAA8B3qC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAKjHmC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,WAGhC2E,IAAAC,cAACipC,GAAU,CAACC,MAAO4C,IACnB/rC,IAAAC,cAAA,OAAKiD,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAC3DmC,IAAAC,cAAC0uC,KAAQ,CAACC,GAAIhE,EAAeiE,QAAQ,QACnC7uC,IAAAC,cAACmpC,KAAI,CAAC3oC,UAAU,MAAMquC,gBAAc,GAClC9uC,IAAAC,cAAC8oC,KAAQ,CAAC7lC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,IAChEmC,IAAAC,cAACipC,GAAU,CAACC,MAAOgE,EAAejqC,MAAO,CAAEijC,WAAY,EAAGC,cAAe,EAAGvoC,aAAc,SAKhGgV,GAAYa,YAAeb,GAAYc,wBAKrC,KAJF3T,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,UAC5B2E,IAAAC,cAACipC,GAAU,CAACC,MAAO0C,EAAWkD,KAAM,CAAElxC,aAAc,OAIxDmC,IAAAC,cAACuG,KAAO,CAAC9G,UAAWK,EAAQ1E,UAC5B2E,IAAAC,cAACipC,GAAU,CAACC,MAAO2E,IACnB9tC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAK,yBAChErqB,mB,oJC7vBhC,MAAM7T,GAAYV,YAAYP,IAAK,CACjCu9B,UAAW,CACT38B,QAAS,OACTklC,SAAU,QAEZoL,YAAa,CACX/S,OAAQn+B,EAAMW,QAAQ,GACtBoE,SAAU,KAEZosC,eAAgB,CACdtsC,eAAgB,SAChBpE,WAAY,aAyMD2wC,OArMMzvC,IACnB,MAAMM,EAAUhB,MACT4d,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAChCl2B,EAAU2rC,GAAepvC,IAAM25B,UAAS,IACzC,aAAE1B,EAAY,MAAE3S,EAAK,QAAE9N,GAAYuuB,aACtCvkC,GAAUA,EAAMy2B,cAGnB,IAAI7mB,EAAU6mB,EAAaxrB,IAAIs6B,IAAC,IAAAsI,EAAAC,EAAAC,EAAA,MAAK,CAAEz6B,GAAW,QAATu6B,EAAEtI,EAAEzhB,aAAK,IAAA+pB,OAAA,EAAPA,EAASv6B,GAAIzO,KAAa,QAATipC,EAAEvI,EAAEzhB,aAAK,IAAAgqB,GAAM,QAANC,EAAPD,EAASjpC,YAAI,IAAAkpC,OAAN,EAAPA,EAAe3oC,iBAE7E,MAAOxB,EAAOoqC,GAAYxvC,IAAM25B,SAAS,OAClC8V,EAAYC,GAAiB1vC,IAAM25B,SAAS,IAE7CgW,EAAmB5J,aAAavkC,GAEH,KAA/BA,EAAMy2B,aAAazgB,cACYxQ,IAA/BxF,EAAMy2B,aAAazgB,SAOjBvE,EAAW6mB,eAEjBz3B,oBAAU,KACRutC,KACC,CAAC3X,IAEJ51B,oBAAU,OACP,CAACmV,IAEJnV,oBAAU,KACRmtC,EAASh4B,IACR,IAEHnV,oBAAU,KACJ+C,GACFyqC,EAAyBzqC,IAE1B,CAACA,IAEJ,MAAMyqC,EAA4BniC,IAChC,GAAW,MAAPA,GAAeA,EAAIoH,GAAK,EAAG,CAC7B,IAAIg7B,EAAuB7X,EAAa8X,OACrCzU,GAASA,EAAK9jB,UAAY9J,EAAIoH,IAEjC7B,EACE8kB,GAAmBC,0BACjB8X,EAAqB,KAK3BX,GAAQ,IAGJa,EAAkBA,KACtBb,GAAQ,GACRC,GAAY,IAGRQ,EAAyBA,KAC7B,GAC0B,IAAxB3X,EAAa/xB,aACIc,IAAjBixB,EAEA,OAAO,UAEPjxB,IAAcixB,GACU,IAAxBA,EAAa/xB,QAEb+M,EACE8kB,GAAmBC,0BACjBC,EAAa,MAOfgY,EAAcA,KAClBd,GAAQ,GACRC,GAAY,IAGRc,EAAcA,KAClBj9B,EACE8kB,GAAmBjb,iBAErBqyB,GAAQ,GACRC,GAAY,IAgGd,OACEpvC,IAAAC,cAAA,WA5FED,IAAAC,cAAA,WACG4S,GAAYU,gBAAkBV,GAAYY,eAAiBZ,GAAYa,WACtE1T,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACulC,KAAM,CAACC,QAAM,GACZzlC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAW1H,MAAM,UAAUmE,UAAWK,EAAQkvC,gBAAgB,yBAEhFjvC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAS1H,MAAM,WAChC,IACA08B,EAAa/xB,OAAS,GAAwB,MAAnB+xB,EAAa,GAAaA,EAAa,GAAG3S,MAAMjf,KAAO,OAKzFwM,GAAYQ,WACZrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACulC,KAAM,CAACC,QAAM,GACZzlC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAW1H,MAAM,WAAU,2BAE7CyE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAS1H,MAAM,WAChC,IACDyE,IAAAC,cAAA,SAAK0vC,EAAmBrqB,EAAMjf,KAAO,YAI3CrG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sBACbhC,IAAAC,cAACi/B,KAAU,CAAC3jC,MAAM,UAAUiI,QAASwsC,GACnChwC,IAAAC,cAACkwC,KAAiB,QAGtBnwC,IAAAC,cAAC+4B,KAAM,CACLoX,sBAAoB,EACpBC,sBAAoB,EACpB1zB,KAAMA,EACNue,QAAS+U,GAETjwC,IAAAC,cAACk7B,KAAW,KACT,IACDn7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAW1H,MAAM,WACnCyE,IAAAC,cAAA,SAAG,uBAGPD,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAAA,YACED,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOA,EACPC,SAAUA,CAAC4P,EAAOs7B,KAChBf,EAASe,IAEXd,WAAYA,EACZe,cAAeA,CAACv7B,EAAOw7B,KACrBf,EAAce,IAEhB37B,GAAG,2BACH1D,QAASA,EACTs/B,aAAc,KACdC,eAAgBC,GAAUA,EAAOvqC,KAAOuqC,EAAOvqC,KAAO,GACtDwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,gBAAgBhB,WAAS,KAC/E93B,MAAO,CAAE/D,MAAO,QAAS89B,UAAW,GACpCjC,WAAS,MAIfh7B,IAAAC,cAAC8wC,KAAa,KACZ/wC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRQ,SAAUA,EACV8C,MAAM,OACN/C,QAAS0sC,EACThtC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SACtC,SAGD7D,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRQ,SAAUA,EACV8C,MAAM,OACN/C,QAASysC,EACT/sC,MAAO,CAAE3H,MAAO,OAAQuB,gBAAiB,SAC1C,SAML+V,GAAYW,aACd,Q,0GC3KNw9B,GAAajtC,YAAO,OAAPA,CAAe,CAChCzF,aAAc,EACd6nC,WAAY,EACZC,cAAe,EACf+D,aAAc,EACdxE,YAAa,EACbpqC,MAAO,OACPG,SAAU,GACVD,WAAY,IACZmD,YAAa,IAGTqyC,GAAeltC,YAAO,SAAPA,CAAiB,CACpC4hC,YAAa,EACbQ,WAAY,EACZC,cAAe,EACf+D,aAAc,EACdzuC,SAAU,GACV2H,OAAQ,OACRc,OAAQ,UACRrH,gBAAiB,cACjBvB,MAAO,SAGH21C,GAAqBntC,YAAO,SAAPA,CAAiB,CAC1CvF,QAAS,YACT9C,SAAU,OACV2H,OAAQ,OACRc,OAAQ,UACRrH,gBAAiB,UACjBvB,MAAO,OACP+C,aAAc,MACdrB,UAAW,iCACXyB,QAAS,QACTu9B,OAAQ,YACRkV,WAAY,6BAEZ,UAAW,CACTr0C,gBAAiB,aAIfs0C,GAAcrtC,YAAO66B,KAAP76B,CAAc,MAChClG,aAAc,EACdwF,OAAQ,UAGJguC,GAAmBttC,YAAOM,IAAA,IAAC,UAAE3E,GAAqB2E,EAAP5E,EAAKI,YAAAwE,EAAAvE,IAAA,OACpDE,IAAAC,cAAC8F,KAAO7F,OAAAC,OAAA,GAAKV,EAAK,CAAEM,QAAS,CAAEuxC,OAAQ5xC,OADhBqE,CAEtBwB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CACjB,CAAC,MAAD9H,OAAO8zC,KAAeC,UAAY,CAChC10C,gBAAiB,UACjBvB,MAAO,sBACP0/B,SAAU,IACVv/B,SAAU,EACV2H,OAAQ,uBA0MGouC,OANI1H,qBAIjBxB,aAPuB/mC,GAChBA,EAMkB,KAAM,KAA/B+mC,CAAqCyB,aA5QvBlsC,IAAK,CACnBjB,KAAM,CACJI,UAAW,QAEby0C,OAAQ,CACNn2C,MAAO,UACPo2C,eAAgB,UAChBjzC,QAAS,OACTiE,eAAgB,SAChBpE,WAAY,YAmQuByrC,CApMxB4H,IAAyC,IAAxC,cAAElH,EAAa,MAAE5sC,GAAiB8zC,EAAPnyC,EAAKI,YAAA+xC,EAAAjH,IAC9C,MAAM,UAAEjrC,EAAS,cAAEmyC,GAA2BpyC,EAATG,EAAIC,YAAKJ,EAAKqyC,KAC7C,QAAE/xC,GAAYN,GACbkd,EAAMwyB,GAAWxV,oBAAS,GAE3B1mB,EAAW6mB,gBAMX,gBAAEnM,GAAoBoY,aACzBvkC,GAAe,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOmsB,iBAGdokB,EAAwBA,KAC5B9+B,EAASsa,GAAsBC,6BAC/B2hB,GAASxyB,IAYLq1B,EAAgBA,IAElBhyC,IAAAC,cAACoxC,GAAgB,CACf10B,KAAMA,EACNue,QAASA,IAAMiU,GAAQ,GACvB8C,iBAAe,EACfC,WAAY,IACZC,aAAcA,IAAMhD,GAAQ,GAC5BiD,UAAU,aACVC,oBAAqBC,KACrBtwC,MACE2rB,GAAmBA,EAAgBznB,OAAS,EAC1ClG,IAAAC,cAAAD,IAAAmB,SAAA,KACCwsB,EAAgBlhB,IAAI,CAAC8lC,EAAG7T,KAAK,IAAA8T,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAC1B3zC,IAAAC,cAAC0+B,KAAc,CACbv9B,IAAKs9B,EACLx7B,MAAO,CACL+5B,UAAqB,IAAVyB,GAAe,EAC1Br7B,OAAQ,iBACR/E,aAAc,IAEhB0B,IAAAC,cAACmxC,GAAW,CAACzxC,KAAK,SAChBK,IAAAC,cAAC4+B,KAAS,KACG,IAAVH,GACC1+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,GAClBnnC,IAAAC,cAACqD,IAAU,CACT/H,MAAM,UACNgL,MAAM,SACNrD,MAAO,CAAExH,SAAU,KAEnBsE,IAAAC,cAAA,SAAG,0BAMbD,IAAAC,cAACumC,KAAS,CAACtjC,MAAO,CAAEG,OAAQ,SAC1BrD,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKmxC,EAAEz9B,GAAI5R,MAAO,CAAEG,OAAQ,SACpCrD,IAAAC,cAAC8+B,KAAS,KACR/+B,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QACvDgsC,EAAE1mC,KjE1KtB,SAA4BgoC,GAC/B,MAAMC,EAAMtkC,OACNukC,EAAWvkC,KAAOukC,SAASD,EAAIE,KAAKxkC,KAAOqkC,KAE3CI,EAAOF,EAASE,OAChBC,EAAQH,EAASG,QACjBC,EAAUJ,EAASI,UACnBC,EAAUL,EAASK,UAEzB,IAAIC,EAAe,SA2BnB,OAzBIJ,EAAO,GAAa,GAARA,IACZI,GAAY,GAAA52C,OAAOw2C,EAAI,UAEvBA,EAAO,GAAa,GAARA,IACZI,GAAY,GAAA52C,OAAOw2C,EAAI,SAEvBC,EAAQ,GAAc,GAATA,IACbG,GAAY,GAAA52C,OAAOw2C,EAAO,EAAI,MAAQ,IAAEx2C,OAAGy2C,EAAK,WAEhDA,EAAQ,GAAc,GAATA,IACbG,GAAY,GAAA52C,OAAOw2C,EAAO,EAAI,MAAQ,IAAEx2C,OAAGy2C,EAAK,UAEhDC,EAAU,GAAc,IAATF,GAAwB,IAAVC,GAA0B,GAAXC,IAC5CE,GAAY,GAAA52C,OAAO02C,EAAO,aAE1BA,EAAU,GAAc,IAATF,GAAwB,IAAVC,GAA0B,GAAXC,IAC5CE,GAAY,GAAA52C,OAAO02C,EAAO,YAE1BC,EAAU,GAAc,IAATH,GAAwB,IAAVC,GAA2B,IAAZC,GAA4B,GAAXC,IAC7DC,GAAY,GAAA52C,OAAO22C,EAAO,cAE1BA,EAAU,GAAc,IAATH,GAAwB,IAAVC,GAA2B,IAAZC,GAA4B,GAAXC,IAC7DC,GAAY,GAAA52C,OAAO22C,EAAO,aAGvBC,EiEsIyBC,CAAmB/B,EAAE1mC,MAAQ,IAAI,MAAI0mC,EAAEtzB,WAA4B,IAAfszB,EAAEtzB,WAA6B,QAAXuzB,EAAAD,EAAEtzB,iBAAS,IAAAuzB,OAAA,EAAXA,EAAatsC,SAAU,KAAkB,QAAXusC,EAAAF,EAAEtzB,iBAAS,IAAAwzB,GAAmB,QAAnBC,EAAXD,EAAaxjC,UAAU,EAAG,YAAI,IAAAyjC,OAAnB,EAAXA,EAAgC9rC,eAAgB,MAAS2rC,EAAEtzB,UAAUrY,cAAgB,KAErM5G,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAQ,SAAOsyC,EAAE96B,SAElB86B,EAAEj6B,SACDtY,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAkB,QAAlB0yC,EAASJ,EAAEj6B,eAAO,IAAAq6B,GAAa,QAAbC,EAATD,EAAWl5B,mBAAW,IAAAm5B,OAAb,EAATA,EAAwBhsC,gBAGpC2rC,EAAEjtB,OACDtlB,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAgB,QAAhB4yC,EAASN,EAAEjtB,aAAK,IAAAutB,GAAM,QAANC,EAAPD,EAASxsC,YAAI,IAAAysC,OAAN,EAAPA,EAAelsC,gBAG3B2rC,EAAE3hC,SACD5Q,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAkB,QAAlB8yC,EAASR,EAAE3hC,eAAO,IAAAmiC,GAAM,QAANC,EAATD,EAAW1sC,YAAI,IAAA2sC,OAAN,EAATA,EAAiBpsC,iBAGvB,QAANqsC,EAAAV,EAAEnnC,YAAI,IAAA6nC,OAAA,EAANA,EAAQznC,mBAA8B,QAAf0nC,EAAIX,EAAEtzB,iBAAS,IAAAi0B,OAAA,EAAXA,EAAaqB,SAAS,2BAA+D,OAAhC,QAANpB,EAAAZ,EAAEnnC,YAAI,IAAA+nC,OAAA,EAANA,EAAQ3nC,gBAAgB,GAAGoE,SACpG5P,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAQ,KAAG,IAAM,OAADsyC,QAAC,IAADA,GAAO,QAANa,EAADb,EAAGnnC,YAAI,IAAAgoC,GAAoB,QAApBC,EAAPD,EAAS5nC,gBAAgB,UAAE,IAAA6nC,GAAO,QAAPC,EAA3BD,EAA6BxpB,aAAK,IAAAypB,OAAjC,EAADA,EAAoC7Q,eAAe,QAAS,CAAEC,sBAAuB,OAGlG,QAAN6Q,EAAAhB,EAAEnnC,YAAI,IAAAmoC,OAAA,EAANA,EAAQntB,kBAA6B,QAAfotB,EAAIjB,EAAEtzB,iBAAS,IAAAu0B,OAAA,EAAXA,EAAae,SAAS,sBAC/Cv0C,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB,YACpCkD,IAAAC,cAAA,cAAQ,KAAG,IAAM,OAADsyC,QAAC,IAADA,GAAO,QAANkB,EAADlB,EAAGnnC,YAAI,IAAAqoC,GAAmB,QAAnBC,EAAPD,EAASrtB,eAAe,UAAE,IAAAstB,GAAO,QAAPC,EAA1BD,EAA4B7pB,aAAK,IAAA8pB,OAAhC,EAADA,EAAmClR,eAAe,QAAS,CAAEC,sBAAuB,OAI1G1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACgxC,GAAY,CAACztC,QAAU0K,IAAMsmC,OAlF5Bv/B,EAkF6C/G,EAlFtCuJ,EAkFyC86B,EAAE96B,OAjF1ExC,EAAMw/B,sBACFh9B,IACFnV,OAAOqa,KAAK,SAADlf,OAAUga,GAAU,UAC/BxE,EAAS6O,GAAWU,YAAY/K,IAChCxE,EAASsa,GAAsBC,+BALVgnB,IAACv/B,EAAOwC,GAkFoD9X,KAAK,SAAQ,mBAUxFK,IAAAC,cAACixC,GAAkB,CAAC1tC,QAASA,IAAMlB,OAAOqa,KAAK,4BAA6B,UAAWhd,KAAK,SAAQ,gCAKpGK,IAAAC,cAACqD,IAAU,CAAC/H,MAAM,UAAUgL,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAI8C,QAAS,IAAK,uCAKpFwB,IAAAC,cAACi/B,KAAU,CAACh8B,MAAO,CAAEk2B,WAAY,IAAM79B,MAAM,UAAUiI,QAASuuC,GAC9D/xC,IAAAC,cAACy0C,KAA6B,QAMtC,OACE10C,IAAAC,cAAC00C,KAAMz0C,OAAAC,OAAA,CACL+C,MAAO,CAAEpG,gBAAiB,YACtB8C,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAE9BM,IAAAC,cAAC20C,KAAO,KACN50C,IAAAC,cAACsnC,KAAU,CAACjmC,GAAG,IAAI5B,UAAWK,EAAQ2xC,QACpC1xC,IAAAC,cAAA,OACEd,MAAO,IACPumC,IAAI,aACJt/B,IAAKi8B,QAGTriC,IAAAC,cAAA,OAAKiD,MAAO,CAAEpE,SAAU,KACxBkB,IAAAC,cAACulC,KAAM,CAACqP,QAAM,GACZ70C,IAAAC,cAAA,OAAKP,UAAWK,EAAQ+0C,YACtB90C,IAAAC,cAACivC,GAAW,CAACzrC,UAAU,MAEvBoP,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,cACpEw+B,IAEFhyC,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,QACbhC,IAAAC,cAACi/B,KAAU,CACTh8B,MAAO,CAAEk2B,WAAY,IACrB79B,MAAM,UACNiI,QApJGwN,KACbiC,EAASJ,GAAY7B,YAqJXhR,IAAAC,cAAC80C,KAAS,SAIhB/0C,IAAAC,cAACulC,KAAM,CAACwP,MAAI,GACVh1C,IAAAC,cAAA,OAAKiD,MAAO,CACVxE,QAAS,OACTiE,eAAgB,SAChBpE,WAAY,SACZoiC,KAAM,EACNC,MAAO,IAEP5gC,IAAAC,cAACivC,GAAW,CAACzrC,UAAU,MAEvBoP,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,cACpEw+B,IAEFhyC,IAAAC,cAACi/B,KAAU,CAAC3jC,MAAM,UAAUiI,QAASquC,GACnC7xC,IAAAC,cAACg1C,KAAQ,cChRrB,MAAMl2C,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJspC,WAAY,GACZjnC,OAAQ,OACR,CAACpB,EAAMmsC,YAAYC,GAAG,OAAQ,CAC5B/D,WAAY,KAGhB+O,aAAc,CACZvP,YAAa,KAEf9/B,QAAS,CACP3G,OAAQ,WAmDGi2C,OA/CD11C,IACZ,MAAM,SAAEwC,EAAQ,KAAElB,GAAStB,EAErBM,EAAUhB,KACVjB,EAAQs3C,eACRC,EAAYC,aAAcx3C,EAAMmsC,YAAYC,GAAG,MAAO,CAC1DqL,gBAAgB,KAGXC,EAAaC,GAAkB9b,oBAAS,GAUzC+b,IAAoBL,GAAmBG,EAE7C,OACEx1C,IAAAC,cAAA,OACEP,UAAWU,kBAAK,CACd,CAACL,EAAQlD,OAAO,EAChB,CAACkD,EAAQm1C,cAAeG,KAG1Br1C,IAAAC,cAAC01C,GAAM,CAAC9D,cAjBc+D,KACxBH,GAAe,IAgB6B10C,KAAMA,IAChDf,IAAAC,cAAC41C,GAAO,CACN3a,QAfqB4a,KACzBL,GAAe,IAeX94B,KAAM+4B,EACNzyC,QAASoyC,EAAY,aAAe,YACpCt0C,KAAMA,IAERf,IAAAC,cAAA,QAAMP,UAAWK,EAAQ8F,SACtB5D,K,uBCrDHlD,GAAYV,YAAW,MAC3BxB,KAAM,CACJI,UAAW,WAkCA04C,OA9BCl2C,IACd,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAE9BC,EAAUhB,KAEhB,OACEiB,IAAAC,cAAC00C,KAAMz0C,OAAAC,OAAA,GACDP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9BnE,MAAM,YACNsiC,SAAS,UAET79B,IAAAC,cAAC20C,KAAO,KACN50C,IAAAC,cAACsnC,KAAU,CAACjmC,GAAG,cACbtB,IAAAC,cAAA,OACEd,MAAM,OACND,OAAO,OACPwmC,IAAI,OACJt/B,IAAI,kCCzBhB,MAAMrH,GAAYV,YAAW,MAC3BxB,KAAM,CACJspC,WAAY,GACZjnC,OAAQ,QAEV2G,QAAS,CACP3G,OAAQ,WAsBG62C,OAlBEt2C,IACf,MAAM,SAAEwC,GAAaxC,EAEfM,EAAUhB,KAEhB,OACEiB,IAAAC,cAAA,OAAKP,UAAWK,EAAQlD,MACtBmD,IAAAC,cAAC01C,GAAM,MACP31C,IAAAC,cAAA,QAAMP,UAAWK,EAAQ8F,SAAU5D,K,SCjBzC,MAAMlD,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,GACvB0nC,WAAY,OACZznC,QAAS,OACTugC,cAAe,SACf+W,aAAc,UAEhBC,eAAgB,CACdhZ,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTiE,eAAgB,UAElBuzC,MAAO,CACLjb,SAAU,OACV97B,MAAO,IACPg3C,UAAW,IACXj3C,OAAQ,QAEVk3C,gBAAiB,CACfnZ,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTiE,eAAgB,aAyCL0zC,OArCEA,KACf,MAAMt2C,EAAUhB,KACVjB,EAAQs3C,eACRkB,EAAehB,aAAcx3C,EAAMmsC,YAAYsM,KAAK,OAE1D,OACEv2C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,aACnChC,IAAAC,cAACqD,IAAU,CAACiD,MAAM,SAAStD,QAASqzC,EAAe,KAAO,MAAM,uEAGhEt2C,IAAAC,cAACqD,IAAU,CAACiD,MAAM,SAAStD,QAAQ,aAAY,2GAI/CjD,IAAAC,cAAA,OAAKP,UAAWK,EAAQk2C,iBASxBj2C,IAAAC,cAAA,OAAKP,UAAWK,EAAQq2C,iBACtBp2C,IAAAC,cAAC2D,IAAM,CACLrI,MAAM,UACNkF,UAAW8mC,KACXjmC,GAAG,aACH2B,QAAQ,YACT,uBC9DM,I,OAAA,KACb,IACIuzC,GADQ,IAAI1qC,MACE2qC,WAElB,OAAID,EAAQ,GACH,uBACEA,EAAQ,GACV,mBAEA,2B,cCYOn4C,YAAYP,IAAK,CACjCjB,KAAM,GACN65C,cAAe,CACb55C,gBAAiBgB,EAAMtC,QAAQ9B,OAEjCi9C,aAAc,CACZ/3C,YAAad,EAAMW,QAAQ,OClBbJ,YAAYP,IAAK,CACjCjB,KAAM,CACJsC,MAAOrB,EAAMmsC,YAAY2M,OAAOv3C,GAChC47B,SAAU,OACVgB,OAAQ,SACRz9B,QAASV,EAAMW,QAAQ,GACvB,CAACX,EAAMmsC,YAAYC,GAAG,OAAQ,CAC5B/D,WAAYroC,EAAMW,QAAQ,KAG9Bo4C,WAAY,CACV,CAAC/4C,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,UAAWn/B,EAAMW,QAAQ,KAG7Bq4C,cAAe,CACb7Z,UAAWn/B,EAAMW,QAAQ,GACzB,CAACX,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,UAAWn/B,EAAMW,QAAQ,GACzBZ,aAAcC,EAAMW,QAAQ,KAGhCs4C,QAAS,CACP9Z,UAAWn/B,EAAMW,QAAQ,IAE3Bu4C,UAAW,CACTv7C,WAAY,IACZw7C,KAAM,EACNv7C,SAAU,GACVuhC,UAAW,GACX7D,WAAY,OAqBD8d,I,4CCjDTn4C,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CE04C,OAtCc33C,IAC3B,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEVs4C,EAAuBtR,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAUmhC,0BAAuBrwC,GAExH,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzCq1C,GAA8C,IAGnDr3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,yCAK/CoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAACq3C,KAAc,CAAC1D,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gB,4CCpDnDwD,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CE64C,OAtCG93C,IAChB,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEVy4C,EAAiBzR,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAUshC,oBAAiBxwC,GAE5G,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzCw1C,GAAkC,IAGvCx3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,wCAK/CoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAACw3C,KAAyB,CAAC7D,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gB,4CCpD9DwD,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CEg5C,OAtC8Bj4C,IAC3C,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEV44C,EAAyB5R,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAUyhC,4BAAyB3wC,GAE5H,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzC21C,GAAkD,IAGvD33C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,+BAK/CoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAAC23C,KAAgB,CAAChE,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gB,uBCxDzC8C,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,QAETrC,gBAAiB,WAEnBkF,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAiClB49C,OA7ByBp4C,IACtC,MAAM,UAAEC,GAAuBD,EAEzBmlB,GAFoB/kB,YAAKJ,EAAKK,IAEDimC,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAU0O,gCAA6B5d,IAEpI,OACEhH,IAAAC,cAAC+mC,KAAI,CACH5rC,KAAM4E,IAAAC,cAACgtC,KAAc,MACrB2G,GAAI,CACFl4C,SAAU,GACVmI,YAAa,UACb,qBAAsB,CACpBtI,MAAO,QAETuB,gBAAiB,UACjBvB,MAAO,QAET0H,QAAQ,WACR+4B,MAAOpX,EAA6BA,EAA6B,6CAA4C,M,2DCjC7G7lB,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA6CEo5C,OAzCUr4C,IACvB,MAAM,UAAEC,EAAS,KAAE5E,EAAI,KAAEM,EAAI,UAAE28C,GAAuBt4C,EAATG,EAAIC,YAAKJ,EAAKK,IACrDC,EAAUhB,KAEV8qB,EAAQkc,aAAavkC,IAAK,IAAAw2C,EAAAC,EAAA,OAAoB,QAApBD,EAAKx2C,EAAM0U,iBAAS,IAAA8hC,GAAW,QAAXC,EAAfD,EAAiB9hC,iBAAS,IAAA+hC,OAAX,EAAfA,EAA6BF,KAElE,OACE/3C,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OAAO,MAC7C6nB,EAAQA,EAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,SAG9E1iC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GACvC9C,KAIPkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAACi4C,KAAI,CAACtE,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,SAC9BH,S,QCpDCiD,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,GACZx6B,YAAa,GACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAIZ8J,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CEy5C,I,4CClETp5C,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,MA0CIi5C,OAtCiB34C,IAC9B,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEVs5C,EAAqBtS,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAUmiC,wBAAqBrxC,GAEpH,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzCq2C,GAA0C,IAG/Cr4C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,wBAK/CoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAACq4C,KAA0B,CAAC1E,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gB,4CCnD/DwD,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,GACZx6B,YAAa,GACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,MA0CIo5C,OAtCuB94C,IACpC,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEVy5C,EAA0BzS,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAUsiC,6BAA0BxxC,GAE9H,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzCw2C,GAAoD,IAGzDx4C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,+BAKjDoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAACw4C,KAAuB,CAAC7E,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gBCnD9C8C,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAIZ8J,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CEg6C,I,4CClET35C,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,EACZx6B,YAAa,EACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SAI3Bk9C,GAAepzC,YAAOC,KAAPD,CAAe,CAClC7E,OAAQ,GACRC,MAAO,GACPrC,gBAAiB,UACjB,CAACgB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Br3C,OAAQ,GACRC,MAAO,GACPT,QAAS,UA0CEi6C,OAtCgBl5C,IAC7B,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAEV65C,EAAyB7S,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAU0iC,4BAAyB5xC,GAE5H,OACEhH,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,iBAC7B3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACqJ,OAAQ,CAAEjmC,QAAS,OAAQugC,cAAe,WACnDj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKvD,UAAWK,EAAQiC,OACzC42C,GAAkD,IAGvD54C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,UAAUrF,cAAY,GAAC,iDAK/CoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACk3C,GAAY,KACXn3C,IAAAC,cAAC44C,KAAkB,CAACjF,GAAI,CAAEl4C,SAAU,GAAIH,MAAO,gB,UC7C3C8C,YAAW,MAC3BxB,KAAM,GACNi8C,eAAgB,CACd55C,OAAQ,IACR2+B,SAAU,YAEZ2F,QAAS,CACP7gC,eAAgB,eCVAnH,EAAQV,KAAKlB,QACd4B,EAAQV,KAAKX,UACXqB,EAAQV,KAAKX,UAqBbqB,EAAQV,KAAKX,UAYbqB,EAAQV,KAAKX,UAkBbqB,EAAQV,KAAKX,UClDhBkE,YAAW,MAC3BxB,KAAM,GACNi8C,eAAgB,CACd55C,OAAQ,IACR2+B,SAAU,YAEZ2F,QAAS,CACP7gC,eAAgB,eA8DLo2C,I,0DChBAC,OAjED30C,IAAgC,IAA/B,WAAE40C,EAAU,UAAEC,GAAW70C,EACtC,MAAM80C,EAAYC,KAAKC,MAAMH,GACvBI,EAAcJ,EAAYC,EAE1BI,EAAY9S,MAAMhlC,KAAK,CAAEyE,OAAQ,IAEvC,OACElG,IAAAC,cAAAD,IAAAmB,SAAA,KACG83C,EAAa,EACZj5C,IAAAC,cAAAD,IAAAmB,SAAA,KACGo4C,EAAU9sC,IAAI,CAACi6B,EAAGhI,IACbA,EAAQya,EAGRn5C,IAAAC,cAACu5C,KAAe,CACdp+C,KAAMq+C,KACNr4C,IAAKs9B,EACLx7B,MAAO,CAAE3H,MAAO,aAGXmjC,IAAUya,GAAaG,EAAc,EAG5Ct5C,IAAAC,cAAA,QAAMmB,IAAKs9B,GACT1+B,IAAAC,cAACu5C,KAAe,CACdp+C,KAAMq+C,KACNv2C,MAAO,CAAE3H,MAAO,UAAWm+C,SAAU,yCAA0C96C,aAAc,KAC7FoB,IAAAC,cAACu5C,KAAe,CAChBp+C,KAAMq+C,KACNv2C,MAAO,CAAE3H,MAAO,UAAWm+C,SAAU,8CAA+CtgB,YAAa,MAOrGp5B,IAAAC,cAACu5C,KAAe,CACdp+C,KAAMq+C,KACNr4C,IAAKs9B,EACLx7B,MAAO,CAAE3H,MAAO,UAAW69B,WAAY,EAAGx6B,YAAa,MAK/DoB,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,SAC5Bu9C,EAAa,GAAmB,GAAdA,EAAe,KAAAx7C,OAAQw7C,EAAU,sBAAgC,KAIxFj5C,IAAAC,cAAAD,IAAAmB,SAAA,KACGo4C,EAAU9sC,IAAI,CAACi6B,EAAGhI,IACjB1+B,IAAAC,cAACu5C,KAAe,CACdp+C,KAAMq+C,KACNr4C,IAAKs9B,EACLx7B,MAAO,CAAE3H,MAAO,cAGpByE,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,KAAM,6B,uBChCzC21C,GAAmBttC,YAAOM,IAAA,IAAC,UAAE3E,GAAqB2E,EAAP5E,EAAKI,YAAAwE,EAAAvE,IAAA,OACpDE,IAAAC,cAAC8F,KAAO7F,OAAAC,OAAA,GAAKV,EAAK,CAAEM,QAAS,CAAEuxC,OAAQ5xC,OADhBqE,CAEtBwB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CACjB,CAAC,MAAD9H,OAAO8zC,KAAeC,UAAY,CAChC10C,gBAAiB,UACjBvB,MAAO,sBACP0/B,SAAU,IACVv/B,SAAU,EACV2H,OAAQ,0BAINs2C,GAAa51C,YAAOq3B,KAAPr3B,CAAa,MAC9BlG,aAAc,EACdW,QAAS,KAGLwyC,GAAajtC,YAAO,OAAPA,CAAe,CAChCrF,QAAS,OACTugC,cAAe,MACf+W,aAAc,WAGVlyC,GAAeC,YAAOC,KAAPD,CAAe,MAClC5E,MAAO,GACPD,OAAQ,GACRyD,eAAgB,SAChBqzC,aAAc,SACdz3C,WAAY,YAGR0yC,GAAeltC,YAAOH,IAAPG,CAAe,MAClC4hC,YAAa,EACbQ,WAAY,EACZC,cAAe,EACf+D,aAAc,EACdrtC,gBAAiB,UACjBvB,MAAO,OACP,UAAW,CACTuB,gBAAiB,OACjBq0C,WAAY,WA0ODyI,OAtOiBn6C,IAE9B,MAAMwT,EAAW6mB,gBACX,KAAE5mB,GAAS6yB,aACdvkC,GAAUA,EAAMwkC,iBAEZqD,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEvB,KAAEvuB,EAAI,eAAEwL,EAAc,UAAEuB,GAAc4tB,aACzCvkC,GAAUA,EAAM4J,MAmCnB/I,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXE,OAAQlzC,IAGV4L,EAAS6O,GAAWC,QAAQ9L,GAAa,KAG3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAetC,OACEr6C,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKrF,cAAY,EAAC2I,MAAM,OAAOrD,MAAO,CAAE+5B,UAAW,GAAIp/B,aAAc,IAAK,sBAC9FmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAdqB4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WAgBnBpF,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,cACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAASvG,IAAAC,cAAA,cAAQ,iBAClCD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAASvG,IAAAC,cAAA,cAAQ,gBAClCD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAASvG,IAAAC,cAAA,cAAQ,SAClCD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,aAGrBvG,IAAAC,cAACumC,KAAS,KACPp7B,GAAQA,EAAKlF,OAAS,EAAIkF,EAAKqB,IAAK8lC,IAAC,IAAAmI,EAAAC,EAAAC,EAAAC,EAAAhI,EAAAC,EAAAgI,EA1FrB3vC,EA0FqB,OACpCnL,IAAAC,cAAC6+B,KAAQ,CACPE,OAAK,EACL59B,IAAKmxC,EAAEz9B,GACP8+B,GAAI,CAAE,mCAAoC,CAAEvwC,OAAQ,KAEpDrD,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC9Dg0C,EAAExtB,SACD/kB,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,gBAGtI,KACJuE,IAAAC,cAACoxC,GAAgB,CACfe,UAAU,UACVC,oBAAqBC,KACrBtwC,MACEhC,IAAAC,cAAC05C,GAAU,CAACte,WAAS,GACnBr7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC/H,MAAM,UAAUgL,MAAM,UAASvG,IAAAC,cAAA,SAAG,sBAEhDD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,GACbr7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC3CgsC,EAAE1tB,cACD7kB,IAAAC,cAAC6D,GAAY,CAACb,QAAQ,UACpBmD,IAAKmsC,EAAE1tB,gBAGT7kB,IAAAC,cAAC6D,GAAY,CAACb,QAAQ,WACpBjD,IAAAC,cAACosC,KAAgB,CAACuH,GAAI,CAAEl4C,SAAU,QAIxCsE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC/Ej/B,IAAAC,cAAC+wC,GAAU,KAAChxC,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QAAOvG,IAAAC,cAAA,SAAG,cAAW,OAAe,QAATy6C,EAACnI,EAAEjsC,cAAM,IAAAo0C,OAAA,EAARA,EAAU9zC,gBAC1G5G,IAAAC,cAAC+wC,GAAU,KAAChxC,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QAAOvG,IAAAC,cAAA,SAAG,eAAe,OAAmB,QAAb06C,EAACpI,EAAE7vB,kBAAU,IAAAi4B,OAAA,EAAZA,EAAc/zC,gBAClH5G,IAAAC,cAAC+wC,GAAU,KAAChxC,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QAAOvG,IAAAC,cAAA,SAAG,WAAW,QA9H1FkL,EA8HmHonC,EAAEpnC,aA7H1IA,GAAgB9D,GACXrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,oBAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,YAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,uBAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,qBAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,YAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,gBAGtI0P,GAAgB9D,GAClBrH,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,iBAD1I,KAsGmBuE,IAAAC,cAAC+wC,GAAU,KAAChxC,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QAAOvG,IAAAC,cAAA,SAAG,QAAQ,OAAOsyC,EAAErtB,IAAMqtB,EAAErtB,IAAM,IAAM,YACnHllB,IAAAC,cAAC+wC,GAAU,KAAChxC,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QAAOvG,IAAAC,cAAA,SAAG,wBAAqB,UAAUsyC,EAAEntB,sBAAwBmtB,EAAEntB,sBAAsBqd,eAAe,QAAS,CAAEC,sBAAuB,IAAO,WAG3N1iC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC/CvG,IAAAC,cAACgxC,GAAY,CAACztC,QAASA,IAAMqD,GAAQkH,KAAK,SAAWwkC,EAAEz9B,IAAKnV,KAAK,SAAQ,eAK/EK,IAAAC,cAAA,QAAMiD,MAAO,CAAEq8B,cAAe,WAAY,IAAEgT,EAAEjsC,OAAS,IAAA7I,OAAI80C,EAAEz9B,GAAE,KAAMy9B,EAAEjsC,OAAOM,cAAgB,OAIpG5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAoB,QAAZq0C,EAAErI,EAAEvsB,gBAAQ,IAAA40B,GAAM,QAANC,EAAVD,EAAYv0C,YAAI,IAAAw0C,OAAN,EAAVA,EAAkBj0C,eAC7C5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAiB,QAATssC,EAAEN,EAAEjtB,aAAK,IAAAutB,GAAM,QAANC,EAAPD,EAASxsC,YAAI,IAAAysC,OAAN,EAAPA,EAAelsC,eAC1C5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAUvG,IAAAC,cAAC+4C,GAAK,CAACE,UAAW3G,EAAEhsB,kBAAuC,QAAxBu0B,EAAIvI,EAAEhsB,gBAAgB,UAAE,IAAAu0B,OAAA,EAApBA,EAAsBryB,MAAMwwB,WAAY,KAC1Gj5C,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAASvG,IAAAC,cAACunC,GAAa,CACtCE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,aACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAU80C,EAAEz9B,KAE1BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,mBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,eASxB5iC,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAnB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA0BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBzJ,IAAA,IAAC,KAAEnwC,EAAI,GAAEH,GAAIswC,EAAA,SAAAn0C,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aApJmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAoJJC,YAAa3B,EACb4B,oBAlJqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,Q,gGC8FN+B,GAAyB7R,qBAI7BxB,aAPuB/mC,GAChBA,EAMkB,KAAM,KAA/B+mC,CAAqCyB,aA1NvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,GACvBo9C,iBAAkB,UAEpBh2C,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,MACf1D,UAAW,UAEbugB,UAAW,CAETn5C,eAAgB,SAChBs8B,cAAe,MACfzgC,QAASV,EAAMW,QAAQ,GACvB,CAACX,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B/3C,QAASV,EAAMW,QAAQ,OAyMUurC,CApMpBvqC,IAEjB,MAAM,UAAEC,EAAS,QAAEK,GAAqBN,EAATG,EAAIC,YAAKJ,EAAKK,KACrCi8C,OAAO,OAAE7uC,IAAazN,EACxBwT,EAAW6mB,gBACVkiB,EAAWC,GAAgBtiB,oBAAS,IAEpCuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtChpC,EAAO6yB,aAAavkC,GAAUA,EAAMwkC,eAAe9yB,MAEzDmpC,0BAAgB,KACdppC,EAASJ,GAAYe,YAEpB,IAEH,MAAM,QAAE4D,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KACR,IAAI4T,EAAc,CAChB0B,QAASH,GAEXvE,EAAS8C,GAAgBC,aAAaC,KAErC,CAACuB,IAEJnV,oBAAU,KACR,IAAI4T,EAAc,CAChB0B,QAASH,GAEXvE,EAAS8C,GAAgBC,aAAaC,KAErC,IAMH,OACEjW,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MAAM,qBAENhC,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GAASP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CM,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,SAAS88B,WAAS,EAAC14B,eAAe,SAASlE,QAAS,GACnEuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAK7C,cAAY,EAACqF,QAAQ,MAC7Cq5C,KAAc,KAAGppC,EAAOA,EAAK7M,KAAO,IAEtCwM,GAAYQ,WACXrT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAnDzB44C,KAsDgBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,eAKjE,MAENsE,IAAAC,cAAA,WACAD,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAK7C,cAAY,EAACqF,QAAQ,MAC7C,mBAGLjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAIJ,GAAI,GAAIy8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC43C,GAA8B,QAGnC73C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC37B,UAAWK,EAAQ+7C,UAAWr9C,QAAS,GACrDuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAIJ,GAAI,GAAIy8B,GAAI,GAAIC,GAAI,GAAIl9B,QAAS,EAAGkE,eAAe,UACtEkQ,GAAYa,aAAeb,GAAYW,aACxCxT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACzC37B,IAAAC,cAACs3C,GAAQ,CAAC/zC,QAASA,KAhDjCqD,GAAQkH,KAAK,SAAUiuC,IAgDiDA,UAAWA,EAAW94C,MAAO,CAAEiB,OAAQ,eAGnG0O,GAAYQ,YAAcR,GAAYW,cACtCxT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACxC9oB,GAAYQ,WACXrT,IAAAC,cAACm3C,GAAmB,CAClB5zC,QAASA,IAAMqD,GAAQkH,KAAK,mBAC5B7K,MAAO,CAAEiB,OAAQ,aAGnBnE,IAAAC,cAACm4C,GAAsB,CACrB50C,QAASA,IAAMqD,GAAQkH,KAAK,oBAC5B7K,MAAO,CAAEiB,OAAQ,cAKzBnE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACvC9oB,GAAYQ,YAAcR,GAAYa,WACtC1T,IAAAC,cAAC04C,GAAqB,CACpBn1C,QAASA,IAAMqD,GAAQkH,KAAK,qBAC5B7K,MAAO,CAAEiB,OAAQ,aAEnBnE,IAAAC,cAACs4C,GAA4B,CAC3B/0C,QAASA,IAAMqD,GAAQkH,KAAK,6BAC5B7K,MAAO,CAAEiB,OAAQ,cAItB0O,GAAYQ,YACXrT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACzC37B,IAAAC,cAACy3C,GAAmC,CAClCl0C,QAASA,IAAMqD,GAAQkH,KAAK,6BAC5B7K,MAAO,CAAEiB,OAAQ,eAGrB0O,GAAYQ,YAAcR,GAAYU,iBACtCvT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACzC37B,IAAAC,cAAC63C,GAAe,CACdC,UAAU,6BACVj9C,KAAK,8BACLM,KAAM4E,IAAAC,cAACw8C,KAAgB,SAG3Bz8C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACzC37B,IAAAC,cAAC63C,GAAe,CACdC,UAAU,0BACVj9C,KAAK,0BACLM,KAAM4E,IAAAC,cAACy8C,KAAU,SAGrB18C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGt8B,GAAI,EAAGu8B,GAAI,IACzC37B,IAAAC,cAAC63C,GAAe,CACdC,UAAU,qBACVj9C,KAAK,0BACLM,KAAM4E,IAAAC,cAAC08C,KAAkB,UAKhC9pC,GAAYW,aACXxT,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC37B,UAAWK,EAAQ+7C,UAAWr9C,QAAS,GACrDuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAIJ,GAAI,GAAIy8B,GAAI,GAAIt8B,GAAI,GAAIu8B,GAAI,IAC7C37B,IAAAC,cAAC25C,GAAsB,WAgBhCsC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBoD,YAG3B,W,+CC7NN5L,GAAYV,YAAW,MAC3BxB,KAAM,MA8FO+/C,OA3FOn9C,IACpB,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,MAETm9C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAU5C,OAJA75C,oBAAU,KACR6P,QAAQC,IAAI,QAAS1S,IACpB,CAACA,IAGFO,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GAASP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CM,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAK7C,cAAY,EAACqF,QAAQ,YAC7CxD,EAAMo9C,UAET78C,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAChCxD,EAAMuC,OAEThC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KApBjB44C,KAuBQz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACunC,GAAa,CACZE,KAAMjoC,EAAMioC,KACZM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,EAAGp1B,MAAM,SACtBvG,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B0G,QAASA,IAAMqD,GAAQkH,KAAK,GAADtQ,OAAIgC,EAAM8lC,QACtC,YAOTvlC,IAAAC,cAAA,gBACkB+G,IAAjBvH,EAAMyG,QAAyC,IAAjBzG,EAAMyG,OACnClG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,OAAO3I,cAAY,GAAC,+BACxBoC,IAAAC,cAAA,SAAIR,EAAMyG,UAI1ClG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,OAAO3I,cAAY,GACnDoC,IAAAC,cAAA,SAAI,4BAILi8C,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMrmC,EAAMq9C,aAGd,O,qBCrFV,MAAM/9C,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,GACvB0nC,WAAY,OACZznC,QAAS,OACTugC,cAAe,SACf+W,aAAc,UAEhBC,eAAgB,CACdhZ,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTiE,eAAgB,SAChBpE,WAAY,SACZy3C,aAAc,SACd+G,QAAS,UAEX7G,MAAO,CACLjb,SAAU,OACV97B,MAAO,IACPg3C,UAAW,IACXj3C,OAAQ,QAEVk3C,gBAAiB,CACfnZ,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTiE,eAAgB,aAqCLq6C,OAjCMA,KACnB,MAAMj9C,EAAUhB,KACVjB,EAAQs3C,eACRkB,EAAehB,aAAcx3C,EAAMmsC,YAAYsM,KAAK,OAE1D,OACEv2C,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,MAGnBmD,IAAAC,cAACqD,IAAU,CAACiD,MAAM,SAAStD,QAASqzC,EAAe,KAAO,MAAM,8CAGhEt2C,IAAAC,cAACqD,IAAU,CAACiD,MAAM,SAAStD,QAAQ,aAAY,oEAG/CjD,IAAAC,cAAA,OAAKP,UAAWK,EAAQk2C,gBACtBj2C,IAAAC,cAACg9C,KAAS,CAAC12C,MAAM,SAASqtC,GAAI,CAAEl4C,SAAU,OAE5CsE,IAAAC,cAAA,OAAKP,UAAWK,EAAQq2C,iBACtBp2C,IAAAC,cAAC2D,IAAM,CACLV,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCpD,UAAW8mC,KACXjmC,GAAG,aACH2B,QAAQ,YACT,uBC5BT,MA0QMi6C,GAAuBnT,qBAC3BxB,aANuB/mC,IAChB,CACL8W,QAAS9W,EAAM8W,UAIQ,KAAM,KAA/BiwB,CAAqCyB,aA3QvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAyQGurC,CArQtBvqC,IAEf,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,QAAE6Y,GAAY7Y,EAAM6Y,SACpB,eAAE1B,GAAmBnX,EAAM6Y,SAC3B,UAAEH,GAAc1Y,EAAM6Y,SAErB+wB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,gBAClB0gB,GAAa1gB,mBAAS,QACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAGXvE,EAAS6D,GAAcC,WAAWd,GAAa,KAIjDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6Y,QAAQH,YAEzB,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAeV,SAASyD,IACP,OACEt9C,IAAAC,cAAAD,IAAAmB,SAAA,KAAE,6CAC8BnB,IAAAC,cAAA,QAAMiD,MAAO,CAAE3H,MAAO,YAAa,+DASvE,OACEyE,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,YACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcsR,GAAWA,EAAQpS,OAAS,EACzClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQoS,EAAQpS,OAChB22C,SAAU,yBACV76C,MAAO,oBACPujC,KAAM,WACNuX,WAAYv1C,GAAmBoC,mBAGjC3J,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQ,EACR22C,SAAU,yBACV76C,MAAO,oBACLujC,KAAM,WACNuX,WAAYv1C,GAAmBoC,mBAGrC3J,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SArCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAwCbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,iBACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcsR,GAAWA,EAAQpS,OAC9BoS,EAAQ7L,IAAKouB,GAEX76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEphB,YAAcohB,EAAEphB,YAAY7S,cAAgB,GAC9Ci0B,EAAEpS,KAAOzoB,IAAAC,cAAC+4C,GAAK,CAACvwB,KAAMoS,EAAEpS,KAAMwwB,WAAYpe,EAAEoe,aAAiB,IAEhEj5C,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACP,GAAtB9L,EAAE/f,iBAA2B,oBACN,GAAtB+f,EAAE/f,iBAA4B,oBACN,MAAtB+f,EAAE/f,kBAA4B,YAEpC9a,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC+4C,GAAK,CAACE,UAAWre,EAAEqe,UAAWD,WAAYpe,EAAE0iB,mBAE/Cv9C,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACdsM,GAAYU,eACXvT,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,YAADtQ,OAAao9B,EAAE/lB,KAE7BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,cACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,WAMvB,KACJ/6C,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,YAADtQ,OAAao9B,EAAE/lB,KAE7BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAvI1B3oC,EAuIsC+lB,EAAE/lB,QAtI3D8kB,EAAQ,CACN53B,MAAO,uCACPo9B,YAAap/B,IAAAC,cAACq9C,EAAgB,MAC9B75C,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,uBAAyB,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6D,GAAcsC,kBAAkBtE,MARxBA,OAwIWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAhB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAwBhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAI3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,yIChQlBU,GAAmBr5C,IAA0C,IAAzC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,UAAEk+C,GAAWt5C,EAElE,MAAO,CAAEq1B,GAAe15B,IAAM25B,SAAS,GACjCikB,EAAU59C,IAAM69C,UAAU,MAG1B5qC,GADU4mB,cACCC,iBACX,QAAE/5B,EAAO,UAAEL,EAAS,QAAE4Y,GAAqB7Y,GACzCs8C,OAAO,OAAE7uC,KAD2BrN,YAAKJ,EAAKK,IACxBL,GAExB0Y,EAAY4tB,aACfvkC,GAAUA,EAAMi3B,eAAetgB,WAGlC9V,oBAAU,OACP,CAAC5C,EAAM6Y,QAAQH,UAAWA,IAE7B,MAIM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS8iB,GAAc/gB,cAAc+oC,EAAM9oC,KA+B7C,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,oBAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA3Df+1B,MA4DMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GA9DCA,KAEpB,IAAIipC,EAAiB,CACnB73C,KAAM5G,EAAMmR,QAAQvK,KACpB8M,MAAO1T,EAAMmR,QAAQuC,MACrBojB,UAAW92B,EAAMmR,QAAQ2lB,UACzBzc,MAAOra,EAAMmR,QAAQkJ,MAAMtM,cAC3BgpB,cAAe,EACf3c,QAASpa,EAAMmR,QAAQiJ,SAAWpa,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC3H2vB,UAAWn3B,EAAMmR,QAAQgmB,UACzBhd,SAAUna,EAAMmR,QAAQgJ,UAAYna,EAAMmR,QAAQgJ,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC9HkT,iBAAkB,CAChB,CACErF,GAAI,EACJ0I,UAAW,EACXnF,UAAWslC,KAKbO,IACFjrC,EAAS8iB,GAAcwB,qBAAqB2mB,IAC5CjrC,EAAS8iB,GAActgB,SACvB8jB,MAuC2B4kB,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,0BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAMmR,QAAQvK,MAAQ,GAC7BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQ2lB,WAAa,GAClCtzB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IACnC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,yBAINr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,gBACHknB,MAAM,oBACNv4B,UAAQ,EACRw4B,OAAO,SACP72B,MAAO,EACP02B,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,oBAEND,IAAAC,cAACy+C,KAAQ,CAACC,UAAQ,EAACv5C,MAAO,GAAG,aAGjCpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUy4C,EAAa,WACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQiJ,UAAY,GAC3C5W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQgJ,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,eACNj7B,KAAK,SACLk7B,OAAO,SACP52B,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQgmB,WAAa,GAClC3zB,QAAQ,cAGVxD,EAAMmR,SAAWnR,EAAMmR,QAAQ6lB,qBAC/Bz2B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,uBACHknB,MAAM,gCACNC,OAAO,SACP72B,MAAO3F,EAAMmR,QAAQ6lB,qBAAuBjnB,KAAO/P,EAAMmR,QAAQ6lB,sBAAsBjE,OAAO,oBAAsB,GACpHvvB,QAAQ,cAIZ,OAINjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLjH,MAAM,EACNmJ,QAAQ,YACRQ,SAAUhE,EAAMmR,QAAQuH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmR,QAAQuH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DF,EAAMmR,QAAQuH,UAAY,yBAAwB,iB,qEC1NnDpU,YAAOH,IAAPG,CAAe,CAC/BjH,gBAAiB,UACjBs8B,WAAY,EACZx6B,YAAa,EACbf,aAAc,EACd,UAAW,CACTf,gBAAiB,UACjB+G,YAAa,aAIME,YAAO66C,KAAP76C,CAAc,CACnCrI,SAAU,GACViqC,YAAa,EACbwE,aAAc,EACd5uC,MAAO,SAkCT,SAASsjD,GAASp/C,GAChB,MAAM,SAAEwC,EAAQ,MAAEmD,EAAK,MAAEs5B,GAAoBj/B,EAAVq/C,EAAKj/C,YAAKJ,EAAKK,IAElD,OACEE,IAAAC,cAAA,MAAAC,OAAAC,OAAA,CACE4+C,KAAK,WACLC,OAAQ55C,IAAUs5B,EAClB5pB,GAAE,mBAAArX,OAAqBihC,GACvBugB,kBAAA,cAAAxhD,OAA+BihC,IAC3BogB,GAEH15C,IAAUs5B,GACT1+B,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEsL,EAAG,IACZl/C,IAAAC,cAACqD,IAAU,KAAErB,KAavB,SAASk9C,GAAUzgB,GACjB,MAAO,CACL5pB,GAAG,cAADrX,OAAgBihC,GAClB,gBAAgB,mBAADjhC,OAAqBihC,IAIxC,MAAM0gB,GAAar7C,YAAOs7C,KAAPt7C,CAAeM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAChD,0BAA2B,CACzB,gBAAiB,CACf9I,MAAO,eAo/BP+jD,GAA2BvV,qBAC/BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAxjCvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA6hC4ByuC,CAh/BlBvqC,IAAW,IAADigD,EAAAC,EAAAC,EAAAC,EAE7B,MAAM5sC,EAAW6mB,gBACX,QAAE/5B,EAAO,QAAEuY,EAAO,UAAE5Y,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKkrC,KAC9CoR,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,MAC1BjkB,EAAUC,cAGVimB,EADWC,wBACQv+C,OAElBgW,EAASwoC,GAAcrmB,mBAAS,IAChCsmB,EAAWC,GAAgBvmB,mBAAS,KAEpCzf,EAAUimC,GAAexmB,mBAAS,IAClCymB,EAAYC,GAAiB1mB,mBAAS,KAEtCv0B,EAAOoqC,GAAYxvC,IAAM25B,SAAS,OAClC8V,EAAYC,GAAiB1vC,IAAM25B,SAAS,KAC5Chd,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAEhC2mB,EAAYC,GAAiBvgD,IAAM25B,SAAS,OAC5C6mB,EAAWC,GAAgBzgD,IAAM25B,UAAS,IAE1C+mB,EAAaC,GAAkB3gD,IAAM25B,SAAS,OAC9CinB,EAAkBC,GAAuB7gD,IAAM25B,SAAS,KAExDmnB,EAAaC,GAAkB/gD,IAAM25B,SAAS,OAC9CqnB,EAAkBC,GAAuBjhD,IAAM25B,SAAS,KAExDunB,EAAcC,GAAmBxnB,oBAAS,GAC3CynB,EAAgBA,IAAMD,GAAiBD,IAEtCG,GAAuBC,IAA4B3nB,mBAAS,KAC5D4nB,GAAuBC,IAA4B7nB,mBAAS,IAE7D8nB,GAAe1b,aAAavkC,GAAUA,EAAM0rB,YAAYA,aACxD9S,GAAiB2rB,aAAavkC,GAAUA,EAAM8jB,MAAMA,QAEpD,OAAE1Q,IAAWmxB,aAChBvkC,GAAUA,EAAMoT,SAGZsnC,GAAWC,IAAgBxiB,oBAAS,GACrCyiB,GAAkBA,IAAMD,IAAcD,IAMtCwF,GAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,QAE9CvE,GAAUwD,GAAOnI,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAClD6mD,GAAiBD,GAAQj1C,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,SAEzD,CAAE4+B,IAAe15B,IAAM25B,SAAS,IAChCwjB,GAAOC,IAAYp9C,IAAM25B,UAAS,IAElCioB,GAAUC,IAAeloB,mBAAS,GAMzCt3B,oBAAU,KAER4Q,EAAS6D,GAAcrB,SACvBxC,EAAS6D,GAAcuC,yBACvBpG,EAAS6D,GAAcwC,sBAEvBrG,EAAS2c,GAAYE,kBACrB7c,EAAS8J,GAAaC,mBAEtB/J,EAASgJ,GAAmBM,oBAExBrP,EAAO4H,IACT7B,EAAS6D,GAAc6B,eAAezL,EAAO4H,KAC7C0sC,GAAyB/hD,EAAM6Y,QAAQ8B,gBACnC3a,EAAM6Y,SAAW7Y,EAAM6Y,QAAQqC,uBACjC2mC,GAAyB7hD,EAAM6Y,QAAQqC,yBAGzC1H,EAAS6D,GAAcrB,SACvBxC,EAAS6D,GAAcuC,0BAGrBymC,GACF+B,GAAY,QAGgB76C,GAA1BvH,EAAM6Y,QAAQ5D,UAAoD,IAA3BjV,EAAM6Y,QAAQ5D,UAA6C,KAA3BjV,EAAM6Y,QAAQ5D,UACvFzB,EAASiB,GAAaO,oBAAoBhV,EAAM6Y,QAAQ5D,WAG1D,MAAMotC,EAAWC,YAAY,KAC3B3E,IAAS,IACR,MACH,MAAO,IAAM4E,cAAcF,IAE1B,IAEHz/C,oBAAU,KACJ5C,EAAM6Y,QAAQmC,QAChBxH,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,KAE7EhvC,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,MAE9E,CAAc,QAAdvC,EAACjgD,EAAM6Y,eAAO,IAAAonC,OAAA,EAAbA,EAAejlC,QAAsB,QAAfklC,EAAElgD,EAAM6Y,eAAO,IAAAqnC,OAAA,EAAbA,EAAeplC,SAAuB,QAAfqlC,EAAEngD,EAAM6Y,eAAO,IAAAsnC,OAAA,EAAbA,EAAeplC,iBAA+B,QAAfqlC,EAAEpgD,EAAM6Y,eAAO,IAAAunC,OAAA,EAAbA,EAAevlC,aAQrGjY,oBAAU,KACsB,GAA1B5C,EAAM6Y,QAAQ4B,eAA8BlT,GAAbkG,EAAO4H,IACxC06B,EAAS/vC,EAAM6Y,QAAQ1D,SAExB,CAACnV,EAAM6Y,QAAQ4B,WAElB7X,oBAAU,KACJ5C,EAAM6Y,QAAQ5D,UAChBzB,EAASiB,GAAaO,oBAAoBhV,EAAM6Y,QAAQ5D,YAEzD,CAACjV,EAAM6Y,QAAQ5D,WAElB,MAAMwtC,GAAyBptC,IAC7B,QAAW9N,IAAP8N,EAAkB,CAAC,IAADqtC,EACpB,MAAMxnC,EAAwB8rB,MAAM2b,QAAqB,QAAdD,EAAC1iD,EAAM6Y,eAAO,IAAA6pC,OAAA,EAAbA,EAAexnC,uBAAyBlb,EAAM6Y,QAAQqC,sBAAwB,GACpH0nC,EAAgB5b,MAAM2b,QAAQf,IAAyBA,GAAwB,GAErF,OAAO1mC,EAAsBktB,KAAMhN,GAAMA,EAAE5N,gBAAkBnY,IAAOutC,EAAcxa,KAAMhN,GAAMA,EAAE5N,gBAAkBnY,GAEpH,OAAO,GAGHwtC,GAA2BxtC,IACT,IAADytC,EAAAC,EAArB,QAAUx7C,GAAN8N,EACF,OAAqB,QAAbytC,EAAA9iD,EAAM6Y,eAAO,IAAAiqC,GAAgB,QAAhBC,EAAbD,EAAenoC,sBAAc,IAAAooC,OAAhB,EAAbA,EAA+B3a,KAAM0K,GAAMA,EAAE/6B,SAAW1C,MAA4B,OAArBysC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuB1Z,KAAM0K,GAAMA,EAAEz9B,IAAMA,KAyCtHzS,oBAAU,KACJq+C,GAAeA,EAAY5rC,IAC7B7B,EAASiB,GAAaO,oBAAoBisC,EAAY5rC,MAEvD,CAAY,OAAX4rC,QAAW,IAAXA,OAAW,EAAXA,EAAa5rC,KAEjBzS,oBAAU,KACR5C,EAAM6Y,QAAQqC,sBAAwB0mC,GACtC3nB,GAAYmB,IAAMA,IACjB,CAACwmB,KAEJh/C,oBAAU,KACR5C,EAAM6Y,QAAQ8B,eAAiBmnC,GAC/B7nB,GAAYmB,IAAMA,IACjB,CAAC0mB,KAEJl/C,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQqC,wBAElBtY,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQ8B,iBAElB/X,oBAAU,KACJ+C,GACFyqC,GAAyBzqC,IAE1B,CAACA,IAEJ,MAAMyqC,GAA4BniC,IAChC,GAAW,MAAPA,EAAa,CACf,IAAIixC,EAAW/pC,GAAOm7B,OACnBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACEiB,GAAaiB,oBACXwpC,EAAS,KAMfxP,GAAQ,IAYV9sC,oBAAU,KAT6BqL,MAUjC4yC,IATO,OAD0B5yC,EAWL4yC,KAT9BN,EAAWtyC,EAAIoH,IACforC,EAAaxyC,EAAIrH,OAEnBo6C,GAAa,KAQZ,CAACH,IASJj+C,oBAAU,KAP8BqL,MAQlCozC,GAPO,OAD2BpzC,EASLozC,KAP/BX,EAAYzyC,EAAIoH,IAChBurC,EAAc3yC,EAAIrH,QAQnB,CAACy6C,IAEJz+C,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQ8B,iBAElB/X,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQ6B,mBAElB9X,oBAAU,OAEP,CAAC86C,GAAO19C,EAAM6Y,QAAQH,YAEzB,MAAM2lC,GAAgBC,GAAU9oC,IAC9BhC,EAAS6D,GAAc9B,cAAc+oC,EAAM9oC,KAmH7C,SAASgxB,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,iBAKV,SAASwiD,KACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,mBAIV,SAASimC,KACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,GAAQ,MAEXziD,IAAAC,cAACgmC,GAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,2CACA,0CAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEp2C,aAAc,EAAGqG,YAAa,YACvC7D,IAAAC,cAACyiD,KAAI,CAACt9C,MAAOw8C,GAAUv8C,SA3Wbs9C,CAAC1tC,EAAOs7B,KAC9BsR,GAAYtR,IA0WkDtJ,aAAW,sBAC3DjnC,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,YAAemjB,GAAU,KACpCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,UAAamjB,GAAU,GAAE,CAAE17C,SAAUoP,GAAYU,oBAGhEvT,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GA5ILA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACX2E,YAAaha,EAAM6Y,QAAQmB,YAC3BC,aAAcja,EAAM6Y,QAAQoB,aAC5BC,IAAKla,EAAM6Y,QAAQqB,IAAMla,EAAM6Y,QAAQqB,IAAIpN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,GACvF6H,KAAMrP,EAAM6Y,QAAQxJ,KAAOrP,EAAM6Y,QAAQxJ,KAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,GAC1F4S,QAASpa,EAAM6Y,QAAQuB,QAAUpa,EAAM6Y,QAAQuB,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAM,GAChI6S,MAAOra,EAAM6Y,QAAQwB,MAAQra,EAAM6Y,QAAQwB,MAAMtM,cAAgB,GACjEoM,SAAUna,EAAM6Y,QAAQsB,SAAWna,EAAM6Y,QAAQsB,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAM,GACnI8S,SAAUta,EAAM6Y,QAAQyB,SACxBC,oBAAqBva,EAAM6Y,QAAQ0B,oBACnCC,kBAAmBxa,EAAM6Y,QAAQ2B,kBACjCC,SAAU9U,EAAQA,EAAM0P,GAAKrV,EAAM6Y,QAAQ4B,SAC3CxF,SAAUjV,EAAM6Y,QAAQ5D,SACxByF,iBAAkB1a,EAAM6Y,QAAQ6B,iBAChCC,eAAgB3a,EAAM6Y,QAAQ8B,eAC9BC,gBAAiB5a,EAAM6Y,QAAQ+B,gBAC/BC,WAAY7a,EAAM6Y,QAAQgC,WAC1BC,SAAU9a,EAAM6Y,QAAQiC,SACxBC,iBAAkB/a,EAAM6Y,QAAQkC,iBAChCC,QAAShb,EAAM6Y,QAAQmC,QACvBG,kBAAmBnb,EAAM6Y,QAAQsC,kBACjCC,iBAAkBpb,EAAM6Y,QAAQuC,iBAChCF,sBAAuBlb,EAAM6Y,QAAQqC,uBAGnClb,EAAM6Y,QAAQqC,sBAAsBzU,OAAS,EAC3CgH,EAAO4H,GACT7B,EAAS6D,GAAc+B,gBAAgB3L,EAAO4H,GAAIzE,GAAS,IAE3D4C,EAAS6D,GAAckC,cAAc3I,IAGvCxD,IAAMlS,MAAM,6CAyGqBwjD,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,uBACVtkC,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA7Y7B44C,MAgZoBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,cACHknB,MAAM,oBACNv4B,SAAUoP,GAAYU,eACtB0oB,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,eACvB14C,MAAO3F,EAAM6Y,QAAQmB,aAAe,GACpCxW,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,eACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,gBACvB14C,MAAO3F,EAAM6Y,QAAQoB,cAAgB,GACrCzW,QAAQ,WACRm7C,WAAY,CAAC,YACb36C,SAAUoP,GAAYU,eACtB8qC,cAAe,CAAC,4BAGO,GAA1B5+C,EAAM6Y,QAAQiC,UACbva,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPx4B,SAAWhE,EAAM6Y,QAAQxD,IAAMrV,EAAM6Y,QAAQxJ,MAAQD,GAAapP,EAAM6Y,QAAQxJ,OAAS+D,GAAYU,eACrGlO,SAAUy4C,GAAa,QACvB14C,MAAO8B,GAASzH,EAAM6Y,QAAQxJ,OAAS,GACvC7L,QAAQ,WACRm7C,WAAsC,GAA1B3+C,EAAM6Y,QAAQiC,SAAmB,CAAC,YAAc,KAC5D8jC,cAAe,CAAC,4BAIK,GAA1B5+C,EAAM6Y,QAAQiC,UACbva,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBp4B,SAAUoP,GAAYU,eACtBynB,WAAS,EACTlmB,GAAG,MACHknB,MAAM,QACNC,OAAO,SACP52B,SAAUy4C,GAAa,OACvB14C,MAAO2B,GAAQtH,EAAM6Y,QAAQqB,MAAQ,GACrC1W,QAAQ,WACRm7C,WAAsC,GAA1B3+C,EAAM6Y,QAAQiC,SAAmB,CAAC,YAAc,KAC5D8jC,cAAe,CAAC,4BAItBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBp4B,SAAUoP,GAAYU,eACtBynB,WAAS,EACTj6B,KAAK,SACL+T,GAAG,KACHguC,WAAY,CAAEC,UAAW,IACzB/mB,MAAM,2BACNC,OAAO,SACP52B,SAAUy4C,GAAa,qBACvB14C,MAAO3F,EAAM6Y,QAAQ2B,mBAAqB,GAC1ChX,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZn4B,SAAUoP,GAAYU,gBAAsC,GAApB9T,EAAM6Y,QAAQxD,GACtD7R,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACNE,QAASlvB,GAAYyB,iBACrBrJ,MAAO3F,EAAM6Y,QAAQwB,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBx2B,SAAUy4C,GAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,yBAINr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,aACNC,OAAO,SACPx4B,SAAUoP,GAAYU,eACtBlO,SAAUy4C,GAAa,YACvB14C,MAAO+B,GAAU1H,EAAM6Y,QAAQsB,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHrR,SAAUoP,GAAYU,eACtByoB,MAAM,YACNC,OAAO,SACP52B,SAAUy4C,GAAa,WACvB14C,MAAO+B,GAAU1H,EAAM6Y,QAAQuB,UAAY,GAC3C5W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACRQ,SAAUoP,GAAYU,eACtBuB,GAAG,WACHknB,MAAM,SACN52B,MAAO3F,EAAM6Y,QAAQ5D,SACrBrP,SAAUy4C,GAAa,YACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,YAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,YAEJ+iD,mBAAQtB,UACR16C,IAAc06C,IACdA,GAAQx7C,QACRw7C,GAAQj1C,IAAI,CAACw2C,EAAKvkB,IAChB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAEijC,WAAY,KAC3DnmC,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOA,EACPC,SAAUA,CAAC4P,EAAOs7B,KAChBf,EAASe,IAEX9sC,SAAUoP,GAAYU,eACtBk8B,WAAYA,EACZe,cAAeA,CAACv7B,EAAOw7B,KACrBf,EAAce,IAEhB37B,GAAG,2BACH1D,QAASA,GACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAActrC,EACdurC,eAAgBC,GAAUA,EAAOvqC,MAAQ,GACzCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAEg2C,UAAQ,EAAClnB,MAAM,0BAA0BhB,WAAS,KAClGA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTv3B,SAAUoP,GAAYU,eACtBuB,GAAG,WACHknB,MAAM,gBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,YACvB14C,MAAO3F,EAAM6Y,QAAQyB,UAAY,GACjC9W,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTv3B,SAAUoP,GAAYU,eACtB4vC,WAAS,EACTC,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,sBACHknB,MAAM,mCACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,uBACvB14C,MAAO3F,EAAM6Y,QAAQ0B,qBAAuB,GAC5C/W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC2F,KAAW,CAAC1C,MAAO,CAAEmgD,WAAY,WAChCrjD,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQgC,WACvBjV,SAAUy4C,GAAa,gBAG3B9hB,MAAM,eAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQkC,iBACvBnV,SAAUy4C,GAAa,sBAG3B9hB,MAAM,4BAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQiC,SACvBlV,SAAUy4C,GAAa,cAG3B9hB,MAAM,gBAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQmC,QACvBpV,SAAUy4C,GAAa,aAG3B9hB,MAAM,YAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQsC,kBACvBvV,SAAUy4C,GAAa,uBAG3B9hB,MAAM,+BAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACT37C,SAAUoP,GAAYU,eACtB4D,QAAS1X,EAAM6Y,QAAQuC,iBACvBxV,SAAUy4C,GAAa,sBAG3B9hB,MAAM,yCAIZh8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,mDAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC9Ck7C,SAAgCz6C,GAAhBy6C,IAA6BA,GAAav7C,OAAS,GAClEu7C,GAAah1C,IAAI,CAACouB,EAAG6D,IACnB1+B,IAAAC,cAAC+mC,KAAI,CAACvjC,SAAUoP,GAAYU,eAAgByoB,MAAOnB,EAAEx0B,KAAMjF,IAAKs9B,EAAOl7B,QAASA,KAAMggD,OA3lB/E1uC,EA2lBuG+lB,EAAE/lB,QA1lBxIwsC,GAA0BmC,IACxB,MAAMC,EAAoBjd,MAAM2b,QAAQqB,GAAgBA,EAAe,GAKvE,GAFmBC,EAAkB7b,KAAMhN,GAAMA,EAAE5N,gBAAkBnY,GAInE,OAAO4uC,EAAkB3T,OAAQlV,GAAMA,EAAE5N,gBAAkBnY,GACtD,CAEL,MAAM6uC,EAAc,CAClB7uC,GAAI,EACJmY,cAAenY,EACfuD,UAAW5Y,EAAM6Y,QAAQxD,IAE3B,MAAO,IAAI4uC,EAAmBC,MAjBpC,IAAiC7uC,GA4lBL7R,QAASi/C,GAAsBrnB,EAAE/lB,IAAM,SAAW,WAAY5R,MAAO,CAAEpG,gBAAiBolD,GAAsBrnB,EAAE/lB,KAAO,UAAWvZ,MAAO2mD,GAAsBrnB,EAAE/lB,IAAM,UAAY,UAAWmnB,OAAQ,OAI9Mj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,gCAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC9C6T,SAAoCpT,GAAlBoT,IAA+BA,GAAelU,OAAS,GACxEkU,GAAe3N,IAAI,CAAC8lC,EAAG7T,IACrB1+B,IAAAC,cAAC+mC,KAAI,CAACvjC,SAAUoP,GAAYU,eAAgByoB,MAAOuW,EAAEz3C,KAAMsG,IAAKs9B,EAAOl7B,QAASA,IAllB1G,SAAmCsR,GAEjC,GADwC,OAArBysC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuB1Z,KAAM0K,GAAMA,EAAE/6B,SAAW1C,GACnD,CACd,MAAM6uC,EAAmC,OAArBpC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuBxR,OAAQwC,GAAMA,EAAE/6B,SAAW1C,GACtE0sC,GAAyBmC,OACpB,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJ0C,QAAS1C,EACTuD,UAAW5Y,EAAM6Y,QAAQxD,IAE3B0sC,GAAyB,IAAID,GAAuBqC,KAukBwDC,CAA0BtR,EAAEntC,OAChHnC,QAASq/C,GAAwB/P,EAAEntC,OAAS,SAAW,WAAYlC,MAAO,CAAEpG,gBAAiBwlD,GAAwB/P,EAAEntC,QAAU,UAAW7J,MAAO+mD,GAAwB/P,EAAEntC,OAAS,UAAY,UAAW62B,OAAQ,OAI7Nj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,yBAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,SAAUqzC,aAAc,SAAU5c,WAAY,KACnIp5B,IAAAC,cAACqwC,KAAY,CACX7sC,SAAUoP,GAAYU,eACtBnO,MAAOs7C,EACPr7C,SAAUA,CAAC4P,EAAO6uC,KAChBnD,EAAemD,IAEjBrU,WAAYmR,EACZpQ,cAAeA,CAACv7B,EAAO8uC,KACrBlD,EAAoBkD,IAEtBjvC,GAAG,2BACH1D,QAASuwC,GACTjR,aAAc,KACdC,eAAgBC,GAAgB,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQvqC,KAClCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC27B,iBAAa17B,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,4BAA4B/4B,QAAQ,WAAW+3B,WAAS,QAGtHh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAO07C,EACPz7C,SAAUA,CAAC4P,EAAO+uC,KAChBjD,EAAeiD,IAEjBvU,WAAYuR,EACZxQ,cAAeA,CAACv7B,EAAOgvC,KACrBhD,EAAoBgD,IAEtBnvC,GAAG,2BACH1D,QAASA,GACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAAcoQ,EACdoD,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,0BAA0BhB,WAAS,KACzFA,WAAS,KAGXnoB,GAAYU,eAIV,KAHFvT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE3E,WAAY,MAAOoE,eAAgB,WAClF3C,IAAAC,cAAC2D,IAAM,CAACV,MAAO,CAAE/D,MAAO,QAASi6B,WAAY,OAAQt8B,gBAAiB,QAAUuP,KAAK,aAAayI,GAAG,aAAa7R,QAAQ,YAAYvD,UAAU,MAAMe,UAAU,IAAI+C,QA3hB9J2gD,KACvBrD,GAA8B,GAAfA,EAKhBrhD,EAAM6Y,QAAQ+B,gBAAgB01B,OAAOqU,GAAMA,EAAGlqC,UAAYyhC,SAASzhC,IAAWhU,OAAS,EACzF2G,IAAMlS,MAAM,iDAGZ8E,EAAM6Y,QAAQ+B,gBAAgBtM,KAAK,CACjC,SAAYmM,EACZ,UAAaza,EAAM6Y,QAAQxD,GAC3B,OAAU,CACR,KAAQsrC,KAGZD,EAAY,GACZY,EAAe,OAhBfl0C,IAAMlS,MAAM,2BAyhB4M,gBAAeqF,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMipD,UAIhPrkD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAE+5B,UAAW,IAExC,MAAjCx9B,EAAM6Y,QAAQ+B,iBAA2B5a,EAAM6Y,QAAQ+B,gBAAgBnU,OAAS,EAC/EzG,EAAM6Y,QAAQ+B,gBAAgB5N,IAAIouB,GAEpB,KAATA,EAAE/lB,IAAa+lB,EAAE3gB,SAChBla,IAAAC,cAAC+mC,KAAI,CACH/jC,QAAQ,SACR2wC,GAAI,CACF3W,UAAW,GACX7D,WAAY,GACZx6B,YAAa,GACbJ,QAAS,EACT1B,gBAAiB,UACjBvB,MAAO,OACPgD,WAAY,SACZymC,IAAK,OAEPtG,MAAO7D,EAAE/lB,GACTrR,SAAUoP,GAAYU,eACtBnS,IAAK,SAAWy5B,EAAE/lB,GAClBknB,MAAK,GAAAv+B,OAAKo9B,EAAEjmB,OAASimB,EAAEjmB,OAAOvO,KAAOw0B,EAAE3gB,SAAQ,KAC/CoqC,WAAYtkD,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMmpD,KAAYrhD,MAAO,CAAE3H,MAAO,OAAQG,SAAU,MACjF8oD,SAAUA,KAAMC,OAldf3vC,EAkdwC+lB,EAAE3gB,cAjdzE0f,EAAQ,CACN53B,MAAO,sCACPo9B,YAAa,6DACb37B,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,sBAAwB,kBACnE3H,KAAK,KACN/Q,EAAM6Y,QAAQ+B,gBAAkB5a,EAAM6Y,QAAQ+B,gBAAgB01B,OAAOqU,GAAMA,EAAGlqC,UAAYyhC,SAAS7mC,IACnG4kB,GAAYmB,IAAMA,KARW/lB,SAodD,MAGN,OAIT5H,EAAO4H,KAAOjC,GAAYU,eACzBvT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIl9B,QAAS,GACvDuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQH,WAAY,SAAU0gC,cAAe,MAAOhC,UAAW,GAAKx+B,QAAS,GAC7GuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,SAAS,8CAI/DvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,0BACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,QAC5CvG,IAAAC,cAAC2D,IAAM,CAACV,MAAO,CAAEpG,gBAAiB,QAChCuP,KAAK,cACLyI,GAAG,cACHpV,UAAU,MACVuD,QAAQ,YACRxC,UAAU,IACV+C,QAASA,KAtvBvCyP,EAAS8iB,GAActgB,SACvBxC,EAASslB,GAAqB9iB,cAC9B2rC,MAovBgE,2BAAuBphD,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMspD,SAItFzc,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,SAG3Bh9C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,EAAGv+B,QAAS,OAAQugC,cAAe,MAAO7F,WAAY,GAAIx6B,YAAa,GAAI+D,eAAgB,UAAY4D,MAAM,UAEtH,MAAlC9G,EAAM6Y,QAAQ6B,kBAA4B1a,EAAM6Y,QAAQ6B,iBAAiBjU,OAAS,EACjFzG,EAAM6Y,QAAQ6B,iBAAiB1N,IAAIouB,GAErB,KAATA,EAAE/lB,IAA2B,GAAd+lB,EAAEtf,SAChBvb,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAErF,aAAc,IAC7DmC,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKxC,UAAU,OAC/Bo6B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAKO,cAAgBi0B,EAAErd,WAEjDxd,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,iBAAiBqC,cAAY,GACjEi9B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQkJ,MAAQ,IAElC9Z,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAErR,GAAI,KAAOhnC,MAAM,kBAC/Bs/B,EAAEjqB,QAAqC,GAA3BiqB,EAAEjqB,QAAQ4lB,cAAqB,gBAA6C,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,gCAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,0BAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,YAAyC,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,SAAW,GAAK,IAE7Qx2B,IAAAC,cAAC8F,KAAO,CACN/D,MAAM,sBACNhC,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAE+Q,WAAY,IAAKvrB,WAAY,EAAGx6B,YAAa,GAAK4E,QAASA,KAAM27B,OA3hB9FrqB,EA2hBiH+lB,EAAErd,eA1hB5Ioc,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,iEACb37B,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,0BAAyB,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACN/Q,EAAM6Y,QAAQ6B,iBAAmB1a,EAAM6Y,QAAQ6B,iBAAiB41B,OAAOqU,GAAMA,EAAG5mC,WAAam+B,SAAS7mC,IACtG7B,EAASslB,GAAqB1b,kBAAkB/H,GAAI,IACpD4kB,GAAYmB,IAAMA,KAVK/lB,OA2hB+H1T,IAAK,SAAWy5B,EAAE/lB,IAChI9U,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMmpD,KAAYrhD,MAAO,CAAE3H,MAAO,OAAQG,SAAU,WAM7E,MAGN,QAKV,KAEJsE,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,cAE3B8E,GAAYU,eAAiB,SAAW,YAE1C+E,EAAQxD,IAAMjC,GAAYQ,WACzBrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QA/kBUohD,KAClChrB,EAAQ,CACN53B,MAAO,gEACPo9B,YAAa,2CACb37B,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,eAAiB,gBAC7DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6D,GAAciC,0BAA0B7L,EAAO4H,QAwkBlCrR,SAA4C,GAAlChE,EAAM6Y,QAAQwC,kBAA6Brb,EAAM6Y,QAAQH,UACnE+kB,UAAWl9B,IAAAC,cAACu7B,KAAS,MACrB4B,QAAS39B,EAAM6Y,QAAQH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzB,GAAlCF,EAAM6Y,QAAQwC,iBAA4B,kBAAoBrb,EAAM6Y,QAAQH,UAAY,sBAAwB,kBAEnHnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QApmBUqhD,KAClCjrB,EAAQ,CACN53B,MAAO,gEACPo9B,YAAa,2CACb37B,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,eAAiB,gBAC7DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6D,GAAcgC,0BAA0B5L,EAAO4H,QA6lBlCrR,SAA4C,GAAlChE,EAAM6Y,QAAQwC,kBAA4Brb,EAAM6Y,QAAQH,UAClE+kB,UAAWl9B,IAAAC,cAAC6kD,KAAQ,MACpB1nB,QAAS39B,EAAM6Y,QAAQH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzB,GAAlCF,EAAM6Y,QAAQwC,iBAA2B,kBAAoBrb,EAAM6Y,QAAQH,UAAY,sBAAwB,mBAGlH,KACFtF,GAAYU,eAWV,KAVFvT,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM6Y,QAAQH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6Y,QAAQH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DuN,EAAO4H,GAAMrV,EAAM6Y,QAAQH,UAAY,yBAA2B,YAAgB1Y,EAAM6Y,QAAQH,UAAY,sBAAwB,cAOjJnY,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAAC8kD,GAAgB,CAAC1sC,UAAWnL,EAAO4H,UAQ3CosC,EACClhD,IAAAC,cAACy9C,GAAgB,CAACnkB,OAAQ6nB,EAAe5nB,MAAO0nB,EAAczhD,MAAOA,EAAOk+C,UAAWzwC,EAAO4H,KAE9F,KAIDonC,GACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,GACR5iB,MAAO0iB,GACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBM,yBAG3B,U,6MC3fJy3C,GAA2BvV,qBAC/BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aArkBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA0iB4ByuC,CAtiBbvqC,IAExB,MAAMwT,EAAW6mB,eACXF,EAAUC,eAEV,QAAE95B,EAAO,UAAEsY,GAAuB5Y,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IACxB,eAAEmX,GAAmBnX,EAAM2b,cAC3B,UAAEjD,GAAc1Y,EAAM6Y,QACtBslC,EAAU59C,IAAM69C,UAAU,OACzBz8C,EAAK4jD,GAAUrrB,mBAAS,IAExB0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEtBhd,EAAMwyB,GAAWxV,oBAAS,IAC1B7nB,EAAMmzC,GAAWtrB,wBAAS3yB,IAE3B,aAAEoU,GAAiB2qB,aACtBvkC,GAAUA,EAAM4Z,eAEb,UAAE2Z,GAAcgR,aACnBvkC,GAAUA,EAAMuzB,WAEnB1yB,oBAAU,KACR4Q,EAAS8H,GAAmBtF,SAE5BxC,EAAS0hB,GAAgBG,gCAExB,IAEH,MAAOonB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1+B,UAAYtD,GAA0B,IAAbA,GAAmBA,GAG9CpF,EAAS8H,GAAmBC,gBAAgB/E,GAAa,KAI3DqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAWhiC,IAEjDhW,oBAAU,OAEP,CAACuU,EAAgBuB,IAGpB,MA8BM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS8H,GAAmB/F,cAAc+oC,EAAM9oC,KAoD5CiwC,EAAkBlqD,IACtBsH,OAAOqa,KAAK3hB,IAOdqH,oBAAU,KACJyP,QAAgB9K,GAAR8K,GAA6B,MAARA,IAC/Bq9B,GAAQ,GACRgW,MAED,CAACrzC,IAEJ,MAAMqzC,EAASA,KACb3yC,GAAWV,GACRtB,KAAMb,IACLy1C,YAAW,WACT,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAAS8H,GAAmB/F,cAAc,eAAgBqwC,IAE1DlW,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MAId,SAASlJ,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,eAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,iBAIV,SAASimC,IACP,OAAIzmC,EAAM2b,aAAatG,GACd9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,OAKEjmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GAhGGA,KAEpB,GAAsC,GAAlCxV,EAAM2b,aAAaC,aAAsD,MAAlC5b,EAAM2b,aAAaC,YAC5DxO,IAAMlS,MAAM,iCAET,GAAuC,IAAnC8E,EAAM2b,aAAaE,cAAyD,MAAnC7b,EAAM2b,aAAaE,aACnEzO,IAAMlS,MAAM,mCACP,CACL,IAAI0V,EAAU,CACZyE,GAAIrV,EAAM2b,aAAatG,GACvBuD,UAAWsjC,SAAStjC,GACpBgD,YAAa5b,EAAM2b,aAAaC,YAChCkqC,aAAc/1C,KAAO/P,EAAM2b,aAAamqC,cAAcC,cACtDlqC,aAAc7b,EAAM2b,aAAaE,cAG/B7b,EAAM2b,aAAatG,GACrB7B,EAAS8H,GAAmBS,qBAAqB/b,EAAM2b,aAAatG,GAAIzE,GAAS,IAEjF4C,EAAS8H,GAAmBc,mBAAmBxL,MA6ExB8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,oBACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAlMrB44C,KAqMYz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGm1C,GAAI,CAAEl1C,QAAS,OAAQH,WAAY,WAC7DyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,UACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,YACN32B,SAAU6I,GApGFA,KACxB+2C,EAAQ/2C,EAAEE,OAAOq3C,MAAM,KAmGQC,CAAiBx3C,GAChCnN,KAAK,OACL4kD,YAAY,qBACZ3W,aAAW,EACX5tC,IAAKA,EACL8hD,UAAQ,EACRjnB,OAAO,WAGXj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,cACHknB,MAAM,eACNC,OAAO,SACP52B,SAAUy4C,EAAa,eACvB14C,MAAO3F,EAAM2b,aAAaC,YAC1BygB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,eAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,kBAEJ+iD,mBAAQjuB,SACR/tB,IAAc+tB,GACdA,EAAU7uB,QACV6uB,EAAUtoB,IAAKw2C,GACbjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,SAMfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL+T,GAAG,eACHknB,MAAM,wBACNC,OAAO,SACP52B,SAAUy4C,EAAa,gBACvB14C,MAAO3F,EAAM2b,aAAamqC,aAAe/1C,KAAO/P,EAAM2b,aAAamqC,cAAc/yB,OAAO,cAAgB,GACxGvvB,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,SAOpB/7B,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,KAvPrByP,EAAS8H,GAAmBiB,oBAC5BgpC,EAAO,KAuPI,YAGDhlD,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQvB,MAAO,QACzCkI,SAAUhE,EAAM2b,aAAajD,WAAmD,KAAtC1Y,EAAM2b,aAAa+J,iBAA0BxI,EACvFugB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2b,aAAajD,WAAawE,GAAQ3c,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExEF,EAAM2b,aAAatG,GAAMrV,EAAM2b,aAAajD,UAAY,uBAAyB,YAAgB1Y,EAAM2b,aAAajD,UAAY,oBAAsB,cAOjKnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAAUy4C,EAAa,YAI7B99C,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,iBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,SACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,YACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAG9BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcoU,GAAgBA,EAAalV,OACxCkV,EAAa3O,IAAKouB,IAElB,MAAM+qB,EAAY/qB,EAAEvf,aAAa/O,MAAM,KACjCs5C,EAAcD,EAAUA,EAAU1/C,OAAS,GAEjD,OACElG,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/lB,GAAK+lB,EAAE/lB,GAAK,IAEjB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE9F,UAAY8F,EAAE9F,UAAU1uB,KAAO,IAEpCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAC5Cj/B,IAAAC,cAAA,OAAKiD,MAAO,CAAE+5B,UAAW,IAAoB,GAAdpC,EAAE1P,SAAgBnrB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,YAAWhC,IAAAC,cAAC6lD,KAAe,CAAC5iD,MAAO,CAAE3H,MAAO,cAA0C,GAAds/B,EAAE1P,SAAgBnrB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,YAAWhC,IAAAC,cAAC8lD,KAAU,CAAC7iD,MAAO,CAAE3H,MAAO,cAA4ByE,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,0BAAsBhC,IAAAC,cAAC+lD,KAAc,CAAC9iD,MAAO,CAAE3H,MAAO,eAAgC,OAChVs/B,EAAEvf,aAAeuf,EAAEvf,aAAai5B,SAAS,OACxCv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUy3C,aAAc,SAAU7xC,OAAQ,WAAaX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAAgBuqC,EAAY,IAAC7lD,IAAAC,cAAA,YAAMD,IAAAC,cAACgmD,KAAgB,CAAC/iD,MAAO,CAAEyiC,YAAa,EAAG1I,UAAW,QAGhPpC,EAAEvf,aAAai5B,SAAS,SAAW1Z,EAAEvf,aAAai5B,SAAS,UAAY1Z,EAAEvf,aAAai5B,SAAS,SAAW1Z,EAAEvf,aAAai5B,SAAS,SAAW1Z,EAAEvf,aAAai5B,SAAS,QACtKv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qCAAoChC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUy3C,aAAc,SAAU7xC,OAAQ,WAAaX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAAgBuqC,EAAY,IAAC7lD,IAAAC,cAAA,YAAMD,IAAAC,cAACimD,KAAS,CAAChjD,MAAO,CAAEyiC,YAAa,EAAG1I,UAAW,QAC3RpC,EAAEvf,aAAai5B,SAAS,QACxBv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCAAqChC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUy3C,aAAc,SAAU7xC,OAAQ,WAAaX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAAgBuqC,EAAY,IAAC7lD,IAAAC,cAAA,YAAMD,IAAAC,cAACkmD,KAAe,CAACjjD,MAAO,CAAEyiC,YAAa,EAAG1I,UAAW,QACjSpC,EAAEvf,aAAai5B,SAAS,SAAW1Z,EAAEvf,aAAai5B,SAAS,UAAY1Z,EAAEvf,aAAai5B,SAAS,QAChGv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCAAqChC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUy3C,aAAc,SAAU7xC,OAAQ,WAAaX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAAgBuqC,EAAY,IAAC7lD,IAAAC,cAAA,YAAMD,IAAAC,cAACmmD,KAAa,CAACljD,MAAO,CAAEyiC,YAAa,EAAG1I,UAAW,QAChSpC,EAAEvf,aAAe,KAG/Btb,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAQ9F,UAAU,KAAKkmC,MAAM,OAC5C3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,UAClEk4B,EAAE0qB,cAAgB,IAAIz5C,KAAK+uB,EAAE0qB,cAAgB,IAAIz5C,KAChD9L,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,+BAA2BhC,IAAAC,cAAComD,KAAS,CAACnjD,MAAO,CAAEyiC,YAAa,EAAGpqC,MAAO,WACnF,KACJyE,IAAAC,cAAA,QAAMiD,MAAO,CAAE+5B,UAAW,IAAMpC,EAAE0qB,aAAe/1C,KAAOqrB,EAAE0qB,cAAc/yB,OAAO,cAAgB,MAGnGxyB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAkBfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8iD,OA7VnBxxC,EA6VgC+lB,EAAE/lB,QA5VtD8kB,EAAQ,CACN53B,MAAO,qCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2b,aAAajD,UAC7BknB,iBAAkB5/B,EAAM2b,aAAajD,UAAY,qBAAuB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8H,GAAmBe,uBAAuBhH,MARjCA,OA8VInV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,UAKnBn5B,IAAAC,cAACunC,GAAa,CACZE,KAAM,yBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,UACXxjC,SAAwB,GAAdo3B,EAAE1P,SACZ1qB,UAAU,IACV+C,QAASA,IA7VRq3B,KACzBjB,EAAQ,CACN53B,MAAO,qCACPo9B,YAAa,oDACb37B,SAAUhE,EAAM2b,aAAajD,UAC7BknB,iBAAkB5/B,EAAM2b,aAAajD,UAAY,qBAAuB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8H,GAAmBW,uBAAuBmf,OAsV3B0rB,CAAkB1rB,GAEpBl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,WACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC6kD,KAAQ,WAMnB9kD,IAAAC,cAACunC,GAAa,CACZE,KAAM,yBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,WACXzjC,QAASA,IAnWPq3B,KAC1BjB,EAAQ,CACN53B,MAAO,sCACPo9B,YAAa,oDACb37B,SAAUhE,EAAM2b,aAAajD,UAC7BknB,iBAAkB5/B,EAAM2b,aAAajD,UAAY,qBAAuB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8H,GAAmBa,uBAAuBif,OA2Vd2rB,CAAmB3rB,GAClCl7B,KAAK,QACL8D,SAAwB,GAAdo3B,EAAE1P,UAEZnrB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,YACbhC,IAAAC,cAACu7B,KAAS,cAWvBrjB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WArBxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA4BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAncmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAmcJJ,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D6kC,YAAa3B,EACb4B,oBAncqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,MAocHqC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBqC,qBAG3B,U,iGCtfK68C,OA5GoBhnD,IAEjC,MAAOqa,EAAO4sC,GAAY/sB,qBACpB1mB,EAAW6mB,gBACV6sB,EAAiBC,GAAsBjtB,oBAAS,IACjD,8BAAE9B,EAA6B,UAAE1f,GAAc4tB,aAClDvkC,GAAUA,EAAMoP,SAGnBvO,oBAAU,KACR,MAAMyS,EAAKswC,WAAW,KACpBwB,GAAmB,IAClB,KAEH,MAAO,IAAMC,aAAa/xC,IACzB,IAEHzS,oBAAU,UACkB2E,GAAtBvH,EAAMqnD,cACRJ,EAASjnD,EAAMqnD,eAEhB,CAACrnD,IAEJ,MAGMwwC,EAAcA,KAClBh9B,EAAS8iB,GAAc8B,+BAA8B,KAOvD,OACE73B,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMkb,EACNqD,QAAS+U,EACTgP,kBAAgB,mCAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACk7B,KAAW,CAACrmB,GAAG,oBAAoB5R,MAAO,CAAEkjC,cAAe,EAAGvoC,aAAc,IAAK,sCAGlFmC,IAAAC,cAAA,QAAMg+C,SAhBYhpC,IACpBA,EAAMw/B,iBACNxhC,EAAS8iB,GAAc2B,qBAAqB5d,IAC1C6sC,GAAmBD,EAAS,MAc1B1mD,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAAC8mD,KAAiB,KAChB/mD,IAAAC,cAACqD,IAAU,CACT1F,cAAY,EACZsF,MAAO,CAAEijC,WAAY,EAAGC,cAAe,GACvC7/B,MAAM,UACNtD,QAAQ,YACR1H,MAAM,eACP,kFAKHyE,IAAAC,cAAC6wC,KAAS,CACRkW,WAAS,EACT9D,UAAQ,EACRpuC,GAAG,QACHknB,MAAM,wBACN8mB,WAAY,CACVmE,UAAW,KAEbxM,YAAY,wBACZ15C,KAAK,QACLqE,MAAO0U,EACPzU,SA/CY4P,IACpByxC,EAASzxC,EAAM7G,OAAOhJ,MAAMoI,gBA+CpBwtB,WAAS,KAGbh7B,IAAAC,cAAC8wC,KAAa,KACZ/wC,IAAAC,cAACm7B,KAAI,CACHl4B,MAAO,CAAE1E,QAAS,GAClBC,QAAS,EACT48B,WAAS,EACTgf,UAAU,MACV13C,eAAe,gBACfpE,WAAW,UAEXyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CAACJ,QAASysC,EAAahtC,QAAQ,WAAWC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SAAU,aAIlG7D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CACLH,SAAU0U,EACVpX,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1BsgC,QAASjlB,GAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7CwY,EACG,oBACA,qD,yECnGpB,MAIM+uC,GAAcnjD,YAAOojD,KAAPpjD,CAAmBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CACrDw5B,SAAU,WACV3+B,OANmB,IAOnB,CAACpB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OARiB,KAUnB,CAACpB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAXiB,KAanB,8BAA+B,CAC7BjB,OAAQ,EACR,2BAA4B,CAC1BmpD,QAAS,KAEX,yBAA0B,CACxBA,QAAS,OAKTC,GAAatjD,YAAOq3B,KAAPr3B,CAAawB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC9C02B,OAAQ,SACRv9B,QAAS,OACTugC,cAAe,SACf//B,OAAQooD,IACR3kD,eAAgB,SAChB,8BAA+B,CAC7BU,OAAQ,yBACR/E,aAAc,GAEhB,CAACR,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAAQqoD,KAEV,CAACzpD,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAAQsoD,QAKNC,GAAW1jD,YAAO,OAAPA,CAAe,CAC9B85B,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACRsjB,eAAgB,QAChBC,mBAAoB,eAGhBC,GAAQ7jD,YAAO,OAAPA,CAAe6tC,IAAA,IAAC,MAAE9zC,GAAO8zC,EAAA,MAAM,CAC3C/T,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACR1lC,QAAS,OACTH,WAAY,SACZoE,eAAgB,SAChBpH,MAAOuC,EAAMtC,QAAQqsD,OAAOnuD,SAGxBouD,GAAgB/jD,YAAO,OAAPA,CAAegkD,IAAA,IAAC,MAAEjqD,GAAOiqD,EAAA,MAAM,CACnDlqB,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACRtnC,gBAAiBgB,EAAMtC,QAAQqsD,OAAOluD,MACtCytD,QAAS,GACTjW,WAAYrzC,EAAMkqD,YAAYC,OAAO,cAuIxBC,OApIkBzoD,IAE/B,MAAOqa,EAAO4sC,GAAY/sB,qBACpB1mB,EAAW6mB,gBACV6sB,EAAiBC,GAAsBjtB,oBAAS,IACjD,8BAAEjd,EAA6B,UAAEvE,GAAc4tB,aAClDvkC,GAAUA,EAAM2a,cAGnB9Z,oBAAU,KACR,MAAMyS,EAAKswC,WAAW,KACpBwB,GAAmB,IAClB,KAEH,MAAO,IAAMC,aAAa/xC,IACzB,IAEHzS,oBAAU,UACkB2E,GAAtBvH,EAAMqnD,cACRJ,EAASjnD,EAAMqnD,eAEhB,CAACrnD,IAEJ,MAUMwwC,EAAcA,KAClBh9B,EAASgJ,GAAmBS,+BAA8B,KAG5D,OACE1c,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMD,EACNwe,QAAS+U,EACTgP,kBAAgB,mCAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEl1C,QAAS,OAAQklC,SAAU,OAAQ/gC,SAAU,IAAK1D,MAAO,SAClEa,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QA1B2B4kD,KACjCn1C,EAASgJ,GAAmBW,8BAA6B,IACzDqzB,KAyBM/sC,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAAS6a,KAAO,QAClDtY,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,8BAELD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,WACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,IAEP,6FAOPtoD,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QA9D6BglD,KACnC3hD,GAAQkH,KAAK,mBACbkiC,KA6DM/sC,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAASmX,KAAM,QACjD5U,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,yCAELD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,WACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,IAEP,mE,+DCxMf,MAIMpB,GAAcnjD,YAAOojD,KAAPpjD,CAAmBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CACrDw5B,SAAU,WACV3+B,OANmB,IAOnB,CAACpB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OARiB,KAUnB,CAACpB,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAXiB,KAanB,8BAA+B,CAC7BjB,OAAQ,EACR,2BAA4B,CAC1BmpD,QAAS,KAEX,yBAA0B,CACxBA,QAAS,OAKTC,GAAatjD,YAAOq3B,KAAPr3B,CAAawB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC9C02B,OAAQ,SACRv9B,QAAS,OACTugC,cAAe,SACf//B,OAAQooD,IACR3kD,eAAgB,SAChB,8BAA+B,CAC7BU,OAAQ,yBACR/E,aAAc,GAEhB,CAACR,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAAQqoD,KAEV,CAACzpD,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,kBACPD,OAAQsoD,QAKNC,GAAW1jD,YAAO,OAAPA,CAAe,CAC9B85B,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACRsjB,eAAgB,QAChBC,mBAAoB,eAGhBC,GAAQ7jD,YAAO,OAAPA,CAAe6tC,IAAA,IAAC,MAAE9zC,GAAO8zC,EAAA,MAAM,CAC3C/T,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACR1lC,QAAS,OACTH,WAAY,SACZoE,eAAgB,SAChBpH,MAAOuC,EAAMtC,QAAQqsD,OAAOnuD,SAGxBouD,GAAgB/jD,YAAO,OAAPA,CAAegkD,IAAA,IAAC,MAAEjqD,GAAOiqD,EAAA,MAAM,CACnDlqB,SAAU,WACV8C,KAAM,EACNC,MAAO,EACPF,IAAK,EACL0D,OAAQ,EACRtnC,gBAAiBgB,EAAMtC,QAAQqsD,OAAOluD,MACtCytD,QAAS,GACTjW,WAAYrzC,EAAMkqD,YAAYC,OAAO,cAoKxBQ,OAjKiBhpD,IAE9B,MAAOqa,EAAO4sC,GAAY/sB,qBACpB1mB,EAAW6mB,gBACV6sB,EAAiBC,GAAsBjtB,oBAAS,IACjD,6BAAE/c,EAA4B,UAAEzE,GAAc4tB,aACjDvkC,GAAUA,EAAM2a,cAGnB9Z,oBAAU,KACR,MAAMyS,EAAKswC,WAAW,KACpBwB,GAAmB,IAClB,KAEH,MAAO,IAAMC,aAAa/xC,IACzB,IAEHzS,oBAAU,UACkB2E,GAAtBvH,EAAMqnD,cACRJ,EAASjnD,EAAMqnD,eAEhB,CAACrnD,IAEJ,MAAMipD,EAAkC3nD,IACtC8F,GAAQkH,KAAK,yBAADtQ,OAA0BsD,IACtCkvC,KAGIA,EAAcA,KAClBh9B,EAASgJ,GAAmBW,8BAA6B,KAG3D,OACE5c,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMC,EACNse,QAAS+U,EACTgP,kBAAgB,mCAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEl1C,QAAS,OAAQklC,SAAU,OAAQ/gC,SAAU,IAAK1D,MAAO,SAClEa,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QAASA,IAAMklD,EAA+B,YAC9CxlD,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAAS8c,KAAQ,QACnDva,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,oCAMXD,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QAASA,IAAMklD,EAA+B,aAC9CxlD,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAASkrD,KAAS,QACpD3oD,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,oCAMXD,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QAASA,IAAMklD,EAA+B,cAC9CxlD,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAAS6c,KAAU,QACrDta,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,mCAMXD,IAAAC,cAACinD,GAAW,CACViB,aAAW,EACX/mD,IAAK,EACLoC,QAASA,IAAMklD,EAA+B,cAC9CxlD,MAAO,CACL/D,MAAO,QAGTa,IAAAC,cAACwnD,GAAQ,CAACvkD,MAAO,CAAEmlD,gBAAgB,OAAD5qD,OAAS8c,KAAQ,QACnDva,IAAAC,cAAC6nD,GAAa,CAACpoD,UAAU,0BACzBM,IAAAC,cAAC2nD,GAAK,KACJ5nD,IAAAC,cAAConD,GAAU,KACTrnD,IAAAC,cAACqD,IAAU,CACT7C,UAAU,OACVwC,QAAQ,YACR1H,MAAM,UACNq4C,GAAI,CACF/V,SAAU,WACVqhB,EAAG,EACHoJ,GAAI,EACJC,GAAKzqD,GAAK,QAAAL,OAAaK,EAAMW,QAAQ,GAAE,aAGzCuB,IAAAC,cAAA,SAAG,uDC/LnB,SAAS2oD,KACP,OACE5oD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQ1H,MAAM,gBAAgBgL,MAAM,UACrD,yBACDvG,IAAAC,cAAC4oD,KAAI,CAACttD,MAAM,UAAUgqC,KAAK,gCAA+B,gBAElD,KACP,IAAIz5B,MAAOM,cACX,KAEHpM,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQ1H,MAAM,gBAAgBgL,MAAM,UAAS,yBAC3CuiD,GAAYl2C,UAMxC,MAAMm2C,WAAcroD,YAClBsoD,YAAYvpD,GACVwpD,MAAMxpD,GAAM,KAcdq+C,aAAgBC,GAAU9oC,IACX,UAAT8oC,EACFmL,KAAKC,SAAS,CAAE,CAACpL,GAAO9oC,EAAM7G,OAAOhJ,MAAMoI,gBAE3C07C,KAAKC,SAAS,CAAE,CAACpL,GAAO9oC,EAAM7G,OAAOhJ,SAExC,KAEDgkD,gBAAmB/8C,GAAU4I,IAC3Bi0C,KAAKC,SAAQ7rD,wBAAC,GAAK4rD,KAAK1nD,OAAK,IAAE,CAAC6K,GAAO4I,EAAM7G,OAAO+I,YACrD,KAEDgnC,aAAgBlpC,IACdA,EAAMw/B,iBACN,MAAM,MAAE36B,EAAK,MAAE3G,GAAU+1C,KAAK1nD,OACxB,SAAEyR,GAAai2C,KAAKzpD,MAEtBqa,GAAS3G,GACXF,EAASJ,GAAYC,MAAMgH,EAAO3G,KAErC,KAEDk2C,yCAA2C,KACzC,MAAM,SAAEp2C,GAAai2C,KAAKzpD,MAC1BwT,EAAS8iB,GAAc8B,+BAA8B,KACtD,KAEDyxB,yCAA2C,KACzC,MAAM,SAAEr2C,GAAai2C,KAAKzpD,MAC1BwT,EAASgJ,GAAmBS,+BAA8B,KA1C1DwsC,KAAK1nD,MAAQ,CACXsY,MAAO,GACP3G,MAAO,GACPo2C,cAAc,EACdC,WAAW,GAIfC,oBACMxoD,aAAaC,QAAQ,SACvB2F,GAAQkH,KAAK,cAmCjBnN,SACE,MAAM,UAAE8oD,GAAcR,KAAKzpD,OACrB,QAAEM,GAAYmpD,KAAKzpD,MACzB,OACEO,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC37B,UAAWK,EAAQlD,MACjCmD,IAAAC,cAACwmD,GAAyB,CAACK,aAAcoC,KAAK1nD,MAAMsY,QACpD9Z,IAAAC,cAACioD,GAAuB,MACxBloD,IAAAC,cAACwoD,GAAsB,MACvBzoD,IAAAC,cAACm7B,KAAI,CACHE,MAAI,EACJK,GAAI,GACJ18B,GAAI,GACJG,GAAI,EACJs8B,GAAI,EACJj7B,UAAW8lC,IACXojB,UAAW,EACXC,QAAM,GAEN5pD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ5E,OACtB6E,IAAAC,cAAA,OAAKmG,IAAKi8B,KAAMljC,MAAO,IAAK+D,MAAO,CAAErF,aAAc,KACnDmC,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAI,OACJmc,SAAUiL,KAAK/K,cAEfn+C,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVC,MAAM,WACN52B,MAAO8jD,KAAK1nD,MAAMsY,MAClBpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAU6jD,KAAKpL,aAAa,SAC5BhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,wBAGJr+C,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEV32B,MAAO8jD,KAAK1nD,MAAM2R,MAClB9N,SAAU6jD,KAAKpL,aAAa,SAC5BzxC,KAAK,QACL2vB,MAAM,UACNj7B,KAAMmoD,KAAK1nD,MAAM+nD,aAAe,OAAS,WACzCz0C,GAAG,QACHwpC,aAAa,gBACbF,WAAY,CAAC,YACbC,cAAe,CAAC,sCAElBr+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,cAC7B3C,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAAC4pD,KAAQ,CACPxkD,SAAU6jD,KAAKE,gBAAgB,gBAC/BhkD,MAAM,eACN7J,MAAM,YAGVygC,MAAM,mBAGVh8B,IAAAC,cAAC2D,IAAM,CACLo3B,WAAS,EACT/3B,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1BvB,MAAM,UACNkI,SAAUimD,EACV3oD,KAAK,SACLrB,UAAWK,EAAQ+pD,OACnB5sB,UAAWl9B,IAAAC,cAAC8pD,KAAY,MACxB3sB,QAASssB,GAAa1pD,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7C+pD,EAAY,kCAA8B,WAG/C1pD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAEq4B,UAAW,SAAU54B,eAAgB,SAAU9E,aAAc,SACpFmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,IACb37B,IAAAC,cAAC4oD,KAAI,CACHpoD,UAAU,SACV+C,QAAS0lD,KAAKG,yCACdpmD,QAAQ,QACRC,MAAO,CAAE3H,MAAO,OAAQ4qC,WAAY,KAEnC,uBAIPnmC,IAAAC,cAAC2D,IAAM,CACLo3B,WAAS,EACT/3B,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1BvB,MAAM,UACNiI,QAAS0lD,KAAKI,yCACdvoD,KAAK,SACLrB,UAAWK,EAAQ+pD,OACnB5sB,UAAWl9B,IAAAC,cAAC+pD,KAA2B,OAEtC,sBAEHhqD,IAAAC,cAAC2D,IAAM,CACLo3B,WAAS,EACT/3B,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQmgC,UAAW,OAAQ55B,OAAQ,kBAC7D9H,MAAM,OACNiI,QAASymD,GACTlpD,KAAK,SACLrB,UAAWK,EAAQxD,OACnB2gC,UAAWl9B,IAAAC,cAACiqD,KAA2B,OAEtC,sCAEHlqD,IAAAC,cAACkiC,KAAG,CAACK,GAAI,GACPxiC,IAAAC,cAAC2oD,GAAS,WAYxB,MAAMqB,GAAsBA,KAC1BpjD,GAAQkH,KAAK,mBASTo8C,GAAqBpgB,qBAIzBxB,aAVuB/mC,IACvB,MAAM,UAAEkoD,GAAcloD,EAAMwkC,eAC5B,MAAO,CACL0jB,cAOuB,KAAM,KAA/BnhB,CAAqCyB,aArPvBlsC,IAAK,CACnBjB,KAAM,CACJqC,OAAQ,QACRC,MAAO,iBACP88B,OAAQ,OACR19B,WAAY,SACZoE,eAAgB,SAChB0lD,gBAAgB,OAAD5qD,OAASxC,KAAU,KAClCysD,eAAgB,OAChB7L,iBAAkB,YAClB/+C,gBAAiB,sBAEnB3B,MAAO,CACL8gC,OAAQn+B,EAAMW,QAAQ,EAAG,GACzBC,QAAS,OACTugC,cAAe,SACf1gC,WAAY,UAEdskD,KAAM,CACJ1jD,MAAO,OACP89B,UAAWn/B,EAAMW,QAAQ,IAE3BqrD,OAAQ,CACN7tB,OAAQn+B,EAAMW,QAAQ,EAAG,EAAG,MA8NOurC,CAAmB+e,MCtO3CqB,OAxCY3qD,IACzB,MAAMwT,EAAW6mB,eACXuwB,EAAYtkB,aAAavkC,GAAUA,EAAMwkC,eAAeqkB,WACxDC,EAAWvkB,aAAavkC,GAAUA,EAAMwkC,eAAeskB,UAEvDC,EAAgBA,KACpB,MAAMC,EAAQ,IAAIr9C,gBAAgB1N,EAAMiC,SAAS0L,QACjD,IAAI0M,EAAQ0wC,EAAMlF,WAAWt/C,OAAO,EAAGwkD,EAAMlF,WAAWmF,QAAQ,IAAK,GAAK,GAC1E3wC,EAAQ4wC,mBAAmB5wC,GAC3B,IAAIjJ,EAAQ25C,EACTlF,WACAt/C,OACCwkD,EAAMlF,WAAWmF,QAAQ,SAAU,GAAK,EACxCD,EAAMlF,WAAWp/C,OAASskD,EAAMlF,WAAWmF,QAAQ,SAAU,GAAK,GAGtE,IAAIp6C,EAAU,CACZyC,MAAO43C,mBAAmB5wC,GAC1B3G,MAAO,SAETF,EAAS8iB,GAAcyB,kBAAkBnnB,EAASQ,KAkBpD,OAfAxO,oBAAU,KAEJioD,GACED,GACFE,KAGH,CAACF,IAEJhoD,oBAAU,KACHioD,GACHC,KAED,IAEIvqD,IAAAC,cAAAD,IAAAmB,SAAA,O,oBCIT,MAAMwpD,WAAsBjqD,YAAUsoD,cAAA,SAAA18C,WAAA,KACpC9K,MAAQ,CACNsY,MAAO,GACPjJ,MAAO,GACPmC,SAAU,GACV43C,eAAgB,IACjB,KAuBDC,qBAAwB9M,GAAU9oC,IAChCi0C,KAAKC,SAAS,CAAE,CAACpL,GAAO9oC,EAAM7G,OAAOhJ,SACtC,KAED0lD,2BAA8B/M,GAAU9oC,IACtCi0C,KAAKC,SAAS,CAAE,CAACpL,GAAO9oC,EAAM7G,OAAOhJ,SACtC,KAEDgkD,gBAAmB/8C,GAAU4I,IAC3Bi0C,KAAKC,SAAQ7rD,wBAAC,GAAK4rD,KAAK1nD,OAAK,IAAE,CAAC6K,GAAO4I,EAAM7G,OAAO+I,YACrD,KAEDgnC,aAAgBlpC,IACdA,EAAMw/B,iBACN,MAAM,SAAExhC,GAAai2C,KAAKzpD,MAC1B,IAAI4Q,EAAU,CACZyC,MAAOo2C,KAAK1nD,MAAMsY,MAClB3G,MAAO+1C,KAAK1nD,MAAMwR,UAEpBC,EAAS8iB,GAAc6B,cAAcvnB,EAAS64C,KAAK1nD,MAAMqP,SAxC3D44C,oBACE,MAAMe,EAAQ,IAAIr9C,gBAAgB+7C,KAAKzpD,MAAMiC,SAAS0L,QACtD,IAAI0M,EAAQ0wC,EAAMlF,WAAWt/C,OAAO,EAAGwkD,EAAMlF,WAAWmF,QAAQ,IAAK,GAAK,GAC1EvB,KAAKC,SAAS,CAAErvC,MAAO4wC,mBAAmB5wC,KAE1C,IAAIjJ,EAAQ25C,EACTlF,WACAt/C,OACCwkD,EAAMlF,WAAWmF,QAAQ,SAAU,GAAK,EACxCD,EAAMlF,WAAWp/C,OAASskD,EAAMlF,WAAWmF,QAAQ,SAAU,GAAK,GAEtEvB,KAAKC,SAAS,CAAEt4C,MAAOA,IAEvBmtC,iBAAc+M,kBAAkB,kBAAoB3lD,GAC9CA,IAAU8jD,KAAK1nD,MAAMwR,UA6B7BpS,SACE,MAAM,QAAEoqD,GAAY9B,KAAKzpD,MAAMmR,SACzB,QAAE7Q,GAAYmpD,KAAKzpD,MAEzB,OACEO,IAAAC,cAACgrD,KAAS,CAACxqD,UAAW8lC,IAAOtL,SAAS,MACpCj7B,IAAAC,cAACirD,KAAW,MACZlrD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ5E,OACtB6E,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC14B,eAAe,eAE/B3C,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,KAAKC,MAAO,CAAE+5B,UAAW,IAAK,oCAGjEj9B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAI,OACJmc,SAAUiL,KAAK/K,cAEfn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,GAAI18B,GAAI,IACrBe,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACR+3B,WAAS,EACT3uB,KAAK,QACL2vB,MAAM,eACN52B,MAAO8jD,KAAK1nD,MAAMwR,SAClBjS,KAAMmoD,KAAK1nD,MAAM+nD,aAAe,OAAS,WACzClkD,SAAU6jD,KAAK2B,qBAAqB,YACpC/1C,GAAG,QACHspC,WAAY,CAAC,YACbC,cAAe,CAAC,uCAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,GAAI18B,GAAI,IACrBe,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACR+3B,WAAS,EACT3uB,KAAK,iBACL2vB,MAAM,wBACNj7B,KAAMmoD,KAAK1nD,MAAM+nD,aAAe,OAAS,WACzCnkD,MAAO8jD,KAAK1nD,MAAMopD,eAClBvlD,SAAU6jD,KAAK4B,2BAA2B,kBAC1Ch2C,GAAG,iBACHspC,WAAY,CAAC,kBAAmB,YAChCC,cAAe,CACb,kCACA,uCAINr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAAC34B,eAAe,SACxB3C,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAAC4pD,KAAQ,CACPxkD,SAAU6jD,KAAKE,gBAAgB,gBAC/BhkD,MAAM,eACN7J,MAAM,YAGVygC,MAAM,oBAIZh8B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLi6B,WAAS,EACT/3B,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,UAAWmgC,UAAW,GAAIp/B,aAAc,IAClE4F,SAAUunD,EACVtrD,UAAWK,EAAQ+pD,OACnB1sB,QAAS4tB,GAAWhrD,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3CqrD,EAAU,gCAA4B,eAerD,MAAMG,GAA6BphB,qBACjCxB,cAJF,SAAyB/mC,GACvB,OAAOA,IAGkB,KAAM,KAA/B+mC,CAAqCyB,aAtKvBlsC,IAAK,CACnB3C,MAAO,CACL8hC,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTugC,cAAe,SACf1gC,WAAY,UAEd4H,OAAQ,CACN81B,OAAQn+B,EAAMW,QAAQ,GACtB3B,gBAAiBgB,EAAMtC,QAAQrB,UAAUF,KACzCkF,MAAOrB,EAAMW,QAAQ,GACrBS,OAAQpB,EAAMW,QAAQ,IAExBokD,KAAM,CACJ1jD,MAAO,OACP89B,UAAWn/B,EAAMW,QAAQ,IAE3BqrD,OAAQ,CACN7tB,OAAQn+B,EAAMW,QAAQ,EAAG,EAAG,GAC5BlD,MAAO,WAET6vD,WAAY,CACVnuB,UAAWn/B,EAAMW,QAAQ,GACzBlD,MAAO,aA+I4ByuC,CAAmB2gB,MClJ1D,MAAMU,WAA6B3qD,YAAUsoD,cAAA,SAAA18C,WAAA,KAE3Cg/C,cAAgB,KACdzkD,GAAQkH,KAAK,MAGfnN,SACE,MAAM,QAAEoqD,GAAY9B,KAAKzpD,MAAMmR,SACzB,QAAE7Q,GAAYmpD,KAAKzpD,MAEzB,OACEO,IAAAC,cAACgrD,KAAS,CAACxqD,UAAW8lC,IAAOtL,SAAS,MACpCj7B,IAAAC,cAACirD,KAAW,MACZlrD,IAAAC,cAAA,OAAKP,UAAWK,EAAQ5E,OACtB6E,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,KAAKC,MAAO,CAAE+5B,UAAW,KAAM,2DAGlEj9B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,GAAI18B,GAAI,GAAIiE,MAAO,CAAErF,aAAc,KAChDmC,IAAAC,cAAC2D,IAAM,CACLo3B,WAAS,EACT/3B,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUunD,EACVtrD,UAAWK,EAAQ+pD,OACnB1sB,QAAS4tB,GAAWhrD,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,KAC5C6D,QAAS0lD,KAAKoC,eAEbN,EAAU,gBAAkB,kCAgB7C,MAAMO,GAAoCxhB,qBACxCxB,cAJF,SAAyB/mC,GACvB,OAAOA,IAGkB,KAAM,KAA/B+mC,CAAqCyB,aAtEvBlsC,IAAK,CACnB3C,MAAO,CACL8hC,UAAWn/B,EAAMW,QAAQ,GACzBC,QAAS,OACTugC,cAAe,SACf1gC,WAAY,UAEd4H,OAAQ,CACN81B,OAAQn+B,EAAMW,QAAQ,GACtB3B,gBAAiBgB,EAAMtC,QAAQrB,UAAUF,KACzCkF,MAAOrB,EAAMW,QAAQ,GACrBS,OAAQpB,EAAMW,QAAQ,IAExBokD,KAAM,CACJ1jD,MAAO,OACP89B,UAAWn/B,EAAMW,QAAQ,IAE3BqrD,OAAQ,CACNvuD,MAAO,WAET6vD,WAAY,CACVnuB,UAAWn/B,EAAMW,QAAQ,MAiDUurC,CAAmBqhB,M,8ECCpDG,GAAaznD,YAAOq3B,KAAPr3B,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C,CAACvG,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,OACTugC,cAAe,SACf1D,UAAW,WAIT6jB,GAAar7C,YAAOs7C,KAAPt7C,CAAewB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAChD,0BAA2B,CACzB,gBAAiB,CACfhK,MAAO,eAKPkwD,GAAmB1nD,YAAOT,IAAPS,CAAmB6tC,IAAA,IAAC,MAAE9zC,GAAO8zC,EAAA,MAAM,CAC1D,CAAC9zC,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,WAAY,GACZp/B,cAAe,EACfsoC,YAAa,GACbC,eAAgB,EAChB+D,aAAc,EACdvrC,YAAa,EACb+mC,YAAa,EACbvM,WAAY,MAm8BVsyB,GAAkC3hB,qBACtCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA5/BvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAi+B4ByuC,CAh8BXvqC,IAAW,IAADksD,EAAAjM,EAAAkM,EAAAjM,EAAAkM,EAAAjM,EAAAkM,EAAAjM,EAEpC,MAAM5sC,EAAW6mB,gBACX,QAAE/5B,EAAO,QAAEuY,EAAO,UAAE5Y,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC9Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,MAC1Bn8C,EAAWq+C,yBACXgM,GAAqB,OAARrqD,QAAQ,IAARA,GAAgB,QAARiqD,EAARjqD,EAAU0L,cAAM,IAAAu+C,OAAR,EAARA,EAAkBpX,SAAS,oBAAiC,QAAjBmL,EAAIjgD,EAAM6Y,eAAO,IAAAonC,OAAA,EAAbA,EAAenlC,UAC3EixB,GAAsB,OAAR9pC,QAAQ,IAARA,GAAgB,QAARkqD,EAARlqD,EAAU0L,cAAM,IAAAw+C,OAAR,EAARA,EAAkBrX,SAAS,qBAAkC,QAAjBoL,EAAIlgD,EAAM6Y,eAAO,IAAAqnC,OAAA,EAAbA,EAAenlC,kBAC7EwxC,GAAuB,OAARtqD,QAAQ,IAARA,GAAgB,QAARmqD,EAARnqD,EAAU0L,cAAM,IAAAy+C,OAAR,EAARA,EAAkBtX,SAAS,sBAAmC,QAAjBqL,EAAIngD,EAAM6Y,eAAO,IAAAsnC,OAAA,EAAbA,EAAetlC,YAC/E2xC,GAAuB,OAARvqD,QAAQ,IAARA,GAAgB,QAARoqD,EAARpqD,EAAU0L,cAAM,IAAA0+C,OAAR,EAARA,EAAkBvX,SAAS,sBAAmC,QAAjBsL,EAAIpgD,EAAM6Y,eAAO,IAAAunC,OAAA,EAAbA,EAAeqM,YAC/EtyB,EAAUC,eAETsyB,EAAcC,GAAmBzyB,oBAAS,IAC1CniB,EAASwoC,GAAcrmB,mBAAS,IAChCsmB,EAAWC,GAAgBvmB,mBAAS,KAEpCzf,EAAUimC,GAAexmB,mBAAS,IAClCymB,EAAYC,GAAiB1mB,mBAAS,KAEtC+mB,EAAaC,GAAkB3gD,IAAM25B,SAAS,OAC9CinB,EAAkBC,GAAuB7gD,IAAM25B,SAAS,KAExD0yB,EAAcC,GAAmB3yB,oBAAS,IAC1Cv0B,EAAOoqC,GAAYxvC,IAAM25B,SAAS,OAClC8V,EAAYC,GAAiB1vC,IAAM25B,SAAS,KAC5Chd,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAChC6mB,GAAWC,IAAgBzgD,IAAM25B,UAAS,IAE1C0nB,GAAuBC,IAA4B3nB,mBAAS,KAC5D4nB,GAAuBC,IAA4B7nB,mBAAS,KAE5D2mB,GAAYC,IAAiBvgD,IAAM25B,SAAS,OAE5CmnB,GAAaC,IAAkB/gD,IAAM25B,SAAS,OAC9CqnB,GAAkBC,IAAuBjhD,IAAM25B,SAAS,KAEzD,OAAE/kB,IAAWmxB,aAChBvkC,GAAUA,EAAMoT,QAGb8sC,GAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,QAE9CgsC,GAAiBD,GAAQj1C,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAE1D2mD,GAAe1b,aAAavkC,GAAUA,EAAM0rB,YAAYA,aACxD9S,GAAiB2rB,aAAavkC,GAAUA,EAAM8jB,MAAMA,OAEpDlU,GAAUwD,GAAOnI,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,SAEjD,CAAE4+B,IAAe15B,IAAM25B,SAAS,IAChCwjB,GAAOC,IAAYp9C,IAAM25B,UAAS,GAEzCt3B,oBAAU,KAER4Q,EAAS2c,GAAYE,kBACrB7c,EAAS6D,GAAcuC,yBACvBpG,EAAS8J,GAAaC,mBAGpB/J,EADEg5C,EACO92B,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,IAEpE9sB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,KAG/EhvC,EAASgJ,GAAmBM,oBAE5BtJ,EAAS6d,GAAgBU,0BAErBtkB,EAAO4H,IACT7B,EAAS6D,GAAc6B,eAAezL,EAAO4H,KAC7C0sC,GAAyB/hD,EAAM6Y,QAAQ8B,kBAEvCnH,EAAS6D,GAAcrB,SACvBxC,EAAS8iB,GAActgB,SACvBxC,EAAS6D,GAAcuC,+BAGKrS,GAA1BvH,EAAM6Y,QAAQ5D,UAAoD,IAA3BjV,EAAM6Y,QAAQ5D,UAA6C,KAA3BjV,EAAM6Y,QAAQ5D,UACvFzB,EAASiB,GAAaO,oBAAoBhV,EAAM6Y,QAAQ5D,WAG1D,MAAMotC,EAAWC,YAAY,KAC3B3E,IAAS,IACR,MACH,MAAO,IAAM4E,cAAcF,IAE1B,IAEHz/C,oBAAU,KACsB,GAA1B5C,EAAM6Y,QAAQ4B,eAA8BlT,GAAbkG,EAAO4H,IACxC06B,EAAS/vC,EAAM6Y,QAAQ1D,SAExB,CAACnV,EAAM6Y,QAAQ4B,WAElB7X,oBAAU,KACJq+C,GAAeA,EAAY5rC,IAC7B7B,EAASiB,GAAaO,oBAAoBisC,EAAY5rC,MAEvD,CAAY,OAAX4rC,QAAW,IAAXA,OAAW,EAAXA,EAAa5rC,KAsDjB,MAAMotC,GAAyBptC,IACP,IAADqtC,EAAAoK,EAArB,QAAUvlD,GAAN8N,EACF,OAAqB,QAAbqtC,EAAA1iD,EAAM6Y,eAAO,IAAA6pC,GAAuB,QAAvBoK,EAAbpK,EAAexnC,6BAAqB,IAAA4xC,OAAvB,EAAbA,EAAsC1kB,KAAMhN,GAAMA,EAAE5N,eAAiBnY,MAA4B,OAArBusC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuBxZ,KAAMhN,GAAMA,EAAE5N,eAAiBnY,KAIxIwtC,GAA2BxtC,IACT,IAADytC,EAAAC,EAArB,QAAUx7C,GAAN8N,EACF,OAAqB,QAAbytC,EAAA9iD,EAAM6Y,eAAO,IAAAiqC,GAAgB,QAAhBC,EAAbD,EAAenoC,sBAAc,IAAAooC,OAAhB,EAAbA,EAA+B3a,KAAM0K,GAAMA,EAAE/6B,SAAW1C,MAA4B,OAArBysC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuB1Z,KAAM0K,GAAMA,EAAEz9B,IAAMA,KAItHzS,oBAAU,KACJ5C,EAAM6Y,QAAQ5D,UAChBzB,EAASiB,GAAaO,oBAAoBhV,EAAM6Y,QAAQ5D,YAEzD,CAACjV,EAAM6Y,QAAQ5D,WAElBrS,oBAAU,KACJ+C,GACFyqC,GAAyBzqC,IAE1B,CAACA,IAEJ,MAAMyqC,GAA4BniC,IAChC,GAAW,MAAPA,EAAa,CACf,IAAIixC,EAAW/pC,GAAOm7B,OACnBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACEiB,GAAaiB,oBACXwpC,EAAS,KAMfxP,GAAQ,IAWV9sC,oBAAU,KAR6BqL,MASjC4yC,KARO,OAD0B5yC,EAUL4yC,MAR9BN,EAAWtyC,EAAIoH,IACforC,EAAaxyC,EAAIrH,OAEnBo6C,IAAa,KAOZ,CAACH,KAEJj+C,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQ6B,mBAElB9X,oBAAU,OAEP,CAAC86C,GAAO19C,EAAM6Y,QAAQH,YAEzB,MAAM2lC,GAAgBC,GAAU9oC,IAC9BhC,EAAS6D,GAAc9B,cAAc+oC,EAAM9oC,KAGvCu3C,GAAuBzO,GAAU9oC,IACrChC,EAAS8iB,GAAc/gB,cAAc+oC,EAAM9oC,KAG7C5S,oBAAU,KACR5C,EAAM6Y,QAAQqC,sBAAwB0mC,GACtC3nB,GAAYmB,IAAMA,IACjB,CAACwmB,KAEJh/C,oBAAU,KACR5C,EAAM6Y,QAAQ8B,eAAiBmnC,GAC/B7nB,GAAYmB,IAAMA,IACjB,CAAC0mB,KAEJl/C,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQqC,wBAElBtY,oBAAU,KACW,IAADoqD,EAAAC,EAAdT,GACF3K,GAAyB,CAAC,CAAEr0B,cAA8B,QAAjBw/B,EAAEhL,GAAa,UAAE,IAAAgL,OAAA,EAAfA,EAAiB33C,GAAIzO,KAAqB,QAAjBqmD,EAAEjL,GAAa,UAAE,IAAAiL,OAAA,EAAfA,EAAiBrmD,SAExF,CAAC4lD,EAAcxK,KAElBp/C,oBAAU,KACRq3B,GAAYmB,IAAMA,IACjB,CAACp7B,EAAM6Y,QAAQ8B,iBASlB/X,oBAAU,KAP8BqL,MAQlCozC,IAPO,OAD2BpzC,EASLozC,MAP/BX,EAAYzyC,EAAIoH,IAChBurC,EAAc3yC,EAAIrH,QAQnB,CAACy6C,KAuEJ,SAAS7a,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI8rD,EAAa,uCAAsCE,EAAe,mDAAkD,yCAK9H,SAAS/lB,KACP,OAAOlmC,IAAAC,cAACgmC,GAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MAAO,0CAEPhC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,IA7CvBq3C,GAAgB,KA+CJtsD,IAAAC,cAAA,OACEd,MAAO,IACPumC,IAAI,aACJt/B,IAAKi8B,KACL97B,MAAM,QACNrD,MAAO,CAAEijC,WAAY,GAAIgE,aAAc,MAEzCnqC,IAAAC,cAAComC,KAAU,CACTC,UAAWylB,EAAa,wBAA0BE,EAAe,gDAA+C,mCAChHjqD,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO6oD,EAAa,CAAE3lB,cAAe,GAAM,IACtFpmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,IACrBstD,GACA/rD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,cACHknB,MAAM,oBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,eACvB14C,MAAO3F,EAAM6Y,QAAQmB,aAAe,GACpCxW,QAAQ,WACRm7C,YAAa2N,GAAc,CAAC,YAC5B1N,cAAe,CAAC,4BAIpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,eACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,gBACvB14C,MAAO3F,EAAM6Y,QAAQoB,cAAgB,GACrCzW,QAAQ,WACRm7C,YAAa2N,GAAc,CAAC,YAC5B1N,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAO,SACPC,OAAO,SACP52B,SAAUy4C,GAAa,QACvB14C,MAAO8B,GAASzH,EAAM6Y,QAAQxJ,OAAS,GACvC7L,QAAQ,WACRm7C,WAAY2N,EAAa,GAAK,CAAC,YAC/B1N,cAAe,CAAC,6BAKvB0N,GACC/rD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,MACHknB,MAAO,QACPC,OAAO,SACP52B,SAAUy4C,GAAa,OACvB14C,MAAO2B,GAAQtH,EAAM6Y,QAAQqB,MAAQ,GACrC1W,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,6BAIpB0N,GACA/rD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,KACHguC,WAAY,CAAEC,UAAW,IACzB/mB,MAAM,2BACNC,OAAO,SACP52B,SAAUy4C,GAAa,qBACvB14C,MAAO3F,EAAM6Y,QAAQ2B,mBAAqB,GAC1ChX,QAAQ,gBAKd8oD,GACA/rD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACNE,QAASlvB,GAAYyB,iBACrBrJ,MAAO3F,EAAM6Y,QAAQwB,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBx2B,SAAUy4C,GAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,YAAa2N,GAAc,CAAC,WAAY,WACxC1N,cAAe,CACb,oCACA,sBAEF56C,SAA8B,GAApBhE,EAAM6Y,QAAQxD,MAG5B9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,aACNC,OAAO,SACP52B,SAAUy4C,GAAa,YACvB14C,MAAO+B,GAAU1H,EAAM6Y,QAAQsB,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUy4C,GAAa,WACvB14C,MAAO+B,GAAU1H,EAAM6Y,QAAQuB,UAAY,GAC3C5W,QAAQ,eAKhBjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,WACHknB,MAAM,SACN52B,MAAO3F,EAAM6Y,QAAQ5D,SACrBrP,SAAUy4C,GAAa,YACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,YAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,YAEJ+iD,mBAAQtB,UACR16C,IAAc06C,IACdA,GAAQx7C,QACRw7C,GAAQj1C,IAAI,CAACw2C,EAAKvkB,IAChB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAEijC,WAAY,KAC3DnmC,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOA,EACPC,SAAUA,CAAC4P,EAAOs7B,KAChBf,EAASe,IAEXd,WAAYA,EACZe,cAAeA,CAACv7B,EAAOw7B,KACrBf,EAAce,IAEhB37B,GAAG,2BACH1D,QAASA,GACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAActrC,EACdurC,eAAgBC,GAAUA,EAAOvqC,MAAQ,GACzCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAEg2C,UAAQ,EAAClnB,MAAM,0BAA0BhB,WAAS,KAClGA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,gBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,YACvB14C,MAAO3F,EAAM6Y,QAAQyB,UAAY,GACjC9W,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC2F,KAAW,CAAC1C,MAAO6oD,EAAa,CAAEY,gBAAiB,EAAGtJ,WAAY,UAAa,CAAEA,WAAY,YAC1F7X,GAAewgB,IACfhsD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS60C,EACT3mD,SAAUy4C,GAAa,gBAI3B9hB,MAAM,eAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAASq0B,EACTnmC,SAAUy4C,GAAa,sBAG3B9hB,MAAM,6BAIZh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM6Y,QAAQsC,kBACvBvV,SAAUy4C,GAAa,uBAG3B9hB,MAAM,+BAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM6Y,QAAQuC,iBACvBxV,SAAUy4C,GAAa,sBAG3B9hB,MAAM,yCAIZh8B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,mDAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC9Ck7C,SAAgCz6C,GAAhBy6C,IAA6BA,GAAav7C,OAAS,GAClEu7C,GAAah1C,IAAI,CAACouB,EAAG6D,IACnB1+B,IAAAC,cAAC+mC,KAAI,CAAChL,MAAOnB,EAAEx0B,KAAMjF,IAAKs9B,EAAOl7B,QAASA,IA5gBpE,SAAiCsR,GAE/B,GADwC,OAArBusC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuBxZ,KAAMhN,GAAMA,EAAE5N,eAAiBnY,GACzD,CACd,MAAM6uC,EAAmC,OAArBtC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuBtR,OAAQlV,GAAMA,EAAE5N,eAAiBnY,GAC5EwsC,GAAyBqC,OACpB,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJmY,cAAenY,EACfuD,UAAW5Y,EAAM6Y,QAAQxD,IAE3BwsC,GAAyB,IAAID,GAAuBuC,KAigBkBJ,CAAwB3oB,EAAE/lB,IACxE7R,QAASi/C,GAAsBrnB,EAAE/lB,IAAM,SAAW,WAAY5R,MAAO,CAAEpG,gBAAiBolD,GAAsBrnB,EAAE/lB,KAAO,UAAWvZ,MAAO2mD,GAAsBrnB,EAAE/lB,IAAM,UAAY,UAAWmnB,OAAQ,QAKhNj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,gCAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC9C6T,SAAoCpT,GAAlBoT,IAA+BA,GAAelU,OAAS,GACxEkU,GAAe3N,IAAI,CAAC8lC,EAAG7T,IACrB1+B,IAAAC,cAAC+mC,KAAI,CAAChL,MAAOuW,EAAEz3C,KAAMsG,IAAKs9B,EAAOl7B,QAASA,IArflE,SAAmCsR,GAEjC,GADwC,OAArBysC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuB1Z,KAAM0K,GAAMA,EAAE/6B,SAAW1C,GACnD,CACd,MAAM6uC,EAAmC,OAArBpC,SAAqB,IAArBA,QAAqB,EAArBA,GAAuBxR,OAAQwC,GAAMA,EAAE/6B,SAAW1C,GACtE0sC,GAAyBmC,OACpB,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJ0C,QAAS1C,EACTuD,UAAW5Y,EAAM6Y,QAAQxD,IAE3B0sC,GAAyB,IAAID,GAAuBqC,KA0egBC,CAA0BtR,EAAEntC,OAC1EnC,QAASq/C,GAAwB/P,EAAEntC,OAAS,SAAW,WAAYlC,MAAO,CAAEpG,gBAAiBwlD,GAAwB/P,EAAEntC,QAAU,UAAW7J,MAAO+mD,GAAwB/P,EAAEntC,OAAS,UAAY,UAAW62B,OAAQ,OAI7Nj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,yBAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,SAAUqzC,aAAc,SAAU5c,WAAY,KACnIp5B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOs7C,EACPr7C,SAAUA,CAAC4P,EAAO6uC,KAChBnD,EAAemD,IAEjBrU,WAAYmR,EACZpQ,cAAeA,CAACv7B,EAAO8uC,KACrBlD,EAAoBkD,IAEtBjvC,GAAG,2BACH1D,QAASuwC,GACTjR,aAAc,KACdC,eAAgBC,GAAgB,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQvqC,KAClCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC27B,iBAAa17B,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,4BAA4B/4B,QAAQ,WAAW+3B,WAAS,QAGtHh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAO07C,GACPz7C,SAAUA,CAAC4P,EAAO+uC,KAChBjD,GAAeiD,IAEjBvU,WAAYuR,GACZxQ,cAAeA,CAACv7B,EAAOgvC,KACrBhD,GAAoBgD,IAEtBnvC,GAAG,2BACH1D,QAASA,GACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAAcoQ,GACdoD,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,0BAA0BhB,WAAS,KACzFA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE3E,WAAY,MAAOoE,eAAgB,WAClF3C,IAAAC,cAAC2D,IAAM,CAACV,MAAO,CAAE/D,MAAO,QAASi6B,WAAY,OAAQt8B,gBAAiB,QAAUuP,KAAK,aAAayI,GAAG,aAAa7R,QAAQ,YAAYvD,UAAU,MAAMe,UAAU,IAAI+C,QA5jB1J2gD,KACvBrD,IAA8B,GAAfA,GAKhBrhD,EAAM6Y,QAAQ+B,gBAAgB01B,OAAOqU,GAAMA,EAAGlqC,UAAYyhC,SAASzhC,IAAWhU,OAAS,EACzF2G,IAAMlS,MAAM,iDAGZ8E,EAAM6Y,QAAQ+B,gBAAgBtM,KAAK,CACjC,SAAYmM,EACZ,UAAaza,EAAM6Y,QAAQxD,GAC3B,OAAU,CACR,KAAQsrC,KAGZD,EAAY,GACZY,GAAe,OAhBfl0C,IAAMlS,MAAM,2BA0jBwM,gBAAeqF,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMipD,SAE5OrkD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAE+5B,UAAW,IAExC,MAAjCx9B,EAAM6Y,QAAQ+B,iBAA2B5a,EAAM6Y,QAAQ+B,gBAAgBnU,OAAS,EAC/EzG,EAAM6Y,QAAQ+B,gBAAgB5N,IAAIouB,GAEpB,KAATA,EAAE/lB,IAAa+lB,EAAE3gB,SAChBla,IAAAC,cAAC+mC,KAAI,CACH/jC,QAAQ,SACR2wC,GAAI,CACF3W,UAAW,GACX7D,WAAY,GACZx6B,YAAa,GACbJ,QAAS,EACT1B,gBAAiB,UACjBvB,MAAO,OACPgD,WAAY,SACZymC,IAAK,OAEPtG,MAAO7D,EAAE/lB,GACT1T,IAAK,SAAWy5B,EAAE/lB,GAClBknB,MAAK,GAAAv+B,OAAKo9B,EAAEjmB,OAASimB,EAAEjmB,OAAOvO,KAAOw0B,EAAE3gB,SAAQ,KAC/CoqC,WAAYtkD,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMmpD,KAAYrhD,MAAO,CAAE3H,MAAO,OAAQG,SAAU,MACjF8oD,SAAUA,KAAMC,OA1Yf3vC,EA0YwC+lB,EAAE3gB,cAzYzE0f,EAAQ,CACN53B,MAAO,sCACPo9B,YAAa,6DACb37B,SAAUhE,EAAM6Y,QAAQH,UACxBknB,iBAAkB5/B,EAAM6Y,QAAQH,UAAY,sBAAwB,kBACnE3H,KAAK,KACN/Q,EAAM6Y,QAAQ+B,gBAAkB5a,EAAM6Y,QAAQ+B,gBAAgB01B,OAAOqU,GAAMA,EAAGlqC,UAAYyhC,SAAS7mC,IACnG4kB,GAAYmB,IAAMA,KARW/lB,SA4YD,MAGN,SAKVi3C,GACA/rD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAGZxG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,MACDomD,GACA/rD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAComC,KAAU,CACTC,UAAU,6BACVtkC,MAAOhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAKjD,IAAAC,cAAA,SAAG,6BAErCD,IAAAC,cAACuG,KAAO,OAGZxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO6oD,EAAa,CAAE5lB,WAAY,GAAM,IACnFnmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUmnD,GAAoB,QAC9BpnD,MAAO3F,EAAMmR,QAAQvK,MAAQ,GAC7BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUmnD,GAAoB,aAC9BpnD,MAAO3F,EAAMmR,QAAQ2lB,WAAa,GAClCtzB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUmnD,GAAoB,SAC9B13C,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,sBAEF56C,SAA8B,GAApBhE,EAAMmR,QAAQkE,MAG5B9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAO+vB,EAAa,YAAc,WAClC9vB,OAAO,SACP52B,SAAUmnD,GAAoB,WAC9BpnD,MAAO+B,GAAU1H,EAAMmR,QAAQiJ,UAAY,GAC3CukC,WAAY2N,EAAa,CAAC,YAAc,GACxC1N,cAAe,CAAC,yBAChBp7C,QAAQ,eAGV8oD,GACA/rD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUmnD,GAAoB,YAC9BpnD,MAAO+B,GAAU1H,EAAMmR,QAAQgJ,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,eACNj7B,KAAK,SACLk7B,OAAO,SACP52B,SAAUmnD,GAAoB,aAC9BpnD,MAAO3F,EAAMmR,QAAQgmB,WAAa,GAClC3zB,QAAQ,iBAOpBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,WAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLjH,MAAM,EACNmJ,QAAQ,YACRQ,SAAUhE,EAAM6Y,QAAQH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6Y,QAAQH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DF,EAAM6Y,QAAQH,UAAY,sBAAwB,mBAWtEk0C,EACCrsD,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM0vC,EACNrxB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAASA,IAAMoxB,GAAgB,IAE/BtsD,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,kDAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,IAAM8oD,GAAgB,IAC/BtsD,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAMj9B,IAAAC,cAAA,cAAQ,oFAGtED,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QAEnD9G,EAAM0xB,UAAUtH,MACd7pB,IAAAC,cAAA,UACEmG,IAAK3G,EAAM0xB,UAAUtH,MACrB3mB,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,IAAKojC,UAAW,UAAW9jC,QAAS,EAAGouD,eAAgB,QAAStuD,aAAc,GAC9GuuD,YAAY,IACZ1tD,MAAM,OACND,OAAQ,IACR4tD,UAAU,QAGV,iBAIV9sD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAASg1C,EACT9mD,SAAUA,IAAM+mD,GAAiBD,KAGrCnwB,MAAM,kEAGTmwB,GACCnsD,IAAAC,cAACsD,EAAY,CACXC,QAAUyR,GApqBJA,KAEpB,IAAI5E,EAAU,CACZoJ,YAAasyC,EAAU,GAAAtuD,OAAMgC,EAAMmR,QAAQvK,KAAI,KAAA5I,OAAIgC,EAAMmR,QAAQ2lB,WAAc92B,EAAM6Y,QAAQmB,YAC7FC,aAAcqyC,EAAU,GAAAtuD,OAAMgC,EAAMmR,QAAQvK,KAAI,KAAA5I,OAAIgC,EAAMmR,QAAQ2lB,WAAc92B,EAAM6Y,QAAQoB,aAC9F5K,KAAMrP,EAAM6Y,QAAQxJ,KAAOrP,EAAM6Y,QAAQxJ,KAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,KAC1F0S,IAAKla,EAAM6Y,QAAQqB,IAAMla,EAAM6Y,QAAQqB,IAAIpN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,KACvF4S,QAASkyC,EAAatsD,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAMxH,EAAM6Y,QAAQuB,QAAUpa,EAAM6Y,QAAQuB,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAM,GAC5O6S,MAAOiyC,EAAatsD,EAAMmR,QAAQkJ,MAAMtM,cAAgB/N,EAAM6Y,QAAQwB,MAAQra,EAAM6Y,QAAQwB,MAAMtM,cAAgB,GAClHoM,SAAUmyC,EAAatsD,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAMxH,EAAM6Y,QAAQsB,SAAWna,EAAM6Y,QAAQsB,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAM,GAC/O8S,SAAUta,EAAM6Y,QAAQyB,SACxBE,kBAAmBxa,EAAM6Y,QAAQ2B,kBACjCC,SAAU9U,EAAQA,EAAM0P,GAAKrV,EAAM6Y,QAAQ4B,SAC3CxF,SAAUjV,EAAM6Y,QAAQ5D,SACxByF,iBAAkB1a,EAAM6Y,QAAQ6B,iBAChCC,eAAgB3a,EAAM6Y,QAAQ8B,eAC9BC,gBAAiB5a,EAAM6Y,QAAQ+B,gBAC/BC,WAAY0xC,EACZzxC,SAAUwxC,EACVtxC,QAASwxC,EACTzxC,iBAAkBgxB,EAClB5wB,kBAAmBnb,EAAM6Y,QAAQsC,kBACjCC,iBAAkBpb,EAAM6Y,QAAQuC,iBAChCF,sBAAuB0mC,GACvBlnC,iBAAkB,CAChB,CACErF,GAAI,EACJ0I,UAAW,EACXnF,UAAW,EACXzH,QACA,CACEvK,KAAM5G,EAAMmR,QAAQvK,KACpB8M,MAAO1T,EAAMmR,QAAQuC,MACrBojB,UAAW92B,EAAMmR,QAAQ2lB,UACzBzc,MAAOra,EAAMmR,QAAQkJ,MAAMtM,cAC3BgpB,cAAe,EACf3c,QAASpa,EAAMmR,QAAQiJ,SAAWpa,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC3H2vB,UAAWn3B,EAAMmR,QAAQgmB,UACzBhd,SAAUna,EAAMmR,QAAQgJ,UAAYna,EAAMmR,QAAQgJ,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,QAMlIglD,GAAgBxsD,EAAM6Y,QAAQqC,sBAAsBzU,OAAS,EAC/D+M,EAAS6D,GAAcmC,iBAAiB5I,IAExCxD,IAAMlS,MAAM,6CAqnBoBwjD,GACpBl7C,QAAQ,YACRnJ,MAAM,EACNojC,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6Y,QAAQH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,OAE3DuN,EAAO4H,GAAMrV,EAAM6Y,QAAQH,UAAY,cAAgB,cAMhE,U,mCC/9BJinC,GAAar7C,YAAOs7C,KAAPt7C,CAAeM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAChD,0BAA2B,CACzB,gBAAiB,CACf9I,MAAO,eAkgBPwxD,GAAgChjB,qBACpCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAriBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA0gB4ByuC,CA9fbvqC,IAExB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,MAAEulB,EAAK,UAAE5lB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC5Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OAGzBrmC,EAASwoC,IAFAnmB,cAEcF,mBAAS,KAChCsmB,EAAWC,GAAgBvmB,mBAAS,KAEpCv0B,EAAOoqC,GAAYxvC,IAAM25B,SAAS,OAClC8V,EAAYC,GAAiB1vC,IAAM25B,SAAS,KAC5Chd,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAChC6mB,EAAWC,GAAgBzgD,IAAM25B,UAAS,IAE1C2mB,EAAYC,GAAiBvgD,IAAM25B,SAAS,OAE7C,OAAE/kB,GAAWmxB,aAChBvkC,GAAUA,EAAMoT,QAGb8sC,EAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,QAE9CvE,EAAUwD,EAAOnI,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,SAEjD,CAAE4+B,GAAe15B,IAAM25B,SAAS,IAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAEzCt3B,oBAAU,KAER4Q,EAAS2c,GAAYiB,uBACrB5d,EAAS8J,GAAaC,mBAElB9P,EAAO4H,GACT7B,EAAS2c,GAAYK,aAAa/iB,EAAO4H,MAEzC7B,EAAS2c,GAAYna,SACrBxC,EAAS8iB,GAActgB,SACvBxC,EAAS2c,GAAYiB,6BAGK7pB,GAAxBvH,EAAM6lB,MAAM5Q,UAAkD,IAAzBjV,EAAM6lB,MAAM5Q,UAA2C,KAAzBjV,EAAM6lB,MAAM5Q,UACjFzB,EAASiB,GAAaO,oBAAoBhV,EAAM6lB,MAAM5Q,WAGxD,MAAMotC,EAAWC,YAAY,KAC3B3E,GAAS,IACR,MACH,MAAO,IAAM4E,cAAcF,IAE1B,IAEHz/C,oBAAU,KACoB,GAAxB5C,EAAM6lB,MAAMpL,eAA8BlT,GAAbkG,EAAO4H,IACtC06B,EAAS/vC,EAAM6lB,MAAM1Q,SAEtB,CAACnV,EAAM6lB,MAAMpL,WAEhB7X,oBAAU,KACJ5C,EAAM6lB,MAAM5Q,UACdzB,EAASiB,GAAaO,oBAAoBhV,EAAM6lB,MAAM5Q,YAEvD,CAACjV,EAAM6lB,MAAM5Q,WAEhBrS,oBAAU,KACJ+C,GACFyqC,EAAyBzqC,IAE1B,CAACA,IAEJ,MAAMyqC,EAA4BniC,IAChC,GAAW,MAAPA,EAAa,CACf,IAAIixC,EAAW/pC,EAAOm7B,OACnBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACEiB,GAAaiB,oBACXwpC,EAAS,KAMfxP,GAAQ,IAWV9sC,oBAAU,KAR6BqL,MASjC4yC,IARO,OAD0B5yC,EAUL4yC,KAR9BN,EAAWtyC,EAAIoH,IACforC,EAAaxyC,EAAIrH,OAEnBo6C,GAAa,KAOZ,CAACH,IAEJj+C,oBAAU,KACRq3B,EAAYmB,IAAMA,IACjB,CAACp7B,EAAM6lB,MAAM0nC,eAEhB3qD,oBAAU,KACRq3B,EAAYmB,IAAMA,IACjB,CAACp7B,EAAM6lB,MAAM8K,iBAEhB,MAAM0tB,EAAgBC,GAAU9oC,IAC9BhC,EAAS2c,GAAY5a,cAAc+oC,EAAM9oC,KAGrCu3C,EAAuBzO,GAAU9oC,IACrChC,EAAS8iB,GAAc/gB,cAAc+oC,EAAM9oC,KAuC7C,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,uCAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MAAO,kDAEPhC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GAjEHA,KAEpB,IAAI5E,EAAU,CACZhK,KAAM5G,EAAM6lB,MAAMjf,KAClB6T,SAAU9U,EAAQA,EAAM0P,GAAK,EAC7BJ,SAAUjV,EAAM6lB,MAAM5Q,SACtBmF,QAASpa,EAAM6lB,MAAMzL,SAAWpa,EAAM6lB,MAAMzL,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IACvH6H,KAAMrP,EAAM6lB,MAAMxW,MAAQrP,EAAM6lB,MAAMxW,KAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IACjF6S,MAAOra,EAAM6lB,MAAMxL,MAAQra,EAAM6lB,MAAMxL,MAAMtM,cAAgB,GAC7DuM,SAAUta,EAAM6lB,MAAMvL,SACtBH,SAAUna,EAAM6lB,MAAM1L,UAAYna,EAAM6lB,MAAM1L,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC1HipB,YAAazwB,EAAM6lB,MAAM4K,YACzBE,eAAgB,CACd,CACEtb,GAAI,EACJ0I,UAAW,EACXhG,QAAS,EACT5G,QACA,CACEvK,KAAM5G,EAAMmR,QAAQvK,KACpB8M,MAAO1T,EAAMmR,QAAQuC,MACrBojB,UAAW92B,EAAMmR,QAAQ2lB,UACzBzc,MAAOra,EAAMmR,QAAQkJ,MAAMtM,cAC3BgpB,cAAe,EACf3c,QAASpa,EAAMmR,QAAQiJ,SAAWpa,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC3H2vB,UAAWn3B,EAAMmR,QAAQgmB,UACzBhd,SAAUna,EAAMmR,QAAQgJ,UAAYna,EAAMmR,QAAQgJ,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,QAMtIgM,EAAS2c,GAAYe,eAAetgB,KAiCH8tC,IAErBn+C,IAAAC,cAAA,OACEd,MAAO,IACPumC,IAAI,aACJt/B,IAAKi8B,KACL97B,MAAM,QACNrD,MAAO,CAAEijC,WAAY,GAAIgE,aAAc,MAEzCnqC,IAAAC,cAAComC,KAAU,CACTC,UAAU,uBACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAM6lB,MAAMjf,MAAQ,GAC3BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,WACHknB,MAAM,WACN52B,MAAO3F,EAAM6lB,MAAM5Q,SACnBrP,SAAUy4C,EAAa,YACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,YAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,cAEJ+iD,mBAAQtB,SACR16C,IAAc06C,GACdA,EAAQx7C,QACRw7C,EAAQj1C,IAAI,CAACw2C,EAAKvkB,IAChB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAEijC,WAAY,KAC3DnmC,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOA,EACPC,SAAUA,CAAC4P,EAAOs7B,KAChBf,EAASe,IAEXd,WAAYA,EACZe,cAAeA,CAACv7B,EAAOw7B,KACrBf,EAAce,IAEhB37B,GAAG,2BACH1D,QAASA,EACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAActrC,EACd8+C,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,CAAC+iD,UAAQ,GAAKh2C,EAAM,CAAE8uB,MAAM,0BAA0BhB,WAAS,KAClGA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP52B,SAAUy4C,EAAa,QACvB14C,MAAO8B,GAASzH,EAAM6lB,MAAMxW,OAAS,GACrC7L,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,YACvB14C,MAAO3F,EAAM6lB,MAAMvL,UAAY,GAC/B9W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM6lB,MAAM4K,YACrB7qB,SAAUy4C,EAAa,iBAG3B9hB,MAAM,uDAIZh8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,oCAI/DvG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPmiB,WAAY,CAAC,WAAY,WACzBpjB,WAAS,EACTgB,MAAM,WACNE,QAASlvB,GAAYyB,iBACrB4vC,cAAe,CACb,wBAAsB,sBAExBj5C,MAAO3F,EAAM6lB,MAAMxL,OAAS,GAC5Bpa,UAAWK,EAAQ87B,UACnBx2B,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,WAGjBt+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO+B,GAAU1H,EAAM6lB,MAAM1L,WAAa,GAC1C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,UACNC,OAAO,SACP52B,SAAUy4C,EAAa,WACvB14C,MAAO+B,GAAU1H,EAAM6lB,MAAMzL,UAAY,GACzC5W,QAAQ,iBAMlBjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAComC,KAAU,CACTC,UAAU,6BACVtkC,MAAOhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAKjD,IAAAC,cAAA,SAAG,6BAErCD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUmnD,EAAoB,QAC9BpnD,MAAO3F,EAAMmR,QAAQvK,MAAQ,GAC7BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUmnD,EAAoB,aAC9BpnD,MAAO3F,EAAMmR,QAAQ2lB,WAAa,GAClCtzB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUmnD,EAAoB,SAC9B13C,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,sBAEF56C,SAA8B,GAApBhE,EAAMmR,QAAQkE,MAG5B9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUmnD,EAAoB,WAC9BpnD,MAAO+B,GAAU1H,EAAMmR,QAAQiJ,UAAY,GAC3C5W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUmnD,EAAoB,YAC9BpnD,MAAO+B,GAAU1H,EAAMmR,QAAQgJ,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,eACNj7B,KAAK,SACLk7B,OAAO,SACP52B,SAAUmnD,EAAoB,aAC9BpnD,MAAO3F,EAAMmR,QAAQgmB,WAAa,GAClC3zB,QAAQ,gBAKhBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,IAAMqD,GAAQkH,KAAK,WAC7B,YAGD/N,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAM6lB,MAAMnN,UACtB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6lB,MAAMnN,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzDF,EAAM6lB,MAAMnN,UAAY,oBAAsB,wB,oGCnhBnEwsB,GAAS,CAKbsoB,QAAS,mBACT5pD,OAAQ,iBACRpG,UAAW,GACXiiD,EAAG,GAGQgO,GAAc7oD,IAAkE,IAAjE,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,IAAE0M,EAAG,IAAEF,EAAG,GAAEuI,EAAE,WAAE24C,EAAU,QAAEroC,GAASzgB,EAErF,MAAM4O,EAAW6mB,gBACX,QAAE/5B,GAAqBN,GAEvB,eAAEmX,IAFgB/W,YAAKJ,EAAKK,IAEPL,EAAM0d,SAE1BksB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAKnCyzB,EAAuBrnB,aAC1BvkC,GAAUA,EAAM2b,OAAOhF,YAGpB,YAAE+U,GAAgB6Y,aACrBvkC,GAAUA,EAAM0rB,cAEb,QAAE4I,GAAYiQ,aACjBvkC,GAAUA,EAAMs0B,UAEZu3B,EAAYC,GAAiB3zB,mBAAS,KACtC4zB,EAAaC,GAAkB7zB,mBAAS,IAE/Ct3B,oBAAU,KACR4Q,EAASgK,GAAaxH,UACrB,IAEHpT,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EAAKpzC,cACXyZ,MAAO+5B,EACP95B,UAAW+5B,EACXoT,IAAKthD,EACLuhD,IAAKzhD,EACL0hD,GAAIn5C,EACJo5C,WAAYT,EACZU,WAAYR,EAAargD,GAAY0B,iBAAiB2+C,GAAc,GACpES,YAAaP,GAGft6C,EAASgK,GAAaC,WAAWjH,GAAa,KAIhDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAWgT,EAAYE,EAAaphD,EAAKF,EAAKuI,IAEpFnS,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6Y,QAAQH,YAmFzB,OACEnY,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACTC,UAAU,EACVC,QAAS3B,EACT0lB,kBAAgB,sBAChB8O,mBAAiB,6BAEjB/tD,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,KAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,YAIlGoB,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,EAAGp1B,MAAM,SACtBvG,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B0G,QAAS+1B,GAETv5B,IAAAC,cAACu7B,KAAS,aAQxBx7B,IAAAC,cAACw7B,KAAa,CAACmY,GAAIjP,IACjB3kC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/tC,GAAG,YAEH9U,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GAEvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,gBACHknB,MAAM,qBACNC,OAAO,SACP52B,SAhHmB4P,IACjCq4C,EAAcr4C,EAAM7G,OAAOhJ,QAgHbA,MAAOioD,EACPvxB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,wBAEJ+iD,mBAAQ91B,SACRlmB,IAAckmB,GACdA,EAAYhnB,QACZgnB,EAAYzgB,IAAKw2C,GACfjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAInuC,GAAI1P,MAAO69C,EAAI58C,MAC/B48C,EAAI58C,SAKfrG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,YACHknB,MAAM,UACNC,OAAO,SACP52B,SAhJoB4P,IAClCu4C,EAAev4C,EAAM7G,OAAOhJ,QAgJdA,MAAOmoD,EACPzxB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,aAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,aAEJ+iD,mBAAQltB,SACR9uB,IAAc8uB,GACdA,EAAQ5vB,QACR4vB,EAAQrpB,IAAKw2C,GACXjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAInoD,MAClCmoD,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACP30C,SAhLa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,QAgLP41B,WAAS,EACT93B,MAAO,CAAE+5B,UAAW,SAM5Bj9B,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,KACb3+B,IAAAC,cAAC2+B,KAAK,CAAC9pB,GAAG,eACR9U,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,WACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,SACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG5B6mD,EACCptD,IAAAC,cAACumC,KAAS,KACPC,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,KAAMuG,IAAI,CAACyB,EAAGmB,IACzCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKiO,GACnBrP,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SAC1CK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SAC1CK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SAC1CK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SAC1CK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SAC1CK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAAQ5G,KAAM,SACxDK,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,aAO5B7mC,IAAAC,cAACumC,KAAS,KACS,MAAhB/mC,EAAM0d,aAAkCnW,GAAhBvH,EAAM0d,QAA8C,MAAvB1d,EAAM0d,OAAOA,aAAyCnW,GAAvBvH,EAAM0d,OAAOA,OAChG1d,EAAM0d,OAAOA,OAAO1Q,IAAKouB,GAErB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAMy5B,EAAIA,EAAE/lB,GAAK,GAC/B9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SACzCk7B,EAAE/N,QAEL9sB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SACzCk7B,EAAEx0B,MAELrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SACxCk7B,EAAEmzB,OAASnzB,EAAEmzB,OAAO3nD,KAAO,IAE/BrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMhnC,KAAM,SACxCk7B,EAAE/E,QAAU+E,EAAE/E,QAAQzvB,KAAO,IAEjCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAAQ5G,KAAM,SACvDsuD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAQ1N,EAAU+V,EAAEuzB,aAAevzB,EAAEwzB,kBAE1CruD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAQ5G,KAAM,SAE7BK,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXxmC,UAAU,IACV+C,QAASA,IAhPhB2Z,KAEnB,IAAImxC,EAAS,CACXvtD,KAAM,OACNqN,OAAQ,CACNhJ,MAAO+X,EAAO2P,SAGlB7Z,EAASyQ,GAAoB1O,cAAc,SAAUs5C,IAErD,IAAIjJ,EAAS,CACXtkD,KAAM,OACNqN,OAAQ,CACNhJ,MAAO+X,EAAO9W,OAGlB4M,EAASyQ,GAAoB1O,cAAc,aAAcqwC,IAEzD,IAAIkJ,EAAmB9uD,EAAMq2B,QAAQA,QAAQia,OAAOriC,GAAOA,EAAI5S,MAAQqiB,EAAO2Y,QAAQzvB,MACtF,GAAIkoD,EAAiBroD,OAAS,EAAG,CAE/B,IAAIsoD,EAAS,CACXztD,KAAM,kBACNqN,OAAQ,CACNhJ,MAAOmpD,EAAiB,GAAGnpD,QAG/B6N,EAASyQ,GAAoB1O,cAAc,YAAaw5C,IAI1D,IAAIC,EAAwBhvD,EAAMytB,YAAYA,YAAY6iB,OAAOriC,GAAOV,GAAY0B,iBAAiBhB,EAAIrH,OAAS2G,GAAY0B,iBAAiByO,EAAO6wC,OAAO3nD,OAC7J,GAAIooD,EAAsBvoD,OAAS,EAAG,CAEpC,IAAIwoD,EAAS,CACX3tD,KAAM,kBACNqN,OAAQ,CACNhJ,MAAOqpD,EAAsB,GAAG35C,KAGpC7B,EAASyQ,GAAoB1O,cAAc,gBAAiB05C,IAI9D,IAAIC,EAAS,CACX5tD,KAAM,OACNqN,OAAQ,CACNhJ,MAAQ0f,EAAU3H,EAAOixC,aAAejxC,EAAOkxC,kBAGnDp7C,EAASyQ,GAAoB1O,cAAc,kBAAmB25C,IAE9Dp1B,KA4LyCkkB,CAAY5iB,GAC3Bl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,cACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC2uD,KAAa,YAS5B5uD,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SAAS4gC,QAAS,GAAG,gEAS7EnnC,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoB91C,IAAA,IAAC,KAAE9D,EAAI,GAAEH,GAAIiE,EAAA,SAAA9H,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAnSeC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAmSAC,YAAa3B,EACb4B,oBAjSiBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,QAmSN75C,IAAAC,cAAC8wC,KAAa,KAIZ/wC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACl4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAAYoE,eAAgB,gBAAiB/D,YAAa,IAAMH,QAAS,QC/H/IowD,GAAsB9kB,qBAC1BxB,aANuB/mC,IAChB,CACLkd,OAAQld,EAAMkd,SAIS,KAAM,KAA/B6pB,CAAqCyB,aAtQvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAoQGurC,CAhQvBvqC,IAEd,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,OAAEif,GAAWjf,EAAMif,QACnB,eAAE9H,GAAmBnX,EAAMif,QAC3B,UAAEvG,GAAc1Y,EAAMif,QAErB2qB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,QACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAEzCt3B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,GAGbpnC,EAASoL,GAAaC,UAAUrI,GAAa,KAI/CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAEtCh4C,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAMif,OAAOvG,YA4BxB,OACEnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,gBAClCgF,IAAc0X,GAAUA,EAAOxY,OAAS,EACvClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAK,iBACLxhC,OAAQwY,EAAOxY,OACf22C,SAAU,yBACV76C,MAAO,mBACPujC,KAAM,UACNuX,WAAYv1C,GAAmB0B,iBAGjCjJ,IAAAC,cAAC28C,GAAY,CACXlV,KAAK,iBACLxhC,OAAQ,EACR22C,SAAU,yBACV76C,MAAO,mBACPujC,KAAM,UACNuX,WAAYv1C,GAAmB0B,iBAGnCjJ,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAWrF,cAAY,GAAC,+DAKhDoC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAxCmB4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YA2CnBpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACVlsB,GAAYQ,WAAarT,IAAAC,cAAC8+B,KAAS,KAAC,uCAA+C,KACpF/+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAUsM,GAAYQ,WAAa,cAAU,gBAGlErT,IAAAC,cAACumC,KAAS,UACPx/B,IAAc0X,GAAUA,EAAOxY,OAC5BwY,EAAOjS,IAAKouB,IAAO,IAADiM,EAClB,OACE9mC,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEx0B,KAAOw0B,EAAEx0B,KAAKO,cAAgB,IAElCiM,GAAYQ,WACXrT,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC+mC,KAAI,CACHhL,MAAM,gBACN94B,MAAO,CAAE3H,MAAO,UAAW0gC,OAAQ,KAEd,QADrB6K,EACDjM,EAAE3b,4BAAoB,IAAA4nB,OAAA,EAAtBA,EAAwBr6B,IAAK4xB,GAC5Br+B,IAAAC,cAAC+mC,KAAI,CACH5lC,IAAKi9B,EAAEvoB,YAAYhB,GACnBknB,MAAOqC,EAAEvoB,YAAYzP,KACrBnD,MAAO,CAAE3H,MAAO,UAAW0gC,OAAQ,QAKzC,KACJj8B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE5b,UAAY4b,EAAE5b,UAAUrY,cAAgB,IAE7C5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACds0B,EAAE7/B,KAAOgF,IAAAC,cAACi/B,KAAU,CACnB+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPlB,OAAOqa,KAAKke,EAAE7/B,KAAM,UAEtB2E,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,qBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACinC,KAAQ,SAGC,GAChBlnC,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,WAADtQ,OAAYo9B,EAAE/lB,KAE5BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,iBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAvIpB3oC,EAuIgC+lB,EAAE/lB,QAtIrD8kB,EAAQ,CACN53B,MAAO,sCACPo9B,YAAa,2CACbC,iBAAkB,gBAClB57B,SAAUhE,EAAMif,OAAOvG,UACvBknB,iBAAkB5/B,EAAMif,OAAOvG,UAAY,sBAAwB,gBACnEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASoL,GAAaU,iBAAiBjK,MATtBA,OAwIKnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,IACnCzM,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAErBh0B,GAAYQ,YAEXrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,aAnB9B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAASt0B,GAAYQ,WAAa,EAAI,EAAG9M,MAAM,UAAS,kCA4B7FvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAjMmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAiMJJ,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D6kC,YAAa3B,EACb4B,oBAjMqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,W,mCCjCNiV,GAAoB/qD,YAAO0C,KAAP1C,CAAoBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC5D,CAACvG,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,QACT68B,UAAW,aAITwzB,GAA0BhrD,YAAOq3B,KAAPr3B,CAAawB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC3D7G,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,QAChB,CAAC7E,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BpQ,WAAY,EACZznC,QAAS,QACT68B,UAAW,aAsVTyzB,GAA0BjlB,qBAC9BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA1XvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3BghD,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA2W4ByuC,CAnVnBvqC,IAElB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,MAAEulB,EAAK,UAAE5lB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC5Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OACzBoR,EAAuBC,GAA4Bv1B,mBAAS,KAE5Dw1B,EAAgBC,GAAqBz1B,mBAAS,OAC9C01B,EAAqBC,GAA0B31B,mBAAS,KAExD,CAAED,GAAe15B,IAAM25B,SAAS,GAEjCvoB,EAAUlR,OAAOyN,KAAKpG,IACzBkF,IAAIrL,IAAG,CACN0T,GAAIvN,GAAmBnG,GACvBiF,KAAMjF,EAAI6F,QAAQ,KAAM,KAAKL,iBAE9B2oD,KAAK,CAAC1hD,EAAG2hD,IAAM3hD,EAAExH,KAAKopD,cAAcD,EAAEnpD,OAEzChE,oBAAU,KAEJ6K,EAAO4H,IACT7B,EAASoL,GAAaE,cAAcrR,EAAO4H,KAC3C7B,EAAS2C,GAAkBC,yBAEvBpW,EAAMif,QAAUjf,EAAMif,OAAOQ,sBAAwBzf,EAAMif,OAAOQ,qBAAqBhZ,OAAS,GAClGgpD,EAAyBzvD,EAAMif,OAAOQ,wBAIxCjM,EAASoL,GAAa5I,SACtBxC,EAAS2C,GAAkBH,WAG5B,IAEH,MAAOymC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KACoD,IAADqtD,EAAAC,OAA1C3oD,GAAbkG,EAAO4H,IAA6C,GAA1BrV,EAAMif,OAAOM,WACzCowC,EAAkB,CAChB,GAAa,OAAPh+C,QAAO,IAAPA,GAAkD,QAA3Cs+C,EAAPt+C,EAASmsB,KAAKqyB,GAAKA,EAAE96C,IAAMrV,EAAMif,OAAOM,kBAAU,IAAA0wC,OAA3C,EAAPA,EAAoD56C,GAC1D,KAAe,OAAP1D,QAAO,IAAPA,GAAkD,QAA3Cu+C,EAAPv+C,EAASmsB,KAAKqyB,GAAKA,EAAE96C,IAAMrV,EAAMif,OAAOM,kBAAU,IAAA2wC,OAA3C,EAAPA,EAAoDtpD,QAG/D,CAAC5G,EAAMif,OAAOM,YAEjB,MAAM6wC,EAAgB9pB,aAAavkC,GAAUA,EAAMsU,YAAYA,aAEzDgoC,EAAgBC,GAAU9oC,IAC9BhC,EAASoL,GAAarJ,cAAc+oC,EAAM9oC,KAG5C5S,oBAAU,KACJ8sD,GACFtf,EAAyBsf,IAE1B,CAACA,IAEJ,MAAMtf,EAA4BniC,IAChC,GAAW,MAAPA,EAAa,CACf,IAAIixC,EAAWvtC,EAAQ2+B,OACpBzU,GAASA,EAAKxmB,IAAMpH,EAAIoH,IAG3B7B,EAASoL,GAAaI,oBAAoBkgC,EAAS,OA8CvDt8C,oBAAU,KACR5C,EAAMif,OAAOQ,qBAAuB+vC,EACpCv1B,EAAYmB,IAAMA,IACjB,CAACo0B,IAGJ,MAAMa,EAAyBh7C,IACP,IAADi7C,EAAAC,EAArB,QAAUhpD,GAAN8N,EACF,OAAoB,QAAZi7C,EAAAtwD,EAAMif,cAAM,IAAAqxC,GAAsB,QAAtBC,EAAZD,EAAc7wC,4BAAoB,IAAA8wC,OAAtB,EAAZA,EAAoCnoB,KAAMhN,GAAMA,EAAErE,eAAiB1hB,MAA4B,OAArBm6C,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBpnB,KAAMhN,GAAMA,EAAErE,eAAiB1hB,KAI5I,SAASmxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,gBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,kBAIV,SAASimC,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,yCACA,wCAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,aACHmpC,SAAWhpC,GA7FHA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXzO,KAAM5G,EAAMif,OAAOrY,KACnB4Y,UAAWxf,EAAMif,OAAOO,UACxBD,UAAWmwC,EAAer6C,GAC1B9Z,KAAMyE,EAAMif,OAAO1jB,KACnBkkB,qBAAsB+vC,GAGpB/hD,EAAO4H,GACLrV,EAAMif,OAAOQ,qBAAqBhZ,OAAS,EAC7C+M,EAASoL,GAAaG,eAAetR,EAAO4H,GAAIzE,GAAS,IAEzDxD,IAAMlS,MAAM,qEAGdsY,EAASoL,GAAaS,aAAazO,KA2EJ8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,qBACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA9I3B44C,KAiJkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAMif,OAAOrY,KAAO5G,EAAMif,OAAOrY,KAAKO,cAAgB,GAC7D3D,QAAQ,WACRm7C,WAAY,CAAC,WAAY,wBACzBC,cAAe,CAAC,wBAAsB,yEAG1Cr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMif,OAAOO,UAAYxf,EAAMif,OAAOO,UAAUrY,cAAgB,GACvE3D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPmiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBh5C,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAMif,OAAO1jB,KACpBiI,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAO+pD,EACP9pD,SAAUA,CAAC4P,EAAOg7C,KAChBb,EAAkBa,IAEpBxgB,WAAY4f,EACZ7e,cAAeA,CAACv7B,EAAOi7C,KACrBZ,EAAuBY,IAEzBp7C,GAAG,2BACH1D,QAASA,EACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAAcye,EACdjL,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,CAAC+iD,UAAQ,GAAKh2C,EAAM,CAAE8uB,MAAM,gDAAgDhB,WAAS,KACxHA,WAAS,MAId9tB,EAAO4H,IACN9U,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,yDAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC9CspD,QAAkC7oD,GAAjB6oD,GAA8BA,EAAc3pD,OAAS,GACrE2pD,EAAcpjD,IAAKouB,GAEjBA,EAAEz1B,OAASgC,GACTpH,IAAAC,cAAC+mC,KAAI,CAAChL,MAAOnB,EAAE//B,KAAM0I,QAASA,IAhL1D,SAAiCsR,GAE/B,GADwC,OAArBm6C,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBpnB,KAAMhN,GAAMA,EAAErE,eAAiB1hB,GACzD,CACd,MAAM6uC,EAAmC,OAArBsL,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBlf,OAAQlV,GAAMA,EAAErE,eAAiB1hB,GAC5Eo6C,EAAyBvL,OACpB,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJ0hB,cAAe1hB,EACfq7C,SAAU1wD,EAAMif,OAAO5J,IAEzBo6C,EAAyB,IAAID,EAAuBrL,KAqKQwM,CAAwBv1B,EAAEz1B,OAC5DnC,QAAS6sD,EAAsBj1B,EAAEz1B,OAAS,SAAW,WAAYlC,MAAO,CAAEpG,gBAAiBgzD,EAAsBj1B,EAAEz1B,QAAU,UAAW7J,MAAOu0D,EAAsBj1B,EAAEz1B,QAAU,UAAW62B,OAAQ,KACpM,SAMhBj8B,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,OAAQ1I,UAAW,SAAU,4BAGjFj9B,IAAAC,cAAC6uD,GAAiB,KAChB9uD,IAAAC,cAAC8uD,GAAuB,CAACzzB,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACxD37B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,aAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXN,QAAQ,YACRnJ,MAAM,EACNiH,KAAK,SACL0C,SAAUhE,EAAMif,OAAOvG,UACvB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMif,OAAOvG,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE1DuN,EAAO4H,GAAMrV,EAAMif,OAAOvG,UAAY,wBAA0B,YAAgB1Y,EAAMif,OAAOvG,UAAY,qBAAuB,iBAU9I+jC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBwB,iBAG3B,U,yBC/WV,MAyPMsnD,GAA2BtmB,qBAC/BxB,aANuB/mC,IAChB,CACL8d,YAAa9d,EAAM8d,cAII,KAAM,KAA/BipB,CAAqCyB,aA1PvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAwPGurC,CApPlBvqC,IAEnB,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,YAAE6f,GAAgB7f,EAAM6f,aACxB,eAAE1I,GAAmBnX,EAAM6f,aAE1B+pB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,aAClB0gB,GAAa1gB,mBAAS,SACtB22B,EAAWC,GAAgB52B,oBAAS,IACpCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAEzCt3B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXmW,WAAYF,GAGdr9C,EAASkM,GAAkBC,eAAenJ,GAAa,KAIzDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcoW,IAE/BjuD,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6f,YAAYnH,YAE7B,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IA+BV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,sBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcsY,GAAeA,EAAYpZ,OAAS,EACjDlG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,sBACNxhC,OAAQoZ,EAAYpZ,OACpB22C,SAAU,oCACV76C,MAAO,8BACPujC,KAAM,eACNuX,WAAYv1C,GAAmBsC,uBAGjC7J,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,sBACNxhC,OAAQ,EACR22C,SAAU,oCACV76C,MAAO,8BACPujC,KAAM,eACNuX,WAAYv1C,GAAmBsC,uBAGnC7J,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACK,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,IAC1C37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SArCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WAuCXpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAAC4pD,KAAQ,CACPxkD,SAAW4P,GAAUs7C,EAAat7C,EAAM7G,OAAO+I,SAC/C/R,MAAM,4BACN7J,MAAM,YAGVygC,MAAM,4DAIZh8B,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcsY,GAAeA,EAAYpZ,OACtCoZ,EAAY7S,IAAKouB,GAEf76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7Bn3B,KAAOqrB,EAAE/c,UAAU0U,OAAO,qBAE7BxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC5B9L,EAAE41B,cAAgBjhD,KAAOqrB,EAAE41B,eAAej+B,OAAO,oBAAsB,IAE3ExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEv0B,QAELtG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,oBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,YACXxmC,UAAU,IACV+C,QAASA,KAAMktD,OAhGtB57C,EAgGsC+lB,EAAE/lB,QA/F/D8kB,EAAQ,CACN53B,MAAO,kDACPo9B,YAAa,2CACbC,iBAAkB,iBAClBC,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASkM,GAAkBQ,qBAAqB7K,MAP3BA,OAiGOnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,YACbhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC0wD,KAAY,WAMvB3wD,IAAAC,cAACunC,GAAa,CACZE,KAAM,oBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,gBAADtQ,OAAiBo9B,EAAE/lB,KAEjCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,UACbhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAOnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAjJ1B3oC,EAiJsC+lB,EAAE/lB,QAhJ3D8kB,EAAQ,CACN53B,MAAO,iDACPo9B,YAAa,2CACbC,iBAAkB,gBAClB57B,SAAUhE,EAAM6f,YAAYnH,UAC5BknB,iBAAkB5/B,EAAM6f,YAAYnH,UAAY,iCAA6B,gBAC7EmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASkM,GAAkBc,sBAAsBnL,MAThCA,OAkJWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aASzB,QAIVn5B,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAI3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,kEC7O/B,MAsVM4T,GAA4C7mB,qBAChDxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAvVvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACf1D,UAAW,UAEbl1B,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA4T4ByuC,CAxTDvqC,IAEpC,MAAOoxD,EAAeC,GAAoBn3B,mBAAS,KAC5CnD,EAAeu6B,GAAoBp3B,mBAAS,GAC7C1mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,EACdm+C,EAAU59C,IAAM69C,UAAU,OAEzBxU,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,EAAO4W,GAAYr3B,mBAAS,SAC5B0gB,EAAW4W,GAAgBt3B,mBAAS,QAErC,iCAAExZ,EAAgC,UAAEhI,GAAc4tB,aACrDvkC,GAAUA,EAAM8d,cAGb,QAAE1O,GAAYm1B,aACjBvkC,GAAUA,EAAMoP,SAGbsgD,EAAuBnrB,aAC1BvkC,GAAUA,EAAMsU,YAAYqC,WAGzBg5C,EAAyBprB,aAC5BvkC,GAAUA,EAAMsU,YAAYc,gBAGzB0jC,EAAYA,CAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX52B,GAAI+S,GAGgC,iBAAlC/2B,EAAMmhB,kBAAkBwwC,OAC1BL,EAAiB,GAC0B,8BAAlCtxD,EAAMmhB,kBAAkBwwC,OACjCL,EAAiB,GAC0B,mBAAlCtxD,EAAMmhB,kBAAkBwwC,OACjCL,EAAiB,GAC0B,mBAAlCtxD,EAAMmhB,kBAAkBwwC,OACjCL,EAAiB,GAEjB99C,EAAS8iB,GAActgB,SAGJ,GAAjB+gB,GACFvjB,EAAS8iB,GAAcgB,iBAAiB9gB,KAI5C5T,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,CAAC1jB,IAEJn0B,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAEtCh4C,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,GACvB4W,EAAiB,KAChB,CAACrxD,EAAMmhB,kBAAkBwwC,SAE5B/uD,oBAAU,OAEP,CAAC8uD,IAEJ9uD,oBAAU,KACRyuD,EAAiB,KAChB,CAAC3wC,IAEJ,MAAM8vB,EAAcA,KAClBh9B,EAASkM,GAAkBgB,kCAAiC,KAGxDg+B,EAAgBlpC,IACpBA,EAAMw/B,iBACN,IAAIpkC,EAAU,CACZyE,GAAI,EACJkM,cAAevhB,EAAM6f,YAAYxK,GACjCs8C,OAAQ3xD,EAAMmhB,kBAAkBwwC,OAChCC,yBAA0BR,GAAgC,IAG5D59C,EAASsN,GAAwBQ,wBAAwB1Q,IACzD4C,EAASkM,GAAkBgB,kCAAiC,KAmB9D9d,oBAAU,OAEP,CAACwuD,IAuBJ,OACE7wD,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMwD,EACN+a,QAAS+U,EACTgP,kBAAgB,mCAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACk7B,KAAW,CAACrmB,GAAG,qBAAoB,wCAGpC9U,IAAAC,cAAA,QAAMg+C,SAAUE,GACdn+C,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,kBACHmpC,SAAWhpC,GAAUkpC,EAAalpC,IAElCjV,IAAAC,cAACm7B,KAAI,CAACC,WAAS,GACbr7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbpiB,MAAM,SACNyiB,QAAQ,SACRJ,cAAe,CAAC,yBAChBj5C,MAAO3F,EAAMmhB,kBAAkBwwC,QAAU,GACzC/rD,UA7CuB04C,EA6CiB,SA7CP9oC,IAC/ChC,EAASsN,GAAwBvL,cAAc+oC,EAAM9oC,MA6CvC5I,KAAK,SACL2uB,WAAS,EACT8nB,WAAY,CACVz2C,KAAM,SACNyI,GAAI,UAENjW,MAAOmB,IAAAC,cAACu6C,IAAK,CAAC1lC,GAAG,WACjBmnB,OAAO,SACPh5B,QAAQ,WACR6R,GAAG,UAEH9U,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,iBAAiB,sDAClCpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,8BAA8B,yEAC/CpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,mBAAmB,kDACpCpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,mBAAmB,wDAGJ,2BAAnC3F,EAAMmhB,kBAAkBwwC,OACvBpxD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,GAAQ,GACf30C,SA1DS4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,QA0DH41B,WAAS,KAGbh7B,IAAAC,cAAA,WACAD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAEP,eAAgB,SAAUqzC,aAAc,WAC1Fh2C,IAAAC,cAAC0+B,KAAc,KACb3+B,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,KAC4B,iBAAlC/mC,EAAMmhB,kBAAkBwwC,QAA+D,8BAAlC3xD,EAAMmhB,kBAAkBwwC,QAA4E,mBAAlC3xD,EAAMmhB,kBAAkBwwC,QAAiE,mBAAlC3xD,EAAMmhB,kBAAkBwwC,YACrMpqD,IAAc4J,GAAWA,EAAQ1K,OAC9B0K,EAAQnE,IAAKouB,IACb,OACE76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEx0B,KAAOw0B,EAAEx0B,KAAKO,cAAgB,GAAG,IAAEi0B,EAAEtE,UAAYsE,EAAEtE,UAAU3vB,cAAgB,IAElF5G,IAAAC,cAAC8+B,KAAS,CAACvgC,QAAQ,YACjBwB,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,IAvH1BsR,KAEnB,GADmB+7C,EAAchpB,KAAMhN,GAAMA,EAAEjd,OAAS9I,GACxC,CACd,MAAM6uC,EAAckN,EAAc9gB,OAAQlV,GAAMA,EAAEjd,QAAU9I,GAC5Dg8C,EAAiBnN,OACZ,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJw8C,kBAAmB,EACnB1zC,MAAO9I,GAETg8C,EAAiB,IAAID,EAAejN,MA4GanG,CAAY5iB,EAAE/lB,IAC7B8+B,GAAI,CACFr4C,MAAO,UACP,gBAAiB,CACfA,MAAO,YAGX4b,SA3GdrC,EA2GsC+lB,EAAE/lB,GA1GvD+7C,EAAchpB,KAAMhN,GAAMA,EAAEjd,OAAS9I,QADtBA,QAmHMo8C,EACEzqB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,KAAMuG,IAAI,CAACyB,EAAGmB,IACxCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,+BAIxD,QAIVvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAA0C,sBAAnC17C,EAAMmhB,kBAAkBwwC,SACO,6BAAnC3xD,EAAMmhB,kBAAkBwwC,QAA4E,uBAAnC3xD,EAAMmhB,kBAAkBwwC,QAAmCD,EACrH,EACV9nB,KAAMA,EACNiS,aAtIKC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAsIUC,YAAa3B,EACb4B,oBApIOzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,QAsIM,QAIV75C,IAAAC,cAAC8wC,KAAa,KACZ/wC,IAAAC,cAACm7B,KAAI,CACHl4B,MAAO,CAAE1E,QAAS,GAClBC,QAAS,EACT48B,WAAS,EACTgf,UAAU,MACV13C,eAAe,gBACfpE,WAAW,UAEXyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CAACJ,QAASysC,EAAahtC,QAAQ,WACpCC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SAAU,aAInD7D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CACLH,SAAU0U,EACVpX,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQvB,MAAO,QACzC6hC,QAASjlB,GAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7CwY,EACG,cACA,eA7KqB4lC,UC2DnCwT,GAAwCxnB,qBAC5CxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAzNvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACf1D,UAAW,UAEbl1B,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA8L4ByuC,CA1LLvqC,IAEhC,MAAMwT,EAAW6mB,gBAEVuP,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,EAAO4W,GAAYr3B,mBAAS,SAC5B0gB,EAAW4W,GAAgBt3B,mBAAS,QAErC,mBAAErY,EAAkB,eAAE1K,EAAc,UAAEuB,GAAc4tB,aACvDvkC,GAAUA,EAAM8f,qBAGb,6BAAElB,EAA4B,QAAE4qC,GAAYjlB,aAC/CvkC,GAAUA,EAAM8d,aAGbg7B,EAAYA,CAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXz4B,cAAeniB,EAAM6f,YAAYxK,IAGnC7B,EAASkO,GAAyBC,sBAAsBnL,GAAa,KAIvE5T,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,IAEH73C,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,CAAC95B,IAEJ/d,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAEtCh4C,oBAAU,OACP,CAACif,IAEJ,MAAM2uB,EAAcA,KAClBh9B,EAASkM,GAAkBiB,8BAA6B,KAgB1D,OACEpgB,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMyD,EACN8a,QAAS+U,EACTgP,kBAAgB,mCAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACk7B,KAAW,CAACrmB,GAAG,qBAAoB,gEAGpC9U,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,GACbr7B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACP30C,SAxBe4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WA0BbpF,IAAAC,cAAA,WACAD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAEP,eAAgB,SAAUqzC,aAAc,WAC1Fh2C,IAAAC,cAAC0+B,KAAc,KACb3+B,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,cAGf/+B,IAAAC,cAACumC,KAAS,UACNx/B,IAAcsa,GAAsBA,EAAmBpb,OACrDob,EAAmB7U,IAAKouB,GAEtB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,SAAWiqB,EAAEjqB,QAAQvK,KAAOw0B,EAAEjqB,QAAQvK,KAAa,IAExDrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,SAAWiqB,EAAEjqB,QAAQkJ,MAAQ+gB,EAAEjqB,QAAQkJ,MAAc,IAE1D9Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC5B9L,EAAE22B,iBAAmBhiD,KAAOqrB,EAAE22B,kBAAkBh/B,OAAO,oBAAsB,MAQrFra,EACEsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAShEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAhGWC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAgGIC,YAAa3B,EACb4B,oBA9FazmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,UAkGN75C,IAAAC,cAAC8wC,KAAa,KACZ/wC,IAAAC,cAACm7B,KAAI,CACHl4B,MAAO,CAAE1E,QAAS,GAClBC,QAAS,EACT48B,WAAS,EACTgf,UAAU,MACV13C,eAAe,gBACfpE,WAAW,UAEXyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CAACJ,QAASysC,EAAahtC,QAAQ,WACpCC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SAAU,oBCgDvD4tD,GAAsC1nB,qBAC1CxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAvPvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACf1D,UAAW,UAEbl1B,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA4N4ByuC,CAxNR0nB,CAACjyD,EAAK4E,KAAyB,IAAvB,cAAEmyB,GAAenyB,EAEtD,MAAM4O,EAAW6mB,gBACVuP,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,EAAO4W,GAAYr3B,mBAAS,SAC5B0gB,EAAW4W,GAAgBt3B,mBAAS,QACpCg4B,EAAkBC,GAAuBj4B,mBAAS,KAEnD,mBAAErY,EAAkB,eAAE1K,EAAc,UAAEuB,GAAc4tB,aACvDvkC,GAAUA,EAAM8f,qBAGb,2BAAEpB,GAA+B6lB,aACpCvkC,GAAUA,EAAM8d,aAGnBjd,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,KACR4Q,EAASkM,GAAkBe,4BAA2B,KACrD,IAEH7d,oBAAU,OAEP,CAACif,IAEJ,MAAMg5B,EAAYA,CAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXz4B,cAAeniB,EAAM6f,YAAYxK,IAGnC7B,EAASkO,GAAyBC,sBAAsBnL,GAAa,KAIvE5T,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,IAEH73C,oBAAU,KACRi4C,EAAUjR,EAAMyQ,EAAOI,IACtB,CAACh6B,IAEJ,MAAM+vB,EAAcA,KAClBh9B,EAASkM,GAAkBe,4BAA2B,KAkBxD7d,oBAAU,KACRuvD,EAAoB,KACnB,CAAC1xC,IA2BJ,OACElgB,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMuD,EACNgb,QAAS+U,EACTgP,kBAAgB,6BAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACk7B,KAAW,CAACrmB,GAAG,qBAAoB,0EAGpC9U,IAAAC,cAACw7B,KAAa,KACZz7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,GACbr7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACP30C,SA/BiB4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WAiCfpF,IAAAC,cAAA,WACAD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAEP,eAAgB,SAAUqzC,aAAc,WAC1Fh2C,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,QAGd/+B,IAAAC,cAACumC,KAAS,UACNx/B,IAAcsa,GAAsBA,EAAmBpb,OACrDob,EAAmB7U,IAAKouB,IACxB,OACE76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,SAAWiqB,EAAEjqB,QAAQvK,KAAOw0B,EAAEjqB,QAAQvK,KAAa,IAExDrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,SAAWiqB,EAAEjqB,QAAQkJ,MAAQ+gB,EAAEjqB,QAAQkJ,MAAc,IAE1D9Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,IA1FhBsR,KAEnB,GADmB68C,EAAiB9pB,KAAMhN,GAAMA,EAAErd,WAAa1I,GAC/C,CACd,MAAM6uC,EAAcgO,EAAiB5hB,OAAQlV,GAAMA,EAAErd,YAAc1I,GACnE88C,EAAoBjO,OACf,CACL,IAAIC,EAAe,CACjB9uC,GAAI,EACJ+8C,iBAAkB,EAClBr0C,UAAW1I,GAEb88C,EAAoB,IAAID,EAAkB/N,MA+EHnG,CAAY5iB,EAAErd,WAC7BjiB,MAAM,UACN4b,SAzEJrC,EAyE4B+lB,EAAErd,UAxE7Cm0C,EAAiB9pB,KAAMhN,GAAMA,EAAErd,WAAa1I,QAD7BA,QA+EJ,QAKV9U,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aApFaC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAoFEC,YAAa3B,EACb4B,oBAlFezmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,SAqFN75C,IAAAC,cAAC8wC,KAAa,KACZ/wC,IAAAC,cAACm7B,KAAI,CACHl4B,MAAO,CAAE1E,QAAS,GAClBC,QAAS,EACT48B,WAAS,EACTgf,UAAU,MACV13C,eAAe,gBACfpE,WAAW,UAEXyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CAACJ,QAASysC,EAAahtC,QAAQ,WACpCC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SAAU,aAInD7D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CACLH,SAAU0U,EACV3U,QAASA,KA/Ff/D,EAAM6f,YAAYxK,IACpB7B,EAASkM,GAAkBY,qBAAqBtgB,EAAM6f,YAAYxK,GAAI68C,EAAiBllD,IAAKouB,GACnFA,EAAErd,cA8FHzc,KAAK,SACLkC,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCq5B,UAAWl9B,IAAAC,cAAC6xD,KAAQ,CAACnyD,KAAM,KAC3By9B,QAASjlB,GAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7CwY,EACG,cACA,kB,yCCweZ45C,GAA+BhoB,qBACnCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAprBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACf1D,UAAW,UAEbl1B,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElB88C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAiqB4ByuC,CA7pBdvqC,IAEvB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,YAAEuf,EAAW,UAAE5f,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAClDi8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OAEzBt5C,EAAQytD,GAAar4B,mBAAS,KAC9B30B,EAAQitD,GAAat4B,mBAAS,KAC9Bhd,EAAMwyB,GAAWxV,oBAAS,GAC3BC,EAAUC,eACT,CAAEH,GAAe15B,IAAM25B,SAAS,IAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,mBAAErY,GAAuBykB,aAC5BvkC,GAAUA,EAAM8f,qBAGZ46B,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KAER4Q,EAASkM,GAAkB1J,SAEvBvI,EAAO4H,GACT7B,EAASkM,GAAkBI,mBAAmBrS,EAAO4H,MAGrD7B,EAASkM,GAAkB1J,SAC3Bw8C,EAAU,QAGX,IAEH5vD,oBAAU,KAEJ6K,EAAO4H,GACT7B,EAASkM,GAAkBI,mBAAmBrS,EAAO4H,MAErD7B,EAASkM,GAAkB1J,SAC3Bw8C,EAAU,QAGX,CAACxyD,EAAMmhB,kBAAkBA,mBAAqBnhB,EAAMmhB,kBAAkBA,kBAAkB1a,SAuE3F7D,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6f,YAAYnH,YAE7B9V,oBAAU,KACR4vD,EAAU3yC,EAAYuF,gBACrB,CAACvF,EAAYuF,cAAelI,IAE/Bta,oBAAU,OAEP,CAACsa,EAAM3X,IAEV,MAAM84C,EAAgBC,GAAU9oC,IAC9BhC,EAASkM,GAAkBnK,cAAc+oC,EAAM9oC,KAG3CkpC,EAAgBlpC,IAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXgJ,SAAUtO,KAAO/P,EAAM6f,YAAYxB,UAAU0nC,cAC7Cl/C,OAAQ7G,EAAM6f,YAAYhZ,OAC1B2Y,UAAWxf,EAAM6f,YAAYL,UAC7B4F,cAAeplB,EAAM6f,YAAYuF,cACjCqtC,KAAMzyD,EAAM6f,YAAY4yC,KACxBt0C,MAAOne,EAAM6f,YAAY1B,OAGvB1Q,EAAO4H,GACT7B,EAASkM,GAAkBK,oBAAoBtS,EAAO4H,GAAIzE,GAAS,IAEnE4C,EAASkM,GAAkBS,kBAAkBvP,KA4C3C8hD,EAA8CA,KAClDl/C,EAASsN,GAAwBW,aACjCjO,EAASkM,GAAkBgB,kCAAiC,KA4B9D,SAAS8lB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,2BAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,6BAKV,SAASimC,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,+DACA,8DAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,EAAQ0/C,SAAU9iC,KAAMA,GAC3C3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAACn6B,MAAO,CAAE3H,MAAO,WAEpCyE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,yBAMnDyE,IAAAC,cAACmE,GAAa,CACZG,OAAQA,EACRC,cA/MW8tD,IAErBnjB,GAAQ,GACR6iB,EAAUM,GACV5gD,GAAY4gD,EAAU,IACnB9hD,KAAMb,IAEL,IAAIU,EAAO/S,wBAAA,GACNgiB,GAAW,IACduF,cAAelV,EAAS21C,aAGH,IAAnBhmC,EAAYxK,IACd7B,EACEkM,GAAkBK,oBAAoBF,EAAYxK,GAAIzE,GAAS,IAInE+0C,YAAW,WAET,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAASkM,GAAkBnK,cAAc,gBAAiBqwC,IAE1D4M,EAAUtiD,GACVw/B,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MA4KF1qC,QAAS8tD,GACT7tD,WAAY,CAAC,OAAQ,OACrBC,YAAa,IACbC,gBAAiB,KACjBC,iBAAkB,KAClBC,eAAgB,OAChBC,YAnPQA,KAClB60B,EAAQ,CACN53B,MAAO,2BACPo9B,YAAa,GACbC,iBAAkB,sBAClBC,iBAAkB,WACjB9uB,KAAK,KACN,IAAIH,EAAO/S,wBAAA,GACNgiB,GAAW,IACduF,cAAe,OAEjB5R,EACEkM,GAAkBK,oBAAoBF,EAAYxK,GAAIzE,GAAS,IAQjE4C,EAASkM,GAAkBnK,cAAc,gBAN5B,CACXjU,KAAM,SACNqN,OAAQ,CACNhJ,MAAO,SAIX6sD,EAAU,SA+NFxyD,MAAO6f,EACPta,OAAQA,EACRC,YAAaA,GACblF,QAASA,EACTH,KAAMA,EACNF,UAAWA,MAIjBM,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,kBACHmpC,SAAWhpC,GAAUkpC,KAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,iCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA3S3B44C,KA8SkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACI,IAAzBgB,EAAM6f,YAAYxK,IAA0C,MAA9BrV,EAAM6f,YAAYxB,SAChD9d,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP72B,MAAOoK,KAAO/P,EAAM6f,YAAYxB,UAAU0U,OAAO,oBACjDvvB,QAAQ,WACRQ,UAAQ,KAIZ,KAEyB,IAAzBhE,EAAM6f,YAAYxK,IAA+C,MAAnCrV,EAAM6f,YAAYmxC,cAChDzwD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,gBACHknB,MAAM,kBACNC,OAAO,SACP72B,MAAOoK,KAAO/P,EAAM6f,YAAYmxC,eAAej+B,OAAO,oBACtDvvB,QAAQ,WACRQ,UAAQ,KAIZ,KAEFzD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,SACHknB,MAAM,cACNC,OAAO,SACP52B,SAAUy4C,EAAa,UACvB14C,MAAO3F,EAAM6f,YAAYhZ,OACzBrD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,oBACNC,OAAO,SACP52B,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAM6f,YAAYL,UACzBhc,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbpiB,MAAM,aACNyiB,QAAQ,OACRJ,cAAe,CAAC,yBAChBj5C,MAAO3F,EAAM6f,YAAY4yC,MAAQ,OACjC7sD,SAAUy4C,EAAa,QACvBzxC,KAAK,OACL2uB,WAAS,EACT8nB,WAAY,CACVz2C,KAAM,OACNyI,GAAI,QAENjW,MAAOmB,IAAAC,cAACu6C,IAAK,CAAC1lC,GAAG,SACjBmnB,OAAO,SACPh5B,QAAQ,WACR6R,GAAG,QAEH9U,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,sBAAsB,oCACvCpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,QAAQ,gBACzBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,YAAY,wBAGN,YAA1B3F,EAAM6f,YAAY4yC,KACjBlyD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,QACNC,OAAO,SACP52B,SAAUy4C,EAAa,SACvB14C,MAAO3F,EAAM6f,YAAY1B,MACzB3a,QAAQ,cAIZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,QACNC,OAAO,SACPl7B,KAAK,SACLsE,SAAUy4C,EAAa,SACvB14C,MAAO3F,EAAM6f,YAAY1B,MACzB3a,QAAQ,gBAMlBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXC,QAASA,IAAMqD,GAAQkH,KAAK,iBAC5B9K,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,SACtC,YAGD7D,IAAAC,cAACsD,EAAY,CACXzJ,MAAM,EACNiH,KAAK,SACLkC,QAAQ,YACRQ,SAAUhE,EAAM6f,YAAYnH,UAC5B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6f,YAAYnH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE/DuN,EAAO4H,GAAMrV,EAAM6f,YAAYnH,UAAY,mCAA+B,YAAgB1Y,EAAM6f,YAAYnH,UAAY,gCAA4B,gBAQnKnY,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,IACF,IAAzBj8B,EAAM6f,YAAYxK,GAClB9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,kBACHmpC,SAAWhpC,GAAUkpC,KAErBn+C,IAAAC,cAAComC,KAAU,CACTC,UAAU,4DACVtkC,MACEhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,4BAIVD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAClDxE,QAAS,OACTH,WAAY,WAEZyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,EAAGz4B,MAAO,CAAEP,eAAgB,SAAUqzC,aAAc,WACtFh2C,IAAAC,cAACsD,EAAY,CAACL,MAAO,CAAE/D,MAAO,QAAS62C,aAAc,UAAY3pC,KAAK,UAAUyI,GAAG,UAAUpV,UAAU,MAAMe,UAAU,IAAI+C,QAASA,IAAM2uD,KAA+C,WAAUnyD,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMipD,SAE5NrkD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,EAAGz4B,MAAO,CAC5C3E,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEqB,MAAnClD,EAAM6f,YAAYmxC,cAClBzwD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACqD,IAAU,KAAC,oBACS7D,EAAM6f,YAAc7f,EAAM6f,YAAYkzC,aAAe,EAAG,QAAO/yD,EAAM6f,YAAc7f,EAAM6f,YAAYmzC,0BAA4B,GAEtJzyD,IAAAC,cAACyyD,KAAc,CAACn3D,MAAM,YAAY0H,QAAQ,cAAcmC,MAAO3F,EAAM6f,YAAYkzC,gBAGnFxyD,IAAAC,cAACqD,IAAU,KAAC,qDAC8B7D,EAAM6f,YAAc7f,EAAM6f,YAAYmzC,0BAA4B,KAKlHzyD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAEP,eAAgB,OAAQqzC,aAAc,SAAU5c,WAAY,SAC9Gp5B,IAAAC,cAAC0+B,KAAc,KACb3+B,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAACumC,KAAS,UACPx/B,IAAcvH,EAAMmhB,kBAAkBA,mBAAqBnhB,EAAMmhB,kBAAkBA,kBAAkB1a,OAClGzG,EAAMmhB,kBAAkBA,kBAAkBnU,IAAKouB,GAE7C76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,GAAIzV,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrD37B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMtnC,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IArVlG,SAAsBg3B,GACpB,IAAIC,EAAS,GACb,OAAQD,GACN,IAAK,gBACHC,EAAS,qDACT,MACF,IAAK,6BACHA,EAAS,wEACT,MACF,IAAK,kBACHA,EAAS,iDACT,MACF,IAAK,kBACHA,EAAS,qDACT,MACF,QACEA,EAAS,GAEb,OAAOA,EAoU0BC,CAAah4B,EAAEu2B,SAElBpxD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAQlH,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,SACzEsB,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAlXlC3oC,EAkX8C+lB,EAAE/lB,QAjXnE8kB,EAAQ,CACN53B,MAAO,iDACPo9B,YAAa,2CACbC,iBAAkB,gBAClBC,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASsN,GAAwBU,4BAA4BnM,MAP5CA,OAmXmBnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,UAKnBn5B,IAAAC,cAACunC,GAAa,CACZE,KAAM,oBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IAAM2uD,IACfxyD,KAAK,QACL8D,SAAUhE,EAAMmhB,kBAAkBzI,UAClC+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmhB,kBAAkBzI,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEtEK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,kBACbhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC6yD,KAAc,cAU/B,SAKZ9yD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXzJ,MAAM,EACNmJ,QAAQ,YACRO,QAASA,KAnZ7ByP,EAASkM,GAAkBiB,8BAA6B,KAoZpC3c,cAAUuD,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,QAA+D,GAA/CzG,EAAM6f,YAAYmzC,0BACjJhvD,SAAUhE,EAAMmhB,kBAAkBzI,gBAAanR,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,QAA+D,GAA/CzG,EAAM6f,YAAYmzC,0BACtLv1B,UAAWl9B,IAAAC,cAAC8yD,KAAU,MACtB31B,QAAS39B,EAAMmhB,kBAAkBzI,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MACvE,4BAGDK,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KAzhB7ByP,EAASkM,GAAkBe,4BAA2B,KA0hBlCzc,cAAUuD,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,QAAwC,GAAxBzG,EAAM6f,YAAYxK,GACjJrR,SAAUhE,EAAMmhB,kBAAkBzI,gBAAanR,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,OACpJg3B,UAAWl9B,IAAAC,cAAC6xD,KAAQ,MACpB10B,QAAS39B,EAAMmhB,kBAAkBzI,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MACvE,gBAGDK,IAAAC,cAACsD,EAAY,CACXzJ,MAAM,EACNmJ,QAAQ,YACRO,QAASA,KA/bzB/D,EAAM6f,YAAYxK,IACpB7B,EAASkM,GAAkBW,gBAAgBrgB,EAAM6f,YAAYxK,MA+b3CrR,cAAUuD,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,OAC/GzC,SAAUhE,EAAMmhB,kBAAkBzI,gBAAanR,IAAcvH,EAAMmhB,kBAAkBA,mBAA0E,IAArDnhB,EAAMmhB,kBAAkBA,kBAAkB1a,OACpJg3B,UAAWl9B,IAAAC,cAAC6xD,KAAQ,MACpB10B,QAAS39B,EAAMmhB,kBAAkBzI,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MACvE,gBAUb,MAGJK,IAAAC,cAAC+yD,GAA4B,MAC7BhzD,IAAAC,cAACgzD,GAAwB,MACzBjzD,IAAAC,cAACyxD,GAAsB,MAEpBxV,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBqC,qBAG3B,U,kCCrrBV,MA4SMspD,GAAqBnpB,qBACzBxB,aANuB/mC,IAChB,CACL8jB,MAAO9jB,EAAM8jB,QAIU,KAAM,KAA/BijB,CAAqCyB,aA7SvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA2SGurC,CAvSxBvqC,IAEb,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,MAAE6lB,GAAU7lB,EAAM6lB,OAClB,UAAEnN,GAAc1Y,EAAM6lB,OACtB,eAAE1O,GAAmBnX,EAAM6lB,OAE1B+jB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,QACtB/pB,EAAQujD,GAAax5B,mBAAS,KAE9BwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGbm7B,EAAU,CACdpzD,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAEr4C,MAAO,OAAQsI,YAAa,WAAaL,QAASA,IAAM2vD,EAAU,MAAM,aACtFnzD,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAEr4C,MAAO,OAAQsI,YAAa,WAAaL,QAASA,IAAM2vD,EAAU,MAAM,aACtFnzD,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAEr4C,MAAO,OAAQsI,YAAa,WAAaL,QAASA,IAAM2vD,EAAU,MAAM,aACtFnzD,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAEr4C,MAAO,OAAQsI,YAAa,WAAaL,QAASA,IAAM2vD,EAAU,KAAK,UAGvF9wD,oBAAU,KACR8wD,EAAU,KACT,IAEH9wD,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ3qC,GAGVqD,EAAS2c,GAAYC,SAAS5Z,GAAa,KAI7CqkC,CAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,KACUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ3qC,GAEVqD,EAAS2c,GAAYC,SAAS5Z,GAAa,KAG7CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAACtqC,IAEJvN,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6lB,MAAMnN,YAEvB,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAeV,SAASyD,IACP,OACEt9C,IAAAC,cAAAD,IAAAmB,SAAA,KAAE,6CAC8BnB,IAAAC,cAAA,QAAMiD,MAAO,CAAE3H,MAAO,YAAa,+DASvE,OACEyE,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,gBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,cACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcse,GAASA,EAAMpf,OAAS,EACrClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,gBACNxhC,OAAQof,EAAMpf,OACd22C,SAAU,6BACV76C,MAAO,wBACPujC,KAAM,SACNuX,WAAYv1C,GAAmBS,iBAGjChI,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,gBACNxhC,OAAQ,EACR22C,SAAU,6BACV76C,MAAO,wBACPujC,KAAM,SACNuX,WAAYv1C,GAAmBS,iBAGnChI,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SArCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WAuCVyN,GAAYQ,YACXrT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACkiC,KAAG,CACFyR,GAAI,CACFl1C,QAAS,OACTugC,cAAe,SACf1gC,WAAY,SACZ,QAAS,CACPqxD,EAAG,KAIP5vD,IAAAC,cAACszD,KAAW,CAAC5zD,KAAK,SAASsD,QAAQ,WAAWgkC,aAAW,sBACtDmsB,OAObpzD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,oBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcse,GAASA,EAAMpf,OAC1Bof,EAAM7Y,IAAKouB,GAET76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,OAAQuV,EAAEvV,MAAMjf,KAAOw0B,EAAEvV,MAAMjf,KAAKO,cAAqB,IAE9D5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE24B,cAAkC,MAAlB34B,EAAE24B,aAAuBhkD,KAAOqrB,EAAE24B,cAAchhC,OAAO,oBAAsB,SAElGxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAqC,GAA5BuV,EAAEvV,MAAMxK,iBAA2B,oBACjB,GAA5B+f,EAAEvV,MAAMxK,iBAA4B,oBACN,MAA5B+f,EAAEvV,MAAMxK,kBAA4B,WAAc,IAExD9a,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,cACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,UAADtQ,OAAWo9B,EAAEvV,MAAMxQ,KAEjCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAxI1B3oC,EAwIsC+lB,EAAEvV,MAAMxQ,QAvIjE8kB,EAAQ,CACN53B,MAAO,2CACPo9B,YAAap/B,IAAAC,cAACq9C,EAAgB,MAC9B75C,SAAUhE,EAAM6lB,MAAMnN,UACtBknB,iBAAkB5/B,EAAM6lB,MAAMnN,UAAY,2BAAuB,gBACjEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS2c,GAAYgB,gBAAgB9b,MARpBA,OAyIWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAhB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAwBhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,mCCzSlBU,GAAmBr5C,IAAwC,IAAvC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,QAAEg0D,GAASpvD,EAEhE,MAAO,CAAEq1B,GAAe15B,IAAM25B,SAAS,GACjCikB,EAAU59C,IAAM69C,UAAU,MAG1B5qC,GADU4mB,cACCC,iBACX,QAAE/5B,EAAO,UAAEL,EAAS,MAAE4lB,GAAmB7lB,GACvCs8C,OAAO,OAAE7uC,KADyBrN,YAAKJ,EAAKK,IACtBL,GAExB0Y,EAAY4tB,aACfvkC,GAAUA,EAAMy2B,aAAa9f,WAGhC9V,oBAAU,OACP,CAAC5C,EAAM6lB,MAAMnN,UAAWA,IAE3B,MAKM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS8iB,GAAc/gB,cAAc+oC,EAAM9oC,KA+B7C,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,oBAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA5DfyP,EAAS8iB,GAActgB,cACvB8jB,MA4DMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GA9DCA,KAEpB,IAAIipC,EAAiB,CACnB73C,KAAM5G,EAAMmR,QAAQvK,KACpB8M,MAAO1T,EAAMmR,QAAQuC,MACrBojB,UAAW92B,EAAMmR,QAAQ2lB,UACzBzc,MAAOra,EAAMmR,QAAQkJ,MAAMtM,cAC3BgpB,cAAe/2B,EAAMmR,QAAQ4lB,cAC7B3c,QAASpa,EAAMmR,QAAQiJ,SAAWpa,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC3H2vB,UAAWn3B,EAAMmR,QAAQgmB,UACzBhd,SAAUna,EAAMmR,QAAQgJ,UAAYna,EAAMmR,QAAQgJ,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC9HmpB,eAAgB,CACd,CACEtb,GAAI,EACJ0I,UAAW,EACXhG,QAASi8C,KAKXvV,IACFjrC,EAAS8iB,GAAcuB,mBAAmB4mB,IAC1CjrC,EAAS8iB,GAActgB,SACvB8jB,MAuC2B4kB,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,0BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAMmR,QAAQvK,MAAQ,GAC7BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQ2lB,WAAa,GAClCtzB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IACnC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,yBAINr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,gBACH1P,MAAO3F,EAAMmR,QAAQ4lB,cACrBnxB,SAAUy4C,EAAa,kBAAoB,EAC3C9hB,MAAM,oBACNC,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,oBAEND,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,GAAG,UACpBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,GAAG,iCACpBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,GAAG,uCAGxBpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUy4C,EAAa,WACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQiJ,UAAY,GAC3C5W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQgJ,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,eACNj7B,KAAK,SACLk7B,OAAO,SACP52B,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQgmB,WAAa,GAClC3zB,QAAQ,cAGVxD,EAAMmR,SAAWnR,EAAMmR,QAAQ6lB,qBAC/Bz2B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,uBACHknB,MAAM,gCACNC,OAAO,SACP72B,MAAO3F,EAAMmR,QAAQ6lB,qBAAuBjnB,KAAO/P,EAAMmR,QAAQ6lB,sBAAsBjE,OAAO,oBAAsB,GACpHvvB,QAAQ,cAIZ,OAINjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAMmR,QAAQuH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmR,QAAQuH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DF,EAAMmR,QAAQuH,UAAY,yBAAwB,iB,mCCxM/DinC,GAAar7C,YAAOs7C,KAAPt7C,CAAeM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAChD,0BAA2B,CACzB,gBAAiB,CACf9I,MAAO,eAukBPm4D,GAAyB3pB,qBAC7BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA1mBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA+kB4ByuC,CAnkBpBvqC,IAEjB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,MAAEulB,EAAK,UAAE5lB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC5Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,MAC1BjkB,EAAUC,eAET,CAAEH,GAAe15B,IAAM25B,SAAS,IAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAElCv0B,EAAOoqC,GAAYxvC,IAAM25B,SAAS,OAClC8V,EAAYC,GAAiB1vC,IAAM25B,SAAS,KAC5Chd,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAEhCunB,EAAcC,GAAmBxnB,oBAAS,GAC3CynB,EAAgBA,IAAMD,GAAiBD,IAEvC,OAAEtsC,GAAWmxB,aAChBvkC,GAAUA,EAAMoT,SAGZsnC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtCwF,EAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,QAE9CvE,EAAUwD,EAAOnI,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAExDuH,oBAAU,KAER4Q,EAAS2c,GAAYna,SACrBxC,EAAS8J,GAAaC,mBAElB9P,EAAO4H,GACT7B,EAAS2c,GAAYK,aAAa/iB,EAAO4H,KAEzC7B,EAAS2c,GAAYna,UAGtB,IAEHpT,oBAAU,KACoB,GAAxB5C,EAAM6lB,MAAMpL,eAA8BlT,GAAbkG,EAAO4H,IACtC06B,EAAS/vC,EAAM6lB,MAAM1Q,SAEtB,CAACnV,EAAM6lB,MAAMpL,WA4ChB7X,oBAAU,KACJ5C,EAAM6lB,MAAM5Q,UACdzB,EAASiB,GAAaO,oBAAoBhV,EAAM6lB,MAAM5Q,YAEvD,CAACjV,EAAM6lB,MAAM5Q,WAEhBrS,oBAAU,KACJ+C,GACFyqC,EAAyBzqC,IAE1B,CAACA,IAEJ,MAAMyqC,EAA4BniC,IAEhC,GAAW,MAAPA,EAAa,CACf,IAAIimD,EAAiB/+C,EAAOm7B,OACzBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACEiB,GAAaiB,oBACXw+C,EAAe,KAMrBxkB,GAAQ,IAGV9sC,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM6lB,MAAMnN,YAEvB,MAAM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS2c,GAAY5a,cAAc+oC,EAAM9oC,KAG3C5S,oBAAU,KACRq3B,EAAYmB,IAAMA,IACjB,CAACp7B,EAAM6lB,MAAM8K,iBA2BhB,SAAS6V,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,qBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,uBAIV,SAASimC,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,mDACA,kDAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GApEHA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXzO,KAAM5G,EAAM6lB,MAAMjf,KAClB6T,SAAU9U,EAAQA,EAAM0P,GAAK,EAC7BJ,SAAUjV,EAAM6lB,MAAM5Q,SACtBmF,QAASpa,EAAM6lB,MAAMzL,SAAWpa,EAAM6lB,MAAMzL,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IACvH6H,KAAMrP,EAAM6lB,MAAMxW,MAAQrP,EAAM6lB,MAAMxW,KAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IACjF6S,MAAOra,EAAM6lB,MAAMxL,MAAQra,EAAM6lB,MAAMxL,MAAMtM,cAAgB,GAC7DuM,SAAUta,EAAM6lB,MAAMvL,SACtBH,SAAUna,EAAM6lB,MAAM1L,UAAYna,EAAM6lB,MAAM1L,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC1HmpB,eAAgB3wB,EAAM6lB,MAAM8K,eAC5BD,mBAAoB1wB,EAAM6lB,MAAM6K,mBAChCD,YAAazwB,EAAM6lB,MAAM4K,aAIvBhjB,EAAO4H,GACT7B,EAAS2c,GAAYS,cAAcnjB,EAAO4H,GAAIzE,GAAS,IAEvD4C,EAAS2c,GAAYc,YAAYrgB,KA+CF8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,2BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA7L3B44C,KAgMkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAM6lB,MAAMjf,MAAQ,GAC3BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,WACHknB,MAAM,WACN52B,MAAO3F,EAAM6lB,MAAM5Q,SACnBrP,SAAUy4C,EAAa,YACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,YAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,cAEJ+iD,mBAAQtB,SACR16C,IAAc06C,GACdA,EAAQx7C,QACRw7C,EAAQj1C,IAAI,CAACw2C,EAAKvkB,IAChB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAEijC,WAAY,KAC3DnmC,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOA,EACPC,SAAUA,CAAC4P,EAAOs7B,KAChBf,EAASe,IAEXd,WAAYA,EACZe,cAAeA,CAACv7B,EAAOw7B,KACrBf,EAAce,IAEhB37B,GAAG,2BACH1D,QAASA,EACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAActrC,EACd8+C,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,CAAC+iD,UAAQ,GAAKh2C,EAAM,CAAE8uB,MAAM,0BAA0BhB,WAAS,KAClGA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP52B,SAAUy4C,EAAa,QACvB14C,MAAO8B,GAASzH,EAAM6lB,MAAMxW,OAAS,GACrC7L,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,YACvB14C,MAAO3F,EAAM6lB,MAAMvL,UAAY,GAC/B9W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM6lB,MAAM4K,YACrB7qB,SAAUy4C,EAAa,iBAG3B9hB,MAAM,qDAERh8B,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM6lB,MAAM6K,mBACrB9qB,SAAUy4C,EAAa,wBAG3B9hB,MAAM,kDAIZh8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,qBAI/DvG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPmiB,WAAY,CAAC,WAAY,WACzBpjB,WAAS,EACTgB,MAAM,WACNE,QAASlvB,GAAYyB,iBACrB4vC,cAAe,CACb,wBAAsB,sBAExBj5C,MAAO3F,EAAM6lB,MAAMxL,OAAS,GAC5Bpa,UAAWK,EAAQ87B,UACnBx2B,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,WAGjBt+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO+B,GAAU1H,EAAM6lB,MAAM1L,WAAa,GAC1C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,UACNC,OAAO,SACP52B,SAAUy4C,EAAa,WACvB14C,MAAO+B,GAAU1H,EAAM6lB,MAAMzL,UAAY,GACzC5W,QAAQ,gBAKfiK,EAAO4H,IACN9U,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,SACnEmC,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIl9B,QAAS,GACvDuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQH,WAAY,SAAU0gC,cAAe,MAAOhC,UAAW,GAAKx+B,QAAS,GAC7GuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,SAAS,mDAI/DvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,QAC5CvG,IAAAC,cAACsD,EAAY,CACXzJ,MAAM,EACNuS,KAAK,cACLyI,GAAG,cACHpV,UAAU,MACVuD,QAAQ,YACRxC,UAAU,IACV+C,QAASA,KA5UvC49C,SACAnuC,EAAS8iB,GAActgB,WA2UyC,2BAAuBzV,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMspD,SAItFzc,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,SAG3Bh9C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,EAAGv+B,QAAS,OAAQugC,cAAe,MAAO7F,WAAY,GAAIx6B,YAAa,GAAI+D,eAAgB,UAAY4D,MAAM,UAE1H,MAA9B9G,EAAM6lB,MAAM8K,gBAA0B3wB,EAAM6lB,MAAM8K,eAAelqB,OAAS,EACzEzG,EAAM6lB,MAAM8K,eAAe3jB,IAAIouB,GAEjB,KAATA,EAAE/lB,IAA2B,GAAd+lB,EAAEtf,SAChBvb,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAErF,aAAc,IAC7DmC,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKxC,UAAU,OAC/Bo6B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAKO,cAAgBi0B,EAAErd,WAEjDxd,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,iBAAiBqC,cAAY,GACjEi9B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQkJ,MAAQ,IAElC9Z,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAErR,GAAI,KAAOhnC,MAAM,kBAC/Bs/B,EAAEjqB,QAAqC,GAA3BiqB,EAAEjqB,QAAQ4lB,cAAqB,gBAA6C,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,gCAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,0BAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,YAAyC,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,SAAsC,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,oCAA0B,GAAK,IAEtUx2B,IAAAC,cAAC8F,KAAO,CACN/D,MAAM,sBACNhC,IAAAC,cAAC2D,IAAM,CAACgwC,GAAI,CAAE+Q,WAAY,IAAKvrB,WAAY,EAAGx6B,YAAa,GAAK4E,QAASA,KAAM27B,OAxXlGrqB,EAwXqH+lB,EAAErd,eAvXhJoc,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,kEACb37B,SAAUhE,EAAM6lB,MAAMnN,UACtBknB,iBAAkB5/B,EAAM6lB,MAAMnN,UAAY,0BAAyB,gBACnEmnB,iBAAkB,YACjB9uB,KAAK,KACN/Q,EAAM6lB,MAAM8K,eAAiB3wB,EAAM6lB,MAAM8K,eAAe2f,OAAOqU,GAAMA,EAAG5mC,WAAam+B,SAAS7mC,IAC9F4kB,EAAYmB,IAAMA,KATK/lB,OAwXmI1T,IAAK,SAAWy5B,EAAE/lB,IAChI9U,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMmpD,KAAYrhD,MAAO,CAAE3H,MAAO,OAAQG,SAAU,WAOjFusC,GAAIA,IACFjoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAErF,aAAc,IAC7DmC,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKxC,UAAU,OAC/Bo6B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAKO,cAAgBi0B,EAAErd,WAEjDxd,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,iBAAiBqC,cAAY,GACjEi9B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQkJ,MAAQ,IAElC9Z,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAErR,GAAI,KAAOhnC,MAAM,kBAC/Bs/B,EAAEjqB,QAAqC,GAA3BiqB,EAAEjqB,QAAQ4lB,cAAqB,gBAA6C,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,gCAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,0BAAoD,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,YAAyC,GAA3BqE,EAAEjqB,QAAQ4lB,cAAqB,SAAW,GAAK,SAOrR,MAGN,SAOhBx2B,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,YAC7B,YAGAuX,EAAMxQ,IAAMjC,GAAYQ,WACvBrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAhcUowD,KAChCh6B,EAAQ,CACN53B,MAAO,oEACPo9B,YAAa,2CACb37B,SAAUhE,EAAM6lB,MAAMnN,UACtBknB,iBAAkB5/B,EAAM6lB,MAAMnN,UAAY,eAAiB,gBAC3DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS2c,GAAYW,wBAAwBrjB,EAAO4H,QAybhCrR,SAA0C,GAAhChE,EAAM6lB,MAAMxK,kBAA6Brb,EAAM6lB,MAAMnN,UAC/D+kB,UAAWl9B,IAAAC,cAACu7B,KAAS,MACrB4B,QAAS39B,EAAM6lB,MAAMnN,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzB,GAAhCF,EAAM6lB,MAAMxK,iBAA4B,kBAAoBrb,EAAM6lB,MAAMnN,UAAY,sBAAwB,kBAE/GnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QArdUqwD,KAChCj6B,EAAQ,CACN53B,MAAO,oEACPo9B,YAAa,2CACb37B,SAAUhE,EAAM6lB,MAAMnN,UACtBknB,iBAAkB5/B,EAAM6lB,MAAMnN,UAAY,eAAiB,gBAC3DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS2c,GAAYU,wBAAwBpjB,EAAO4H,QA8chCrR,SAA0C,GAAhChE,EAAM6lB,MAAMxK,kBAA4Brb,EAAM6lB,MAAMnN,UAC9D+kB,UAAWl9B,IAAAC,cAAC6kD,KAAQ,MACpB1nB,QAAS39B,EAAM6lB,MAAMnN,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzB,GAAhCF,EAAM6lB,MAAMxK,iBAA2B,kBAAoBrb,EAAM6lB,MAAMnN,UAAY,sBAAwB,mBAG9G,KACJnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,YACRnJ,MAAM,EACNiH,KAAK,SACL0C,SAAUhE,EAAM6lB,MAAMnN,UACtB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM6lB,MAAMnN,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzDuN,EAAO4H,GAAMrV,EAAM6lB,MAAMnN,UAAY,6BAAyB,YAAgB1Y,EAAM6lB,MAAMnN,UAAY,0BAAsB,iBAW1I+oC,EACClhD,IAAAC,cAACy9C,GAAgB,CAACnkB,OAAQ6nB,EAAe5nB,MAAO0nB,EAAczhD,MAAOA,EAAOg0D,QAASvmD,EAAO4H,KAE5F,KAIDonC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBI,uBAG3B,U,6CCrmBV,MASMmsD,GAAY/vD,YAAO,MAAPA,CAAc,MAC9Bq1B,WAAY,EACZt8B,gBAAiB,UACjBwB,aAAc,EACdE,QAAS,EACTjD,MAAO,UACPmD,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZ0+B,UAAW,KAicP82B,GAAoBhqB,qBACxBxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aApdvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA+cyBsuC,CA/bzBvqC,IAEZ,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,KAAE2L,GAAS3L,EAAM2L,MACjB,eAAEwL,GAAmBnX,EAAM2L,MAC3B,UAAE+M,GAAc1Y,EAAM2L,MAErBwE,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBq6B,EAAoBC,GAAyBt6B,oBAAS,IACtDu6B,EAAaC,GAAkBx6B,oBAAS,IAExCliB,EAAQ28C,GAAaz6B,mBAAS,IAE9B06B,EAAaC,GAAkB36B,oBAAS,GACzC46B,EAAoBA,IAAMD,GAAgBD,GAG1CrY,EADW+D,wBACUv+C,OAErB,QAAEgW,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAIR,GAFA4Q,EAAS6O,GAAWrM,SAEhBumC,EAAW,CACbmX,EAAU,KACVc,GAAsB,GAEtB,IAAIh+C,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ,EACRp3B,QAAQ,EACRqxC,YAAaN,GAGfjhD,EAAS6O,GAAWC,QAAQ9L,GAAa,IAG3CmvC,WAAW,KACT6O,GAAsB,IACrB,MAEF,CAAC5Z,EAAWpnC,EAAUuE,EAASsiC,EAAOM,EAAO/Q,EAAM2S,EAAWhC,EAAMka,IAcvE7xD,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAC9B,IAAI/jC,EAAc,KAGhBA,EADEpD,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,YACxD,CACZzR,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7B+iC,OAAQyB,EAAY,EAAIgY,EAAqB,GAAME,GAAyB,IAAVtkD,EAAgB,EAAIA,EACtF4kD,YAAaN,EACb/wC,QAAQ,GAII,CACZphB,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXma,YAAaN,EACb/wC,QAAQ,GAIZlQ,EAAS6O,GAAWC,QAAQ9L,GAAa,KAI3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,EAASw8C,EAAoBhY,EAAWpsC,EAAQqD,EAAUihD,IAE3G,MAAM3Y,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAkBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,SACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAAA,WACGmL,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAAS,EAC3ClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQkF,EAAKlF,OACb22C,SAAU,sBACV76C,MAAO,kCACPujC,KAAM,kBACNuX,WAAYv1C,GAAmBwC,wBAGjC/J,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQ,EACR22C,SAAU,sBACV76C,MAAO,kCACPujC,KAAM,kBACNkvB,MAAM,OACN3X,WAAYv1C,GAAmBwC,wBAGnC/J,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAjDa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAmDTyN,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,cACpExT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SA1Dc4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,OAEG,MAAtB6P,EAAM7G,OAAOhJ,MACf+uD,GAAe,GAEfA,GAAe,IAqDC/uD,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,UAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,sBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,yBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,KAAKm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACzD,gBAAiB,CACfr4C,MAAOmQ,GAAO,QAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,uBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,0BAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,aAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,iBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,GAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACvD,gBAAiB,CACfr4C,MAAO,WAEJygC,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eAMxDjD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,uBACzBvG,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,KACPp7B,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAChCkF,EAAKqB,IAAKouB,GAER76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7U,SAAW6U,EAAE7U,SAAS3f,KAAO,IAElCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC9Ds8B,EAAE9V,SACD/kB,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,gBAGtI,KACJuE,IAAAC,cAAA,QAAMiD,MAAO,CAAEq8B,cAAe,WAAY,IAAE1E,EAAEv0B,OAAS,IAAA7I,OAAIo9B,EAAE/lB,GAAE,KAAM+lB,EAAEv0B,OAAOM,cAAgB,KAE/FiM,GAAYW,aAnOvC,SAAkBpI,GAAO,IAADwpD,EAAAC,EAAAC,EAAAvpD,EACtB,MAAM8M,EAAYxF,GAAYW,YAAkC,QAAvBohD,EAAGn1D,EAAMumC,sBAAc,IAAA4uB,GAAM,QAANC,EAApBD,EAAsB1hD,YAAI,IAAA2hD,GAAqB,QAArBC,EAA1BD,EAA4B16C,iBAAiB,UAAE,IAAA26C,OAA3B,EAApBA,EAAiDz8C,UAAY,EAEzG,OAA2B,QAA3B9M,EAAOH,EAAKI,uBAAe,IAAAD,OAAA,EAApBA,EAAsBs8B,KAAKktB,GAAaA,EAAU18C,YAAcA,GAAkC,IAArB08C,EAAUnlD,QAgO1ColD,CAASn6B,GAAK76B,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,+CAA+C,MAEnOuE,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACvB,MAAlBs0B,EAAE1vB,aAAuB8iD,KAAKC,aAAa,QAAS,CACnDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,uBAAyB,SAEvCplB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC5Cj/B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAOmQ,GAAOmvB,EAAEvvB,eAAiB,KAAOuvB,EAAE1vB,cAAezP,SAAU,GAAIkD,YAAa,KACtGoB,IAAAC,cAAA,YAAOiL,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,IAC7CA,EAAErU,eAAiBqU,EAAErU,cAActgB,OAAS,GAC3ClG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,0CACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEk2B,WAAY,EAAG56B,QAAS,EAAGD,WAAY,SAAU0+B,UAAW,IACxEj9B,IAAAC,cAACi1D,KAAe,SAKxBl1D,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACd,qBAAhD2M,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,GACtC76B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,UAAWmD,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAU0+B,UAAW,IAC/Jj9B,IAAAC,cAACk1D,KAAS,CAACvhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC5CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEpU,wBAAwB,OAG/D,KAEHoU,EAAEu6B,2BAA6B,GAC9Bp1D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qDACbhC,IAAAC,cAAC6zD,GAAS,KACR9zD,IAAAC,cAACo1D,KAAQ,CAACzhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC3CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEu6B,iCAOjDp1D,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAE/lB,KAE1BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMlB3iB,EAAE1vB,cAAgB9D,GACjBrH,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8xD,OApSlBxgD,EAoSwC+lB,EAAE/lB,GAnSvEs/C,EAAUt/C,QACVy/C,IAF6Bz/C,OAqSGnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,UAKjB,QAOThhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBqX,EACCr0D,IAAAC,cAACs1D,GAAe,CACdh8B,OAAQg7B,EACR/6B,MAAO66B,EACP50D,MAAOA,EACPgY,OAAQA,EACRnT,QAAQ,IAGV,UC9bJwvD,GAAY/vD,YAAO,MAAPA,CAAc,MAC9Bq1B,WAAY,EACZt8B,gBAAiB,UACjBwB,aAAc,EACdE,QAAS,EACTjD,MAAO,UACPmD,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZ0+B,UAAW,KAubP82B,GAAoBhqB,qBACxBxB,aANuB/mC,IAChB,CACL4J,KAAM5J,EAAM4J,OAIW,KAAM,KAA/Bm9B,CAAqCyB,aA1cvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAqcyBsuC,CArbhBvqC,IAErB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,KAAE2L,GAAS3L,EAAM2L,MACjB,eAAEwL,GAAmBnX,EAAM2L,MAC3B,UAAE+M,GAAc1Y,EAAM2L,MACrBqM,EAAQ28C,GAAaz6B,mBAAS,IAE9B/pB,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBq6B,EAAoBC,GAAyBt6B,oBAAS,IACtDu6B,EAAaC,GAAkBx6B,oBAAS,GAGzCqiB,EADW+D,wBACUv+C,OAErB,QAAEgW,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGZo8B,EAAaC,GAAkB36B,oBAAS,GACzC46B,EAAoBA,IAAMD,GAAgBD,GAOhDhyD,oBAAU,KAIR,GAFA4Q,EAAS6O,GAAWrM,SAEhBumC,EAAW,CACbmX,EAAU,KACVc,GAAsB,GAEtB,IAAIh+C,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ,EACRp3B,QAAQ,EACRqxC,YAAaN,GAGfjhD,EAAS6O,GAAWC,QAAQ9L,GAAa,IAG3CmvC,WAAW,KACT6O,GAAsB,IACrB,MAEF,CAAC5Z,EAAWpnC,EAAUuE,EAASsiC,EAAOM,EAAO/Q,EAAM2S,EAAWhC,EAAMka,IAEvE7xD,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAC9B,IAAI/jC,EAAc,KAGhBA,EADEpD,GAAYQ,YAAcR,GAAYU,eAC1B,CACZxR,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7B+iC,OAAQyB,EAAY,EAAIgY,EAAqB,GAAME,GAAyB,IAAVtkD,EAAgB,EAAIA,EACtF4kD,YAAaN,EACb/wC,QAAQ,GAII,CACZphB,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXma,YAAaN,EACb/wC,QAAQ,GAIZlQ,EAAS6O,GAAWC,QAAQ9L,GAAa,KAI3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,EAASw8C,EAAoBhY,EAAWpsC,EAAQqD,EAAUihD,IAE3G,MAAM3Y,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAkBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,SACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAAA,WACGmL,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAAS,EAC3ClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQkF,EAAKlF,OACb22C,SAAU,sBACV76C,MAAO,+BACPujC,KAAM,qBAGRvlC,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQ,EACR22C,SAAU,sBACV76C,MAAO,+BACPujC,KAAM,mBACNuX,WAAYv1C,GAAmByC,gCAGnChK,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA/Ca4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,QA+CP03C,WAAYv1C,GAAmByC,kCAGjC6I,GAAYQ,YAAcR,GAAYU,iBACtCvT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SAzDc4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,OAEG,MAAtB6P,EAAM7G,OAAOhJ,MACf+uD,GAAe,GAEfA,GAAe,IAoDC/uD,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,UAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,sBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,yBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,KAAKm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACzD,gBAAiB,CACfr4C,MAAOmQ,GAAO,QAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,uBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,aAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,iBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,GAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACvD,gBAAiB,CACfr4C,MAAO,WAEJygC,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eAMxDjD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,uBACzBvG,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,KACPp7B,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAChCkF,EAAKqB,IAAKouB,GAER76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7U,SAAW6U,EAAE7U,SAAS3f,KAAO,IAElCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC9Ds8B,EAAE9V,SACD/kB,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,gBAGtI,KACJuE,IAAAC,cAAA,QAAMiD,MAAO,CAAEq8B,cAAe,WAAY,IAAE1E,EAAEv0B,OAAS,IAAA7I,OAAIo9B,EAAE/lB,GAAE,KAAM+lB,EAAEv0B,OAAOM,cAAgB,MAGlG5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE1vB,cAAgB9D,GAA4B4mD,KAAKC,aAAa,QAAS,CACxEhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,uBAAyB,SAEvCplB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC5Cj/B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAOmQ,GAAOmvB,EAAEvvB,eAAiB,KAAOuvB,EAAE1vB,cAAezP,SAAU,GAAIkD,YAAa,KACtGoB,IAAAC,cAAA,YAAOiL,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,IAC7CA,EAAErU,eAAiBqU,EAAErU,cAActgB,OAAS,GAC3ClG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,0CACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEk2B,WAAY,EAAG56B,QAAS,EAAGD,WAAY,SAAU0+B,UAAW,IACxEj9B,IAAAC,cAACi1D,KAAe,SAKxBl1D,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACd,qBAAhD2M,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,GACtC76B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,UAAWmD,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAU0+B,UAAW,IAC/Jj9B,IAAAC,cAACk1D,KAAS,CAACvhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC5CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEpU,wBAAwB,OAG/D,KAEHoU,EAAEu6B,2BAA6B,GAC9Bp1D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qDACbhC,IAAAC,cAAC6zD,GAAS,KACR9zD,IAAAC,cAACo1D,KAAQ,CAACzhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC3CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEu6B,iCAOjDp1D,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAE/lB,KAE1BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8xD,OA9ThBxgD,EA8TsC+lB,EAAE/lB,GA7TrEs/C,EAAUt/C,QACVy/C,IAF6Bz/C,OA+TCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBqX,EACCr0D,IAAAC,cAACs1D,GAAe,CACdh8B,OAAQg7B,EACR/6B,MAAO66B,EACP50D,MAAOA,EACPgY,OAAQA,EACRnT,QAAQ,IAGV,UClbJwvD,GAAY/vD,YAAO,MAAPA,CAAc,MAC9Bq1B,WAAY,EACZt8B,gBAAiB,UACjBwB,aAAc,EACdE,QAAS,EACTjD,MAAO,UACPmD,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZ0+B,UAAW,KAsbP82B,GAAoBhqB,qBACxBxB,aANuB/mC,IAChB,CACL4J,KAAM5J,EAAM4J,OAIW,KAAM,KAAM,CACnCoqD,MAAM,GADRjtB,CAEGyB,aA3cWlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAscTsuC,CAtbuBvqC,IAE1B,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,KAAE2L,GAAS3L,EAAM2L,MACjB,eAAEwL,GAAmBnX,EAAM2L,MAC3B,UAAE+M,GAAc1Y,EAAM2L,MACrBqM,EAAQ28C,GAAaz6B,mBAAS,IAE9B/pB,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBq6B,EAAoBC,GAAyBt6B,oBAAS,IACtDu6B,EAAaC,GAAkBx6B,oBAAS,GAGzCqiB,EADW+D,wBACUv+C,OAEpB6yD,EAAaC,GAAkB36B,oBAAS,GACzC46B,EAAoBA,IAAMD,GAAgBD,IAO1C,QAAE78C,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAIR,GAFA4Q,EAAS6O,GAAWrM,SAEhBumC,EAAW,CACbmX,EAAU,KACVc,GAAsB,GAEtB,IAAIh+C,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ,EACRt3B,kBAAkB,EAClBuxC,YAAaN,GAGfjhD,EAAS6O,GAAWC,QAAQ9L,GAAa,IAG3CmvC,WAAW,KACT6O,GAAsB,IACrB,MAEF,CAAC5Z,EAAWpnC,EAAUuE,EAASsiC,EAAOM,EAAO/Q,EAAM2S,EAAWhC,EAAMka,IAEvE7xD,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAC9B,IAAI/jC,EAAc,KAGhBA,EADEpD,GAAYQ,YAAcR,GAAYU,eAC1B,CACZxR,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7B+iC,OAAQyB,EAAY,EAAIgY,EAAqB,GAAME,GAAyB,IAAVtkD,EAAgB,EAAIA,EACtF4kD,YAAaN,EACbjxC,kBAAkB,GAIN,CACZlhB,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXma,YAAaN,EACbjxC,kBAAkB,GAItBhQ,EAAS6O,GAAWC,QAAQ9L,GAAa,KAI3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,EAASw8C,EAAoBhY,EAAWpsC,EAAQqD,EAAUihD,IAE3G,MAAM3Y,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAiBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,SACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAAA,WACGmL,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAAS,EAC3ClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQkF,EAAKlF,OACb42C,WAAYv1C,GAAmBsD,6BAC/BgyC,SAAU,sBACV76C,MAAO,gCACPujC,KAAM,yCAGRvlC,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQ,EACR22C,SAAU,sBACV76C,MAAO,gCACPujC,KAAM,uCACNuX,WAAYv1C,GAAmBsD,+BAGnC7K,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA/Ca4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAiDTyN,GAAYQ,YAAcR,GAAYU,iBACtCvT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SAxDc4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,OAEG,MAAtB6P,EAAM7G,OAAOhJ,MACf+uD,GAAe,GAEfA,GAAe,IAmDC/uD,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,UAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,sBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,yBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,KAAKm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACzD,gBAAiB,CACfr4C,MAAOmQ,GAAO,QAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,uBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,aAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,iBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,GAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACvD,gBAAiB,CACfr4C,MAAO,WAEJygC,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eAMxDjD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,uBACzBvG,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,KACPp7B,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAChCkF,EAAKqB,IAAKouB,GAER76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7U,SAAW6U,EAAE7U,SAAS3f,KAAO,IAElCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC9Ds8B,EAAE9V,SACD/kB,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,WAGtI,KACJuE,IAAAC,cAAA,QAAMiD,MAAO,CAAEq8B,cAAe,WAAY,IAAE1E,EAAEv0B,OAAS,IAAA7I,OAAIo9B,EAAE/lB,GAAE,KAAM+lB,EAAEv0B,OAAOM,cAAgB,MAGlG5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE1vB,cAAgB9D,GAA4B4mD,KAAKC,aAAa,QAAS,CACxEhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,uBAAyB,SAEvCplB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC5Cj/B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAOmQ,GAAOmvB,EAAEvvB,eAAiB,KAAOuvB,EAAE1vB,cAAezP,SAAU,GAAIkD,YAAa,KACtGoB,IAAAC,cAAA,YAAOiL,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,IAC7CA,EAAErU,eAAiBqU,EAAErU,cAActgB,OAAS,GAC3ClG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,wDACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEk2B,WAAY,EAAG56B,QAAS,EAAGD,WAAY,SAAU0+B,UAAW,IACxEj9B,IAAAC,cAACi1D,KAAe,SAKxBl1D,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACd,qBAAhD2M,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,GACtC76B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,oDACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,UAAWmD,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAU0+B,UAAW,IAC/Jj9B,IAAAC,cAACk1D,KAAS,CAACvhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC5CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEpU,wBAAwB,OAG/D,KAEHoU,EAAEu6B,2BAA6B,GAC9Bp1D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qDACbhC,IAAAC,cAAC6zD,GAAS,KACR9zD,IAAAC,cAACo1D,KAAQ,CAACzhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC3CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEu6B,iCAOjDp1D,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAE/lB,KAE1BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8xD,OAjUhBxgD,EAiUsC+lB,EAAE/lB,GAhUrEs/C,EAAUt/C,QACVy/C,IAF6Bz/C,OAkUCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBqX,EACCr0D,IAAAC,cAACs1D,GAAe,CACdh8B,OAAQg7B,EACR/6B,MAAO66B,EACP50D,MAAOA,EACPgY,OAAQA,EACRsL,kBAAkB,IAGpB,UCjbJ+wC,GAAY/vD,YAAO,MAAPA,CAAc,MAC9Bq1B,WAAY,EACZt8B,gBAAiB,UACjBwB,aAAc,EACdE,QAAS,EACTjD,MAAO,UACPmD,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZ0+B,UAAW,KAsbP82B,GAAoBhqB,qBACxBxB,aANuB/mC,IAChB,CACL4J,KAAM5J,EAAM4J,OAIW,KAAM,KAAM,CACnCoqD,MAAM,GADRjtB,CAEGyB,aA3cWlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAscTsuC,CAtbwBvqC,IAE3B,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,KAAE2L,GAAS3L,EAAM2L,MACjB,eAAEwL,GAAmBnX,EAAM2L,MAC3B,UAAE+M,GAAc1Y,EAAM2L,MACrBqM,EAAQ28C,GAAaz6B,mBAAS,IAE9B/pB,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBq6B,EAAoBC,GAAyBt6B,oBAAS,IACtDu6B,EAAaC,GAAkBx6B,oBAAS,GAGzCqiB,EADW+D,wBACUv+C,OAEpB6yD,EAAaC,GAAkB36B,oBAAS,GACzC46B,EAAoBA,IAAMD,GAAgBD,IAE1C,QAAE78C,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAQnB51B,oBAAU,KAIR,GAFA4Q,EAAS6O,GAAWrM,SAEhBumC,EAAW,CACbmX,EAAU,KACVc,GAAsB,GAEtB,IAAIh+C,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ,EACRr3B,mBAAmB,EACnBsxC,YAAaN,GAGfjhD,EAAS6O,GAAWC,QAAQ9L,GAAa,IAG3CmvC,WAAW,KACT6O,GAAsB,IACrB,MAEF,CAAC5Z,EAAWpnC,EAAUuE,EAASsiC,EAAOM,EAAO/Q,EAAM2S,EAAWhC,EAAMka,IAEvE7xD,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAC9B,IAAI/jC,EAAc,KAGhBA,EADEpD,GAAYQ,YAAcR,GAAYU,eAC1B,CACZxR,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7B+iC,OAAQyB,EAAY,EAAIgY,EAAqB,GAAME,GAAyB,IAAVtkD,EAAgB,EAAIA,EACtF4kD,YAAaN,EACbhxC,mBAAmB,GAIP,CACZnhB,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXn3B,mBAAmB,EACnBsxC,YAAaN,GAIjBjhD,EAAS6O,GAAWC,QAAQ9L,GAAa,KAI3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,EAASw8C,EAAoBhY,EAAWpsC,EAAQqD,EAAUihD,IAE3G,MAAM3Y,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAiBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,SACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAAA,WACGmL,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAAS,EAC3ClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQkF,EAAKlF,OACb22C,SAAU,sBACV76C,MAAO,oCACPujC,KAAM,wCACNuX,WAAYv1C,GAAmBuD,iCAGjC9K,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,eACNxhC,OAAQ,EACR22C,SAAU,sBACV76C,MAAO,oCACPujC,KAAM,wCACNuX,WAAYv1C,GAAmBuD,iCAGnC9K,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA/Ca4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAiDTyN,GAAYQ,YAAcR,GAAYU,iBACtCvT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SAxDc4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,OAEG,MAAtB6P,EAAM7G,OAAOhJ,MACf+uD,GAAe,GAEfA,GAAe,IAmDC/uD,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,UAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,sBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,yBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,KAAKm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACzD,gBAAiB,CACfr4C,MAAOmQ,GAAO,QAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,uBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,kBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,aAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACxD,gBAAiB,CACfr4C,MAAOmQ,GAAO,OAEXswB,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,iBAE9CjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,GAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,KAAKi0C,GAAI,CACvD,gBAAiB,CACfr4C,MAAO,WAEJygC,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eAMxDjD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,uBACzBvG,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,KACPp7B,QAAQpE,IAAcoE,GAAQA,EAAKlF,OAChCkF,EAAKqB,IAAKouB,GAER76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7U,SAAW6U,EAAE7U,SAAS3f,KAAO,IAElCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC9Ds8B,EAAE9V,SACD/kB,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAAO,WAGtI,KACJuE,IAAAC,cAAA,QAAMiD,MAAO,CAAEq8B,cAAe,WAAY,IAAE1E,EAAEv0B,OAAS,IAAA7I,OAAIo9B,EAAE/lB,GAAE,KAAM+lB,EAAEv0B,OAAOM,cAAgB,MAGlG5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE1vB,cAAgB9D,GAA4B4mD,KAAKC,aAAa,QAAS,CACxEhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,uBAAyB,SAEvCplB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC5Cj/B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAOmQ,GAAOmvB,EAAEvvB,eAAiB,KAAOuvB,EAAE1vB,cAAezP,SAAU,GAAIkD,YAAa,KACtGoB,IAAAC,cAAA,YAAOiL,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,IAC7CA,EAAErU,eAAiBqU,EAAErU,cAActgB,OAAS,GAC3ClG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,4CACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEk2B,WAAY,EAAG56B,QAAS,EAAGD,WAAY,SAAU0+B,UAAW,IACxEj9B,IAAAC,cAACi1D,KAAe,SAKxBl1D,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACd,qBAAhD2M,GAAoB2vB,EAAE1vB,aAAc0vB,GAAG,GACtC76B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,wCACbhC,IAAAC,cAAA,OAAKiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,UAAWmD,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAU0+B,UAAW,IAC/Jj9B,IAAAC,cAACk1D,KAAS,CAACvhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC5CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEpU,wBAAwB,OAG/D,KAEHoU,EAAEu6B,2BAA6B,GAC9Bp1D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qDACbhC,IAAAC,cAAC6zD,GAAS,KACR9zD,IAAAC,cAACo1D,KAAQ,CAACzhB,GAAI,CAAEl4C,SAAU,GAAIkD,YAAa,KAC3CoB,IAAAC,cAAA,QAAMiD,MAAO,CAAEzH,WAAY,MAAQo/B,EAAEu6B,iCAOjDp1D,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAE/lB,KAE1BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8xD,OA7ThBxgD,EA6TsC+lB,EAAE/lB,GA5TrEs/C,EAAUt/C,QACVy/C,IAF6Bz/C,OA8TCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBqX,EACCr0D,IAAAC,cAACs1D,GAAe,CACdh8B,OAAQg7B,EACR/6B,MAAO66B,EACP50D,MAAOA,EACPgY,OAAQA,EACR0M,mBAAmB,IAGrB,UChLJsxC,GAAuC1rB,qBAC3CxB,aANuB/mC,IAChB,CACL4J,KAAM5J,EAAM4J,OAIW,KAAM,KAA/Bm9B,CAAqCyB,aA/QvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA0QyBsuC,CAtQNvqC,IAEfo6B,cAAhB,MACM5mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,KAAE2L,GAAS3L,EAAM2L,MACjB,eAAEwL,GAAmBnX,EAAM2L,MAC3B,UAAE+M,GAAc1Y,EAAM2L,MAErBwE,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,EACT+iC,OAAQ,EACRmb,iBAAiB,GAGnBziD,EAAS6O,GAAWC,QAAQ9L,GAAa,KAI3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,KACUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACPziC,QAASH,EACT8I,UAAW+5B,EACXE,OAAQ,EACRmb,iBAAiB,GAEnBziD,EAAS6O,GAAWC,QAAQ9L,GAAa,KAG3CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAACtqC,IAEJvN,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM2L,KAAK+M,YAEtB,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAOV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,8BACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,aACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcoE,GAAQA,EAAKlF,OAAS,EACnClG,IAAAC,cAAC28C,GAAY,CACX12C,OAAQkF,EAAKlF,OACb22C,SAAU,uBACV76C,MAAO,sCACP86C,WAAYv1C,GAAmB6C,qCAGjCpK,IAAAC,cAAC28C,GAAY,CACX12C,OAAQ,EACR22C,SAAU,uBACV76C,MAAO,sCACP86C,WAAYv1C,GAAmB6C,qCAGnCpK,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAjCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAoCbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,uBACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,gBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcoE,GAAQA,EAAKlF,OACxBkF,EAAKqB,IAAKouB,GAER76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/lB,GAAK+lB,EAAE/lB,GAAK,IAEjB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjY,YAAcpT,KAAOqrB,EAAEjY,aAAa4P,OAAO,cAAgB,IAEhExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEv0B,OAASu0B,EAAEv0B,OAAOM,cAAgB,IAEvC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzC0nD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,wBAEdplB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,yBACNM,IAAKA,IACHn1B,GAAYW,YAERxT,IAAAC,cAACi/B,KAAU,CACT+H,aAAYpM,EAAErvB,gBAAgBtF,OAAS,EAAI,eAAiB,kBAC5DzF,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,kBAADtQ,OAAmBo9B,EAAErvB,gBAAgBtF,OAAS,EAAI20B,EAAErvB,gBAAgB,GAAGsJ,GAAK,IAAM+lB,EAAE/lB,IAElGnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO64B,EAAErvB,gBAAgBtF,OAAS,EAAI,eAAiB,mBAC9DlG,IAAAC,cAAC8F,KAAO,KACL80B,EAAErvB,gBAAgBtF,OAAS,EAAIlG,IAAAC,cAACu9C,KAAQ,MAAMx9C,IAAAC,cAAC6xD,KAAQ,SAO9D9xD,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,kBACXxmC,UAAU,IACV+C,QAASA,IAAMqD,GAAQkH,KAAK,kBAAmB8sB,EAAE/lB,IACjDnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,mBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC6xD,KAAQ,cAa5B35C,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,aC3NhB2Y,OA1EItxD,IAA6B,IAA5B,YAAEuxD,EAAW,MAAEn2D,GAAO4E,EACxC,MAAOwxD,EAAQC,GAAan8B,mBAAS,IAC9BqF,EAAO+2B,GAAYp8B,mBAAS,GAC7B1mB,EAAW6mB,eAyCjB,OA1BAz3B,oBAAU,KACR,GAAmB,GAAfuzD,EAAqB,CACvBE,EAAU,GACVC,EAAS,GAET,IAAIC,EAAkB,CACpBj1D,KAAM,OACNqN,OAAQ,CACNhJ,MAAO,IAIX6N,EAASkV,GAAoBnT,cAAc,OAAQghD,MAEpD,CAACJ,IAGJvzD,oBAAU,KACwB,GAA5B5C,EAAM+oB,cAAcC,OACtBqtC,EAAUr2D,EAAM+oB,cAAcC,MAC9BstC,EAASt2D,EAAM+oB,cAAcC,OAG/BvW,QAAQC,IAAI,2BAA4B1S,EAAM+oB,cAAcC,OAC3D,CAAChpB,EAAM+oB,cAAcC,OAGtBzoB,IAAAC,cAAA,OAAKP,UAAU,eACZ,IAAI+mC,MAAM,IAAIh6B,IAAI,CAACwpD,EAAMv3B,KACxBA,GAAS,EAEP1+B,IAAAC,cAAA,UACEc,KAAK,SACLk7B,OAAO,SACP/4B,MAAO,CACLpG,gBAAiB,cACjBuG,OAAQ,OACR6yD,QAAS,OACT/xD,OAAQ,UACR5I,MAAOmjC,IAAUM,GAAS62B,GAAU,UAAY,OAChDn6D,SAAU,IAEZ0F,IAAKs9B,EACLh/B,UAAWg/B,IAAUM,GAAS62B,GAAU,KAAO,MAC/CryD,QAASA,IAzDKk7B,KACtBo3B,EAAUp3B,GAEV,IAAIs3B,EAAkB,CACpBj1D,KAAM,OACNqN,OAAQ,CACNhJ,MAAOs5B,IAIXzrB,EAASkV,GAAoBnT,cAAc,OAAQghD,KA+C5BG,CAAez3B,GAC9B03B,aAAcA,IAAML,EAASr3B,GAC7B23B,aAAcA,IAAMN,EAASF,IAE7B71D,IAAAC,cAAA,QAAMP,UAAU,QAAO,e,8BCkBnC,MAyZM42D,GAAwBvsB,qBAC5BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAhcvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAqa4ByuC,CA1ZZvqC,IAEzB,MAAMwT,EAAW6mB,eACXF,EAAUC,eAEV,QAAE95B,EAAO,OAAE0X,GAAoBhY,GAC7Bs8C,OAAO,OAAE7uC,KADerN,YAAKJ,EAAKK,IACZL,IACxB,eAAEmX,GAAmBnX,EAAM+oB,eAC3B,UAAErQ,GAAc1Y,EAAM2L,KACtBwyC,EAAU59C,IAAM69C,UAAU,OACzBz8C,EAAK4jD,GAAUrrB,mBAAS,IAExB0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEtBhd,EAAMwyB,GAAWxV,oBAAS,IAC1Bi8B,EAAaW,GAAkB58B,oBAAS,IACxC30B,EAAQitD,GAAat4B,mBAAS,KAC9B7nB,EAAMmzC,GAAWtrB,wBAAS3yB,IAE1BwvD,EAAUC,GAAe98B,mBAAS,KACnC,cAAEnR,GAAkBud,aACvBvkC,GAAUA,EAAMgnB,gBAEb,UAAEuM,GAAcgR,aACnBvkC,GAAUA,EAAMuzB,WAEnB1yB,oBAAU,KACR4Q,EAASkV,GAAoB1S,SAEkB,GAA3ChW,EAAMumC,eAAe9yB,KAAKsjB,cAC5BigC,EAAY,CAAAn5D,wBAAA,GAAMmC,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,IAAE,IAAEwkC,UAAU,MAE3E1tC,GACG1D,IAAI,uCAAD9P,OAAwCga,IAC3CjH,KAAKb,IAAQ,IAAA+mD,EAAA,OAAID,EAAyB,QAAdC,EAAC/mD,EAAS9D,YAAI,IAAA6qD,OAAA,EAAbA,EAAejqD,IAAIkqD,GAAOr5D,wBAAA,GAAYq5D,GAAC,IAAEhY,UAAU,SAEpF,IAEHt8C,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAASH,GAAoB,IAAVA,GAAgBA,GAGrCxE,EAASkV,GAAoBC,iBAAiBnS,GAAa,KAI7DqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW5iC,IAEjDpV,oBAAU,OAEP,CAACuU,EAAgBuB,IAGpB,MAuDM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAASkV,GAAoBnT,cAAc+oC,EAAM9oC,KAiCnD,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,yBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,2BAIV,SAASimC,IACP,OAAIzmC,EAAM+oB,cAAc1T,GACf9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,OAKEjmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,gBACHmpC,SAAWhpC,GA/DGA,KAEpB,GAAqC,IAAjCxV,EAAM+oB,cAAcvJ,WAAoD,MAAjCxf,EAAM+oB,cAAcvJ,UAC7DpS,IAAMlS,MAAM,4DAET,GAAqC,IAAjC8E,EAAM+oB,cAAcnQ,WAAoD,MAAjC5Y,EAAM+oB,cAAcnQ,UAClExL,IAAMlS,MAAM,oDACP,GAAgC,IAA5B8E,EAAM+oB,cAAcC,MAA0C,MAA5BhpB,EAAM+oB,cAAcC,MAA4C,GAA5BhpB,EAAM+oB,cAAcC,KACnG5b,IAAMlS,MAAM,gDACP,CACL,IAAI0V,EAAU,CACZyE,GAAIrV,EAAM+oB,cAAc1T,GACxB2C,OAAQkkC,SAASlkC,GACjBY,UAAW5Y,EAAM+oB,cAAcnQ,UAC/Bb,QAAS/X,EAAM2L,KAAKoM,QACpBiR,KAAMhpB,EAAM+oB,cAAcC,KAC1BxJ,UAAWxf,EAAM+oB,cAAcvJ,WAG7Bxf,EAAM+oB,cAAc1T,IACtB7B,EAASkV,GAAoBO,sBAAsBjpB,EAAM+oB,cAAc1T,GAAIzE,GAAS,IACpFkmD,GAAe,KAEftjD,EAASkV,GAAoBQ,oBAAoBtY,IACjDkmD,GAAe,MAuCQpY,IAErBn+C,IAAAC,cAAComC,KAAU,CACTC,UAAU,8BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGm1C,GAAI,CAAEl1C,QAAS,OAAQH,WAAY,WAC7DyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,YACHknB,MAAM,UACN32B,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAM+oB,cAAcnQ,UAC3B4jB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,GAETh7B,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,cAEG,OAARu2D,QAAQ,IAARA,OAAQ,EAARA,EAAU/pD,IAAI,CAACw2C,EAAKvkB,IACnB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI5qC,WAC9B4qC,EAAI3qC,YAKbtY,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,uDAElCjD,IAAAC,cAAC01D,GAAU,CAACl2D,MAAOA,EAAOm2D,YAAaA,KAEzC51D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTmoB,WAAS,EACTC,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,YACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAM+oB,cAAcvJ,WAAa,GACxChc,QAAQ,iBAMlBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IA1LHk8B,MAClBzsB,EAASkV,GAAoB1S,SAE7B,IAAIQ,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAASH,GAAoB,IAAVA,GAAgBA,GAGrCxE,EAASkV,GAAoBC,iBAAiBnS,GAAa,IAS3DhD,EAASkV,GAAoBnT,cAAc,OAPrB,CACpBjU,KAAM,OACNqN,OAAQ,CACNhJ,MAAO,MAKXmxD,GAAe,GAEf92D,EAAM+oB,cAAcC,KAAO,EAE3BvW,QAAQC,IAAI,sBAAuB1S,EAAM+oB,cAAcC,MACvDu8B,EAAO,IA+JoBtlB,IAChB,YAGD1/B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM+oB,cAAcrQ,WAAoD,KAAvC1Y,EAAM+oB,cAAcrD,iBAA0BxI,EACzFugB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM+oB,cAAcrQ,WAAawE,GAAQ3c,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEzEF,EAAM+oB,cAAc1T,GAAMrV,EAAM+oB,cAAcrQ,UAAY,iCAA6B,YAAgB1Y,EAAM+oB,cAAcrQ,UAAY,8BAA0B,cAO5KnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAAUy4C,EAAa,YAI7B99C,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,WACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcwhB,GAAiBA,EAActiB,OAC1CsiB,EAAc/b,IAAKouB,GAEjB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUuiB,EAAEviB,QAAQoB,aAAe,IAExC1Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE5b,UAAY4b,EAAE5b,UAAY,IAE/Bjf,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEpS,KAAOzoB,IAAAC,cAAC+4C,GAAK,CAACE,UAAWre,EAAEpS,KAAMwwB,WAAY,IAAQ,IAE1Dj5C,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,KAAMozD,OA7PrB9hD,EA6PgC+lB,EAAE/lB,QA5PpD7B,EAASkV,GAAoBI,qBAAqBzT,IADhCA,OA8PMnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,yBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8iD,OA3OnBxxC,EA2OgC+lB,EAAE/lB,QA1OtD8kB,EAAQ,CACN53B,MAAO,qCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM+oB,cAAcrQ,UAC9BknB,iBAAkB5/B,EAAM+oB,cAAcrQ,UAAY,qBAAuB,gBACzEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASkV,GAAoBS,wBAAwB9T,MARnCA,OA4OInV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WAfxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAsBhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAjUmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAiUJC,YAAa3B,EACb4B,oBA/TqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IA8TJuB,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,W,2BCldrDigD,GAAiBxyD,IAA+B,IAA9B,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,GAAO4E,EAErD,MAAM4O,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IACxB,UAAE0xB,GAAc1xB,EAMtB4C,oBAAU,KACR4Q,EAAS6d,GAAgBC,aACxB,IAEH,MAAM+lC,EAAqBC,kBAAQ,KAC1B,CAAEC,OAAQ7lC,EAAUtH,QAC1B,CAACsH,EAAUtH,QAEd,OACE7pB,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAxBf+1B,MAyBMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy+B,WAAY,GAAI7D,WAAY,EAAGx6B,YAAa,EAAGf,aAAc,IAC/FmC,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAErF,aAAc,EAAGuoC,cAAe,EAAGhN,WAAY,GACxDp3B,MAAOhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKsD,MAAM,QACpCvG,IAAAC,cAAA,SAAI,YAGRD,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAA,OAAKiD,MAAO,CAAE+5B,UAAW,GAAI7D,WAAY,EAAGx6B,YAAa,GAAKq4D,wBAAyBH,S,wBC+BnG,MA8gBMR,GAAwBvsB,qBAC5BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aArjBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA0hB4ByuC,CA/gBhBvqC,IAErB,MAAMwT,EAAW6mB,eACXF,EAAUC,eAEV,QAAE95B,EAAO,OAAE0X,GAAoBhY,GAC7Bs8C,OAAO,OAAE7uC,KADerN,YAAKJ,EAAKK,IACZL,IACxB,eAAEmX,GAAmBnX,EAAMwnB,WAC3B,UAAE9O,GAAc1Y,EAAM2L,KACtBwyC,EAAU59C,IAAM69C,UAAU,OACzBz8C,EAAK4jD,GAAUrrB,mBAAS,IAExB0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEtBhd,EAAMwyB,GAAWxV,oBAAS,IAC1B30B,EAAQitD,GAAat4B,mBAAS,KAC9B7nB,EAAMmzC,GAAWtrB,wBAAS3yB,IAE3B,UAAEigB,GAAc8e,aACnBvkC,GAAUA,EAAMylB,YAEb,UAAE8N,GAAcgR,aACnBvkC,GAAUA,EAAMuzB,YAEZmnB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KACR4Q,EAAS0T,GAAgBlR,SAEzBxC,EAAS0hB,GAAgBC,yBAExB,IAEHvyB,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAASH,GAAoB,IAAVA,GAAgBA,GAGrCxE,EAAS0T,GAAgBC,aAAa3Q,GAAa,KAIrDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW5iC,IAEjDpV,oBAAU,OAEP,CAACuU,EAAgBuB,IAGpB,MA8BM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS0T,GAAgB3R,cAAc+oC,EAAM9oC,KA2BzCiwC,EAAkBlqD,IACtBsH,OAAOqa,KAAK3hB,IAOdqH,oBAAU,KACJyP,QAAgB9K,GAAR8K,GAA6B,MAARA,IAC/Bq9B,GAAQ,GACRgW,MAED,CAACrzC,IAEJ,MAAMqzC,EAASA,KACb3yC,GAAWV,GACRtB,KAAMb,IACLy1C,YAAW,WACT,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAAS0T,GAAgB3R,cAAc,eAAgBqwC,IAEvDlW,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MAId,SAASlJ,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,eAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,iBAIV,SAASimC,IACP,OAAIzmC,EAAMwnB,UAAUnS,GACX9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,OAKEjmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GA/FGA,KAEpB,GAAmC,GAA/BxV,EAAMwnB,UAAU5L,aAAmD,MAA/B5b,EAAMwnB,UAAU5L,YACtDxO,IAAMlS,MAAM,iCAET,GAAoC,IAAhC8E,EAAMwnB,UAAU3L,cAAsD,MAAhC7b,EAAMwnB,UAAU3L,aAC7DzO,IAAMlS,MAAM,mCACP,CACL,IAAI0V,EAAU,CACZyE,GAAIrV,EAAMwnB,UAAUnS,GACpB2C,OAAQkkC,SAASlkC,GACjB4D,YAAa5b,EAAMwnB,UAAU5L,YAC7BC,aAAc7b,EAAMwnB,UAAU3L,cAG5B7b,EAAMwnB,UAAUnS,GAClB7B,EAAS0T,GAAgBO,kBAAkBznB,EAAMwnB,UAAUnS,GAAIzE,GAAS,IAExE4C,EAAS0T,GAAgBQ,gBAAgB9W,MA6ElB8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,oBACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAhLrB44C,KAmLYz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGm1C,GAAI,CAAEl1C,QAAS,OAAQH,WAAY,WAC7DyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,UACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,YACN32B,SAAU6I,GApGFA,KACxB+2C,EAAQ/2C,EAAEE,OAAOq3C,MAAM,KAmGQC,CAAiBx3C,GAChCnN,KAAK,OACL4kD,YAAY,qBACZ3W,aAAW,EACX5tC,IAAKA,EACL8hD,UAAQ,EACRjnB,OAAO,WAGXj8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,cACHknB,MAAM,eACNC,OAAO,SACP52B,SAAUy4C,EAAa,eACvB14C,MAAO3F,EAAMwnB,UAAU5L,YACvBygB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,eAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,kBAEJ+iD,mBAAQjuB,SACR/tB,IAAc+tB,GACdA,EAAU7uB,QACV6uB,EAAUtoB,IAAKw2C,GACbjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,YAQrBkF,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KA5MrByP,EAAS0T,GAAgB3K,oBACzBgpC,EAAO,KA4MI,YAGDhlD,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAMwnB,UAAU9O,WAAgD,KAAnC1Y,EAAMwnB,UAAU9B,iBAA0BxI,EACjFugB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMwnB,UAAU9O,WAAawE,GAAQ3c,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAErEF,EAAMwnB,UAAUnS,GAAMrV,EAAMwnB,UAAU9O,UAAY,2BAA6B,YAAgB1Y,EAAMwnB,UAAU9O,UAAY,wBAA0B,cAOhKnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAAUy4C,EAAa,YAI7B99C,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,iBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,SACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcigB,GAAaA,EAAU/gB,OAClC+gB,EAAUxa,IAAKouB,IAEf,MAAM+qB,EAAY/qB,EAAEvf,aAAa/O,MAAM,KACjCs5C,EAAcD,EAAUA,EAAU1/C,OAAS,GAEjD,OACElG,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/lB,GAAK+lB,EAAE/lB,GAAK,IAEjB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE9F,UAAY8F,EAAE9F,UAAU1uB,KAAO,IAEpCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvf,cAA0C,kBAAnBuf,EAAEvf,aAC1Buf,EAAEvf,aAAa9N,cAAc+mC,SAAS,OACpCv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OACEiD,MAAO,CACLxE,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZy3C,aAAc,SACd7xC,OAAQ,WAEVX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAE/BuqC,EAAY,IAAC7lD,IAAAC,cAACgmD,KAAgB,CAAC/iD,MAAO,CAAEyiC,YAAa,OAIzD9K,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACrC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,UACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,QACtCv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qCACbhC,IAAAC,cAAA,OACEiD,MAAO,CACLxE,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZy3C,aAAc,SACd7xC,OAAQ,WAEVX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAE/BuqC,EAAY,IAAC7lD,IAAAC,cAACimD,KAAS,CAAChjD,MAAO,CAAEyiC,YAAa,OAGjD9K,EAAEvf,aAAa9N,cAAc+mC,SAAS,QACxCv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OACEiD,MAAO,CACLxE,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZy3C,aAAc,SACd7xC,OAAQ,WAEVX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAE/BuqC,EAAY,IAAC7lD,IAAAC,cAACkmD,KAAe,CAACjjD,MAAO,CAAEyiC,YAAa,QAIxD9K,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACrC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,UACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,UACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,SACtC1Z,EAAEvf,aAAa9N,cAAc+mC,SAAS,UACtCv0C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sCACbhC,IAAAC,cAAA,OACEiD,MAAO,CACLxE,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZy3C,aAAc,SACd7xC,OAAQ,WAEVX,QAASA,IAAM0hD,EAAerqB,EAAEvf,eAE/BuqC,EAAY,IAAC7lD,IAAAC,cAACmmD,KAAa,CAACljD,MAAO,CAAEyiC,YAAa,OAM3D,MAEN3lC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,mBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,KAAMozD,OAnWrB9hD,EAmWgC+lB,EAAE/lB,QAlWpD7B,EAAS0T,GAAgBK,iBAAiBlS,IADxBA,OAoWMnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8iD,OA1WnBxxC,EA0WgC+lB,EAAE/lB,QAzWtD8kB,EAAQ,CACN53B,MAAO,qCACPo9B,YAAa,2CACb37B,SAAUhE,EAAMwnB,UAAU9O,UAC1BknB,iBAAkB5/B,EAAMwnB,UAAU9O,UAAY,qBAAuB,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS0T,GAAgBS,oBAAoBtS,MAR3BA,OA2WInV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAWxBhhB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WArBxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA4BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aA7amBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IA6aJC,YAAa3B,EACb4B,oBA3aqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,MA4aHqC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB2C,iBAG3B,U,ICtiBUnG,YAAOy2C,IAAPz2C,CAAc,MAChCrF,QAAS,UAGcqF,YAAOo1B,KAAPp1B,CAAmB,MAC1CxI,MAAO,UACP0hC,UAAW,GACXvhC,SAAU,GACV,UAAW,CACTyI,OAAQ,c,yBCpCC+yD,GAAgC7yD,IAAoE,IAAnE,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,UAAE4Y,EAAS,QAAE8+C,EAAO,OAAE1/C,EAAM,QAAED,GAASnT,EAEzG,MAAMu5C,EAAU59C,IAAM69C,UAAU,OAEzBzlC,EAAag/C,GAAkBz9B,mBAAS,KACxCzL,EAAWmpC,GAAgB19B,qBAE5B1mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GAwB9B,SAASwmC,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAG,gDAKT,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA7Cf+1B,MA8CMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GApDAkpC,MACnB,IAAI9tC,EAAU,CACZgI,UAAWA,EACXZ,OAAQA,EACRW,YAAaA,EACbP,OAAQs/C,GAGN5/C,EAAmB,CACrBc,UAAWA,EACXZ,OAAQA,EACRyW,UAAWA,EACX9V,YAAaA,GAGfnF,EAASwD,GAAiBa,iBAAiBjH,EAASkH,EAAkBC,EAASC,IAC/E8hB,KAoC6B4kB,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAS,wDACTtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,IAC3Fj9B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTojB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBviB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,cACHknB,MAAM,sBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAUmiD,EAAeniD,EAAM7G,OAAOhJ,OACjDA,MAAOgT,GAAe,GACtBnV,QAAQ,cAGA,GAAXk0D,EACCn3D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,IACxFj9B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,YACHknB,MAAM,2CACN32B,SAAW6I,GAAMmpD,EAAanpD,EAAEE,OAAOhJ,OACvC62B,OAAO,SACP72B,MAAO8oB,EACPjrB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEV+mB,WAAY,CACVwU,IAAK,GAEPjZ,cAAe,CAAC,4BAGlB,OAIRr+C,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAMkX,WAAWwB,UAC3B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMkX,WAAWwB,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE9DF,EAAMkX,WAAWwB,UAAY,+BAA2B,iB,uCCxI9Do/C,GAAsBlzD,IAAgD,IAA/C,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,QAAED,GAASnT,EAE3E,MAAMu1B,EAAUC,cACV5mB,EAAW6mB,gBAEX,QAAE/5B,EAAO,UAAEL,EAAS,UAAE2sB,GAAuB5sB,GAC3Cs8C,OAAO,OAAE7uC,KAD6BrN,YAAKJ,EAAKK,IAC1BL,IACvB4pC,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BthB,EAAWm/C,GAAgB79B,mBAAS,KACpCw9B,EAASM,GAAc99B,oBAAS,IAEhC+9B,EAAiBC,GAAsBh+B,oBAAS,GACjDi+B,EAAwBA,IAAMD,GAAoBD,IAMlD,QAAEp/C,GAAYytB,aAAavkC,GAAUA,EAAM8W,UAC3C,eAAE1B,GAAmBnX,EAAM6Y,SAC3B,UAAEH,GAAc1Y,EAAM6Y,QAE5BjW,oBAAU,KAER,IAAI4T,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPniC,QAASH,EACTI,OAAQH,GAGVxE,EAAS6D,GAAcY,qBAAqBzB,KAC3C,CAACozB,EAAMyQ,IAEV,MAeM+d,EAA+BA,CAACx/C,EAAWy/C,KAC/Cl+B,EAAQ,CACN53B,MAAM,kBAADvE,OAAiBq6D,EAAO,oBAAwB,2BACrDjyD,QAAS,2CACTw5B,iBAAkBy4B,EAAU,gBAAkB,gBAC9Cx4B,iBAAkB,UAClBy4B,mBAAmB,IAClBvnD,KAAK,KAbyBwnD,EAAC3/C,EAAWy/C,KAC7CN,EAAan/C,GACbo/C,EAAWK,GACXF,KAWEI,CAA2B3/C,EAAWy/C,MAI1C,SAAS7xB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAG,qBAKT,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAtEf+1B,MAuEMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,kBACnE3C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,WACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,SAGrBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,mBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,YACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,8BACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAG9BvG,IAAAC,cAACumC,KAAS,KACPluB,QAAWtR,IAAcsR,GAAWA,EAAQpS,OACzCoS,EAAQ7L,IAAI,CAACouB,EAAG6D,IAEd1+B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEphB,YAAcohB,EAAEphB,YAAc,IAEnCzZ,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/gB,MAAQ+gB,EAAE/gB,MAAQ,IAEvB9Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjhB,SAAWzS,GAAU0zB,EAAEjhB,UAAY,IAExC5Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEo9B,aAAep9B,EAAEo9B,YAAY/xD,OAAS,EAAIsJ,KAAOqrB,EAAEo9B,YAAY,GAAGpsD,MAAM2mB,OAAO,oBAAsB,KAE1GxyB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAEL,GAATm4B,GAAsB,GAAR2K,EACbrpC,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMq0D,EAA6Bh9B,EAAE/lB,IAAI,GAClDrR,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAAC6kD,KAAQ,MACpB1nB,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAC1D,aAKLK,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMq0D,EAA6Bh9B,EAAE/lB,IAAI,GAClDrR,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACu7B,KAAS,MACrB4B,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAC1D,cAML,QAQTwY,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAtB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA8BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoB91C,IAAA,IAAC,KAAE9D,EAAI,GAAEH,GAAIiE,EAAA,SAAA9H,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aA7KaC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IA6KEC,YAAa3B,EACb4B,oBA3KezmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,SAgLH6d,EACC13D,IAAAC,cAACi3D,GAA6B,CAC5B39B,OAAQq+B,EACRp+B,MAAOk+B,EACPj4D,MAAOA,EACP03D,QAASA,EACT1/C,OAAQA,EACRY,UAAWA,EACXb,QAASA,IAGX,O,sHC7OG0gD,GAA6B7zD,IAA0D,IAAzD,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,0BAAE04D,GAA2B9zD,EAE5F,MAAMu5C,EAAU59C,IAAM69C,UAAU,OAG1B,QAAE99C,EAAO,UAAEL,EAAS,QAAE4Y,IADXwhB,eACgCr6B,IACzCs8C,OAAO,OAAE7uC,KAD2BrN,YAAKJ,EAAKK,IACxBL,IACvB4G,EAAM+xD,GAAWz+B,mBAAS,KAC1B0+B,EAAOC,GAAY3+B,mBAAS,IAenC,SAASsM,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,wBAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KApCf+1B,MAqCMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SA3CmBsa,KAC3BJ,EAA2BK,GAAc,IACpCA,EACH,CAAE5nD,QAASvK,EAAMgyD,MAAOA,KAG1B9+B,MAuCQv5B,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,8BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW6I,GAAMkqD,EAAQlqD,EAAEE,OAAOhJ,OAClCA,MAAOiB,GAAQ,GACfpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,UACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW6I,GAAMoqD,EAASpqD,EAAEE,OAAOhJ,OACnCA,MAAOizD,GAAS,GAChBp1D,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,8BAKxBr+C,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLjH,MAAM,EACNmJ,QAAQ,YACRi6B,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmR,QAAQuH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DF,EAAMmR,QAAQuH,UAAY,6BAA4B,iB,kCC1GzE,MAAMsgD,GAAc10D,YAAO,QAAPA,CAAe20D,QAAAC,aAAA,4BAI7BlN,GAAmB1nD,YAAOT,IAAPS,CAAmB,MAC1Ck5B,UAAW,EACX1+B,WAAY,SACZhD,MAAO,UACPqD,YAAa,GACblD,SAAU,MAGNw9B,GAAmBn1B,YAAOo1B,KAAPp1B,CAAmB,MAC1CxI,MAAO,UACP0hC,UAAW,GACXvhC,SAAU,GACV,UAAW,CACTyI,OAAQ,cAICy0D,GAAqBv0D,IAAuC,IAAtC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,GAAQpT,EAEjE,MAAM4O,EAAW6mB,eACX++B,EAAcrpD,OAASgjB,OAAO,cAC9BoH,EAAUC,eAETi/B,EAAeC,GAAoBp/B,mBAAS,KAC5Cq/B,EAAwBb,GAA6Bx+B,mBAAS,KAC9Ds/B,EAAUC,GAAev/B,oBAAS,IACnC,QAAE55B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GACxBm+C,EAAU59C,IAAM69C,UAAU,OAEzBsb,EAAiBC,GAAsBz/B,oBAAS,GACjD0/B,EAAwBA,IAAMD,GAAoBD,GAElDjmD,EAAO6yB,aAAavkC,GAAUA,EAAMwkC,eAAe9yB,MAEzD7Q,oBAAU,KACR4Q,EAASiX,GAAiBzU,UACzB,IAEH,MAIMqoC,EAAgBC,GAAU9oC,IAC9BhC,EAASiX,GAAiBlV,cAAc+oC,EAAM9oC,KAOhD,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAG,6BAKT,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAsBpB5jC,oBAAU,KACR6P,QAAQC,IAAI,yBAA0B6mD,IACrC,CAACA,IAyDJ,OACEh5D,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAjHf+1B,MAkHMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,kBACnE3C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,YACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,SAGrBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,iBACHmpC,SA7GUhpC,IAEpB,IAAI5E,EAAU,CAEZxE,KAAMpM,EAAM4qB,WAAWxe,KAAO2D,KAAO/P,EAAM4qB,WAAWxe,MAAM25C,cAAgBqT,EAC5EvuC,kBAAmB7qB,EAAM4qB,WAAWC,kBACpC7S,OAAQkkC,SAASlkC,GAEjBY,UAAe,OAAJnF,QAAI,IAAJA,OAAI,EAAJA,EAAMiH,iBAAiB,GAAG9B,UACrCD,YAAa3Y,EAAM4qB,WAAWjS,YAC9BmS,mBAAoB9qB,EAAM4qB,WAAWE,mBACrCC,mBAAoBsuC,EACpBruC,oBAAqBuuC,GAGvB/lD,EAASiX,GAAiBQ,iBAAiBra,IAC3CkpB,MA+FUv5B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL+T,GAAG,OACHknB,MAAM,SACNC,OAAO,SACP52B,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAM4qB,WAAWxe,KAAO2D,KAAO/P,EAAM4qB,WAAWxe,MAAM2mB,OAAO,cAAgBqmC,EACpF51D,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,aACH5R,MAAO,CAAE+5B,UAAW,IACpBnB,gBAAiB,CACfC,QAAQ,GAEV32B,MAAO3F,EAAM4qB,WAAWC,kBACxBjlB,SAAUy4C,EAAa,uBAAwB,EAC/C9hB,MAAM,gCACNhB,WAAS,EACTyjB,QAAQ,oBACRD,cAAY,GAEZx+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,gCAEND,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO6F,IAAsC,SACvDjL,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO6F,IAAwC,WACzDjL,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO6F,IAAoC,SAGzDjL,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTmoB,WAAS,EACTC,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,cACHknB,MAAM,oBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,eACvB14C,MAAO3F,EAAM4qB,WAAWjS,aAAe,GACvCnV,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QACpCyyD,GAA0BA,EAAuB9yD,OAAS,GACzDlG,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQq7B,WAAS,GAC3Bh7B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG5gC,MAAM,UAAS,wBAK1CvG,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,KAAC,QAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,SAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,gBAKdi6B,EAAuBvsD,IAAK6uB,GAC3Bt7B,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKk6B,EAAKj1B,MAClBrG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK1qB,UAEd5Q,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK+8B,QAEdr4D,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQuD,MAAO,CAAE+5B,UAAW,EAAG7D,WAAY,GAAK51B,QAASA,KAAM81D,OA1InFjzD,EA0I0Gi1B,EAAKj1B,UAzI5IuzB,EAAQ,CACN53B,MAAO,8CACPo9B,YAAa,2EACb37B,SAAUhE,EAAM4qB,WAAWlS,UAC3BknB,iBAAkB5/B,EAAM4qB,WAAWlS,UAAY,8BAA6B,gBAC5EmnB,iBAAkB,YACjB9uB,KAAK,KACN2nD,EAA0Ba,EAAuBjpB,OAAOqU,GAAMA,EAAG/9C,MAAQA,MAR9CA,eAkJjBrG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,qBACHknB,MAAM,8BACNC,OAAO,SACPmiB,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,yBAChBniB,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,sBACvB14C,MAAO3F,EAAM4qB,WAAWE,oBAAsB,GAC9CtnB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QACnEj/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAE+5B,UAAW,KACzEj9B,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMs8C,GACjFj5D,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,6BAMnDyE,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,QAAQsD,MAAM,UAAS,mBAGjDvG,IAAAC,cAACw4D,GAAW,CACVj/D,OAAO,UACPsb,GAAG,OACH/T,KAAK,OACLw4D,UAAQ,EACRl0D,SAAW6I,GA7OC+G,KAC9B,MAAMwwC,EAAQhf,MAAMhlC,KAAKwT,EAAM7G,OAAOq3C,OAEtCyT,GAAY,GAGZ,MAAMM,EAAiB/T,EAAMh5C,IAAKqF,GAChCU,GAAWV,GACRtB,KAAMb,IACE,CAAE2L,aAAc3L,EAAS21C,cAEjCv0C,MAAOtF,IACNyG,QAAQC,IAAI1G,GACL,QAKbqE,QAAQ2pD,IAAID,GACThpD,KAAMkpD,IAEL,MAAMC,EAAoBD,EAAc3pB,OAAQj+B,GAAkB,OAATA,GACzDinD,EAAiB,IAAID,KAAkBa,IACvCT,GAAY,KAEbnoD,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZytD,GAAY,MAkNmBU,CAAuB1rD,KAE1ClO,IAAAC,cAAA,SAAO45D,QAAQ,QACb75D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,mBACbhC,IAAAC,cAAC65D,KAAG,CAACr5D,UAAU,OAAOyC,MAAO,CAAEP,eAAgB,WAC7C3C,IAAAC,cAACq3C,KAAc,UAKvBt3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QACpCuyD,GAAiBA,EAAc5yD,OAAS,GACvClG,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQq7B,WAAS,GAC3Bh7B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,KAAC,YAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,gBAKd+5B,EAAcrsD,IAAK6uB,GAClBt7B,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKk6B,EAAKhgB,cAClBtb,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAO4gC,QAAS,EAAGjkC,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WACxEv/B,IAAAC,cAAA,YAAOq7B,EAAKhgB,eAEdtb,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQuD,MAAO,CAAE+5B,UAAW,EAAG7D,WAAY,GAAK51B,QAASA,KAAMu2D,OA/OrFz+C,EA+O4GggB,EAAKhgB,kBA9O9Ise,EAAQ,CACN53B,MAAO,uCACPo9B,YAAa,oEACb37B,SAAUhE,EAAM4qB,WAAWlS,UAC3BknB,iBAAkB5/B,EAAM4qB,WAAWlS,UAAY,uBAAyB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNuoD,EAAiBD,EAAc/oB,OAAOqU,GAAMA,EAAG9oC,cAAgBA,MARpCA,iBAyPnBtb,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CAACV,MAAO,CAAEpG,gBAAiB,QAChCuP,KAAK,cACLyI,GAAG,cACHpV,UAAU,MACVuD,QAAQ,YACRxC,UAAU,IACV+C,QAASA,KAnVzB61D,MAmV4D,+BAA2Br5D,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMspD,QAEhG1kD,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAM4qB,WAAWlS,UAC3B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM4qB,WAAWlS,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE9DF,EAAM4qB,WAAWlS,UAAY,wBAAuB,gBAUhEghD,EACCn5D,IAAAC,cAACi4D,GAA0B,CAAC3+B,OAAQ8/B,EAAuB7/B,MAAO2/B,EAAiB15D,MAAOA,EAAO04D,0BAA2BA,IAE5H,O,2BC5bG6B,GAAwB31D,IAAuC,IAAtC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEw6D,GAAQ51D,EAEpE,MAAM,QAAEtE,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GAM9B,OACEO,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,WAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAtBjB+1B,MAuBQv5B,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAAC2+B,KAAK,CAAC5D,WAAS,GACdh7B,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQq7B,WAAS,GAC3Bh7B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,KAAC,QAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,WAKdk7B,GAAUA,EAAO/zD,OAAS,GAAK+zD,EAAOxtD,IAAK6uB,GAC1Ct7B,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKk6B,EAAKj1B,MAClBrG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK1qB,UAEd5Q,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK+8B,iB,2BCxDrB6B,GAAuB71D,IAAuC,IAAtC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAE06D,GAAQ91D,EAEnE,MAAM,QAAEtE,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GAMxB26D,EAAoBp/D,IACxBsH,OAAOqa,KAAK3hB,IAGd,OACEgF,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,WAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA1BjB+1B,MA2BQv5B,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,UAEbh2C,IAAAC,cAAC2+B,KAAK,CAAC5D,WAAS,QACbh0B,IAAcmzD,GAAUA,EAAOj0D,OAC5Bi0D,EAAO1tD,IAAKouB,GAEVA,EAAEvf,aAAa++C,SAAS,QAAUx/B,EAAEvf,aAAa++C,SAAS,QAAUx/B,EAAEvf,aAAa++C,SAAS,SAAWx/B,EAAEvf,aAAa++C,SAAS,QAC7Hr6D,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAE+4B,OAAQ,EAAGt5B,eAAgB,UAAYvB,IAAKy5B,EAAE/lB,IAC/D9U,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAAA,OACEiD,MAAO,CAAE5E,aAAc,GAAIopD,eAAgB,QAASvoD,MAAO,IAAKD,OAAQ,IAAKiF,OAAQ,WACrFiC,IAAKy0B,EAAEvf,aACP9X,QAASA,IAAM42D,EAAiBv/B,EAAEvf,cAClCoqB,IAAK7K,EAAEvf,aACP0vC,QAAQ,WAKdhrD,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAE+4B,OAAQ,GAAK76B,IAAKy5B,EAAE/lB,IACrC9U,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAAA,QAAMiD,MAAO,CAAEiB,OAAQ,WAAaX,QAASA,IAAM42D,EAAiBv/B,EAAEvf,eAAgBuf,EAAEvf,iBAI7Ftb,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAE+4B,OAAQ,GAAK76B,IAAG,gBACtCpB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,wCCjBtC+zD,GAAiBj2D,IAAwB,IAAvB,MAAE5E,EAAK,OAAEgY,GAAQpT,EAEvC,MAAM,eAAEuS,GAAmBnX,EAAM4qB,WAC3BkwC,EAAsB96D,EAAM4qB,WAAWlS,UACvCyhB,EAAUC,eAETsgC,EAAQK,GAAa7gC,mBAAS,KAC9BsgC,EAAQQ,GAAa9gC,mBAAS,KAE/B,WAAEtP,GAAe5qB,EAAM4qB,YAEtBqwC,EAAaC,GAAkBhhC,oBAAS,GAEzCihC,EAAoBA,IAAMD,GAAgBD,IACxC3e,OAAO,OAAE7uC,IAAazN,GAEvBy8C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMrC2e,EAAaC,GAAkBnhC,oBAAS,GACzCohC,EAAoBA,IAAMD,GAAgBD,IAEzCG,EAAaC,GAAkBthC,oBAAS,GACzCuhC,EAAoBA,IAAMD,GAAgBD,GAY1C/nD,EAAW6mB,gBAEVuP,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,IAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,OAmB7Bt3B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACNzxB,OAAQH,EACR8B,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,GAGbpnC,EAASiX,GAAiBC,cAAclU,KAI1CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAetC,SAAS2a,EAAS5pD,GAAO,IAADwpD,EAAAC,EAAAC,EAAAvpD,EACtB,MAAM8M,EAAYxF,GAAYW,YAAkC,QAAvBohD,EAAGn1D,EAAMumC,sBAAc,IAAA4uB,GAAM,QAANC,EAApBD,EAAsB1hD,YAAI,IAAA2hD,GAAqB,QAArBC,EAA1BD,EAA4B16C,iBAAiB,UAAE,IAAA26C,OAA3B,EAApBA,EAAiDz8C,UAAY,EAEzG,OAA2B,QAA3B9M,EAAOH,EAAKI,uBAAe,IAAAD,OAAA,EAApBA,EAAsBs8B,KAAKktB,GAAaA,EAAU18C,YAAcA,GAAkC,IAArB08C,EAAUnlD,QAGhG,SAASurD,IACP,OACEn7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,sBAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACk7D,EAAS,MAGnB,OACEn7D,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGm4C,aAAc,SAAU/Y,UAAW,IAC/Jj9B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAComC,KAAU,CACTC,UAAU,0CACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,SAGrBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA/GnB44C,KAkHUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,eAMlEmX,GAAYW,aAEXwhD,EAASv1D,EAAM2L,OACf3L,EAAM2L,KAAKD,cAAgB9D,GAE3BrH,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,SAC/CvG,IAAAC,cAACsD,EAAY,CACX5D,KAAK,QACLsD,QAAQ,WACRC,MAAO,CAAEq8B,cAAe,UACxB/7B,QA1GgB43D,KAC5BR,KA0GYx9B,QAASp9B,IAAAC,cAACo7D,KAAU,OACrB,6BAKH,OAINr7D,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,gCAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,8BAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,sBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,kBAIdD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcqjB,GAAcA,EAAWnkB,OACpCmkB,EAAW5d,IAAKouB,GAEd76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SAASpH,MAAM,SACxD07B,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,IAElDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEvQ,kBAAoBuQ,EAAEvQ,mBAAqBrf,GAAqC,MAAQA,GAAuC,QAChIA,GAAyC,UAAY,GAAK,IAE9DjL,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEtQ,mBAAqBsQ,EAAEtQ,mBAAmB3jB,cAAgB,IAE/D5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEziB,YAAcyiB,EAAEziB,YAAYxR,cAAgB,IAEjD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAC1CvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM83D,OAhKjBxmD,EAgKoC+lB,EAAE/lB,QA/JhE8kB,EAAQ,CACN53B,MAAO,iDACPo9B,YAAa,2CACbC,iBAAkB,gBAClB57B,SAAUhE,EAAM4qB,WAAWlS,UAC3BknB,iBAAkB5/B,EAAM4qB,WAAWlS,UAAY,yBAAwB,gBACvEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASiX,GAAiBS,qBAAqB7V,EAAI2C,MAT3B3C,OAiKEnV,KAAK,QACL8D,SAAUoP,GAAYW,cAAgBwhD,EAASv1D,EAAM2L,OAErDpL,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,UAKnBn5B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,IAjIZ6mB,KACrBxjB,GAAQkH,KAAK,sBAAuB,CAAEsc,WAAYA,KAgIXkxC,CAAc1gC,GAC7Bl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,aACbhC,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,SAG3Bx7D,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,gBACXzjC,QAASA,IA5MJq3B,KAC7B2/B,EAAU3/B,EAAErQ,oBACZuwC,KA0MuCU,CAAsB5gC,GACrCl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,iBACbhC,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMsgE,SAG3B17D,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,gBACXzjC,QAASA,IAhNJq3B,KAC7B4/B,EAAU5/B,EAAEpQ,qBACZywC,KA8MuCS,CAAsB9gC,GACrCl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,iBACbhC,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMwgE,YAShCrB,EAKC9zB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAnB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA2BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoB91C,IAAA,IAAC,KAAE9D,EAAI,GAAEH,GAAIiE,EAAA,SAAA9H,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aA5MeC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IA4MAC,YAAa3B,EACb4B,oBA1MiBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,QA6MH6gB,EACC16D,IAAAC,cAAC24D,GAAkB,CAACr/B,OAAQqhC,EAAmBphC,MAAOkhC,EAAaj7D,MAAOA,EAAOgY,OAAQA,IAEzF,KAKDojD,EACC76D,IAAAC,cAACi6D,GAAoB,CAAC3gC,OAAQwhC,EAAmBvhC,MAAOqhC,EAAap7D,MAAOA,EAAO06D,OAAQA,IAE3F,KAKDa,EACCh7D,IAAAC,cAAC+5D,GAAqB,CAACzgC,OAAQ2hC,EAAmB1hC,MAAOwhC,EAAav7D,MAAOA,EAAOw6D,OAAQA,IAE5F,KAKD/d,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmByD,kBAG3B,OAc0B++B,qBAClCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAvXvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA4V4ByuC,CAAmBswB,MAI3CA,U,+BC/Yf,MAAMuB,GAAuB93D,YAAO2uD,KAAP3uD,CAAuBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAClEnF,OAAQ,GACRZ,aAAc,EACd,CAAC,KAADb,OAAMq+D,KAAsBC,eAAiB,CAC3Cj/D,gBAAiBgB,EAAMtC,QAAQxB,KAA4B,UAAvB8D,EAAMtC,QAAQwgE,KAAmB,IAAM,MAE7E,CAAC,MAADv+D,OAAOq+D,KAAsBG,MAAQ,CACnC39D,aAAc,EACdxB,gBAAiB,cAaf0uD,GAAaznD,YAAOq3B,KAAPr3B,CAAawB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC9C,CAACzH,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,OACTugC,cAAe,SACf1D,UAAW,WAIT2gC,GAAcn4D,YAAOq3B,KAAPr3B,CAAa6tC,IAAA,IAAC,MAAE9zC,GAAO8zC,EAAA,MAAM,CAC/C,CAAC9zC,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,UAAW,MAITwuB,GAAmB1nD,YAAOT,IAAPS,CAAmBgkD,IAAA,IAAC,MAAEjqD,GAAOiqD,EAAA,MAAM,CAC1D,CAACjqD,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,WAAY,GACZp/B,cAAe,EACfsoC,YAAa,GACbC,eAAgB,EAChB+D,aAAc,EACdvrC,YAAa,EACb+mC,YAAa,EACbvM,WAAY,MAgMV+iC,GAA2BpyB,qBAC/BxB,aALuB/mC,GAChBA,EAIP+mC,CAAyByB,aAjOXlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA4NasuC,CA7LFvqC,IAAW,IAAD28D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEjC,MAAQ5gB,OAAO,OAAE7uC,IAAazN,GACxB,OAAEgY,EAAM,YAAEmlD,EAAW,SAAE53C,EAAQ,UAAEC,EAAS,cAAE43C,GAAkBp9D,EAC9DwT,EAAW6mB,gBACV/f,EAAUigB,GAAeL,mBAAS,IAEzCt3B,oBAAU,KAER4Q,EAAS6O,GAAWrM,SAGhBgC,GAA2B,GAAjBolD,GACZ5pD,EAAS6O,GAAWU,YAAY/K,KAEjC,IAEH,MAAMqlD,EAAW/2B,aAAavkC,IAAK,IAAAu7D,EAAA,OAAe,QAAfA,EAAKv7D,EAAM4J,YAAI,IAAA2xD,OAAA,EAAVA,EAAYv2C,gBAoCpD,OA9BAnkB,oBAAU,KACR,GAAI5C,EAAMg6B,QAAUzU,GAAYC,EAAW,EACxB,IAAIxlB,EAAMg6B,OAAO2C,KAAKC,UAC9BC,QACP,CAAE56B,SAAU,CAAE24B,IAAKrV,EAAUsV,IAAKrV,IAClC,CAAC+3C,EAASptD,KACR,GAAe,OAAXA,GAAmBotD,EAAQ,GAAI,CAEjC,MAAMC,EAAmBD,EAAQ,GAAGv+B,kBAChCw+B,EAAiB1oB,SAAS,KAE5Bva,EAAY,qCAEZA,EAAYijC,QAGd/qD,QAAQvX,MAAM,kBAAmBiV,OAKxC,CAACnQ,EAAMg6B,OAAQzU,EAAUC,IAU1BjlB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACpClkB,GACCzX,IAAAC,cAACsmC,IAAK,CAACojB,UAAW,EAAGzmD,MAAO,CAAErF,aAAc,EAAGf,gBAAiB,UAAWspC,cAAe,IACxFpmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,UAElDsM,GAAYW,cAAgBopD,GAAgC,GAAjBn9D,EAAM2L,KAAK0J,GAbrE,SAAkB1J,GAAO,IAADwpD,EAAAC,EAAAC,EAAAvpD,EACtB,MAAM8M,EAAYxF,GAAYW,YAAkC,QAAvBohD,EAAGn1D,EAAMumC,sBAAc,IAAA4uB,GAAM,QAANC,EAApBD,EAAsB1hD,YAAI,IAAA2hD,GAAqB,QAArBC,EAA1BD,EAA4B16C,iBAAiB,UAAE,IAAA26C,OAA3B,EAApBA,EAAiDz8C,UAAY,EAEzG,OAA2B,QAA3B9M,EAAOH,EAAKI,uBAAe,IAAAD,OAAA,EAApBA,EAAsBs8B,KAAKktB,GAAaA,EAAU18C,YAAcA,GAAkC,IAArB08C,EAAUnlD,QAWhFolD,CAASv1D,EAAM2L,MACbpL,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAC/HuE,IAAAC,cAACi9D,KAAwB,CAACh6D,MAAO,CAAEq8B,cAAe,SAAU3gC,YAAa,EAAGlD,SAAU,YAAc,gDAGtGsE,IAAAC,cAAA,QAAMiD,MAAO,CAAEpG,gBAAiB,UAAWwB,aAAc,EAAGE,QAAS,EAAGjD,MAAO,OAAQG,SAAU,GAAIkD,YAAa,EAAGnD,WAAY,MAC/HuE,IAAAC,cAACi9D,KAAwB,CAACh6D,MAAO,CAAEq8B,cAAe,SAAU3gC,YAAa,EAAGlD,SAAU,YAAc,uDAGxG,MAKNsE,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,WAAWC,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,oBAEzED,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,iCAAgD,QAAnBm8D,EAAC38D,EAAM2L,KAAKwF,eAAO,IAAAwrD,GAAM,QAANC,EAAlBD,EAAoB/1D,YAAI,IAAAg2D,OAAN,EAAlBA,EAA0Bz1D,gBAEvG5G,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,uBAA0BR,EAAM2L,KAAKuX,WAAanT,KAAO/P,EAAM2L,KAAKuX,YAAY6P,OAAO,cAAgB,KAEtJxyB,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,iCAAiCR,EAAM2L,KAAKwX,YAAcpT,KAAO/P,EAAM2L,KAAKwX,aAAa4P,OAAO,cAAgB,MAGjKxyB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,iBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAW,IAAY,QAAXq5D,EAAC78D,EAAM2L,YAAI,IAAAkxD,OAAA,EAAVA,EAAYxnD,GAAG,IAAY,QAAXynD,EAAC98D,EAAM2L,YAAI,IAAAmxD,OAAA,EAAVA,EAAYj2D,SAEtEtG,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,8BAC7CD,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAYxD,EAAM2L,KAAKga,sBAAwB6oC,KAAKC,aAAa,QAAS,CAClGhrD,MAAO,WACPirD,SAAU,QACT37B,OAAO/yB,EAAM2L,KAAKga,uBAAyB,cAGlDplB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,kBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAsB,QAAZu5D,EAAE/8D,EAAM2L,YAAI,IAAAoxD,OAAA,EAAVA,EAAY95C,aAEpD1iB,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,UAC7CD,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAYxD,EAAM2L,KAAK8Z,IAAMzlB,EAAM2L,KAAK8Z,IAAM,IAAM,aAGlFllB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,mBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAA4B,QAAlBw5D,EAAEh9D,EAAM2L,KAAKka,aAAK,IAAAm3C,GAAM,QAANC,EAAhBD,EAAkBp2D,YAAI,IAAAq2D,OAAN,EAAhBA,EAAwB91D,gBAEhE5G,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,qBAC7CD,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,aAxGrB,OAAR65D,QAAQ,IAARA,OAAQ,EAARA,EAAUj1B,KAAKuc,GAAMA,EAAG3sC,QAAUkkC,SAASlkC,IAA0B,GAAf2sC,EAAG7oC,WAwGS,MAAQ,YAG1E9b,EAAM2L,KAAKsa,wBACV1lB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,KACvD3lC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,qCAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAkD,QAAxC05D,EAAEl9D,EAAM2L,KAAKsa,uBAAuBrf,YAAI,IAAAs2D,OAAA,EAAtCA,EAAwC/1D,iBAInFnH,EAAM2L,KAAKua,qBACV3lB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,KACvD3lC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,+BAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAYuM,KAAO/P,EAAM2L,KAAKua,qBAAqB6M,OAAO,0BAI1FxyB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIpnC,WAAY,WACvEyB,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,oBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEl1C,QAAS,OAAQH,WAAY,WACtCyB,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEz0C,MAAO,MAAO8lC,GAAI,EAAGk4B,GAAI,IAClCn9D,IAAAC,cAAC47D,GAAoB,CAAC54D,QAAQ,cAAcmC,MAA6C,GAAtC3F,EAAM2L,KAAKqb,wBAA+BhnB,EAAM2L,KAAKqb,wBAA0B,KAEpIzmB,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAE/wC,SAAU,KACnB7C,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAU,GAAAxF,OAA2C,GAAtCgC,EAAM2L,KAAKqb,wBAA+BhnB,EAAM2L,KAAKqb,wBAA0B,EAAC,UAKjIzmB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,mBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAY8W,GAAwB,IAAZA,EAAiBA,EAAW,4BA0B7Esf,mCAAiB,CAC9BC,OAAQ,2CADKD,CAEZ8iC,I,+BCjOYiB,OA9BO/4D,IAA4C,IAA3C,OAAEE,EAAM,aAAE84D,EAAY,YAAEptB,GAAa5rC,EAC1D,OACErE,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM0gD,EACNpe,kBAAgB,uBAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAAC2D,IAAM,CAACJ,QAASysC,EAAa/sC,MAAO,CAAE26B,SAAU,WAAY+C,MAAO,EAAGF,IAAK,GAAIziC,OAAQ,QACtF+B,IAAAC,cAACu7B,KAAS,OAEZx7B,IAAAC,cAACq9D,KAAQ,CAACp+D,OAAO,OAAOq+D,UAAU,EAAOC,YAAY,EAAOC,iBAAe,EAACC,yBAAuB,IAC1F,OAANn5D,QAAM,IAANA,OAAM,EAANA,EAAQ2B,QAAS,EACd3B,EAAOkI,IAAI,CAACypC,EAAOxX,IAEjB1+B,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOiE,eAAe,SAASpE,WAAW,SAASW,OAAO,OAAOkC,IAAKs9B,GACjF1+B,IAAAC,cAAA,OAAKmG,IAAK8vC,EAAM56B,aAAcpY,MAAO,CAAEizC,UAAW,OAAQlb,SAAU,OAAQqH,UAAW,eAK7FtiC,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOiE,eAAe,SAASpE,WAAW,SAASW,OAAO,QACrEc,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAI,gCCJpC,MA+BM06D,GAAsBt5D,IAAiC,IAADu5D,EAAAC,EAAAC,EAAAC,EAAA,IAA/B,MAAEt+D,EAAK,OAAEgY,EAAM,QAAE1X,GAASsE,EAErD,MAAM4O,EAAW6mB,eAEXkkC,EAAW38B,oBAEVm1B,EAAUC,GAAe98B,mBAAS,KAClCskC,EAAiBC,GAAsBvkC,oBAAS,IAChDp1B,EAAQytD,GAAar4B,mBAAS,IAErCt3B,oBAAU,KACuC,GAA3C5C,EAAMumC,eAAe9yB,KAAKsjB,cAC5BigC,EAAY,CAAAn5D,wBAAA,GAAMmC,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,IAAE,IAAEwkC,UAAU,MAE3E1tC,GACG1D,IAAI,uCAAD9P,OAAwCga,IAC3CjH,KAAKb,IAAQ,IAAA+mD,EAAA,OAAID,EAAyB,QAAdC,EAAC/mD,EAAS9D,YAAI,IAAA6qD,OAAA,EAAbA,EAAejqD,IAAIkqD,GAAOr5D,wBAAA,GAAYq5D,GAAC,IAAEhY,UAAU,SAEpF,IAEH,MAAOzC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAmB5C,SAASif,IACP,OACEn7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,mBAIV,SAASimC,IACP,OAAOlmC,IAAAC,cAACk7D,EAAS,MAGnB,OAxBA94D,oBAAU,KACR,MAAM87D,EAAkB3H,EAASj5B,KAAKrvB,GAAKA,EAAEywC,UAE7C,GAAIwf,EAAiB,CACnB,IAAIloD,EAAc,CAChB2B,OAAQH,EACRkE,UAAWwiD,EAAgB9lD,WAG7BpF,EAASsa,GAAsBG,mBAAmBzX,MAEnD,CAACugD,IAcFx2D,IAAAC,cAAAD,IAAAmB,SAAA,KACG88D,GAAmBj+D,IAAAC,cAACm9D,GAAa,CAAC74D,OAAQA,EAAQ84D,aAAcY,EAAiBhuB,YAAaA,IAAMiuB,GAAmB,KAExHl+D,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGm4C,aAAc,SAAU/Y,UAAW,IAC/Jj9B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,sCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAzCnB44C,KA4CUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,iBAQ3B,GAA3C+D,EAAMumC,eAAe9yB,KAAKsjB,eACzBx2B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAI4G,GAAI,GAC7CviC,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAKk8B,EACLlpD,GAAG,WACHmpC,SAAWhpC,GAAU/C,QAAQC,IAAI8C,IAEjCjV,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,YACHknB,MAAM,UACN52B,MAAe,OAARoxD,QAAQ,IAARA,OAAQ,EAARA,EAAUj5B,KAAKrvB,GAAKA,EAAEywC,UAC7Bt5C,SAAW4P,GAAUwhD,EAAYD,EAAS/pD,IAAIyB,GACxCA,EAAEmK,YAAcpD,EAAM7G,OAAOhJ,MAC/B9H,wBAAA,GAAY4Q,GAAC,IAAEywC,UAAU,IAEzBrhD,wBAAA,GAAY4Q,GAAC,IAAEywC,UAAU,MAG7B1iB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,GAETh7B,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,YAEG,OAARu2D,QAAQ,IAARA,OAAQ,EAARA,EAAU/pD,IAAI,CAACw2C,EAAKvkB,IACnB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI5qC,WAC9B4qC,EAAI3qC,cASnBtY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,IACD,QAArBm/D,EAAAn+D,EAAMkuB,uBAAe,IAAAiwC,GAAiB,QAAjBC,EAArBD,EAAuBjwC,uBAAe,IAAAkwC,OAAjB,EAArBA,EAAwC33D,QAAS,IAAa,OAARswD,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,KAAK35B,GAAKA,EAAEywC,YAC3El/C,EAAMkuB,gBAAgBA,gBAAgBlhB,IAAI,CAAC2xD,EAAY1/B,EAAO2/B,KAAiB,IAADC,EAC5E,MAAMC,EAAmC,MAAtBH,EAAWI,QAA6D,GAA3C/+D,EAAMumC,eAAe9yB,KAAKsjB,eAA8C,MAAtB4nC,EAAWI,SAA8D,GAA3C/+D,EAAMumC,eAAe9yB,KAAKsjB,eAAiE,GAA3C/2B,EAAMumC,eAAe9yB,KAAKsjB,eAC1M,OACEx2B,IAAAC,cAAAD,IAAAmB,SAAA,MACIwK,GAAWyyD,EAAWvyD,QAAUF,GAAiC,QAAvB2yD,EAACD,EAAY3/B,EAAQ,UAAE,IAAA4/B,OAAA,EAAtBA,EAAwBzyD,QAAU6yB,IAC7E1+B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,SAAU1gC,WAAY,WACxGyB,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOiE,eAAe,SAASO,MAAO,CAAE/D,MAAO,QAASD,OAAQ,OAAQpC,gBAAiB,QAASwB,aAAc,SAC3H0B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,OAAOwH,MAAO,CAAEq4B,UAAW,WAAa5vB,GAAWyyD,EAAWvyD,SAKrG7L,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,SAAU1gC,WAAYggE,EAAY,WAAa,eACjIv+D,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOugC,cAAc,SAAS/7B,MAAO,CAAEpG,gBAAiByhE,EAAY,kBAAoB,QAASjgE,aAAc,OAAQE,QAAS,OAAQ4nC,cAAe,MAAOnL,SAAU,QACnLj7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,OAAOD,WAAW,OAAOyH,MAAO,CAAE3H,MAAOgjE,EAAY,OAAS,SAAWH,EAAWxtD,QAAQvK,MAC7HrG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,OAAOwH,MAAO,CAAE3H,MAAOgjE,EAAY,OAAS,SAAWH,EAAWn/C,WAClGm/C,EAAWK,uBAAuBv4D,OAAS,GAC1ClG,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOklC,SAAS,OAAO3E,cAAc,MAAMhE,SAAS,QAC9DmjC,EAAWK,uBAAuBhyD,IAAK6uB,GACtCt7B,IAAAC,cAAA,OACEuD,QAASA,KACPwuD,EAAUoM,EAAWK,uBAAuBhyD,IAAIoB,IAAc,CAAEyN,aAAczN,EAAE4Z,mBAChFy2C,GAAmB,IAErB/+D,MAAM,OACND,OAAO,OACPkH,IAAKk1B,EAAK7T,eACVvkB,MAAO,CAAE5E,aAAc,OAAQgkC,UAAW,QAAS1jC,YAAa,OAAQq+B,UAAW,QACnFyI,IAAI,8BACJslB,QAAQ,WAKhBhrD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,OAAOwH,MAAO,CAAEq4B,UAAW,QAAShgC,MAAOgjE,EAAY,OAAS,SAAW/uD,KAAO4uD,EAAWvyD,MAAM2mB,OAAO,eAOpG,IAA7B,QAArBsrC,EAAAr+D,EAAMkuB,uBAAe,IAAAmwC,GAAiB,QAAjBC,EAArBD,EAAuBnwC,uBAAe,IAAAowC,OAAjB,EAArBA,EAAwC73D,UAAuB,OAARswD,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,KAAK35B,GAAKA,EAAEywC,YAAa3+C,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIs4B,UAAU,SAASmjC,QAAQ,OAAOv/D,MAAM,QAAO,wCAGjK+8C,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB4B,sBAG3B,OAc+B4gC,qBACvCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA9NvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAmM4ByuC,CAAmB2zB,MAI3CA,U,6GCtIf,SAAS/9B,GAAW1xB,GAClB,MAAS,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,EAM1F,SAAS2wC,GAASp/C,GAChB,MAAM,SAAEwC,EAAQ,MAAEmD,EAAK,MAAEs5B,GAAoBj/B,EAAVq/C,EAAKj/C,YAAKJ,EAAKK,IAElD,OACEE,IAAAC,cAAA,MAAAC,OAAAC,OAAA,CACE4+C,KAAK,WACLC,OAAQ55C,IAAUs5B,EAClB5pB,GAAE,mBAAArX,OAAqBihC,GACvBugB,kBAAA,cAAAxhD,OAA+BihC,IAC3BogB,GAEH15C,IAAUs5B,GACT1+B,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEsL,EAAG,IACZl/C,IAAAC,cAACqD,IAAU,KAAErB,KAavB,SAASk9C,GAAUzgB,GACjB,MAAO,CACL5pB,GAAG,cAADrX,OAAgBihC,GAClB,gBAAgB,mBAADjhC,OAAqBihC,IAIxC,MAAM0gB,GAAar7C,YAAOs7C,KAAPt7C,CAAe,MAChC,0BAA2B,CACzB,gBAAiB,CACfxI,MAAO,eAwiCP+6D,GAAwBvsB,qBAC5BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAxnCvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,GACvB,CAACX,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B5Q,YAAa7nC,EAAMW,QAAQ,GAC3B0rC,aAAcrsC,EAAMW,QAAQ,GAC5B0nC,WAAYroC,EAAMW,QAAQ,KAG9BoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAwlC4ByuC,CApiCrBvqC,IAAW,IAADk/D,EAAAC,EAAAtC,EAAAuC,EAAAtC,EAAAuC,EAE1B,MAAM7rD,EAAW6mB,eACXF,EAAUC,eACTsjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAClColC,EAAQC,GAAarlC,oBAAS,IAC9BslC,EAAUC,GAAevlC,oBAAS,IAClCwlC,EAAmCC,GAAwCzlC,mBAASl6B,EAAM2L,KAAKwZ,6BAC/Fy6C,EAAaC,GAAkB3lC,mBAAS,OAExCp1B,EAAQytD,GAAar4B,mBAAS,KAC9B30B,EAAQitD,GAAat4B,mBAAS,KAC9Bhd,EAAMwyB,GAAWxV,oBAAS,IAC1Br1B,EAAQi7D,GAAa5lC,oBAAS,IAC9BzE,EAAWsqC,GAAgB7lC,oBAAS,IACpC3W,EAAUy8C,GAAe9lC,oBAAS,IAElCH,EAAOuG,GAAYpG,oBAAS,GAG7Bj4B,EAAWq+C,wBACX2f,EAAe,IAAIvyD,gBAAgBzL,EAAS0L,QAC5CuyD,KAA6B,QAAdhB,EAAAj9D,EAASF,aAAK,IAAAm9D,OAAA,EAAdA,EAAgBgB,eAAej+D,EAASF,MAAMm+D,aAC7DC,KAA2B,QAAdhB,EAAAl9D,EAASF,aAAK,IAAAo9D,OAAA,EAAdA,EAAgBgB,aAAal+D,EAASF,MAAMo+D,WACzD78C,EAA0D,SAAvC28C,EAAanyD,IAAI,kBACpC4W,EAA4D,SAAxCu7C,EAAanyD,IAAI,mBAErCsyD,EAAsC95B,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAU0O,gCAA6B5d,GACvI84D,EAAc/5B,aAAavkC,GAAUA,EAAM4J,KAAO5J,EAAM4J,KAAK00D,YAAc,KAE1E5jB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,GAAkBA,IAAMD,GAAcD,IAErC6jB,GAAqBC,IAA0BrmC,oBAAS,GACzDsmC,GAAuBA,IAAMD,IAAwBD,KAEpDG,GAA0CC,IAA+CxmC,oBAAS,GACnGymC,GAAiDA,IAAMD,IAA6CD,KA2BpG,QAAEngE,GAAO,KAAEqL,GAAI,cAAE4iB,GAAa,UAAEtuB,IAAuBD,EAATG,GAAIC,YAAKJ,EAAKkrC,KAE1DoR,OAAO,OAAE7uC,KAAazN,EACxBm+C,GAAU59C,IAAM69C,UAAU,OAE1B,MAAEv4B,IAAUygB,aACfvkC,GAAUA,EAAM8jB,QAEb,SAAEU,IAAa+f,aAClBvkC,GAAUA,EAAMwkB,WAEb,QAAExO,IAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGb5hB,GAAQ0vB,aACXvkC,GAAUA,EAAM4J,KAAKA,MAElBi1D,GAAYt6B,aAAavkC,IAAK,IAAA8+D,EAAA,OAAmB,QAAnBA,EAAK9+D,EAAMiyB,gBAAQ,IAAA6sC,OAAA,EAAdA,EAAgB7sC,YAElDmuB,GAAUC,IAAeloB,mBAAS,GAEnCgpB,GAAkBA,CAAC1tC,EAAOs7B,KAC9BsR,GAAYtR,IAQd,SAASgwB,KACP,OAAI1tD,GAAYc,wBAMlB,MAwEM6sD,GAAyBtyD,IAC7B,MAAM9I,EAAQ8I,EAAEE,OAAOhJ,MACvB04C,GAAa,SAAbA,CAAuB5vC,GACnB0xB,GAAWngC,EAAM2L,KAAKD,gBACxB+zD,GAAY,GACZF,EAAU55D,EAAMc,OAAS,KAI7B7D,oBAAU,KACR4vD,EAAU7mD,GAAKyZ,gBACd,CAACzZ,GAAKyZ,cAAelI,IAExBta,oBAAU,KAAO,IAADo+D,EAAAC,EAAAC,EAEVv1D,GAAK0J,KAAmB,QAAjB2rD,EAAIr1D,GAAK4a,gBAAQ,IAAAy6C,OAAA,EAAbA,EAAer1D,QAC5Bm0D,EAAUn0D,GAAK4a,SAAS5a,MACxB6H,EAAS+hB,GAAeC,kBAAkB3wB,GAAQ,GAAO,KAGvD8G,GAAK0J,KAAmB,QAAjB4rD,EAAIt1D,GAAK4a,gBAAQ,IAAA06C,OAAA,EAAbA,EAAejmD,WAC5B+kD,EAAap0D,GAAK4a,SAASvL,SAC3BxH,EAAS+hB,GAAeC,mBAAkB,EAAOC,GAAW,KAG1D9pB,GAAK0J,KAAmB,QAAjB6rD,EAAIv1D,GAAK4a,gBAAQ,IAAA26C,OAAA,EAAbA,EAAeC,UAC5BnB,EAAYr0D,GAAK4a,SAAS46C,QAC1B3tD,EAAS+hB,GAAeC,mBAAkB,GAAO,EAAOjS,MAEzD,CAAC5X,GAAK0J,KAETzS,oBAAU,KACR4Q,EAAS6O,GAAWK,mBAAmB,CAAExK,QAASH,WAEnCxQ,GAAXwQ,IAAoC,IAAZA,IAA6B,KAAZA,IAC3CvE,EAASmgB,GAAeQ,qBAAqBpc,MAE9C,CAACA,KAEJnV,oBAAU,KAIR,GAHA4Q,EAAS+hB,GAAeC,kBAAkB3wB,EAAQ4wB,EAAWlS,KAGxD9V,GAAO4H,IAAMogB,EAAW,CAO3BjiB,EAAS6O,GAAW9M,cAAc,iBANrB,CACXjU,KAAM,SACNqN,OAAQ,CACNhJ,OAAO,QAMZ,CAACd,EAAQ4wB,EAAWlS,IAEvB3gB,oBAAU,KAER4Q,EAAS6O,GAAWrM,SACpBxC,EAAS0b,GAAwBlZ,SACjCxC,EAAS2X,GAAkBnV,SAC3BxC,EAASyY,GAAgBjW,SACzBxC,EAAS2c,GAAYE,kBAErB7c,EAAS6d,GAAgBS,uBAErBrkB,GAAO4H,GACT7B,EAAS6O,GAAWU,YAAYtV,GAAO4H,KAExB,IAAX0C,KACF3K,IAAMlS,MAAM,4BACZkM,GAAQkH,KAAK,UAIb4xD,KACI9sD,GAAYW,aAAeX,GAAYa,aAAe6sD,KAC1D1e,GAAY,GAEZA,GAAY,IAIZhvC,GAAYQ,YAAcR,GAAYU,eACpCqsD,GACF/d,GAAY,GAELhvC,GAAYW,aACjBosD,GACF/d,GAAY,GAIhB,MAAMgf,EAAiE,MAAnD7zD,GAAYC,aAAaxN,EAAMiC,SAAS0L,SAAkBJ,GAAYC,aAAaxN,EAAMiC,SAAS0L,QACtHmyD,EAAUsB,GACVrB,EAAaz8C,GACb08C,EAAYt7C,GAEZ,MAAM29B,EAAWC,YAAY,KAC3B3E,GAAS,IACR,MACH,MAAO,IAAM4E,cAAcF,IAC1B,IAEH,MAYMhE,GAAgBC,GAAU9oC,IAC9BhC,EAAS6O,GAAW9M,cAAc+oC,EAAM9oC,KAG1C5S,oBAAU,KACR,GAAI5C,EAAM2L,KAAK00D,aAAyC,GAA1BrgE,EAAM2L,KAAK00D,aAAoBrgE,EAAM2L,KAAKuX,YAAuC,IAAzBljB,EAAM2L,KAAKuX,WAAkB,CACjH,MAEMm+C,EAAY,CAChB//D,KAAM,OACNqN,OAAQ,CACNhJ,MALuBoK,KAAO/P,EAAM2L,KAAKuX,YAAYo+C,IAAIthE,EAAM2L,KAAK00D,YAAa,QAAQttC,OAAO,gBAQpGvf,EAAS6O,GAAW9M,cAAc,cAAe8rD,MAElD,CAACrhE,EAAM2L,KAAK00D,YAAargE,EAAM2L,KAAKuX,aAEvCtgB,oBAAU,KACRi9D,EAAe,CACbxqD,GAAI5H,GAAO4H,GACX0I,UAAW/d,EAAM2L,KAAKoS,UACtBmF,WAAYnT,KAAO/P,EAAM2L,KAAKuX,YAAY6iC,cAC1C5iC,YAAapT,KAAO/P,EAAM2L,KAAKwX,aAAa4iC,cAC5ChuC,QAAqB,GAAXA,GAAeA,GAAU/X,EAAM2L,KAAKoM,QAC9CkL,WAAYjjB,EAAM2L,KAAKsX,WACvBmC,cAAeplB,EAAM2L,KAAKyZ,cAC1Bve,OAAQ7G,EAAM2L,KAAK9E,OACnB0e,SAAUvlB,EAAM2L,KAAK4Z,SACrBC,UAAWxlB,EAAM2L,KAAK6Z,UACtBC,IAAKzlB,EAAM2L,KAAK8Z,IAChBX,WAAa2Q,EAAoC5tB,GAAxB7H,EAAM2L,KAAKmZ,WACpCQ,SAAUtlB,EAAM2L,KAAK2Z,SACrBzZ,eAAgB7L,EAAM2L,KAAKE,eAC3BsZ,2BAA4BnlB,EAAM2L,KAAKwZ,2BACvCmB,wCAAyCtmB,EAAM2L,KAAK2a,wCACpDjB,QAASrlB,EAAM2L,KAAK0Z,QACpB3Z,aAAc1L,EAAM2L,KAAKD,aACzB8a,YAAaxmB,EAAM2L,KAAK6a,YACxBV,WAAsC,IAAzB9lB,EAAM2L,KAAKma,YAA6C,GAAzB9lB,EAAM2L,KAAKma,WAAmB,KAAO9lB,EAAM2L,KAAKma,WAC5FW,YAAa,CACX,CACEpR,GAAIrV,EAAM4sB,UAAUvX,GACpB6N,WAAYnT,KAAO/P,EAAM2L,KAAKuX,YAAY6iC,cAC1C5iC,YAAapT,KAAO/P,EAAM2L,KAAKwX,aAAa4iC,cAC5C9iC,WAAY,oDACZpc,OAAQ,gCACRgmB,SAAU,QAGdnG,iBAAkB,CAAC,CACjB8C,OAAQ,EACRxR,OAAQvK,GAAO4H,GACfkQ,SAAUvlB,EAAM2L,KAAK4Z,SAAWvlB,EAAM2L,KAAK4Z,SAAW,EACtDC,UAAWxlB,EAAM2L,KAAK6Z,UAAYxlB,EAAM2L,KAAK6Z,UAAY,EACzDlL,SAAUta,EAAM2L,KAAK2O,cAGxB,CAACta,EAAM2L,OAEV,MAAM41D,GAAqD,kBAArB,QAAjB1E,EAAO78D,EAAM2L,YAAI,IAAAkxD,GAAU,QAAVuC,EAAVvC,EAAYt2C,gBAAQ,IAAA64C,OAAV,EAAVA,EAAsBx4D,MAA8B,QAAbk2D,EAAG98D,EAAM2L,YAAI,IAAAmxD,GAAU,QAAVuC,EAAVvC,EAAYv2C,gBAAQ,IAAA84C,OAAV,EAAVA,EAAsBz4D,KAAO,GAEnG,IAAI46D,GAAS,GACT,CAAC,oBAAqB,SAAU,sBAAmB1sB,SAAS90C,EAAM2L,KAAK4a,SAAS3f,MAClF46D,GAAS,OACA,CAAC,qBAAsB,kBAAa,YAAa,WAAW1sB,SAAS90C,EAAM2L,KAAK4a,SAAS3f,QAClG46D,GAAS,QAGX,MAAM9iB,GAAgBlpC,IAEhB/H,GAAO4H,GACT7B,EAAS6O,GAAWgB,aAAa5V,GAAO4H,GAAIuqD,EAAa7nD,GAASlT,EAAQ4wB,EAAWlS,IAErF/P,EAAS6O,GAAWkC,WAAWq7C,EAAa7nD,GAASlT,EAAQye,EAAkBoB,KA4BnF,SAAS8hB,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAIsgE,KAA8Bx9C,EAAgB,QAAAtlB,OA9S7B,sBA8S+D0mB,EAAiB,QAAA1mB,OA7S/E,0BA6SwH,QAAAA,OAAN6G,EAhT7H,OACU,sBA+SiL,mCAK5M,SAASm+C,KACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,mBAAAxC,OAAculB,EArTQ,yBAqTyBkS,EAtT1B,qBAsT2D5wB,EAxTrE,OACU,wBA2T3B,SAAS4hC,KACP,OAAIh5B,GAAO4H,GACF9U,IAAAC,cAACwiD,GAAQ,MAEXziD,IAAAC,cAACgmC,GAAU,MAGpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,GAAQlD,KACnBmF,MACEkL,GAAO4H,GAAE,gCAAArX,OACwB0mB,EArUX,yBAqUqDpB,EAtUtD,qBAsU8Fze,EAxUxG,OACU,sBAuUoI,8BAAA7G,OAC1H0mB,EAtUT,yBAsUmDpB,EAvUpD,qBAuU4Fze,EAzUtG,OACU,uBA2UvBtE,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,GAAI,CACRF,UAAWU,kBAAKL,GAAQlD,KAAM6C,IAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACFuH,GAAO4H,IAAMyrD,MACZvgE,IAAAC,cAACihE,GAAe,CAACzpD,OAAQvK,GAAO4H,GAAIkQ,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,UAAW43C,eAAe,IAErH78D,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEp2C,aAAc,EAAGqG,YAAa,aACpCgP,GAAYQ,YAAcR,GAAYU,iBAAmBgtD,MAA8B9gE,EAAM2L,KAAK0J,IACnG9U,IAAAC,cAACyiD,KAAI,CAACt9C,MAAOw8C,GAAUv8C,SAAUs9C,GAAiB1b,aAAW,sBAC3DjnC,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,YAAemjB,GAAU,KACpCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,UAAamjB,GAAU,KAClCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,SAAYmjB,GAAU,KACjCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,UAAamjB,GAAU,KAClCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,aAAgBmjB,GAAU,KACrCn/C,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,kBAAemjB,GAAU,KACnCohB,MACCvgE,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,cAAiBmjB,GAAUtsC,GAAYU,eAAiB,EAAI,KAEzEvT,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,kBAAkBmjB,GAAU,MACrCtsC,GAAYU,gBAAkBV,GAAYQ,aAAe5T,EAAM2L,KAAKD,cAAgB9D,IACpFrH,IAAAC,cAAE2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,mBAAgBmjB,GAAU,OAIzCtsC,GAAYW,aAAeX,GAAYa,aAAe6sD,MACvDvgE,IAAAC,cAACyiD,KAAI,CAACt9C,MAAOw8C,GAAUv8C,SAAUs9C,GAAiB1b,aAAW,sBAC3DjnC,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,kBAAemjB,GAAU,KACnCtsC,GAAYW,aAAexT,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,kBAAkBmjB,GAAU,KAClEtsC,GAAYW,aAAexT,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,wBAAwBmjB,GAAU,KACxEtsC,GAAYW,aAAe/T,EAAM2L,KAAKD,cAAgB9D,IAA6B5H,EAAM2L,KAAKD,cAAgB9D,IAA2B5H,EAAM2L,KAAKD,cAAgB9D,GAAsCrH,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,aAAgBmjB,GAAU,KAAS,KACxPtsC,GAAYW,aAAexT,IAAAC,cAAC2iD,KAAG1iD,OAAAC,OAAA,CAAC67B,MAAM,qBAAqBmjB,GAAU,QAI1EtsC,GAAYQ,YAAcR,GAAYU,iBACtCvT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAS,eAAA7oC,OAAiBulB,EArXlB,yBAqXmDkS,EAtXpD,qBAsXqF5wB,EAxX/F,OACU,sBAwXPtC,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAjb7B44C,MAoboBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,GAAQ8iD,KACnB/gB,IAAK8b,GACL9oC,GAAG,WACHmpC,SAAUA,KA7btBx+C,EAAM2L,KAAKwZ,4BAAuE,GAAzCnlB,EAAM2L,KAAKwZ,6BAElD1X,GAAO4H,GACLqqD,GAAqC1/D,EAAM2L,KAAKwZ,4BAAqF,IAAtDnlB,EAAM2L,KAAK2a,yCAAkDtmB,EAAM2L,KAAK2a,wCAGzJo4B,KAFAiiB,KAMEP,GAAuCpgE,EAAM2L,KAAKwZ,2BACpDw7C,KAEAjiB,QAkbUn+C,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,GAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAAEkjC,cAAe,KACjDpmC,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,GAAQ0/C,SAAU9iC,KAAMA,GAC3C3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,uBAMnDyE,IAAAC,cAACmE,GAAa,CACZG,OAAQA,EACRC,cA1YH8tD,IAErBnjB,GAAQ,GACR6iB,EAAUM,GACV5gD,GAAY4gD,EAAU,IACnB9hD,KAAMb,IAEL,IAAIU,EAAO/S,wBAAA,GACN8N,IAAI,IACPyZ,cAAelV,EAAS21C,aAGV,IAAZl6C,GAAK0J,IACP7B,EACE6O,GAAWgB,aAAa1X,GAAK0J,GAAIzE,GAAS,IAI9C+0C,YAAW,WAET,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAAS6O,GAAW9M,cAAc,gBAAiBqwC,IAEnD4M,EAAUtiD,GACVw/B,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MAuWY1qC,QAAS8tD,GACT7tD,WAAY,CAAC,OAAQ,MAAO,MAAO,OAAQ,OAAQ,MAAO,QAC1DC,YAAa,IACbC,gBAAiB,IACjBC,iBAAkB,IAClBpB,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1BrG,eAAgB,OAChBC,YA3aNA,KAClB60B,EAAQ,CACN53B,MAAO,2BACPo9B,YAAa,GACbC,iBAAkB,sBAClBC,iBAAkB,WACjB9uB,KAAK,KACN,IAAIH,EAAO/S,wBAAA,GACN8N,IAAI,IACPyZ,cAAe,OAEjB5R,EACE6O,GAAWgB,aAAa1X,GAAK0J,GAAIzE,GAAS,IAQ5C4C,EAAS6O,GAAW9M,cAAc,gBANrB,CACXjU,KAAM,SACNqN,OAAQ,CACNhJ,MAAO,SAIX6sD,EAAU,SAuZYxyD,MAAO2L,GACP9G,QAAQ,EACRU,OAAQA,EACRC,YAAaA,GACblF,QAASA,GACTH,KAAMA,GACNF,UAAWA,OAIjBM,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,UACHknB,MAAM,gBACNC,OAAO,SACP72B,MAAO8H,GAAO4H,GAAKrV,EAAM2L,KAAKoM,QAAqB,GAAXA,GAAeA,GAAU,GACjEnS,SAAUy4C,GAAa,YAAc,EACrChiB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZ/6C,UAAU,EACVg7C,QAAQ,WAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,iBAEJ+iD,mBAAQ19B,UACRte,IAAcse,IACdA,GAAMpf,QACNof,GAAM7Y,IAAKw2C,GACTjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,GAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,aACHknB,MAAM,kBACN52B,MAAO3F,EAAM2L,KAAKma,WAClBlgB,SAAUy4C,GAAa,cACvB7hB,OAAO,SACPx4B,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1B2wB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,cAERz+C,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAM,IACdpF,IAAAC,cAAA,UAAI,eAEJ+iD,mBAAQqd,UACRr5D,IAAcq5D,IACdA,GAAUn6D,QACVm6D,GAAU5zD,IAAI,CAACw2C,EAAKvkB,IAClB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,aACHknB,MAAQ9G,GAAalS,EAAY,uBAAsB,iBACvDiZ,OAAO,SACP72B,MAAQ8vB,EAAiE5tB,GAArD7H,EAAM2L,KAAKmZ,WAAa9kB,EAAM2L,KAAKmZ,WAAa,GACpElf,SAAUy4C,GAAa,eAAiB,EACxChiB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZ/6C,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,eAA0B+pB,EACpDupB,QAAQ,cAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAMi1B,GAAalS,EAAY,uBAAsB,oBAErDggC,mBAAQh9B,UACRhf,IAAcgf,IACdA,GAAS9f,QACT8f,GAASvZ,IAAKw2C,GACZjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,SAMfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqwC,KAAY,CACX6wB,UAAQ,EACR19D,UAAWm8B,GAAWngC,EAAM2L,KAAKD,cACjC2J,GAAG,mBACHpV,UAAWK,GAAQ87B,UACnBzqB,SAAc,OAALiF,SAAK,IAALA,QAAK,EAALA,GAAO5J,IAAKmkC,GAAWA,EAAO91C,QAAS,GAChDsmE,uBAAqB,EACrBzkD,KAAMoiD,GAAUn/B,GAAWngC,EAAM2L,KAAKD,cACtC0lC,YAAc3jC,GACZlN,IAAAC,cAAC27B,iBAAa17B,OAAAC,OAAA,GACR+M,EAAM,CACV8uB,MAAM,cACNqlC,WAAU/jE,wBAAA,GACL4P,EAAOm0D,YAAU,IACpBtgE,KAAM,WAERsE,SAAUm7D,GACVtkC,QAASlvB,GAAYiB,iBACrB7I,MAAO3F,EAAM2L,KAAK9E,QAAU,GAC5BrD,QAAQ,WACRg5B,OAAO,SACPmiB,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpB7N,cA7eA8wB,CAACrsD,EAAO7P,KAC5Bw6B,GAAWngC,EAAM2L,KAAKD,gBACxB+zD,EAAY95D,EAAMc,OAAS,GAC3B84D,EAAU55D,EAAMc,OAAS,GAAK+4D,KA2eR/jC,QAASA,IAAM8jC,GAAU,GACzB55D,MAAO3F,EAAM2L,KAAK9E,QAAU,MAGhCtG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTmoB,WAAS,EACT1/C,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1Bi4C,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,aACHknB,MAAM,aACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,cACvB14C,MAAO3F,EAAM2L,KAAKsX,YAAc,GAChCzf,QAAQ,gBAKhBjD,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,GAER8hE,KACCvgE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAEijC,WAAY,KAC9DnmC,IAAAC,cAACuG,KAAO,QAERlC,GAAU4wB,IACVl1B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,MACHknB,MAAM,QACNC,OAAO,SACP52B,SAAUy4C,GAAa,OACvB14C,MAAO3F,EAAM2L,KAAK8Z,KAAO,EACzBzhB,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1BlI,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVslC,WAAY,CACVE,aAAcvhE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,OAAM,KAC7CilB,WAAY,CACVwU,IAAK,EACLmK,KAAM,OAGVpjB,cAAe,CAAC,4BAItBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL+T,GAAG,aACHrR,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1B6wB,MAAO13B,EAAS,sBAAqB,6BACrC23B,OAAO,SACP52B,SAAUy4C,GAAa,cACvB14C,MAAO3F,EAAM2L,KAAKuX,WAAanT,KAAO/P,EAAM2L,KAAKuX,YAAY6P,OAAO,cAAgB,GACpFvvB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL0C,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1B2J,GAAG,cACHknB,MAAQ9G,GAAalS,EAAY,yDAA+C1e,EAAS,oCAAgC,0CACzH23B,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,eACbC,cAAe,CAAC,gCAChBh5C,SAAUy4C,GAAa,eACvB14C,MAAO3F,EAAM2L,KAAK00D,aAAeA,EACjC78D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,6BACHknB,MAAM,uCACNC,OAAO,SACPx4B,UAAWm8B,GAAWx0B,GAAKD,cAC3B2wB,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,WAAY,eACzBC,cAAe,CAAC,uBAAqB,iCACrCh5C,SAAUy4C,GAAa,8BACvB14C,MAAO3F,EAAM2L,KAAKwZ,4BAA8B,GAChD3hB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAClGyB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,iDAAgD69D,GAC9D7/D,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,eAI/D4I,GAAU4wB,IACVl1B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,aACH5R,MAAO,CAAE+5B,UAAW,IACpBnB,gBAAiB,CACfC,QAAQ,GAEV32B,MAAO3F,EAAM2L,KAAK0Z,QAClBzf,SAAUy4C,GAAa,aAAc,EACrC9hB,MAAM,aACNv4B,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,cAC1B6vB,WAAS,EACTyjB,QAAQ,aACRD,cAAY,GAEZx+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,eAEND,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAM,qBACvBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAO,gBAI7B8H,GAAO4H,IACN9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC6wC,KAAS,CACRpxC,UAAWK,GAAQ87B,UACnBb,WAAS,EACTgB,MAAM,SACNC,OAAO,SACPh5B,QAAQ,WACRmC,MAAOgG,IAAQA,GAAKD,aAAeD,GAAoBE,GAAKD,aAAcC,IAAM,GAAS,sBAI/FpL,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQiE,eAAgB,QAASpE,WAAY,WACrGyB,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM2L,KAAK2Z,SACpB1f,SAAUy4C,GAAa,YACvBr6C,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,gBAG9B6wB,MAAK,GAAAv+B,OAAK6G,EAAS,UAAY4wB,EAAY,yBAAwBlS,EAAW,4BAAwB,mBAAkB,mBAG5HhjB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQiE,eAAgB,QAASpE,WAAY,WACrGyB,IAAAC,cAACqjD,KAAgB,CACfC,QACEvjD,IAAAC,cAACm/C,GAAU,CACTjoC,QAAS1X,EAAM2L,KAAKE,eACpBjG,SAAUy4C,GAAa,kBACvBr6C,SAA2C,GAAjCm8B,GAAWx0B,GAAKD,gBAG9B6wB,MAAM,iCAKZ,KAEFh8B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACuG,KAAO,OAET22C,GACCn9C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAE26B,SAAU,aAC5D79B,IAAAC,cAACkiC,KAAG,CAACj/B,MAAO,CAAExE,QAAS,WAAYiiC,KAAM,EAAGC,MAAO,EAAGwD,OAAQ,IAC5DpkC,IAAAC,cAACyhE,GAAY,CAAC18C,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,UAAW5e,KAAM5G,EAAM2L,KAAK9E,OAAQvG,QAASN,EAAMM,QAASqL,KAAM3L,EAAM2L,KAAMqM,OAAQhY,EAAM2L,KAAK0J,GAAIkU,eAAgBvpB,EAAMupB,eAAgB4W,WAAYA,QAKlO5/B,IAAAC,cAACwG,KAAW,CAACvD,MAAO,CAAE+5B,UAAW,MAC/Bj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDq4B,UAAW,QAEXv7B,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAKgV,EAAmB,oBAAsBze,EAAS,SAAW6f,EAAoB,qBAAuB,eACrI,YAGAo8C,MACCn1D,GAAK0J,IAAM1J,GAAKD,cAAgB9D,IAA2BwL,GAAYQ,WACrErT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAxfLm+D,KACvB/nC,EAAQ,CACN53B,MAAO,oCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,oBAAsB,gBAC/DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6O,GAAWgC,eAAe5W,GAAO4H,GAAI0C,GAASlT,EAAQye,EAAkBoB,OAifvD1gB,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACu7B,KAAS,MACrB4B,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,MAAQ,WAElCnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QA7gBLo+D,KACvBhoC,EAAQ,CACN53B,MAAO,oCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,oBAAsB,gBAC/DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6O,GAAWuB,eAAenW,GAAO4H,GAAI0C,GAASlT,EAAQye,EAAkBoB,OAsgBvD1gB,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAAC6kD,KAAQ,MACpB1nB,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,MAAQ,WAElCnY,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KAAMq+D,OAhnBX/sD,EAgnBoC5H,GAAO4H,QA/mB3E8kB,EAAQ,CACN53B,MAAO,kDACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,uBAAyB,iBAClEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6O,GAAW+B,2BAA2B/O,MARjBA,OAinBJooB,UAAWl9B,IAAAC,cAAC6hE,KAAY,MACxB1kC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,MAAQ,+BAIpC,KACJnY,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM2L,KAAK+M,YAAcynB,GAAWngC,EAAM2L,KAAKD,cACzD+xB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDuN,GAAO4H,GAAMrV,EAAM2L,KAAK+M,UAAY,sBAAwB,YAAgB1Y,EAAM2L,KAAK+M,UAAY,mBAAqB,WAGzHtF,GAAYQ,YAAcR,GAAYU,iBACtCnI,GAAK0J,IAAM1J,GAAKD,cAAgB9D,IAAuC+D,GAAKE,eAC5EtL,IAAAC,cAACsD,EAAY,CACXC,QAASy8D,GACTh9D,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAAC8hE,KAAsB,MAClC3kC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAC1D,qBAGC,SAKX4gE,MACCvgE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAAC+hE,GAAa,CAACvqD,OAAQvK,GAAO4H,MAEhC9U,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACgiE,GAAiB,CAACxqD,OAAQvK,GAAO4H,MAEpC9U,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACiiE,GAAa,CAACzqD,OAAQvK,GAAO4H,MAEhC9U,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAC/Bj/B,EAAM2L,KAAKE,eACVtL,IAAAC,cAAC6+B,KAAQ,CAACqjC,WAAS,EAACj/D,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,WACjFs+D,GAAO,IAAED,GAAa,iFAEvBhhE,IAAAC,cAACmiE,GAAqB,CAAC3iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,QAE/EpL,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACoiE,GAAe,CAAC5iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,SAIxEm1D,MACCvgE,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACqiE,GAAkB,CAAC7iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,QAG1EpL,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAAC09D,GAAmB,CAACl+D,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,KAAMrL,QAASN,EAAMM,YAE5F8S,GAAYU,gBAAkBV,GAAYQ,aAC1CrT,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACsiE,GAAiB,CAAC9iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,UAK1EyH,GAAYW,aAAeX,GAAYa,aAAe6sD,MACvDvgE,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACoiE,GAAe,CAAC5iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,QAGtEyH,GAAYW,aAAe+sD,MAC1BvgE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAAC09D,GAAmB,CAACl+D,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,KAAMrL,QAASN,EAAMM,WAE9FC,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACqiE,GAAkB,CAAC7iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,QAEvE3L,EAAM2L,KAAKD,cAAgB9D,IAA6B5H,EAAM2L,KAAKD,cAAgB9D,IAA2B5H,EAAM2L,KAAKD,cAAgB9D,IACxIrH,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACmiE,GAAqB,CAAC3iE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,QAG7EpL,IAAAC,cAAC4+C,GAAQ,CAACz5C,MAAOw8C,GAAUljB,MAAO,GAChC1+B,IAAAC,cAACq6D,GAAc,CAAC76D,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI1J,KAAM3L,EAAM2L,KAAKA,YAQ3EouB,EACCx5B,IAAAC,cAAC42D,GAAc,CAACt9B,OA19BTA,IAAMwG,GAAUvG,GA09BSA,MAAOA,EAAO/5B,MAAOA,IAErD,KAKDsgE,GACC//D,IAAAC,cAACs3D,GAAmB,CAACh+B,OAAQ0mC,GAAsBzmC,MAAOumC,GAAqBtgE,MAAOA,EAAOgY,OAAQvK,GAAO4H,GAAI0C,QAAS/X,EAAM2L,KAAKoM,UAEpI,KAKD0oD,GACClgE,IAAAC,cAACuiE,GAAkD,CACjDjpC,OAAQ6mC,GACR5mC,MAAO0mC,GACPzgE,MAAOA,EACP6E,OAAQA,EACR+6D,YAAaA,EACbC,eAAgBA,EAChB7nD,OAAQvK,GAAO4H,GACfiO,iBAAkBA,EAClBoB,kBAAmBA,IAGrB,KAKD+3B,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,GACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBC,oBAG3B,U,wBCxnBJ8uD,GAAwBvsB,qBAC5BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAnhBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAwf4ByuC,CApfhBvqC,IAAW,IAADgjE,EAE/B,MAAMxvD,EAAW6mB,eACXF,EAAUC,eAGT6oC,EAAcC,GAAmBhpC,mBAAS,KAE3C,QAAE55B,EAAO,OAAE0X,GAAoBhY,GAC/B,eAAEmX,IADwB/W,YAAKJ,EAAKK,IACfL,EAAM4sB,YAC3B,UAAElU,GAAc1Y,EAAM2L,KACtBwyC,EAAU59C,IAAM69C,UAAU,OAEzBxU,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEtBuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,UAAE7vB,GAAc0Z,aACnBvkC,GAAUA,EAAM6qB,WAEnBhqB,oBAAU,KAGR,GAFA4Q,EAASyY,GAAgBjW,UAEpBhW,EAAM4sB,UAAUvX,KAAOrV,EAAM4sB,UAAU1J,YAAcljB,EAAM2L,KAAKuX,WAAY,CAC/E,MAAMm+C,EAAY,CAChB//D,KAAM,OACNqN,OAAQ,CACNhJ,MAAO3F,EAAM2L,KAAKuX,aAItB1P,EAASyY,GAAgB1W,cAAc,aAAc8rD,MAEtD,IAEHz+D,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,GAAIviC,EAAQ,CACV,IAAIxB,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAAQH,GAGVxE,EAASyY,GAAgBC,aAAa1V,GAAa,MAIvDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW5iC,IAEjDpV,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC5C,EAAM2L,KAAK+M,YAEf9V,oBAAU,KACR,GAAI5C,EAAM4sB,UAAU1J,YAAc+/C,EAAc,CAC9C,MAAME,EAAiBpzD,KAAO/P,EAAM4sB,UAAU1J,YAAYo+C,IAAI2B,EAAc,QAAQld,cAEpF,GAAI/lD,EAAM4sB,UAAUzJ,aAAeggD,EAAgB,CACjD,MAAM9B,EAAY,CAChB//D,KAAM,OACNqN,OAAQ,CACNhJ,MAAOw9D,IAGX3vD,EAASyY,GAAgB1W,cAAc,cAAe8rD,OAGzD,CAAC4B,EAA6B,QAAjBD,EAAEhjE,EAAM4sB,iBAAS,IAAAo2C,OAAA,EAAfA,EAAiB9/C,aAenCtgB,oBAAU,KACR,GAAI5C,EAAM4sB,WAAa5sB,EAAM4sB,UAAU1J,YAAcljB,EAAM4sB,UAAUzJ,YAAa,CAChF,MAAMigD,EAAUpjE,EAAM2L,KAAK0J,GACvBtF,KAAO/P,EAAM4sB,UAAUzJ,aAAaoxB,KAAKv0C,EAAM4sB,UAAU1J,WAAY,QACrE,GACJggD,EAAgBE,KAEjB,CAACpjE,EAAM4sB,UAAUvX,KAEpB,MAiBMgpC,EAAgBC,GAAU9oC,IAC9BhC,EAASyY,GAAgB1W,cAAc+oC,EAAM9oC,KAuB/C,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAIR,EAAM2L,KAAKD,cAAgB9D,GAA4B,mBAAqB,iBAKtF,SAASo7C,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,uBAIV,SAASimC,IACP,OAAIzmC,EAAM4sB,UAAUvX,GACX9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,OAEEjmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACpCl8B,EAAM2L,KAAKD,cAAgB9D,IAC1BrH,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GAnDCA,KAEpB,IAAI5E,EAAU,CACZyE,GAAIrV,EAAM4sB,UAAUvX,GACpB6N,WAAYnT,KAAO/P,EAAM4sB,UAAU1J,YAAY6iC,cAC/C5iC,YAA4C,gBAA/BnjB,EAAM4sB,UAAUzJ,YAAgCnjB,EAAM4sB,UAAUzJ,YAAcpT,KAAO/P,EAAM4sB,UAAU1J,YAAYo+C,IAAI2B,EAAc,QAAQld,cACxJ/tC,OAAQkkC,SAASlkC,GACjBiL,WAAYjjB,EAAM4sB,UAAU3J,WAC5Bpc,OAAQ7G,EAAM4sB,UAAU/lB,OACxBgmB,SAAU7sB,EAAM4sB,UAAUC,UAGxB7sB,EAAM4sB,UAAUvX,GAClB7B,EAASyY,GAAgBc,kBAAkB/sB,EAAM4sB,UAAUvX,GAAIzE,GAAS,IAExE4C,EAASyY,GAAgBe,gBAAgBpc,KAoCd8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,2BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA3KvB44C,KA8Kcz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,SACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,UACvB14C,MAAO3F,EAAM4sB,UAAU/lB,QAAU,GACjCrD,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTmoB,WAAS,EACTC,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,aACHknB,MAAM,aACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,cACvB14C,MAAO3F,EAAM4sB,UAAU3J,YAAc,GACrCzf,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL+T,GAAG,aACHknB,MAAM,mBACNC,OAAO,SACP52B,SAAUy4C,EAAa,cACvB14C,MAAO3F,EAAM4sB,UAAU1J,WAAanT,KAAO/P,EAAM4sB,UAAU1J,YAAY6P,OAAO,cAAgB,GAC9FvvB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SAEL+T,GAAG,eACHknB,MAAM,oCACNC,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,eACbC,cAAe,CAAC,gCAChBh5C,SAAW6I,GAAMy0D,EAAgBz0D,EAAEE,OAAOhJ,OAC1CA,MAAOs9D,EACPz/D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,2BACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO3F,EAAM4sB,UAAUC,UAAY,GACnCrpB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,2BAElBr+C,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,0IAOnE3lC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KAlNvByP,EAASyY,GAAgB1P,oBACzB2mD,EAAgB,MAkNH,YAGD3iE,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM4sB,UAAUlU,WAAa1Y,EAAM2L,KAAKD,cAAgB9D,GAClE61B,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM4sB,UAAUlU,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM4sB,UAAUvX,GAAMrV,EAAM4sB,UAAUlU,UAAY,uBAAyB,YAAgB1Y,EAAM4sB,UAAUlU,UAAY,oBAAsB,cAU1JnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAAUy4C,EAAa,YAI7B99C,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,aAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,kBAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAC1BvG,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,cAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,6BACvB9G,EAAM2L,KAAKD,cAAgB9D,IAA8BrH,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAGzFvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcqlB,GAAaA,EAAUnmB,OAClCmmB,EAAU5f,IAAKouB,IAAO,IAADioC,EACrB,OACE9iE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAE/lB,GAAK+lB,EAAE/lB,GAAK,IAEjB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAElY,WAAanT,KAAOqrB,EAAElY,YAAY6P,OAAO,cAAgB,IAE9DxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACxCs0B,EAAEjY,aAAeiY,EAAElY,WAAcnT,KAAOqrB,EAAEjY,aAAaoxB,KAAKnZ,EAAElY,WAAY,QAAU,IAExF3iB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEv0B,OAASu0B,EAAEv0B,OAAOM,cAAgB,IAEvC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,WAC/B,QAAVu8D,EAAAjoC,EAAEvO,gBAAQ,IAAAw2C,OAAA,EAAVA,EAAY58D,QAAM,GAAAzI,OAAMo9B,EAAEvO,SAAS/f,MAAM,KAAKrG,OAAM,KAAAzI,OAAIo9B,EAAEvO,SAAS/f,MAAM,KAAKrG,OAAS,EAAI,WAAa,UAAS,MAAAzI,OAAKo9B,EAAEvO,SAAS/f,MAAM,KAAKE,IAAIyyC,GAAKA,EAAI,KAAI,KAAM,KAEtKl/C,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzC0nD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,wBAEZ3lB,EAAM2L,KAAKD,cAAgB9D,IAC3BrH,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,mBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,KAAMozD,OAlTvB9hD,EAkTkC+lB,EAAE/lB,QAjTtD7B,EAASyY,GAAgBU,iBAAiBtX,IADxBA,OAmTQnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8iD,OAhTrBxxC,EAgTkC+lB,EAAE/lB,QA/SxD8kB,EAAQ,CACN53B,MAAO,oCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,oBAAsB,gBAC/DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASyY,GAAgBgB,oBAAoB5X,MAR3BA,OAiTMnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAY1BhhB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WArBxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA4BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aA7XmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IA6XJC,YAAa3B,EACb4B,oBA3XqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,MA4XHqC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB6B,iBAG3B,U,iGC7cJoiD,GAAaznD,YAAOq3B,KAAPr3B,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C,CAACvG,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,OACTugC,cAAe,SACf1D,UAAW,WAITkwB,GAAmB1nD,YAAOT,IAAPS,CAAmBwB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC1D,CAACzH,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,WAAY,GACZp/B,cAAe,EACfsoC,YAAa,GACbC,eAAgB,EAChB+D,aAAc,EACdvrC,YAAa,EACb+mC,YAAa,EACbvM,WAAY,MAggDVk9B,GAAwBvsB,qBAC5BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAjjDvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAshD4ByuC,CA7/CZvqC,IAAW,IAAD68D,EAAAuC,EAEnC,MAAM5rD,EAAW6mB,eACXF,EAAUC,eAEV,QAAE95B,EAAO,OAAE0X,GAAoBhY,GAC/B,eAAEmX,IADwB/W,YAAKJ,EAAKK,IACfL,EAAM4sB,YAC3B,UAAElU,GAAc1Y,EAAM2L,KACtB9G,EAAS7E,EAAM2L,KAAK4a,SAAS5a,KAE7BwyC,EAAU59C,IAAM69C,UAAU,OACxB9B,OAAO,OAAE7uC,IAAazN,GACvB4sD,EAAcC,GAAmB3yB,oBAAS,IAE1CopC,EAAWC,GAAgBrpC,mBAAS,KAEpCspC,EAAgBC,GAAqBvpC,oBAAS,IAC9C0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAEtBuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtCinB,EAAI,IAAIr3D,KACd,IAAIs3D,EAAOD,EAAE/2D,cACTi3D,EAAQF,EAAEj3D,WAEd,MAAOsX,EAAa8/C,GAAkB3pC,mBAAS,IAEzC,UAAEtN,GAAc0Z,aACnBvkC,GAAUA,EAAM6qB,YAEb,cAAEQ,GAAkBkZ,aACvBvkC,GAAUA,EAAMqrB,gBAEb,IAAE3H,EAAG,sBAAEE,GAA0B2gB,aACpCvkC,GAAUA,EAAM4J,MAGbm4D,EAAmBx9B,aACtBvkC,IAAK,IAAAgiE,EAAA,OAAuB,QAAvBA,EAAKhiE,EAAMy2B,oBAAY,IAAAurC,OAAA,EAAlBA,EAAoBl+C,SAG3B,YAAE4H,GAAgB6Y,aACrBvkC,GAAUA,EAAM0rB,cAEb,QAAE4I,GAAYiQ,aACjBvkC,GAAUA,EAAMs0B,UAEb,OAAEngB,GAAWowB,aAChBvkC,GAAUA,EAAMmU,SAEb,aAAE0Q,IAAiB0f,aACtBvkC,GAAUA,EAAM6kB,cAEbq7B,GAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,SAE9C,gBAAE4e,IAAoBwR,aACzBvkC,GAAUA,EAAM+yB,kBAEb,gBAAEG,IAAoBqR,aACzBvkC,GAAUA,EAAMkzB,kBAEZ8E,GAAOuG,IAAYpG,oBAAS,IAC5B8pC,GAASC,IAAc/pC,mBAAS,GACjCJ,GAASA,IAAMwG,IAAUvG,IAsD/B,SAASoG,GAAW1xB,GAClB,MAAS,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,GAAiB,KAALA,EApDlE7L,oBAAU,KAER4Q,EAASyQ,GAAoBjO,SAC7BxC,EAASyiB,GAAcG,qBACvB5iB,EAAS8J,GAAaC,mBACtB/J,EAASkhB,GAAmBC,4BAC3B,IAEH/xB,oBAAU,KACJ5C,EAAM2L,KAAK4a,SAASlR,IAAMxN,IAA4B7H,EAAM2L,KAAK4a,SAASlR,IAAMxN,GAClF2L,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,KAE7EhvC,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,MAG9E,CAAW,QAAXqa,EAAC78D,EAAM2L,YAAI,IAAAkxD,GAAU,QAAVuC,EAAVvC,EAAYt2C,gBAAQ,IAAA64C,OAAV,EAAVA,EAAsB/pD,KAE1BzS,oBAAU,KACR,GAAIkhE,GAAoBA,EAAiB5tD,OAAQ,CAC/C,MAAMmrD,EAAY,CAChB//D,KAAM,OACNqN,OAAQ,CACNhJ,MAAOm+D,EAAiB5tD,OAAOb,KAGnC7B,EAASyQ,GAAoB1O,cAAc,uBAAwB8rD,MAEpE,CAACyC,IAEJlhE,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,GAAIviC,EAAQ,CACV,IAAIxB,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAAQH,GAGVxE,EAASyY,GAAgBC,aAAa1V,GAAa,MAIvDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW5iC,IAUjDpV,oBAAU,KACR4Q,EAASyQ,GAAoB4J,gBAC5B,CAAC7tB,EAAMotB,cAAcrI,iBAExBniB,oBAAU,KAUR,GAR0C,GAAtC5C,EAAMotB,cAAcrI,iBACoB,GAAtC/kB,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eACjE0+C,GAAkB,GAElBA,GAAkB,IAIlBzjE,EAAM2L,KAAKka,MAAM3P,OAAOb,GAAI,CAC9B,IAAI6uD,EAAoB,CACtB5iE,KAAM,OACNqN,OAAQ,CACNhJ,MAAO3F,EAAM2L,KAAKka,MAAM3P,OAAOb,KAInC7B,EAASyQ,GAAoB1O,cAAc,uBAAwB2uD,IAEnE,IAAIC,EAAoB,CACtB7iE,KAAM,OACNqN,OAAQ,CACNhJ,MAAO,IAIX6N,EAASyQ,GAAoB1O,cAAc,iBAAkB4uD,IAE7D,IAAI3tD,EAAc,CAChB03C,GAAIluD,EAAM2L,KAAKka,MAAM3P,OAAOnB,GAC5Bo5C,WAAY,UAEd36C,EAASohB,GAAsBC,wBAAwBre,MAGxD,IAEH5T,oBAAU,KACR,IAAK5C,EAAMotB,cAAcpI,iBAA0D,GAAvChlB,EAAMotB,cAAcpI,iBAC1D8P,IAAmBA,GAAgBruB,OAAS,GAAKugC,MAAM2b,QAAQ7tB,IAAkB,CACnF,IAAIqvC,EAAoB,CACtB7iE,KAAM,OACNqN,OAAQ,CACNhJ,MAAOmvB,GAAgB,GAAGz5B,OAI9BmY,EAASyQ,GAAoB1O,cAAc,kBAAmB4uD,MAGjE,CAACrvC,KAEJlyB,oBAAU,KACR,IAAI4T,EAAc,KAClB,IAAKxW,EAAMotB,cAAcnI,iBAA0D,GAAvCjlB,EAAMotB,cAAcnI,iBAAwBm/C,OAAOC,MAAMrkE,EAAMotB,cAAcnI,kBACvH,GAA2C,GAAvCjlB,EAAMotB,cAAcpI,iBAAoE,GAA5ChlB,EAAMotB,cAAclI,sBAAmE,GAAtCllB,EAAMotB,cAAcrI,gBAAuB6B,SAAgCrf,GAAhBqf,KAC1JpQ,EAAc,CACZw3C,IAAKhuD,EAAMotB,cAAcpI,gBACzBkpC,GAAe,MAAVh4C,QAA4B3O,GAAV2O,GAAuBA,EAAOzP,OAAS,GAAiD,GAA5CzG,EAAMotB,cAAclI,sBAA+G,MAAlFhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAC9LhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAAG7pB,KAC7E,GACJ8yD,WAA6B,MAAhBvnC,IAAwBA,GAAangB,OAAS,GAAuF,MAAlFmgB,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAC1I6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAAG1pB,KAC7E,IAGNmY,EAASuhB,GAAsBC,yBAAyBxe,IAEpDye,IAAmBA,GAAgBxuB,OAAS,GAAKwuB,GAAgB,GAAGtvB,OAAO,CAC7E,IAAI2+D,EAAiB,CACnBhjE,KAAM,OACNqN,OAAQ,CACNhJ,MAAOsvB,GAAgB,GAAGtvB,QAG9B6N,EAASyQ,GAAoB1O,cAAc,kBAAmB+uD,UAIlE,GAAIrvC,IAAmBA,GAAgBxuB,OAAS,GAAKwuB,GAAgB,GAAGtvB,MAAO,CAC7E8M,QAAQC,IAAI,eACZ,IAAI4xD,EAAiB,CACnBhjE,KAAM,OACNqN,OAAQ,CACNhJ,MAAOsvB,GAAgB,GAAGtvB,QAG9B6N,EAASyQ,GAAoB1O,cAAc,kBAAmB+uD,MAIjE,CAACrvC,KAEJryB,oBAAU,KAER,IAAI4T,EAAc,KAClB,GAA0C,GAAtCxW,EAAMotB,cAAcrI,gBAAmE,GAA5C/kB,EAAMotB,cAAclI,sBAAoE,GAAvCllB,EAAMotB,cAAcpI,gBAAsB,CAAC,IAADu/C,EACxI/tD,EAAc,CACZw3C,IAAKhuD,EAAMotB,cAAcpI,gBACzBkpC,GAAe,MAAVh4C,QAA4B3O,GAAV2O,GAAuBA,EAAOzP,OAAS,GAAiD,GAA5CzG,EAAMotB,cAAclI,sBAA+G,MAAlFhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAC9LhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAAG7pB,KAC7E,GACJ8yD,WAA6B,MAAhBvnC,IAAwBA,GAAangB,OAAS,GAAuF,MAAlFmgB,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAC1I6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAAG1pB,KAC7E,IAGNmY,EAASuhB,GAAsBC,yBAAyBxe,IAExD,IAAI8tD,EAAiB,CACnBhjE,KAAM,OACNqN,OAAQ,CACNhJ,MAAOu2C,SAA2B,QAAnBqoB,EAACtvC,GAAgB,UAAE,IAAAsvC,OAAA,EAAlBA,EAAoB5+D,SAIxC6N,EAASyQ,GAAoB1O,cAAc,kBAAmB+uD,IAG9D9tD,EAAc,CACZw3C,IAAKhuD,EAAMotB,cAAcpI,gBACzBkpC,GAAe,MAAVh4C,QAA4B3O,GAAV2O,GAAuBA,EAAOzP,OAAS,GAAiD,GAA5CzG,EAAMotB,cAAclI,sBAA+G,MAAlFhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAC9LhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAAG7pB,KAC7E,GACJ8yD,WAA6B,MAAhBvnC,IAAwBA,GAAangB,OAAS,GAAuF,MAAlFmgB,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAC1I6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAAG1pB,KAC7E,IAGNmY,EAASohB,GAAsBC,wBAAwBre,IAEvD,IAAIguD,EAAiB,CACnBljE,KAAM,OACNqN,OAAQ,CACNhJ,MAAO3F,EAAMotB,cAAcpI,kBAI/BxR,EAASyQ,GAAoB1O,cAAc,kBAAmBivD,MAI/D,CAACxkE,EAAMotB,cAAcrI,eAAgB/kB,EAAMotB,cAAclI,qBAAsBllB,EAAMotB,cAAcpI,kBAEtGpiB,oBAAU,KACJ5C,EAAMotB,cAAcrI,iBACoB,GAAtC/kB,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eACjE0+C,GAAkB,GAElBA,GAAkB,KAIrB,CAACzjE,EAAMotB,cAAcrI,iBAExBniB,oBAAU,KAER,GAAmB,GAAfmhB,QAAmCxc,GAAfwc,EAA0B,CAC9B82B,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX52B,GAAID,GAGNvQ,EAASyQ,GAAoBC,iBAAiB1N,GAAa,KAI7DqkC,CAAUjR,EAAMyQ,EAAOI,EAAcE,EAAOC,KAG7C,CAAChR,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW72B,IAEjDnhB,oBAAU,KAER,GAAmB,GAAfmhB,QAAmCxc,GAAfwc,EAA0B,CAChD,IAAIvN,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX52B,GAAID,GAGNvQ,EAASyQ,GAAoBC,iBAAiB1N,GAAa,IAE3DiuD,KACAC,OAED,IAEH9hE,oBAAU,KAEJgqB,QAA0BrlB,GAAbqlB,GAA0BA,EAAUnmB,OAAS,GAAoB,GAAfsd,GACjE8/C,EAAej3C,EAAU,GAAGvX,KAE7B,CAACuX,IAEJhqB,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,KAER+hE,MAEC,CAACv3C,IAEJ,MAiBMw3C,GAAiCvvD,IACrC8kB,EAAQ,CACN53B,MAAO,qDACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,gBAAkB,iBAC3DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6O,GAAWyB,gCAAgCzO,EAAI2C,EAAQ+L,IAjTxC8oC,GAAiBD,MA+UvCvO,GAAgBC,GAAU9oC,IAC9BhC,EAASyQ,GAAoB1O,cAAc+oC,EAAM9oC,KAG7CkpC,GAAgBlpC,IAEpB,IAAI5E,EAAU,CACZyE,GAAIrV,EAAMotB,cAAc/X,GACxBiY,UAAWttB,EAAMotB,cAAcE,UAC/BE,cAAextB,EAAMotB,cAAcI,cACnCzJ,YAAam4B,SAASn4B,GACtBd,WAAYjjB,EAAMotB,cAAcnK,WAChCoK,OAAQrtB,EAAMotB,cAAcC,OAC5BE,WAAYvtB,EAAMotB,cAAcG,WAChCxI,eAAgB/kB,EAAMotB,cAAcrI,eACpCC,gBAAwD,GAAtChlB,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAA+D,GAAvC/kB,EAAMotB,cAAcpI,iBAA+D,IAAvChlB,EAAMotB,cAAcpI,iBAAyBk3B,SAASl8C,EAAMotB,cAAcpI,iBAAoB2+C,EACnP1+C,gBAAwD,GAAtCjlB,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAA+D,GAAvC/kB,EAAMotB,cAAcnI,iBAA+D,IAAvCjlB,EAAMotB,cAAcnI,iBAAyBi3B,SAASl8C,EAAMotB,cAAcnI,iBAAoB2+C,EACnP1+C,qBAAsBllB,EAAM2L,KAAKka,MAAM3P,OAAOb,GAC9CqQ,gBAAiB1lB,EAAMotB,cAAc1H,gBACrCL,QAASrlB,EAAMotB,cAAc/H,SAGO,GAAlCrlB,EAAMotB,cAAcG,YAAqD,IAAlCvtB,EAAMotB,cAAcG,WAClB,GAAtCvtB,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,gBAAgE,GAAvC/kB,EAAMotB,cAAc1H,iBAA+D,MAAvC1lB,EAAMotB,cAAc1H,gBACvJ1lB,EAAMotB,cAAc/X,GACtB7B,EAASyQ,GAAoByJ,sBAAsB1tB,EAAMotB,cAAc/X,GAAIzE,GAAS,IAEpF4C,EAASyQ,GAAoB0J,oBAAoB/c,IAGnDxD,IAAMlS,MAAM,6CAGdkS,IAAMlS,MAAM,qCAGdypE,MAIIA,GAAkBA,KAEtB,IAEE,GAAI3sD,EAAQ,CACV,IAAIxB,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXziC,OAAQH,GAGVxE,EAASyY,GAAgBC,aAAa1V,GAAa,IAIrD,MACMquD,EADcj4C,EACMze,OAAO,CAAC22D,EAAKC,IAE9BD,EAAI9mE,OAAO+mE,EAAMj4C,kBACvB,IAEHy2C,EAAasB,GAEb,MAAO74D,GACPyG,QAAQC,IAAI,MAAO1G,KAYvBpJ,oBAAU,KACJwqB,GAAiBA,EAAc3mB,OAAS,GAC1Cg+D,MAED,CAACr3C,EAAc3mB,SAElB,MAAMg+D,GAAoCA,KACxC,MAAMO,EAAkB53C,IAA8B,OAAbA,QAAa,IAAbA,OAAa,EAAbA,EAAepgB,IAAKouB,GAEzDA,EAAE7N,WAAa6N,EAAE1V,kBAIrB,GAAIs/C,GAAmBA,EAAgBv+D,OAAS,EAAG,CACjD,IAAIw+D,EAAkBD,EAAgB72D,QAAO,SAAU+2D,EAAav/D,GAClE,OAAOu/D,EAAcv/D,IACpB,GAEH,OAA0B,GAAnBs/D,EAAuBzW,KAAKC,aAAa,QAAS,CACvDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOkyC,GAAmB,KAG/B,OAAO,MAGHP,GAAwCA,KAE5C,MAAMM,EAA2B,OAAT1B,QAAS,IAATA,OAAS,EAATA,EAAWt2D,IAAKouB,GAEpCA,EAAE7N,WAAa6N,EAAE1V,iBAKrB,GAAIs/C,GAAmBA,EAAgBv+D,OAAS,EAAG,CACjD,IAAIw+D,EAAkBD,EAAgB72D,QAAO,SAAU+2D,EAAav/D,GAClE,OAAOu/D,EAAcv/D,IACpB,GAGH,OAA0B,GAAnBs/D,EAAuBzW,KAAKC,aAAa,QAAS,CACvDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOkyC,GAAmBjlE,EAAM2L,KAAK8Z,IAAOw/C,EAAkBjlE,EAAM2L,KAAK8Z,IAAM,IAAO,IAAM,KAGjG,OAAO,MAGH0/C,GAA8CA,KAElD,MAAMH,EAA2B,OAAT1B,QAAS,IAATA,OAAS,EAATA,EAAWt2D,IAAKouB,GAEpCA,EAAE7N,WAAa6N,EAAE1V,iBAKrB,GAAIs/C,GAAmBA,EAAgBv+D,OAAS,EAAG,CACjD,IAAIw+D,EAAkBD,EAAgB72D,QAAO,SAAU+2D,EAAav/D,GAClE,OAAOu/D,EAAcv/D,IACpB,GAEH,OAA0B,GAAnBs/D,EAAuBzW,KAAKC,aAAa,QAAS,CACvDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOkyC,GAAmB,KAG/B,OAAO,MAyBT,SAASz+B,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAIR,EAAM2L,KAAKD,cAAgB9D,GAA4B,YAAc,UAK/E,SAASo7C,KACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,gBAIV,SAASimC,KACP,OAAIzmC,EAAMotB,cAAc/X,GACf9U,IAAAC,cAACwiD,GAAQ,MAEXziD,IAAAC,cAACgmC,GAAU,MAGpB,OAEEjmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EACvByE,MAAO,CACLxE,QAAS,OACTugC,cAAe,MACf1gC,WAAY,SACZy3C,aAAc,WAEhBh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,WACHmpC,SAAWhpC,GAAUkpC,WAEnBn3C,GAAaqlB,GAAaA,EAAUnmB,OAAS,EAC7ClG,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,cACHknB,MAAM,QACNC,OAAO,SACP72B,MAAOoe,EACPne,SAAW6I,GAAMo1D,EAAep1D,EAAEE,OAAOhJ,OACzC02B,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,eAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,WAEJ+iD,mBAAQ32B,SACRrlB,IAAcqlB,GACdA,EAAUnmB,QACVmmB,EAAU5f,IAAKw2C,GACbjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAInuC,GAAI1P,MAAO69C,EAAInuC,IAC/BmuC,EAAI38C,UAKb,YAIJU,GAAaqlB,GAAaA,EAAUnmB,OAAS,GAC7ClG,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAWvE,QAAQ,SAAQ,oDAG/CsB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAIikE,KAAsCA,KAAsC,WAGnF5/D,GACCtE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAWvE,QAAQ,SAAQ,gCAG/CsB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAImlB,EAAwB6oC,KAAKC,aAAa,QAAS,CACrDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOpN,GAAyB,cAGvCplB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,EAAGz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO+W,aAAc,WACnGh2C,IAAAC,cAAA,WACED,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAW,iBAG/BjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAIilB,GAAY,EAAE,QAGtBllB,IAAAC,cAAC8F,KAAO,CACN7C,MAAO,CAAEyiC,YAAa,GACtB3jC,MAAM,2DAENhC,IAAAC,cAAC4kE,KAAQ,CAACnpE,SAAS,QAAQk4C,GAAI,CAAErU,cAAe,SAAUtC,UAAW,UAQnFj9B,IAAAC,cAACuG,KAAO,MACN/G,EAAM2L,KAAKD,eAAiB9D,IAC5BrH,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,YACHmpC,SAAWhpC,GAAUkpC,MAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,mBACVtkC,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAlrBzB44C,KAqrBgBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAU,6DAIhEvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,iBACHknB,MAAM,qBACN52B,MAAO3F,EAAMotB,cAAcrI,gBAAkB,IAC7CyX,OAAO,SACP52B,SAAUy4C,GAAa,kBACvBhiB,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTv3B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B1L,EAAMotB,cAAc/X,GAC9E2pC,QAAQ,mBAENuE,mBAAQ38B,UACRrf,GAAaqf,IACbA,GAAangB,QACbmgB,GAAa5Z,IAAI,CAACw2C,EAAKvkB,IACrB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKwB,GAAtC2E,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAC9DxkB,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,uBACHrR,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B1L,EAAMotB,cAAc/X,IAAOyuD,GAAoBA,EAAiB5tD,OAC1HqmB,MAAM,cACN52B,MAAO3F,EAAMotB,cAAclI,sBAAwB,GACnDtf,SAAUy4C,GAAa,wBACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTyjB,QAAQ,YAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,YAEJ+iD,mBAAQtB,UACR16C,IAAc06C,IACdA,GAAQx7C,QACRw7C,GAAQj1C,IAAI,CAACw2C,EAAKvkB,IAChB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IACjC8K,MAAM2b,QAAQ7tB,IACbv0B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,kBACHrR,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B1L,EAAMotB,cAAc/X,GAC9EzP,SAAUy4C,GAAa,mBACvB9hB,MAAM,eACN52B,MAAO3F,EAAMotB,cAAcpI,iBAAmB,GAC9CwX,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTyjB,QAAQ,oBAENuE,mBAAQzuB,UACRvtB,GAAautB,IACbA,GAAgBruB,QAChBquB,GAAgB9nB,IAAI,CAACw2C,EAAKvkB,IACxB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,QAIX,MAENkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IACjC8K,MAAM2b,QAAQ1tB,IACb10B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,kBACHrR,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B1L,EAAMotB,cAAc/X,GAC9EknB,MAAM,kBACN52B,MAAO3F,EAAMotB,cAAcnI,gBAC3Brf,SAAUy4C,GAAa,mBACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTyjB,QAAQ,oBAENuE,mBAAQtuB,UACR1tB,GAAa0tB,IACbA,GAAgBxuB,QAChBwuB,GAAgBjoB,IAAI,CAACw2C,EAAKvkB,KACxB,GAAIA,EAAQ,EACV,OACE1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAMf,MAENkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,UACH1P,MAAO3F,EAAMotB,cAAc/H,QAC3Bzf,SAAUy4C,GAAa,WACvB9hB,MAAM,aACNC,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTyjB,QAAQ,UACRD,cAAY,GAEZx+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,eAEND,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAM,qBACvBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAO,iBAI5B,KAEJpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UACX,GAAtC9G,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAAsB,8CACpF,wCAGNxkB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,SACHknB,MAAM,YACNv4B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,EAC1DhnC,OAAO,SACP52B,SAAUy4C,GAAa,UACvB14C,MAAO3F,EAAMotB,cAAcC,QAAU,GACrC7pB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAA0C,GAAtCI,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAAsB,EAAI,EACtGplB,GAA0C,GAAtCK,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAAsB,EAAI,EAC7FkX,GAA0C,GAAtCj8B,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAAsB,EAAI,EAAGmX,GAAI,IACpG37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,aACHknB,MAAM,aACNC,OAAO,SACPx4B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,EAC1D/mC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,GAAa,cACvB14C,MAAO3F,EAAMotB,cAAcnK,YAAc,GACzCzf,QAAQ,cAG2B,GAAtCxD,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAC9DxkB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,sBACbhC,IAAAC,cAACi/B,KAAU,CACTh8B,MAAO,CAAE+5B,UAAW,IACpB1hC,MAAM,UACNkI,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,cAChC3H,QAASA,IA/WTshE,MACtB,GAA0C,GAAtCrlE,EAAMotB,cAAcrI,gBAA6D,MAAtC/kB,EAAMotB,cAAcrI,eACjE3X,IAAMlS,MAAM,wDAET,GAA2C,GAAtC8E,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,gBAA+D,GAAvC/kB,EAAMotB,cAAcpI,iBAA+D,MAAvChlB,EAAMotB,cAAcpI,gBAC/J5X,IAAMlS,MAAM,qDAET,GAA2C,GAAtC8E,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,gBAAgE,GAAvC/kB,EAAMotB,cAAcnI,iBAA+D,MAAvCjlB,EAAMotB,cAAcnI,iBAAkE,IAAvCjlB,EAAMotB,cAAcnI,gBAG5M,CAAC,IAADqgD,EAAAC,EACHzrC,MAEuB,QAAnBwrC,EAAAtlE,EAAM2L,KAAK4a,gBAAQ,IAAA++C,OAAA,EAAnBA,EAAqBjwD,KAAMxN,KAA+C,QAAnB09D,EAAAvlE,EAAM2L,KAAK4a,gBAAQ,IAAAg/C,OAAA,EAAnBA,EAAqBlwD,KAAMxN,GACpF2L,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,KAE7EhvC,EAASkiB,GAAkBI,gBAAgB,CAAExzB,KAAM,EAAGwX,MAAO,IAAK0oC,WAAW,UAR/Ep1C,IAAMlS,MAAM,oDAuWuBmqE,IAEf9kE,IAAAC,cAACk9B,IAAU,SAIf,KACJn9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,gBACHknB,MAAM,qBACNC,OAAO,SACPx4B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,EAC1D59D,SAAUy4C,GAAa,iBACvB14C,MAAO3F,EAAMotB,cAAcI,eAAiB,GAC5C6O,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTkoB,UAAQ,EACR1E,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,0BAEJ+iD,mBAAQ91B,SACRlmB,IAAckmB,GACdA,EAAYhnB,QACZgnB,EAAYzgB,IAAKw2C,GACfjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAInuC,GAAI1P,MAAO69C,EAAInuC,IAC/BmuC,EAAI58C,SAKfrG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdt7C,QAAQ,WACR6R,GAAG,YACHknB,MAAM,UACNC,OAAO,SACPx4B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,EAC1D59D,SAAUy4C,GAAa,aACvB14C,MAAO3F,EAAMotB,cAAcE,WAAa,GACxC+O,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZ0E,UAAQ,EACRzE,QAAQ,aAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,aAEJ+iD,mBAAQltB,SACR9uB,IAAc8uB,GACdA,EAAQ5vB,QACR4vB,EAAQrpB,IAAKw2C,GACXjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,SAKfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL0C,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,cAChC2J,GAAG,aACHknB,MAAM,eACNC,OAAO,SACP52B,SAAUy4C,GAAa,cACvB14C,MAAO3F,EAAMotB,cAAcG,YAAc,GACzC/pB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEV+mB,WAAY,CACVwU,IAAK,EACLmK,KAAM,MAERpjB,cAAe,CAAC,4BAImB,GAAtC5+C,EAAMotB,cAAcrI,gBAA6D,GAAtC/kB,EAAMotB,cAAcrI,eAC9DxkB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,kBACHknB,MAAM,8BACNC,OAAO,SACPl7B,KAAK,OACLsE,SAAUy4C,GAAa,mBACvB14C,MAAO3F,EAAMotB,cAAc1H,gBAAmB1lB,EAAMotB,cAAc1H,gBAAiBsd,eAAe,QAAS,CAAEC,sBAAuB,IAAY,EAChJz/B,QAAQ,WACRm7C,WAAY,CAAC,YACb8E,UAAQ,EACRpnB,gBAAiB,CACfC,QAAQ,GAEVslC,WAAY,CACV4D,eACEjlE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,SAAQ,OAKrCwgB,cAAe,CAAC,yBAChB56C,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,KAI9DjjE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,kBACHknB,MAAM,8BACNC,OAAO,SACPl7B,KAAK,OACLsE,SAAUy4C,GAAa,mBACvB14C,MAAO3F,EAAMotB,cAAc1H,gBAAmB1lB,EAAMotB,cAAc1H,gBAAiBsd,eAAe,QAAS,CAAEC,sBAAuB,IAAY,EAChJz/B,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEVslC,WAAY,CACV4D,eACEjlE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,SAAQ,OAKrCp6B,SAAiD,GAAvCm8B,GAAWngC,EAAM2L,KAAKD,eAA0B83D,OAMpEjjE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KAptBzByP,EAASyQ,GAAoB1H,iBAqtBd,YAGDhc,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACR2J,SAAUhE,EAAMotB,cAAc1U,WAAa1Y,EAAM2L,KAAKD,cAAgB9D,GACpE61B,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMotB,cAAc1U,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEjEF,EAAMotB,cAAc/X,GAAMrV,EAAMotB,cAAc1U,UAAY,sBAAwB,YAAgB1Y,EAAMotB,cAAc1U,UAAY,mBAAqB,WAE1JtF,GAAYQ,YAAcR,GAAYU,iBAAmB9T,EAAM2L,KAAKD,cAAgB9D,IAClFrH,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,uFACbhC,IAAAC,cAAA,YACED,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAAUyR,IArnBhCmvD,UAEA9X,GAAgB,IAonBM7oD,SAAUhE,EAAMotB,cAAc1U,gBAAanR,GAAa6lB,GAAyC,GAAxBA,EAAc3mB,OACvFg3B,UAAWl9B,IAAAC,cAACilE,KAAgB,MAC5B9nC,QAAS39B,EAAMotB,cAAc1U,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEjEF,EAAMotB,cAAc1U,UAAY,gCAA+B,uCAKtEtF,GAAYQ,YAAcR,GAAYU,iBAAmB9T,EAAM2L,KAAKD,cAAgB9D,IACpFrH,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,8FACbhC,IAAAC,cAAA,YACED,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KAAM2hE,OAruBKrwD,EAquB8B2C,OApuBxEmiB,EAAQ,CACN53B,MAAO,4EACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,uBAAyB,iBAClEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6O,GAAW8B,iCAAiC9O,MARbA,OAsuBpBooB,UAAWl9B,IAAAC,cAACmlE,KAAkB,MAC9BhoC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAY,8BAA6B,yCAWzEnY,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAAUy4C,GAAa,YAI7B99C,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,UAC1BvG,IAAAC,cAAC8+B,KAAS,KAAC,cACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,cACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,+BACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,qBACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAc6lB,GAAiBA,EAAc3mB,OAAS,EACnD2mB,EAAcpgB,IAAKouB,GAEjB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/N,OAAS+N,EAAE/N,OAAS,IAEzB9sB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAEpB,GAApBs0B,EAAErW,gBAA2C,GAApBqW,EAAErW,gBAEN,MAAhB6B,IAAwBogB,MAAM2b,QAAQ/7B,KAAiBA,GAAangB,OAAS,GAAyB,IAApB20B,EAAErW,gBACnB,MAAhE6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GAExD6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GAAG1pB,KAC7D,IAEN,OAEa,MAAV6a,GAAkB8wB,MAAM2b,QAAQzsC,IAAWA,EAAOzP,OAAS,GAA+B,GAA1B20B,EAAElW,sBACD,MAAhEhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAElW,sBAAsB,GAExDhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAElW,sBAAsB,GAAG7pB,KAC7D,IAEN,MAEsB,MAAnBy5B,IAA2BkS,MAAM2b,QAAQ7tB,KAAoBA,GAAgBruB,OAAS,GAA0B,IAArB20B,EAAEpW,iBACxB,MAApE8P,GAAgBwb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEpW,iBAAiB,GAE5D8P,GAAgBwb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEpW,iBAAiB,GAAG3pB,KACjE,IAEN,KAEsB,MAAnB45B,IAA2B+R,MAAM2b,QAAQ1tB,KAAoBA,GAAgBxuB,OAAS,GAA0B,IAArB20B,EAAEnW,iBACxB,MAApEgQ,GAAgBqb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEnW,iBAAiB,GAE5DgQ,GAAgBqb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEnW,iBAAiB,GAAG5pB,KACjE,IAEN,IACAkF,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,4CACbhC,IAAAC,cAAA,YAAwB,MAAhBomB,IAAwBogB,MAAM2b,QAAQ/7B,KAAiBA,GAAangB,OAAS,GAAyB,GAApB20B,EAAErW,gBAC1B,MAAhE6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GAExD6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GAAG1pB,KAC7D,MAKZkF,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEnY,WAAamY,EAAEnY,WAAW9b,cAAgB,IAE/C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE7N,YAELhtB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE1V,gBAAkB8oC,KAAKC,aAAa,QAAS,CAC9ChrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAE1V,iBAAmB,SAEjCnlB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAEzV,sBAAwB6oC,KAAKC,aAAa,QAAS,CACpDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEzV,uBAAyB,SAErC3lB,EAAM2L,KAAKD,cAAgB9D,IAC3BrH,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,KAAMozD,OAn3BvB9hD,EAm3BkC+lB,EAAE/lB,QAl3BtD7B,EAASyQ,GAAoBkJ,qBAAqB9X,IADhCA,OAo3BQnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,0BACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAM8iD,OAj2BrBxxC,EAi2BkC+lB,EAAE/lB,QAh2BxD8kB,EAAQ,CACN53B,MAAO,oCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2L,KAAK+M,UACrBknB,iBAAkB5/B,EAAM2L,KAAK+M,UAAY,oBAAsB,gBAC/DmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASyQ,GAAoB2J,wBAAwBvY,MARnCA,OAk2BMnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAY1BhhB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WAxBxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA+BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAj8BmBC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAi8BJJ,iBAAiB,uBACjBC,mBAAoBzJ,IAAA,IAAC,KAAEnwC,EAAI,GAAEH,GAAIswC,EAAA,SAAAn0C,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D6kC,YAAa3B,EACb4B,oBAj8BqBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,MAo8BJwS,EACErsD,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM0vC,EACNrxB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAASA,IAAMoxB,GAAgB,IAE/BtsD,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,SAAU,wDAG7DuE,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,OACRC,MAAO,CAAE26B,SAAU,WAAY6C,IAAK,EAAGE,MAAO,EAAGrlC,MAAO,OAAQsH,SAAU,SAC1EW,QAASA,IAAM8oD,GAAgB,IAC/BtsD,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAAC58B,QAAQ,OAAOugC,cAAc,SAASt8B,eAAe,UAC9D3C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAO,0BAAqBwpB,EAAI,QAGzEllB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAO,8CAIhDsE,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,UAC1BvG,IAAAC,cAAC8+B,KAAS,KAAC,cACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,cACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,0BACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,mBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAc+7D,GAAaA,EAAU78D,OAAS,EAC3C68D,EAAUt2D,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/N,OAAS+N,EAAE/N,OAAS,IAEzB9sB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,WACxB,MAAhB8f,SAAwCrf,GAAhBqf,IAA6BA,GAAangB,OAAS,GAAyB,IAApB20B,EAAErW,gBAAwF,MAAhE6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GACpK6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAErW,gBAAgB,GAAG1pB,KAC3D,IAAM,OAAmB,MAAV6a,QAA4B3O,GAAV2O,GAAuBA,EAAOzP,OAAS,GAA+B,IAA1B20B,EAAElW,sBAA8F,MAAhEhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAElW,sBAAsB,GACvKhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAElW,sBAAsB,GAAG7pB,KAC3D,IAAM,MAA2B,MAAnBy5B,SAA8CvtB,GAAnButB,IAAgCA,GAAgBruB,OAAS,GAA0B,IAArB20B,EAAEpW,iBAA6F,MAApE8P,GAAgBwb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEpW,iBAAiB,GAChM8P,GAAgBwb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEpW,iBAAiB,GAAG3pB,KAC/D,IAAM,KAA0B,MAAnB45B,SAA8C1tB,GAAnB0tB,IAAgCA,GAAgBxuB,OAAS,GAA0B,IAArB20B,EAAEnW,iBAA6F,MAApEgQ,GAAgBqb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEnW,iBAAiB,GAC/LgQ,GAAgBqb,OAAOriC,GAAOA,EAAItI,OAASy1B,EAAEnW,iBAAiB,GAAG5pB,KAC/D,IAAM,KAElBkF,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEnY,WAAamY,EAAEnY,WAAW9b,cAAgB,IAE/C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzCs0B,EAAE7N,YAELhtB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzC0nD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAE1V,gBAAkB0V,EAAE7N,aAElChtB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzC0nD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAQqI,EAAE1V,gBAAkB0V,EAAE7N,YAAevtB,EAAM2L,KAAK8Z,IAAO2V,EAAE1V,gBAAkB0V,EAAE7N,YAAcvtB,EAAM2L,KAAK8Z,IAAM,KAAQ,OAOpI/M,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WArBxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA4BhEvG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAY,cAGhCjD,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,2DACbhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAIR,EAAM2L,KAAK8Z,IAAI,SAIzBllB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAClBjD,IAAAC,cAAA,cAAQ,wBAEVD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAI2kE,KAAgDA,KAAgD,aAGxG5kE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAClBjD,IAAAC,cAAA,cAAQ,iCAEVD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAIkkE,KAA0CA,KAA0C,cAI9FnkE,IAAAC,cAAC2D,IAAM,CACLJ,QAASA,IAAM6gE,GAA8B5sD,GAC7CxU,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQvB,MAAO,OAAQ0hC,UAAW,IAC5DC,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEvDF,EAAM2L,KAAK+M,UAAY,+BAA8B,wCAM/D,KAIHqhB,GACCx5B,IAAAC,cAACitD,GAAW,CACV3zB,OAAQA,GACRC,MAAOA,GACP/5B,MAAOA,EACPqV,GAAI2uD,GACJt3D,IAAK1M,EAAMotB,cAAcpI,gBACzBxY,IAAKxM,EAAMotB,cAAcnI,gBACzBlQ,GAAe,MAAVmB,QAA4B3O,GAAV2O,GAAuBA,EAAOzP,OAAS,GAAiD,IAA5CzG,EAAMotB,cAAclI,sBAAgH,MAAlFhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAC/LhP,EAAOo6B,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAclI,sBAAsB,GAAG7pB,KAC7E,GAEJqyD,WAA6B,MAAhB9mC,SAAwCrf,GAAhBqf,IAA6BA,GAAangB,OAAS,GAA2C,IAAtCzG,EAAMotB,cAAcrI,gBAA0G,MAAlF6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GACnN6B,GAAa0pB,OAAOriC,GAAOA,EAAItI,OAAS3F,EAAMotB,cAAcrI,gBAAgB,GAAG1pB,KAC7E,GAEJgqB,QAASrlB,EAAMotB,cAAc/H,UAG/B,KAIDo3B,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB8B,gBAG3B,U,eCllDV,MAAMg8D,GAAkBhhE,IAAe,IAAd,KAAE+G,GAAM/G,EAC/B,MAAM4O,EAAW6mB,gBACVwrC,EAAOC,GAAY5rC,mBAAS,CAAE6rC,QAAS,EAAGC,KAAM,KAChD9mB,EAAU+mB,GAAe/rC,mBAAS,MAEzCt3B,oBAAU,KACRsjE,KACC,IAEH,MAAMA,EAAeA,KAAO,IAADC,EACzB,IAAIC,EAAe,EACfC,EAA4B,QAAnBF,EAAGx6D,EAAK8a,mBAAW,IAAA0/C,OAAA,EAAhBA,EAAkB1/D,OAElCkF,EAAK8a,YAAY6/C,QAAQvB,IAAU,IAADwB,EAChC,MAAM15C,EAAyB,QAAjB05C,EAAGxB,EAAMl4C,gBAAQ,IAAA05C,OAAA,EAAdA,EAAgBz5D,MAAM,MAC3B,OAAR+f,QAAQ,IAARA,OAAQ,EAARA,EAAUpmB,QAAS2/D,IACrBA,EAAev5C,EAASpmB,UAI5Bq/D,EAAS,CAAEC,QAASK,EAAcJ,KAAMK,KA4G1C,OACE9lE,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMvR,EAAK66D,oBACXhnB,kBAAgB,0CAChBhkB,SAAS,KACTD,WAAS,GAETh7B,IAAAC,cAACk7B,KAAW,CAACrmB,GAAG,oBAAoB5R,MAAO,CAAEkjC,cAAe,GAAIvoC,aAAc,IAC5EmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,SAASmC,aAAc,GAAG,mCAC3DmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,OACRtD,KAAK,QACLuD,MAAO,CAAE26B,SAAU,WAAY6C,IAAK,GAAIE,MAAO,GAC/Cp9B,QAASA,IAAMyP,EAAS6O,GAAWsC,0BACnCpkB,IAAAC,cAACu7B,KAAS,CAACt4B,MAAO,CAAE3H,MAAO,eAG/ByE,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,MACzBvmC,IAAAC,cAAC2+B,KAAK,CAACsnC,YAAa,GAClBlmE,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,UAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,UAzHbwmC,MAAMhlC,KAAK,CAAEyE,OAAQo/D,EAAME,SAAW,CAAC9+B,EAAGhI,IAE7C1+B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,MAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAASrD,MAAO,CAAEL,SAAU,UACxD7C,IAAAC,cAAA,cAAQ,cAASy+B,EAAQ,QAuH3B1+B,IAAAC,cAACumC,KAAS,KA/GTp7B,EAAK8a,YAAYzZ,IAAI,CAAC+3D,EAAO9lC,KAAW,IAADynC,EAC5C,MAAMC,EAAQ5B,EAAMj4C,iBAAiB3e,OAAO,CAAC22D,EAAKjpC,KAAI,IAAA+qC,EAAA,OAAK9B,GACxDjpC,EAAKpM,oBAC+E,QAD5Dm3C,EACvB/qC,EAAKlN,qBAAqBmP,KAAM+oC,GAAYA,EAAQxxD,IAAMwmB,EAAKpM,4BAAoB,IAAAm3C,OAAA,EAAnFA,EAAqFx8C,MACnFyR,EAAKlW,wBAEP,GAEEkH,GAAyB,QAAd65C,EAAA3B,EAAMl4C,gBAAQ,IAAA65C,OAAA,EAAdA,EAAgB55D,MAAM,OAAQ,GAEzCg6D,EAAQ,GAYd,GAXAA,EAAMx4D,KACJ/N,IAAAC,cAAC8+B,KAAS,KACR/+B,IAAAC,cAAA,cAASukE,EAAMl+D,UAGnBigE,EAAMx4D,KACJ/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASrD,MAAO,CAAEL,SAAU,UAC1C,MAAQujE,EAAM3jC,eAAe,QAAS,CAAEC,sBAAuB,EAAG8jC,sBAAuB,MAI1Fl6C,EAASpmB,OACX,IAAK,IAAImJ,EAAI,EAAGA,EAAIi2D,EAAME,QAASn2D,IAAK,CACtC,MAAMo3D,EAAO5C,OAAOv3C,EAASjd,IAC7Bk3D,EAAMx4D,KACJ/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASnF,IAAKiO,EAAI,KACjCrP,IAAAC,cAAA,SAAK6jE,MAAM2C,GAAqB,IAAbA,EAAO,OAG9BF,EAAMx4D,KACJ/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASnF,IAAKiO,EAAI,KACjCrP,IAAAC,cAAA,SAAK6jE,MAAM2C,GAAyH,IAAjH,OAASL,GAASK,EAAO,MAAMhkC,eAAe,QAAS,CAAEC,sBAAuB,EAAG8jC,sBAAuB,OAMrI,OACExmE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6+B,KAAQ,CAACt7B,QAASA,IAhEGk7B,KAE1BgnC,EADE/mB,IAAajgB,EACH,KAEAA,IA4DiBgoC,CAAqBhoC,GAAQx7B,MAAO,CAAE+5B,UAAW,EAAGp/B,aAAc,EAAGf,gBAAiB6hD,IAAajgB,EAAQ,UAAY,OAAQv6B,OAAQ,UAAWwiE,kBAAmB,OAASvlE,IAAKs9B,GAAQ6nC,GACnN5nB,IAAajgB,GAAS8lC,EAAMj4C,iBAAiB9f,IAAI6uB,IAAS,IAADsrC,EACxD,MAAMC,EAAS,GAef,GAdAA,EAAO94D,KACL/N,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAExH,SAAU,SAC3B4/B,EAAK5Y,aAGVmkD,EAAO94D,KACL/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASrD,MAAO,CAAEL,SAAU,QAASnH,SAAU,SAC7D,OAAU4/B,EAAKpM,oBACqE,QADlD03C,EACjCtrC,EAAKlN,qBAAqBmP,KAAM+oC,GAAYA,EAAQxxD,IAAMwmB,EAAKpM,4BAAoB,IAAA03C,OAAA,EAAnFA,EAAqF/8C,MACnFyR,EAAKlW,uBACNqd,eAAe,QAAS,CAAEC,sBAAuB,EAAG8jC,sBAAuB,MAI9El6C,EAASpmB,OACX,IAAK,IAAImJ,EAAI,EAAGA,EAAIi2D,EAAME,QAASn2D,IAAK,CAAC,IAADy3D,EACtC,MAAML,EAAO5C,OAAOv3C,EAASjd,IAC7Bw3D,EAAO94D,KACL/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASnF,IAAKiO,EAAI,OAGrCw3D,EAAO94D,KACL/N,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASnF,IAAKiO,EAAI,IAAKnM,MAAO,CAAExH,SAAU,SACzDsE,IAAAC,cAAA,SAAK6jE,MAAM2C,GAGyF,IAHjF,QAAUnrC,EAAKpM,oBACmD,QADhC43C,EACnDxrC,EAAKlN,qBAAqBmP,KAAM+oC,GAAYA,EAAQxxD,IAAMwmB,EAAKpM,4BAAoB,IAAA43C,OAAA,EAAnFA,EAAqFj9C,MACnFyR,EAAKlW,wBACJqhD,EAAO,MAAMhkC,eAAe,QAAS,CAAEC,sBAAuB,EAAG8jC,sBAAuB,OAKrG,OAAOxmE,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAEpG,gBAAiB,YAAc+pE,aAqD/DE,GAA2Bh9B,qBAC/BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqC88B,K,yFC7LjCtmE,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJ0B,WAAY,SACZoE,eAAgB,SAChBqzC,aAAc,SACd5c,WAAY,GACZx6B,YAAa,GACb,CAACd,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9Bp3C,MAAO,SAGX6C,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,SA0DlB+sE,OAtDcvnE,IAC3B,MAAM,UAAEC,EAAS,cAAEunE,EAAa,MAAEjlE,EAAK,UAAEklE,EAAS,WAAEC,EAAU,eAAEC,GAA4B3nE,EAATG,EAAIC,YAAKJ,EAAKK,IAC3FC,EAAUhB,KAEhB,OACEiB,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,GAAKP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC5CM,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQsnC,aAAW,iBAC7BjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASrD,MAAO,CAAEpG,gBAAiB,WAAaqqC,QAAS,GAAInlC,IAEhFhC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QACfvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,SACzF3C,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAO,UAAWG,SAAU,GAAIkD,YAAa,KAAO,oBAI1EoB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAS0gE,IAE5BjnE,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QACfvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,SACzF3C,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAO,UAAWG,SAAU,GAAIkD,YAAa,KAAO,eAI1EoB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAS2gE,IAE5BlnE,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAOvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,SACjH3C,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAO,OAAQG,SAAU,GAAIkD,YAAa,KAC5DoB,IAAAC,cAAA,cAASmnE,KAEXpnE,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAAA,cACGknE,SCdjB,MA+BMtL,GAAuB93D,YAAO2uD,KAAP3uD,CAAuBM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAClEnF,OAAQ,GACRZ,aAAc,EACd,CAAC,KAADb,OAAMq+D,KAAsBC,eAAiB,CAC3Cj/D,gBAAiBgB,EAAMtC,QAAQxB,KAA4B,UAAvB8D,EAAMtC,QAAQwgE,KAAmB,IAAM,MAE7E,CAAC,MAADv+D,OAAOq+D,KAAsBG,MAAQ,CACnC39D,aAAc,EACdxB,gBAAiB,cAIfwlE,GAAqB/8D,IAAwB,IAADg3D,EAAA,IAAtB,MAAE98D,EAAK,OAAEgY,GAAQlS,EAE3C,MAAM,UAAE4S,GAAc1Y,EAAMgqB,aACtBmQ,EAAUC,eACV,QAAE95B,GAAYN,GAEb4nE,EAAcC,GAAmBtnE,IAAM25B,SAAS,OAChD4tC,EAAmBC,GAAwBxnE,IAAM25B,SAAS,KAC1D68B,EAAUC,GAAe98B,mBAAS,KAClC8tC,EAAQC,GAAa/tC,oBAAS,IAE/B,UAAEtN,GAAc5sB,EAAM4sB,WACtB,QAAE/T,GAAYytB,aACjBvkC,GAAUA,EAAM8W,UAGZ4jC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtCyrB,EAAyB,OAARnR,QAAQ,IAARA,OAAQ,EAARA,EAAU/pD,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAEjyB,GAAIzO,KAAM0gC,EAAE1gC,SAEvD01C,OAAO,OAAE7uC,IAAazN,EAExBiC,EAAWq+C,wBACX6nB,EAAgBlmE,EAASF,MAAQE,EAASF,MAAM8W,QAAU,KAC1DwkD,EAAW/2B,aAAavkC,IAAK,IAAAu7D,EAAA,OAAe,QAAfA,EAAKv7D,EAAM4J,YAAI,IAAA2xD,OAAA,EAAVA,EAAYv2C,gBAC9CiD,EAAesc,aAAavkC,IAAK,IAAAqmE,EAAA,OAAe,QAAfA,EAAKrmE,EAAM4J,YAAI,IAAAy8D,OAAA,EAAVA,EAAYzhD,kBAEjD0hD,EAA+BC,GAAoCpuC,mBAAS,OAC5EquC,EAAcC,GAAmBtuC,oBAAS,IAC1CuuC,EAAWC,GAAgBxuC,mBAAS,OAEpCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GACnC1mB,EAAW6mB,gBAEX,QAAEtiB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KACuC,GAA3C5C,EAAMumC,eAAe9yB,KAAKsjB,cAC5BigC,EAAY,CAAC,CAAE3hD,GAAIrV,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,GAAG9B,UAAWhS,KAAM5G,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,GAAG7B,QAAQmB,eAExIxI,GACG1D,IAAI,uCAAD9P,OAAwCga,IAC3CjH,KAAKb,IAAQ,IAAA+mD,EAAA,OACZD,EAAyB,QAAdC,EAAC/mD,EAAS9D,YAAI,IAAA6qD,OAAA,EAAbA,EAAejqD,IAAIkqD,IACtB,CAAE7hD,GAAI6hD,EAAEt+C,UAAWhS,KAAMswD,EAAEr+C,eAGzC,IAEHjW,oBAAU,OACP,CAAC86C,EAAOhlC,IAEX9V,oBAAU,KAAO,IAADi6D,EAAA8L,EACdL,EAA2C,QAAXzL,EAAC78D,EAAM2L,YAAI,IAAAkxD,GAAiB,QAAjB8L,EAAV9L,EAAY9wD,uBAAe,IAAA48D,OAAjB,EAAVA,EAC7Br4B,OAAOzU,GAAuB,GAAfA,EAAK1rB,QACrBhC,OAAO,CAAC22D,EAAKjpC,IAASipC,EAAMjpC,EAAKzR,MAAO,KAC1C,CAAW,QAAX0yC,EAAC98D,EAAM2L,YAAI,IAAAmxD,OAAA,EAAVA,EAAY/wD,kBAEhBnJ,oBAAU,KAER,GAAoB,MAAhBglE,GAAwC,IAAhBA,EAAoB,CAC9C,IAAIpxD,EAAc,CAChB2B,OAAQH,EACRkE,UAAW0rD,EAAavyD,IAG1B7B,EAASmW,GAAmBC,gBAAgBpT,MAE7C,CAACoxD,IAEJhlE,oBAAU,KAER,GAAIulE,EAAe,CACjB,IAAI3xD,EAAc,CAChB2B,OAAQH,EACRkE,UAAWisD,EAAc9yD,IAG3B7B,EAASmW,GAAmBC,gBAAgBpT,IAE5CqxD,EAAgB,CAAExyD,GAAI8yD,EAAc9yD,GAAIzO,KAAMuhE,EAAcnuD,cAC5D+tD,EAAqB,CAAE1yD,GAAI8yD,EAAc9yD,GAAIzO,KAAMuhE,EAAcnuD,gBAGlE,CAACmuD,IAEJvlE,oBAAU,KACJ2lE,GAAgBE,GAClBG,MAED,CAAC5oE,EAAM+nB,QAAQE,kBAAmBsgD,IAErC,MAAMM,EAAcxzD,IAClB,QAAU9N,GAAN8N,EACF,OAAmB,OAAZ2U,QAAY,IAAZA,OAAY,EAAZA,EAAc8T,KAAM1C,GAAyB,MAAnBA,EAAEjT,eAAyBiT,EAAE/lB,IAAMA,IAIlEyzD,EAAuBvtE,IAC3BsH,OAAOqa,KAAK3hB,EAAM,WAGdwtE,EAAgBA,KACpB,GAAI1L,EACF,OAAe,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUj1B,KAAMhN,IAAC,IAAA4tC,EAAA,OAAiC,OAAnB,QAATA,EAAA5tC,EAAErT,eAAO,IAAAihD,OAAA,EAATA,EAAW7gD,gBAAyBiT,EAAEpjB,QAAUkkC,SAASlkC,IAAyB,GAAdojB,EAAEtf,YAIjGmtD,EAAuBA,IACZ,OAAR5L,QAAQ,IAARA,OAAQ,EAARA,EAAUj1B,KAAKuc,GAAMA,EAAG3sC,QAAUkkC,SAASlkC,IAA0B,GAAf2sC,EAAG7oC,UAG5DotD,EAAsC,OAAZl/C,QAAY,IAAZA,OAAY,EAAZA,EAAc7b,OAAO,CAACw4D,EAAO9qC,IACtDA,EAAK1T,cAGHw+C,EAFEA,EAAQ9qC,EAAKzR,MAGrB,GAEG++C,EAAkC,OAAZn/C,QAAY,IAAZA,OAAY,EAAZA,EAAc7b,OAAO,CAACw4D,EAAO9qC,IACnDA,EAAK1T,cACAw+C,EAAQ9qC,EAAKzR,MAEfu8C,EACN,GAEGyC,EAA+C,OAAZp/C,QAAY,IAAZA,OAAY,EAAZA,EAAc7b,OAAO,CAACw4D,EAAO9qC,IAChEA,EACK8qC,EAAQ9qC,EAAKzR,MAEfu8C,EACN,GACH,SAAS0C,IACP,OACE9oE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,iCAKV,SAAS8oE,IACP,OAAO/oE,IAAAC,cAAC6oE,EAAkB,MAG5B,SAASE,IACP,OACEhpE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,YAIV,SAASgpE,KACP,OACEjpE,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOugC,cAAc,MAAMt8B,eAAe,gBAAgBpE,WAAW,UAChFyB,IAAAC,cAAC+oE,EAAgB,OAMvB,MA+BMX,GAA2BA,KAC3BH,GAA0B,GAAbA,GACfj1D,EAASoU,GAAcS,4BAA4BogD,EAAW1wD,EAASC,EAAQ,CAC7EiQ,kBAAmBjoB,EAAM+nB,QAAQE,sBAKjCwhD,GAA0Bh7D,IAC9Bw5D,GAAU,GACV,IAAI51D,EAAO5D,EAAEE,OAAOq3C,MAAM,GACtB3zC,GACFU,GAAWV,GACRtB,KAAMb,IACL,IAAI01C,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAASoU,GAAcrS,cAAc,oBAAqBqwC,IAC1DqiB,GAAU,KAEX32D,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZi8D,GAAU,MA6ClB,SAASvM,KACP,OACEn7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKC,MAAO,CAAEk2B,WAAY,KAC5Cp5B,IAAAC,cAAA,SAAI,yBAIV,SAASimC,KAAa,IAADs2B,EAAA2M,EAAAC,EAAAC,EAAAC,EACnB,OACEtpE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGm4C,aAAc,SAAU/Y,UAAW,IAC/Jj9B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,SAAS88B,WAAS,EAAC14B,eAAe,SAASlE,QAAS,EAAGyE,MAAO,CAAErF,aAAc,KAC7FmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC+mE,GACC,CACAC,cAAa,MAAAxpE,OAAgC,IAAZ,OAAZgsB,QAAY,IAAZA,OAAY,EAAZA,EAAcvjB,SAEtB,QAAVs2D,EAAA/8D,EAAM2L,YAAI,IAAAoxD,OAAA,EAAVA,EAAYhxD,mBAA6B,QAAV29D,EAAA1pE,EAAM2L,YAAI,IAAA+9D,OAAA,EAAVA,EAAY39D,gBAAgBtF,QAAS,GACH,QAAhEkjE,EAAW,QAAXC,EAAC5pE,EAAM2L,YAAI,IAAAi+D,GAA8C,QAA9CC,EAAVD,EAAY79D,gBAAgB+xB,KAAKgsC,GAAqB,GAAdA,EAAI35D,eAAY,IAAA05D,OAA9C,EAAVA,EAA0Dz/C,aAAK,IAAAu/C,IAAI,GACjE3mC,eAAe,QAAS,CAAEC,sBAAuB,IAExB,GAA3BimC,QAA2D3hE,GAA3B2hE,EAC/BA,EAAwBlmC,eAAe,QAAS,CAAEC,sBAAuB,IACzE,OACwB,GAA3BimC,QAA2D3hE,GAA3B2hE,EACR,OAAvBA,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBlmC,eAAe,QAAS,CAAEC,sBAAuB,IAC1E,QACJykC,WAAgD,GAApC0B,EAAwC,UAAS,MAAAprE,OAAyC,OAAhCorE,QAAgC,IAAhCA,OAAgC,EAAhCA,EAAkCpmC,eAAe,QAAS,CAAEC,sBAAuB,KACzJwkC,UAAS,MAAAzpE,OAAQmrE,EAAyC,OAAnBA,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBnmC,eAAe,QAAS,CAAEC,sBAAuB,IAAO,QACpH0kC,eAAe,wCACfplE,MAAM,wBAGR6Q,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,cACpExT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGJ,GAAI,EAAGy8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC+mE,GAAmB,CAClBC,cAAgByB,IAAuCF,IAAiH,UAAlG,MAAA/qE,OAAsC,OAA7BqqE,QAA6B,IAA7BA,OAA6B,EAA7BA,EAA+BrlC,eAAe,QAAS,CAAEC,sBAAuB,KAAtH,WACzCykC,WAAauB,IAAmC,MAAAjrE,OAAsC,OAA7BqqE,QAA6B,IAA7BA,OAA6B,EAA7BA,EAA+BrlC,eAAe,QAAS,CAAEC,sBAAuB,KAAnG,WACtCwkC,UAAYwB,IAAsCF,IAAe,MAAA/qE,OAAsC,OAA7BqqE,QAA6B,IAA7BA,OAA6B,EAA7BA,EAA+BrlC,eAAe,QAAS,CAAEC,sBAAuB,KAAS,UAA9H,WACrC0kC,eAAe,yBACfplE,MAAM,qBAKdhC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,UAAYE,QAAS,GAC/FuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACk7D,GAAS,OAEZn7D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA5SnB44C,KA+SUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,eAKnEsE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACsD,EAAY,CACXL,MAAO,CAAEpG,gBAAiB,WAC1B0G,QAASA,IAAMyP,EAAS6O,GAAWsC,0BAEnCpkB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAI1H,MAAM,QAAO,kBAQjD,OACEyE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAColE,GAAe,MAEhBrlE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGU,WAAY,SAAU0+B,UAAW,IAC7Jj9B,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE/D,MAAO,QAChBmnC,UAAU,sCACVtkC,MAAOhC,IAAAC,cAACimC,GAAS,QAEjBrzB,GAAYW,cAAwB,OAAT6Y,QAAS,IAATA,OAAS,EAATA,EAAWnmB,SACtClG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACsD,EAAY,CACX5D,KAAK,QACLsD,QAAQ,WACRC,MAAO,CAAEq8B,cAAe,UACxB/7B,QAASA,IAAMqD,GAAQkH,KAAK,iBAAkB0J,GAC9C2lB,QAASp9B,IAAAC,cAAC08C,KAAkB,OAC7B,gCAMqC,GAA3Cl9C,EAAMumC,eAAe9yB,KAAKsjB,eACzBx2B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAI4G,GAAI,GAC7CviC,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOiiE,EACPhiE,SAAUA,CAAC4P,EAAOs7B,KAChB+2B,EAAgB/2B,IAElBrtC,MAAO,CAAE+5B,UAAW,IACpBwS,WAAY83B,EACZ/2B,cAAeA,CAACv7B,EAAOw7B,KACrB+2B,EAAqB/2B,IAEvB37B,GAAG,2BACH1D,QAASu2D,EACTzjB,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5DmnB,OAAO,SACPh5B,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEV2U,aAAc22B,EACd12B,eAAgBC,GAAUA,EAAOvqC,MAAQ,GACzCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,yDAAsDhB,WAAS,EAACkoB,UAAQ,KAC9HloB,WAAS,KAKfh7B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,SAER4S,GAAYW,YAIV,KAHFxT,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,YAGZD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,gBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,UAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,WAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,aAKlCvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcyiB,GAAgBA,EAAavjB,SAAW2M,GAAYQ,WAAag0D,GAAgC,MAAhBA,EAAuBx0D,GAAYW,aAC/HiW,EAAahd,IAAKouB,GAEhB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEnR,aAAela,KAAOqrB,EAAEnR,cAAc8I,OAAO,oBAAsB,IAEtE3f,GAAYW,YAIV,KAHFxT,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUuiB,EAAEviB,QAAQmB,YAAY7S,cAAgB,IAGvD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAElR,YACD3pB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRtD,KAAK,QACLuD,MAAO,CAAEP,eAAgB,UACzBa,QAASA,KAAMgmE,OAnRRxuE,EAmR8B6/B,EAAElR,iBAlR7DrnB,OAAOqa,KAAK3hB,EAAM,UADWA,QAoRR,cAID,MAEJgF,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEhR,MAAQ,KAAOgR,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,IAEpF1iC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAC1CvG,IAAAC,cAAC8F,KAAO,CACN/D,MAA0B,MAAnB64B,EAAEjT,eAAqB,WAAAnqB,OAAc+R,KAAOqrB,EAAEjT,eAAe4K,OAAO,sBAE3ExyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,WAAY,IAAC3C,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAA0B,MAAnBs/B,EAAEjT,cAAwB,UAAY,UAAWlsB,SAAU,GAAIkD,YAAa,KAAO,IAACoB,IAAAC,cAAA,YAA0B,MAAnB46B,EAAEjT,cAAwB,YAAc,WAGxQ5nB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,KAAMimE,OArST30D,EAqSgC+lB,EAAE/lB,QApShE8kB,EAAQ,CACN53B,MAAO,yDACPo9B,YAAa,2CACb37B,SAAUhE,EAAMgqB,aAAatR,UAC7BknB,iBAAkB5/B,EAAMgqB,aAAatR,UAAY,0BAA4B,gBAC7EmnB,iBAAkB,YACjB9uB,KAAK,KACFsE,QAAY9N,GAAN8N,GACR7B,EAASmW,GAAmBa,qBAAqBnV,EAAI2C,MAT3B3C,OAsSNvZ,MAAM,UACNoE,KAAK,QACL8D,SAAU6kE,EAAWztC,EAAE/lB,IACvBqC,QAASmxD,EAAWztC,EAAE/lB,WAUjCqD,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEpBh0B,GAAYW,YAIV,KAHFxT,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAGxB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAxB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAUt0B,GAAYW,YAAkB,EAAJ,EAAOjN,MAAM,UAAS,iCA+B7FvG,IAAAC,cAACuG,KAAO,OAEVxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAComC,KAAU,CACTC,UAAU,sGACVtkC,MAAOhC,IAAAC,cAAC8oE,EAAkB,SAG9B/oE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEl1C,QAAS,OAAQH,WAAY,WACtCyB,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAEz0C,MAAO,OAAQ8lC,GAAI,EAAGk4B,GAAI,IACnCn9D,IAAAC,cAAC47D,GAAoB,CAAC54D,QAAQ,cAAcmC,MAAmD,GAA5C3F,EAAM2L,KAAKsb,8BAAqCjnB,EAAM2L,KAAKsb,8BAAgC,KAEhJ1mB,IAAAC,cAACkiC,KAAG,CAACyR,GAAI,CAAE/wC,SAAU,KACnB7C,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQ1H,MAAM,kBAAgB,GAAAkC,OAAiD,GAA5CgC,EAAM2L,KAAKsb,8BAAqCjnB,EAAM2L,KAAKsb,8BAAgC,EAAC,WAKzJ7T,GAAYQ,YAAcR,GAAYU,gBAAkBV,GAAYW,cACpExT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAComC,KAAU,CACTC,UAAU,0CACVtkC,MAAOhC,IAAAC,cAACgpE,GAAgB,QAE1BjpE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,QAC/CvG,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,gBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,YAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,UAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,WAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,aAKlCvG,IAAAC,cAACumC,KAAS,KACPs2B,QAAY91D,IAAc81D,GAAYA,EAAS52D,OAC5C42D,EAASrwD,IAAKouB,IAAO,IAAD6uC,EACpB,OACE1pE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAErT,SAAWqT,EAAErT,QAAQG,aAAenY,KAAOqrB,EAAErT,QAAQG,cAAc6K,OAAO,oBAAsB,IAErGxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAErT,SAAWqT,EAAErT,QAAQE,kBACtB1nB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRtD,KAAK,QACLuD,MAAO,CAAEP,eAAgB,UACzBa,QAASA,IAAM+kE,EAAoB1tC,EAAErT,QAAQE,oBAC9C,cAID,KAEJ1nB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAErT,SAAWqT,EAAErT,QAAQC,eACtBznB,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRtD,KAAK,QACLuD,MAAO,CAAEP,eAAgB,UACzBa,QAASA,IAAM+kE,EAAoB1tC,EAAErT,QAAQC,iBAC9C,cAID,KAEJznB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAErT,SAAWqT,EAAErT,QAAQqC,OAA4B,GAAnBgR,EAAErT,QAAQqC,MACvC,KAAOgR,EAAErT,QAAQqC,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IACvEolC,EACC,KAAOA,EAA8BrlC,eAAe,QAAS,CAAEC,sBAAuB,IACtF,KAER1iC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAC1CvG,IAAAC,cAAC8F,KAAO,CACN/D,SAAO64B,EAAErT,SAAsC,MAA3BqT,EAAErT,QAAQI,gBAAqB,WAAAnqB,OAAc+R,KAAOqrB,EAAErT,QAAQI,eAAe4K,OAAO,sBAExGxyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,WAAY,IAAC3C,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAOs/B,EAAErT,SAAsC,MAA3BqT,EAAErT,QAAQI,cAAwB,UAAY,UAAWlsB,SAAU,GAAIkD,YAAa,KAAO,IAACoB,IAAAC,cAAA,YAAO46B,EAAErT,SAAsC,MAA3BqT,EAAErT,QAAQI,cAAwB,YAAciT,EAAErT,QAAO,WAAA/pB,OAAc+R,KAAgB,QAAVk6D,EAAC7uC,EAAErT,eAAO,IAAAkiD,OAAA,EAATA,EAAW9hD,eAAe4K,OAAO,qBAAwB,SAGzYxyB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,qBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,KAAMmmE,OAhbZ70D,EAgb0C+lB,EAAErT,QAAQ1S,QA/azF8kB,EAAQ,CACN53B,MAAO,gDACPo9B,YA0CAp/B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,QAC/CvG,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,EAAQ0/C,SAAU9iC,KAAM8qD,GAC3CznE,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,8BAMnDyE,IAAAC,cAACqzD,KAAS,CAAC7yD,UAAU,UAAS,sBAC9BT,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,oBACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,gBACN32B,SAAU6jE,GACVnoE,KAAK,OACL05C,YAAY,qBACZzL,aAAW,EACX/S,OAAO,YAxEbx4B,SAAUhE,EAAM+nB,QAAQrP,UACxBknB,iBAAkB5/B,EAAM+nB,QAAQrP,UAAY,wBAA0B,OACtEmnB,iBAAkB,YACjB9uB,KAAK,KACNy3D,GAAgB,GAChBE,EAAarzD,KATsBA,OAibHvZ,MAAM,UACNoE,KAAK,QACL8D,SAAU+kE,EAAc3tC,EAAErT,QAAQ1S,IAClCqC,QAASqxD,EAAc3tC,EAAErT,QAAQ1S,cAYhDqD,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAtB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,oCAkCnE21C,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB2B,sBAG3B,OAcJ0gE,GAAkC7/B,qBACtCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA/tBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAosB4ByuC,CAAmBs4B,MAI3CA,I,0GC7tBT7J,GAAc10D,YAAOy2C,IAAPz2C,CAAc,MAChCrF,QAAS,UAGLw6B,GAAmBn1B,YAAOo1B,KAAPp1B,CAAmB,MAC1CxI,MAAO,UACP0hC,UAAW,GACXvhC,SAAU,GACV,UAAW,CACTyI,OAAQ,cAIC0lE,GAAsBxlE,IAAkF,IAADuwD,EAAAC,EAAAC,EAAAgV,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAhF,MAAEjyC,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,cAAEoV,EAAa,WAAE6+C,EAAU,eAAEC,GAAgBtnE,EAE7G,MAAMu5C,EAAU59C,IAAM69C,UAAU,OAEzB+tB,EAAgBC,GAAqBlyC,mBAAS,KAC9Cm/B,EAAeC,GAAoBp/B,mBAAS,KAE5C1a,EAAW6sD,IAAgBnyC,mBAAS,KACpCrzB,GAAQylE,IAAapyC,mBAAUgyC,EAAuJA,EAAiB,6BAA4C,QAAvB1B,EAAGxqE,EAAMumC,sBAAc,IAAAikC,GAAM,QAANC,EAApBD,EAAsB/2D,YAAI,IAAAg3D,GAAM,QAANC,EAA1BD,EAA4B7jE,YAAI,IAAA8jE,OAAZ,EAApBA,EAAkCvjE,eAAgB,KAA0B,QAAvBwjE,EAAG3qE,EAAMumC,sBAAc,IAAAokC,GAAM,QAANC,EAApBD,EAAsBl3D,YAAI,IAAAm3D,GAAW,QAAXC,EAA1BD,EAA4B9zC,iBAAS,IAAA+zC,OAAjB,EAApBA,EAAuC1jE,eAAgB,GAA9R,4BAA2C,QAAvBguD,EAAGn1D,EAAMumC,sBAAc,IAAA4uB,GAAM,QAANC,EAApBD,EAAsB1hD,YAAI,IAAA2hD,GAAM,QAANC,EAA1BD,EAA4BxuD,YAAI,IAAAyuD,OAAZ,EAApBA,EAAkCluD,eAAgB,KAA0B,QAAvBkjE,EAAGrqE,EAAMumC,sBAAc,IAAA8jC,GAAM,QAANC,EAApBD,EAAsB52D,YAAI,IAAA62D,GAAW,QAAXC,EAA1BD,EAA4BxzC,iBAAS,IAAAyzC,OAAjB,EAApBA,EAAuCpjE,iBACtKomB,GAAYg/C,IAAiBryC,mBAAS,KACtCsyC,GAAiBC,IAAsBvyC,mBAAS,KAChDhd,GAAMwyB,IAAWxV,oBAAS,IAC1Bs/B,GAAUC,IAAev/B,oBAAS,GAEnCC,GAAUC,cACV5mB,GAAW6mB,gBACX,QAAE/5B,GAAO,UAAEL,GAAS,QAAE4Y,GAAO,oBAAE6zD,IAAiC1sE,GAC9Ds8C,OAAO,OAAE7uC,MADgDrN,YAAKJ,EAAKK,IAC7CL,GAMxB2sE,GAA0Bn3D,IAC9Bk6B,IAAQ,GAMRz9B,GAJgB,CACdI,KAFWmD,EAAM7G,OAAOq3C,MAAM,KAM7Bj1C,KAAMb,IACLk8D,EAAkB,IAAID,EAAgB,CAAEnkD,eAAgB9X,EAAS21C,cACjEnW,IAAQ,KAETp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,IAAQ,MAIRk9B,GAAyBp3D,IAE7BikD,IAAY,GAEZ1mD,GADayC,EAAM7G,OAAOq3C,MAAM,IAE7Bj1C,KAAMb,IACLopD,EAAiB,IAAID,EAAe,CAAErxC,eAAgB9X,EAAS21C,cAC/D4T,IAAY,KAEbnoD,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZytD,IAAY,MAIZ/5B,GAAqB1X,IACzBmS,GAAQ,CACN53B,MAAO,sCACPo9B,YAAa,+DACb37B,SAAUhE,EAAMyrB,YAAY/S,UAC5BknB,iBAAkB5/B,EAAMyrB,YAAY/S,UAAY,sBAAwB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNq7D,EAAkBD,EAAe77B,OAAOqU,GAAMA,EAAG38B,gBAAkBA,OAIjEsyC,GAAyBtyC,IAC7BmS,GAAQ,CACN53B,MAAO,uCACPo9B,YAAa,gEACb37B,SAAUhE,EAAMyrB,YAAY/S,UAC5BknB,iBAAkB5/B,EAAMyrB,YAAY/S,UAAY,uBAAyB,gBACzEmnB,iBAAkB,YACjB9uB,KAAK,KACNuoD,EAAiBD,EAAc/oB,OAAOqU,GAAMA,EAAG38B,gBAAkBA,OAIrEplB,oBAAU,KACJoV,IACFxE,GAAS6O,GAAWU,YAAY/K,IAEhCxE,GAASyiB,GAAcC,eAAe9I,EAAcE,cAGrD,IAgGH,SAASkZ,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,uBAKV,SAASimC,KACP,OAAOlmC,IAAAC,cAACgmC,GAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA3Lf+1B,MA4LMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GAzGAkpC,MAEnB,IAAK,IAADmuB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEF,IAAIC,EAAa,GAgBT,IAADC,EAAAC,EAdP,GAAsB,MAAlBtB,EAEFoB,EAA2B,OAAdpB,QAAc,IAAdA,OAAc,EAAdA,EAAgBp/C,iBAAiB9f,IAAI6uB,IAAS,IAAD4xC,EAAAC,EACxD,MAAO,CACL90D,UAAWxF,GAAYW,YAAkC,QAAvB05D,EAAGztE,EAAMumC,sBAAc,IAAAknC,GAAM,QAANC,EAApBD,EAAsBh6D,YAAI,IAAAi6D,OAAN,EAApBA,EAA4BhzD,iBAAiB,GAAG9B,UAAY,EACjG+0D,cAAe,EACfj+C,gBAAiBmM,EAAKxmB,GACtB42D,WAAYO,GACZj/C,WAAYsO,EAAKtO,WAAai/C,GAAkB,IAChDhtD,UAAWA,EACXouD,+BAAgCzB,EAAenuE,OAAOq7D,WAK1DiU,EAAa,CACX,CACE10D,UAAWxF,GAAYW,YAAkC,QAAvBw5D,EAAGvtE,EAAMumC,sBAAc,IAAAgnC,GAAM,QAANC,EAApBD,EAAsB95D,YAAI,IAAA+5D,OAAN,EAApBA,EAA4B9yD,iBAAiB,GAAG9B,UAAY,EACjG+0D,cAAe,EACfj+C,gBAAiBtC,EAAc/X,GAC/B42D,WAAYO,GACZj/C,WAAYA,GACZ/N,UAAWA,EACXouD,+BAAgCzB,EAAenuE,OAAOq7D,KAK5D,MAAMzoD,EAAU,CACdxE,KAAM,IAAIC,KACV2L,OAAQA,EACR+F,UAA+B,QAAtB8uD,EAAE7sE,EAAMumC,sBAAc,IAAAsmC,GAAM,QAANC,EAApBD,EAAsBp5D,YAAI,IAAAq5D,OAAN,EAApBA,EAA4Bz3D,GACvCxO,OAAQA,GACR+kB,iBAAkB,CAAC,CACjBxf,KAAM,IAAIC,KACV2L,OAAQA,EACRY,UAAWxF,GAAYW,YAAkC,QAAvBg5D,EAAG/sE,EAAMumC,sBAAc,IAAAwmC,GAAM,QAANC,EAApBD,EAAsBt5D,YAAI,IAAAu5D,OAAN,EAApBA,EAA4BtyD,iBAAiB,GAAG9B,UAAY,KACjGmF,UAA+B,QAAtBkvD,EAAEjtE,EAAMumC,sBAAc,IAAA0mC,GAAM,QAANC,EAApBD,EAAsBx5D,YAAI,IAAAy5D,OAAN,EAApBA,EAA4B73D,GACvC0C,QAAS/X,EAAM2L,KAAKoM,QACpB41D,cAAe,EACfE,SAAS,EACT9O,OAAQ3rD,GAAYW,YAAc,IAAM,IACxCyL,UAAW,kDAA8D,QAAvB2tD,EAAGntE,EAAMumC,sBAAc,IAAA4mC,GAAM,QAANC,EAApBD,EAAsB15D,YAAI,IAAA25D,GAAM,QAANC,EAA1BD,EAA4BxmE,YAAI,IAAAymE,OAAZ,EAApBA,EAAkClmE,eACvF63D,uBAAwBmN,EAAenuE,OAAOq7D,KAGhD1tC,yBAA0B2hD,GAGxB18D,IACEu7D,GAAkBA,EAAe1lE,OAAS,GAC5C+M,GAAS2X,GAAkBiB,kBAAkBxb,IAC7CkpB,KAGA1sB,IAAMlS,MAAM,yEAIhB,MAAO8Q,GACPyG,QAAQC,IAAI,MAAO1G,KAuCQ0yC,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,6BACVtkC,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACNmlE,EA2PA3rE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC2+B,KAAK,CAAC17B,MAAO,CAAEpG,gBAAiB,YAC/BkD,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQwnC,QAAS,EAAG5gC,MAAM,UACxCvG,IAAAC,cAAA,cAAQ,UAAsB,OAAd0rE,QAAc,IAAdA,GAAsB,QAART,EAAdS,EAAgBrlE,cAAM,IAAA4kE,OAAR,EAAdA,EAAwBtkE,kBAI9C5G,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,SAAG,SAELD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAC5BvG,IAAAC,cAAA,SAAG,eAELD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAC5BvG,IAAAC,cAAA,SAAG,mBAIM,OAAd0rE,QAAc,IAAdA,GAAgC,QAAlBR,EAAdQ,EAAgBp/C,wBAAgB,IAAA4+C,OAAlB,EAAdA,EAAkC1+D,IAAK8lC,IAAO,IAADoI,EAAA4yB,EAAAC,EAAAC,EAC5C,OACEztE,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACD,QADQg7C,EACpBpI,EAAE7vB,kBAAU,IAAAi4B,OAAA,EAAZA,EAAc/zC,eAEjB5G,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAC3BgsC,EAAEvlB,WAAW,IAAe,QAAdugD,EAAC9tE,EAAMq2B,eAAO,IAAAy3C,GAAS,QAATC,EAAbD,EAAez3C,eAAO,IAAA03C,OAAT,EAAbA,EAAwBvuD,WAE1Cjf,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SACD,QADQknE,EAClCl7B,EAAEnnB,gCAAwB,IAAAqiD,OAAA,EAA1BA,EAA4B7/D,QAAO,SAAU+2D,EAAa+I,GAAS,IAADC,EACjE,OAAOhJ,GAA+C,IAAd,QAAlBgJ,EAAAD,EAAOxiD,mBAAW,IAAAyiD,OAAA,EAAlBA,EAAoBxiD,WAAiBuiD,EAAOhC,cACjE,GAAG,YAQpB1rE,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQs3C,aAAc,WAClEh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMA,IACjF3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,uBAMnDyE,IAAAC,cAACw4D,GAAW,CACVj/D,OAAO,UACPsb,GAAG,wBACHykD,UAAQ,EACRx4D,KAAK,OACLsE,SAAW6I,GAAMk+D,GAAuBl+D,KAE1ClO,IAAAC,cAAA,SAAO45D,QAAQ,yBACb75D,IAAAC,cAAC65D,KAAG,CAACr5D,UAAU,OAAOf,UAAWK,GAAQxD,QACvCyD,IAAAC,cAAC2tE,KAAqB,SAI5B5tE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,sCAGnFj9B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,4CAIrFj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC4tE,KAAS,CAACC,KAAM,GACdlC,EAAen/D,IAAK6uB,GACnBt7B,IAAAC,cAAC8tE,KAAa,CAAC3sE,IAAKk6B,EAAK7T,eAAgBvkB,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAChFj/B,IAAAC,cAAA,OACEiD,MAAO,CAAE5E,aAAc,GAAIopD,eAAgB,QAASvoD,MAAO,IAAKD,OAAQ,KACxEkH,IAAKk1B,EAAK7T,eACVie,IAAKpK,EAAK7T,eACVujC,QAAQ,SAEVhrD,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,kBACbhC,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQ6D,QAASA,IAAM27B,GAAmB7D,EAAK7T,uBAOhFznB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMs8C,IACjFj5D,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,0BAMnDyE,IAAAC,cAACw4D,GAAW,CACVj/D,OAAO,UACPsb,GAAG,OACH/T,KAAK,OACLsE,SAAW6I,GAAMm+D,GAAsBn+D,KAEzClO,IAAAC,cAAA,SAAO45D,QAAQ,QACb75D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,kBACbhC,IAAAC,cAAC65D,KAAG,CAACr5D,UAAU,OAAOf,UAAWK,GAAQxD,QACvCyD,IAAAC,cAACq3C,KAAc,UAKvBt3C,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,oBAIrFj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACpCuyD,GAAiBA,EAAc5yD,OAAS,GACvClG,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQq7B,WAAS,GAC3Bh7B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,KAAC,mBAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,gBAKd+5B,EAAcrsD,IAAK6uB,GAClBt7B,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKk6B,EAAK7T,gBAClBznB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK7T,iBAEdznB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQuD,MAAO,CAAE+5B,UAAW,EAAG7D,WAAY,GAAK51B,QAASA,IAAMu2D,GAAuBz+B,EAAK7T,wBAQhIznB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ9mB,GAAG,kBACHknB,MAAM,iBACN/4B,QAAQ,WACRlC,KAAK,SACLrB,UAAWK,GAAQ87B,UACnBb,WAAS,EACTiB,OAAO,SACP72B,MAAO6mE,IAAmB,EAC1B5mE,SAAW4P,IAAU+4D,OAljBPC,EAkjBkCh5D,EAAM7G,OAAOhJ,WAjjB7EsmE,GAAc,GAChBQ,GAAmB+B,IAFaA,OAmjBdnrB,WAAY,CAAEwU,IAAK,GACnB+J,WAAY,CACVI,KAAM,IACNF,aAAcvhE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,OAAM,UAE/C/B,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,WAAY,eACzBC,cAAe,CAAC,wBAAsB,uCAG1Cr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,YACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU82D,GAAU92D,EAAM7G,OAAOhJ,OAC5CA,MAAOkB,IAAU,6BAA4C,QAAvB8kE,EAAG3rE,EAAMumC,sBAAc,IAAAolC,GAAM,QAANC,EAApBD,EAAsBl4D,YAAI,IAAAm4D,GAAM,QAANC,EAA1BD,EAA4BhlE,YAAI,IAAAilE,OAAZ,EAApBA,EAAkC1kE,eAAgB,KAA0B,QAAvB2kE,EAAG9rE,EAAMumC,sBAAc,IAAAulC,GAAM,QAANC,EAApBD,EAAsBr4D,YAAI,IAAAs4D,GAAW,QAAXC,EAA1BD,EAA4Bj1C,iBAAS,IAAAk1C,OAAjB,EAApBA,EAAuC7kE,eACxI3D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,YACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU62D,GAAa72D,EAAM7G,OAAOhJ,OAC/CA,MAAO6Z,GAAa,GACpBhc,QAAQ,iBA5dlBjD,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,CAAC17B,MAAO,CAAEpG,gBAAiB,YAC/BkD,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQwnC,QAAS,EAAG5gC,MAAM,UACxCvG,IAAAC,cAAA,cAAQ,sBAGZD,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,SAAG,SAELD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,SAAG,eAELD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,SAAG,mBAITD,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACW,QADJ4qE,EACpB19C,EAAcnK,kBAAU,IAAA6nD,OAAA,EAAxBA,EAA0B3jE,eAE7B5G,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC3BsmB,EAAcG,WAAW,IAAe,QAAdw9C,EAAC/qE,EAAMq2B,eAAO,IAAA00C,GAAS,QAATC,EAAbD,EAAe10C,eAAO,IAAA20C,OAAT,EAAbA,EAAwBxrD,WAEtDjf,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAAQ,GAAA9I,OAChCiuE,EAAU,YAO1B1rE,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQs3C,aAAc,WAClEh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMA,IACjF3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,uBAMnDyE,IAAAC,cAACw4D,GAAW,CACVj/D,OAAO,UACPsb,GAAG,0BACHykD,UAAQ,EACRx4D,KAAK,OACLsE,SAAW6I,GAAMk+D,GAAuBl+D,KAE1ClO,IAAAC,cAAA,SAAO45D,QAAQ,2BACb75D,IAAAC,cAAC65D,KAAG,CAACr5D,UAAU,OAAOf,UAAWK,GAAQxD,QACvCyD,IAAAC,cAAC2tE,KAAqB,SAI5B5tE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,sCAGnFj9B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,sDAIrFj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC4tE,KAAS,CAACC,KAAM,GACdlC,EAAen/D,IAAK6uB,GACnBt7B,IAAAC,cAAC8tE,KAAa,CAAC3sE,IAAKk6B,EAAK7T,eAAgBvkB,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAChFj/B,IAAAC,cAAA,OACEiD,MAAO,CAAE5E,aAAc,GAAIopD,eAAgB,QAASvoD,MAAO,IAAKD,OAAQ,KACxEkH,IAAKk1B,EAAK7T,eACVie,IAAKpK,EAAK7T,eACVujC,QAAQ,SAEVhrD,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,kBACbhC,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQ6D,QAASA,IAAM27B,GAAmB7D,EAAK7T,uBAOhFznB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACrCvG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMs8C,IACjFj5D,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,0BAMnDyE,IAAAC,cAACw4D,GAAW,CACVj/D,OAAO,UACPsb,GAAG,OACH/T,KAAK,OACLsE,SAAW6I,GAAMm+D,GAAsBn+D,KAEzClO,IAAAC,cAAA,SAAO45D,QAAQ,QACb75D,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,kBACbhC,IAAAC,cAAC65D,KAAG,CAACr5D,UAAU,OAAOf,UAAWK,GAAQxD,QACvCyD,IAAAC,cAACq3C,KAAc,UAKvBt3C,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,IAAM,oBAIrFj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,UACpCuyD,GAAiBA,EAAc5yD,OAAS,GACvClG,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQq7B,WAAS,GAC3Bh7B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAK,GACbpB,IAAAC,cAAC8+B,KAAS,KAAC,mBAGX/+B,IAAAC,cAAC8+B,KAAS,KAAC,gBAKd+5B,EAAcrsD,IAAK6uB,GAClBt7B,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKk6B,EAAK7T,gBAClBznB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAAA,YAAOq7B,EAAK7T,iBAEdznB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,OAAOrD,MAAO,CAAExH,SAAU,GAAI6jC,cAAe,WAC5Dv/B,IAAAC,cAACi5B,GAAgB,CAACv5B,KAAK,QAAQuD,MAAO,CAAE+5B,UAAW,EAAG7D,WAAY,GAAK51B,QAASA,IAAMu2D,GAAuBz+B,EAAK7T,wBAQhIznB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ9mB,GAAG,kBACHknB,MAAM,iBACN/4B,QAAQ,WACRlC,KAAK,SACLrB,UAAWK,GAAQ87B,UACnBb,WAAS,EACTiB,OAAO,SACP72B,MAAO6mE,IAAmB,EAC1B5mE,SAAW4P,GA3TFy2D,KAC7B,GAAIA,GAAc,EAAG,CACnB,IAAIuC,EAAOphD,EAAcG,WAAa0+C,EAAa,IAEnDM,GAAciC,EAAKtnE,QAAQ,IAC3BulE,GAAmBR,KAsToBwC,CAAsBj5D,EAAM7G,OAAOhJ,OACxDi8D,WAAY,CACV/J,IAAK,EACL6W,IAAK,IACL1M,KAAM,GACNF,aAAcvhE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,OAAM,UAE/C/B,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,WAAY,eACzBC,cAAe,CAAC,wBAAsB,uCAG1Cr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ9mB,GAAG,aACHknB,MAAM,eACN/4B,QAAQ,WACRlC,KAAK,SACLrB,UAAWK,GAAQ87B,UACnBb,WAAS,EACTiB,OAAO,SACP72B,MAAO4nB,IAAc,EACrB3nB,SAAW4P,GApUPm5D,KACxB,GAAIA,GAAS,EAAG,CACd,IAAIH,EAAe,IAARG,EAAcvhD,EAAcG,WACvCk/C,GAAmB+B,EAAKtnE,QAAQ,IAChCqlE,GAAcoC,KAgUyBC,CAAiBp5D,EAAM7G,OAAOhJ,OACnDi8D,WAAY,CACV/J,IAAK,EACLiK,aAAcvhE,IAAAC,cAACuhE,KAAc,CAAC3jC,SAAS,OAAM,OAAoB,QAAd6sC,EAACjrE,EAAMq2B,eAAO,IAAA40C,GAAS,QAATC,EAAbD,EAAe50C,eAAO,IAAA60C,OAAT,EAAbA,EAAwB1rD,YAE9E6c,gBAAiB,CACfC,QAAQ,GAEVqiB,WAAY,CAAC,WAAY,eACzBC,cAAe,CAAC,wBAAsB,uCAG1Cr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,YACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU82D,GAAU92D,EAAM7G,OAAOhJ,OAC5CA,MAAOkB,IAAU,4BAA2C,QAAvBskE,EAAGnrE,EAAMumC,sBAAc,IAAA4kC,GAAM,QAANC,EAApBD,EAAsB13D,YAAI,IAAA23D,GAAM,QAANC,EAA1BD,EAA4BxkE,YAAI,IAAAykE,OAAZ,EAApBA,EAAkClkE,eAAgB,KAA0B,QAAvBmkE,EAAGtrE,EAAMumC,sBAAc,IAAA+kC,GAAM,QAANC,EAApBD,EAAsB73D,YAAI,IAAA83D,GAAW,QAAXC,EAA1BD,EAA4Bz0C,iBAAS,IAAA00C,OAAjB,EAApBA,EAAuCrkE,eACvI3D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,GAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,YACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU62D,GAAa72D,EAAM7G,OAAOhJ,OAC/CA,MAAO6Z,GAAa,GACpBhc,QAAQ,iBAgPpBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACh8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IAC1C37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAACsD,EAAY,CACXC,QAAS+1B,EACTt2B,QAAQ,YACT,YAGDjD,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLjH,MAAM,EACN2J,SAAUhE,EAAMyrB,YAAY/S,UAC5B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMyrB,YAAY/S,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE/DF,EAAMyrB,YAAY/S,UAAY,4BAAwB,iBCjyB5D/G,GACb,CACEk9D,SAAU,CACRC,UAAW,CACTvyC,MAAOA,CAACwyC,EAAc3iE,IACd,GAANpO,OAAU27C,KAAKq1B,MAAOD,EAAappE,MAAQ,GAAE,OAInDspE,OAAQ,CACNC,MAAO,CACL,CACEC,MAAO,CACLC,SAAU,SAAU7yC,EAAO0C,EAAOowC,GAChC,MAAM,GAANrxE,OAAWu+B,EAAK,MAElBs7B,IAAK,O,0DCEFyX,GAA4B1qE,IAAsE,IAArE,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,uBAAEuvE,EAAsB,cAAE5B,GAAe/oE,EAEvG,MAAM4O,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IACxB,UAAE0Y,GAAc1Y,EAAMwsB,0BAEtBA,EAA4B8Z,aAC/BvkC,GAAUA,EAAMyqB,0BAA0BA,2BAO7C5pB,oBAAU,KACJ2sE,GACF/7D,EAAS8Y,GAAgCC,8BAA8BgjD,IAGrE5B,GACFn6D,EAAS2X,GAAkBK,mBAAmBmiD,KAE/C,IAEH,MAAMhT,EAAoBp/D,IACxBsH,OAAOqa,KAAK3hB,IAGd,OACEgF,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,WAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KApCjB+1B,MAqCQv5B,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,UAEbh2C,IAAAC,cAAC2+B,KAAK,CAAC5D,WAAS,QACbh0B,IAAcilB,GAA6BA,EAA0B/lB,OAClE+lB,EAA0Bxf,IAAKouB,GAE7BA,EAAEpT,eAAe4yC,SAAS,QAAUx/B,EAAEpT,eAAe4yC,SAAS,QAAUx/B,EAAEpT,eAAe4yC,SAAS,SAAWx/B,EAAEpT,eAAe4yC,SAAS,QACrIr6D,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAE+4B,OAAQ,EAAGt5B,eAAgB,UAAYvB,IAAKy5B,EAAE/lB,IAC/D9U,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAAA,OACEiD,MAAO,CAAE5E,aAAc,GAAIopD,eAAgB,QAASvoD,MAAO,IAAKD,OAAQ,IAAKiF,OAAQ,WACrFiC,IAAKy0B,EAAEpT,eACPjkB,QAASA,IAAM42D,EAAiBv/B,EAAEpT,gBAClCie,IAAK7K,EAAEpT,eACPujC,QAAQ,WAKdhrD,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAE+4B,OAAQ,GAAK76B,IAAKy5B,EAAE/lB,IACrC9U,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAAA,QAAMiD,MAAO,CAAEiB,OAAQ,WAAaX,QAASA,IAAM42D,EAAiBv/B,EAAEpT,iBAAkBoT,EAAEpT,mBAOjGtP,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WATxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,qC,2BC9E3D0oE,GAAuB5qE,IAAuD,IAAD6qE,EAAAC,EAAA,IAArD,MAAE31C,EAAK,OAAED,EAAM,MAAE95B,EAAK,cAAE2tE,EAAa,QAAEgC,GAAS/qE,EAEnF,MAAM4O,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GAExB4vE,EAA2B,IAAIC,KAE9BN,EAAwBO,GAA6B51C,mBAAS,IAC9D61C,EAAsBC,GAA2B91C,mBAAS,OAE1D+1C,EAAoBC,GAAyBh2C,mBAAS,IACtDi2C,EAAkBC,GAAuBl2C,mBAAS,OAElDkhC,EAAaC,GAAkBnhC,oBAAS,GACzCm2C,EAAeA,IAAMhV,GAAgBD,IAEpCkV,EAAmBC,GAAwBr2C,oBAAS,GACrDs2C,EAAqBA,IAAMD,GAAsBD,GAEjDtU,EAAwBA,CAAC3mD,EAAI+lB,EAAGpP,KAC/BA,GAKHkkD,EAAsB76D,GACtB26D,EAAwB,MACxBI,EAAoBh1C,KANpB00C,EAA0Bz6D,GAC1B26D,EAAwB50C,GACxBg1C,EAAoB,OAMjBh1C,EAAEwyC,gCAAkCxyC,EAAEwyC,+BAA+BnnE,OAAS,EACjF4pE,IAEAG,KAIE93D,EAAY4tB,aACfvkC,GAAUA,EAAMy2B,aAAa9f,WAG1BiT,EAA2B2a,aAC9BvkC,GAAUA,EAAM0pB,YAAYE,0BAO/B,SAAS8kD,EAA0BzwE,GACjC,OACEO,IAAAC,cAACkiC,KAAG,CAACtE,SAAS,WAAWn/B,QAAQ,eAC/BsB,IAAAC,cAACo9B,KAAgB,CACfuW,GAAI,CAAEr4C,MAAsB,GAAfkE,EAAM2F,MAAa,UAAY,WAC5CnC,QAAQ,cACRmC,MAAsB,GAAf3F,EAAM2F,MAAa3F,EAAM2F,MAAQ,MAC1CpF,IAAAC,cAACkiC,KAAG,CACFzB,IAAK,EACLC,KAAM,EACNyD,OAAQ,EACRxD,MAAO,EACP/C,SAAS,WACTn/B,QAAQ,OACRH,WAAW,SACXoE,eAAe,UAEf3C,IAAAC,cAACqD,IAAU,CACTL,QAAQ,UACRxC,UAAU,MACVlF,MAAM,QAAM,GAAAkC,OACT27C,KAAKq1B,MAAMhvE,EAAM2F,OAAM,QAUpC/C,oBAAU,KACJ+qE,GACFn6D,EAAS2X,GAAkBK,mBAAmBmiD,KAE/C,IAEH,MAAMhT,EAAoBp/D,IACxBsH,OAAOqa,KAAK3hB,IAGd,OACEgF,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAzDf+1B,MA0DMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,EAAGtoC,aAAc,EAAGuoC,cAAe,GACtEpkC,MAAOhC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MACzBjD,IAAAC,cAAA,SAAI,gCAGRD,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAAC0+B,KAAc,KACb3+B,IAAAC,cAAC2+B,KAAK,CAAC17B,MAAO,CAAErF,aAAc,IAC5BmC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,cAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,cAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,eAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,qBAIdD,IAAAC,cAACumC,KAAS,KACP4oC,QAAWpoE,GAAaooE,GAAsB,MAAXA,EAClCpvE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKguE,EAAQt6D,IAC3B9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7ByoC,EAAQvjE,KAAO2D,KAAO4/D,EAAQvjE,MAAM2mB,OAAO,oBAAsB,IAEpExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7ByoC,EAAQ9oE,OAAS8oE,EAAQ9oE,OAAS,IAErCtG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7ByoC,EAAQx+D,QAAUw+D,EAAQx+D,QAAQvK,KAAO,IAAM+oE,EAAQx+D,QAAQ2lB,UAAY,IAE9Ev2B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACT,GAApByoC,EAAQjkD,SAAgB,WAAiC,GAApBikD,EAAQjkD,SAAgB,WAAa,2BAG1D,MAApBikD,EAAQjkD,UACPnrB,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAEpG,gBAAiB,WAAasE,IAAKguE,EAAQt6D,IAC5D9U,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,OAAOy0B,WAAS,EAACmM,QAAS,GACtDnnC,IAAAC,cAAA,cAAQ,cAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,OAAO4gC,QAAS,EAAGnM,WAAS,GACxDh7B,IAAAC,cAAA,cAAQ,aAA+B,GAApBmvE,EAAQjkD,SAAgB,kBAAc,YAG7DnrB,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKguE,EAAQt6D,GAAI5R,MAAO,CAAE3E,WAAY,WACpDyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMQ,QAAS,GAC5CioC,EAAQ9oE,OAAS8oE,EAAQ9oE,OAAOM,cAAgB,oBAEnD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMQ,QAAS,GAC5CioC,EAAQ3jD,OAAS2jD,EAAQ3jD,OAAO7kB,cAAgB,mBAAgB,OAChEwoE,EAAQ9jD,qBAAuB8jD,EAAQ9jD,oBAAoBplB,OAAS,EACnElG,IAAAC,cAACi/B,KAAU,CAACz+B,UAAU,IAAId,KAAK,QAAQ6D,QAASA,IAAMi4D,EAAsB2T,EAAQt6D,GAAIs6D,GAAS,IAC/FpvE,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qBACbhC,IAAAC,cAACkwE,KAAc,QAGjB,SASZ1pC,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,cAQlC7mC,IAAAC,cAAC2+B,KAAK,CAAC17B,MAAO,CAAErF,aAAc,IAC5BmC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAE+5B,UAAW,EAAGngC,gBAAiB,YAC7DkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAAS4gC,QAAS,GAC9CnnC,IAAAC,cAAA,cAAQ,wCAGZD,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,oBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,eAIdD,IAAAC,cAACumC,KAAS,KACPpb,GAA4BA,EAAyBllB,OAAS,EAC7DklB,EAAyB3e,IAAKouB,IAAO,IAADu1C,EAEyBC,EAA3D,OAAKhB,EAAyBhiE,IAAa,QAAV+iE,EAACv1C,EAAEviB,eAAO,IAAA83D,OAAA,EAATA,EAAW32D,aAmBpC,MAjBP41D,EAAyBtO,IAAa,QAAVsP,EAACx1C,EAAEviB,eAAO,IAAA+3D,OAAA,EAATA,EAAW52D,aAItCzZ,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUuiB,EAAEviB,QAAQmB,YAAc,IAEvCzZ,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUpR,GAAS2zB,EAAEviB,QAAQxJ,MAAQ,IAE1C9O,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUnR,GAAU0zB,EAAEviB,QAAQsB,UAAY,QAUpDzB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAb1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,iCAoB9DvG,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAC5B+5B,UAAW,EAAGngC,gBAAiB,YAG/BkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,SAAS4gC,QAAS,GAC9CnnC,IAAAC,cAAA,cAAU,YAGdD,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,oBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,eAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,8BAIdD,IAAAC,cAACumC,KAAS,KACPpb,GAA4BA,EAAyBllB,OAAS,EAC7DklB,EAAyB3e,IAAKouB,GAE1B76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,GAAI5R,MAAO,CAAE3E,WAAY,WAC9CyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE5b,UAAY4b,EAAE5b,UAAUrY,cAAgB,GAAG,OAC9C5G,IAAAC,cAACi/B,KAAU,CAACz+B,UAAU,IAAId,KAAK,QAAQ6D,QAASA,IAAMi4D,EAAsB5gC,EAAE/lB,GAAI+lB,GAAG,IACnF76B,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,qBACbhC,IAAAC,cAACkwE,KAAc,SAIrBnwE,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE7N,WAAa6N,EAAE7N,WAAa,KAEjChtB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAACiwE,EAAyB,CAAC9qE,MAAOy1B,EAAE6wC,gBAOzCvzD,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAb1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,qCAyBnEs0D,EACC76D,IAAAC,cAAC8uE,GAAyB,CAACx1C,OAAQu2C,EAAct2C,MAAOqhC,EAAap7D,MAAOA,EAAOuvE,uBAAwBA,EAAwB5B,cAAeA,IAElJ,KAIJptE,IAAAC,cAAC+4B,KAAM,CACLrc,KAAMozD,EACN/0C,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS+0C,GAETjwE,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,UAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAjSnBysE,MAkSUjwE,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IACjC6zC,IAA4C,OAApBA,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBnC,+BAA+BnnE,QAAS,EAAIlG,IAAAC,cAAA,QAAMiD,MAAO,CAAEiB,OAAQ,UAAWzI,SAAU,GAAI6/B,UAAW,QAAU/3B,QAASA,KAAA,IAAA8sE,EAAA,OAAMlW,EAAqC,OAApBoV,QAAoB,IAApBA,GAAuD,QAAnCc,EAApBd,EAAsBnC,+BAA+B,UAAE,IAAAiD,OAAnC,EAApBA,EAAyD7oD,kBAAsC,OAApB+nD,QAAoB,IAApBA,GAAuD,QAAnCN,EAApBM,EAAsBnC,+BAA+B,UAAE,IAAA6B,OAAnC,EAApBA,EAAyDznD,gBAAyB,KAC5VmoD,GAAoBA,EAAiBtkD,qBAAuBskD,EAAiBtkD,oBAAoBplB,OAAS,EAAIlG,IAAAC,cAAA,QAAMiD,MAAO,CAAEiB,OAAQ,UAAWzI,SAAU,GAAI6/B,UAAW,QAAU/3B,QAASA,KAAA,IAAA+sE,EAAA,OAAMnW,EAAwD,QAAxCmW,EAACX,EAAiBtkD,oBAAoB,UAAE,IAAAilD,OAAA,EAAvCA,EAAyC9oD,kBAAyD,QAAzC0nD,EAAES,EAAiBtkD,oBAAoB,UAAE,IAAA6jD,OAAA,EAAvCA,EAAyC1nD,gBAAyB,Y,uCC3XjW,SAASyoD,GAA0BzwE,GACjC,OACEO,IAAAC,cAACkiC,KAAG,CAACtE,SAAS,WAAWn/B,QAAQ,eAC/BsB,IAAAC,cAACo9B,KAAgB,CACfuW,GAAI,CAAEr4C,MAAsB,GAAfkE,EAAM2F,MAAa,UAAY,WAC5CnC,QAAQ,cACRmC,MAAsB,GAAf3F,EAAM2F,MAAa3F,EAAM2F,MAAQ,MAC1CpF,IAAAC,cAACkiC,KAAG,CACFzB,IAAK,EACLC,KAAM,EACNyD,OAAQ,EACRxD,MAAO,EACP/C,SAAS,WACTn/B,QAAQ,OACRH,WAAW,SACXoE,eAAe,UAEf3C,IAAAC,cAACqD,IAAU,CACTL,QAAQ,UACRxC,UAAU,MACVlF,MAAM,QAAM,GAAAkC,OACT27C,KAAKq1B,MAAMhvE,EAAM2F,OAAM,QAM7B,MAAMorE,GAAyBnsE,IAAuE,IAADosE,EAAA,IAArE,MAAEj3C,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,cAAEi5D,EAAa,QAAEtB,EAAO,OAAEx/D,GAAQvL,EAErG,MAAMu5C,EAAU59C,IAAM69C,UAAU,OAEzBpyB,EAAQklD,GAAah3C,mBAAS,KAC9Bm/B,EAAeC,GAAoBp/B,mBAAS,KAC5Cs/B,EAAUC,GAAev/B,oBAAS,GAEnC1mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,EAAS,UAAE2sB,GAAuB5sB,GAC3Cs8C,OAAO,OAAE7uC,KAD6BrN,YAAKJ,EAAKK,IAC1BL,GAM9B4C,oBAAU,KACJoV,GACFxE,EAAS6O,GAAWU,YAAY/K,KAEjC,IAmCH,SAASwuB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAIywE,EAAgB,wBAAoB,2BAK9C,SAASxqC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAlEf+1B,MAmEMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GApDAkpC,MAEnB,GAAIuyB,EAAe,CAAC,IAADE,EACjB,IAAItlD,EAAsB,CACxB,CACE7D,eAAgC,QAAlBmpD,EAAE9X,EAAc,UAAE,IAAA8X,OAAA,EAAhBA,EAAkBnpD,eAClC2lD,cAAsB,OAAPgC,QAAO,IAAPA,OAAO,EAAPA,EAASt6D,KAI5B7B,EAAS2X,GAAkBY,sBAAsB4jD,EAAQt6D,GAAIrV,EAAM2L,KAAK0J,GAAIlF,EAAQ6b,EAAQqtC,GAAiBA,EAAc5yD,OAAS,EAAIolB,EAAsB,YAE9JrY,EAAS2X,GAAkBgB,sBAAsBwjD,EAAQt6D,GAAIrV,EAAM2L,KAAK0J,GAAIlF,EAAQ6b,IAGtF8N,KAqC6B4kB,IAErBn+C,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,kBACnE3C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,wCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAAA,OAAKiD,MAAO,CAAEtE,YAAa,GAAIq+B,UAAW,GAAI+H,IAAK,EAAGtmC,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACvGyB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQ1H,MAAM,sBAAqB,oDAEvDyE,IAAAC,cAACiwE,GAAyB,CAAC9qE,MAAc,OAAPgqE,QAAO,IAAPA,GAAiC,QAA1BqB,EAAPrB,EAAShkD,gCAAwB,IAAAqlD,OAA1B,EAAPA,EAAmC7iE,QAAO,SAAU+2D,EAAa+I,GACjG,OAAO/I,EAAe+I,EAAOhC,aAC5B,OAGP1rE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,mBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU07D,EAAU17D,EAAM7G,OAAOhJ,OAC5CA,MAAOqmB,GAAU,GACjBxoB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAID,GAAI,EAAGn1B,MAAM,UAC5CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQsD,MAAM,SAASrD,MAAO,CAAE3H,MAAO,UAAWG,SAAU,GAAIuhC,UAAW,EAAGp/B,aAAc,IAAM,kBAGtHmC,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMs8C,GACjFj5D,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,0BAMnDyE,IAAAC,cAACu6C,IAAK,CACJhhD,OAAO,UACPsb,GAAG,OACH/T,KAAK,OACLsE,SAAW6I,GAlIE+G,KAE7BikD,GAAY,GAEZ1mD,GADayC,EAAM7G,OAAOq3C,MAAM,IAE7Bj1C,KAAMb,IACLopD,EAAiB,IAAID,EAAe,CAAErxC,eAAgB9X,EAAS21C,cAC/D4T,GAAY,KAEbnoD,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZytD,GAAY,MAuHiBmT,CAAsBn+D,QAM/ClO,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAMyrB,YAAY/S,UAC5B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMyrB,YAAY/S,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE/DF,EAAMyrB,YAAY/S,UAAY,4BAAwB,iBCtKzE,SAAS+3D,GAA0BzwE,GACjC,OACEO,IAAAC,cAACkiC,KAAG,CAACtE,SAAS,WAAWn/B,QAAQ,eAC/BsB,IAAAC,cAACo9B,KAAgB,CACfuW,GAAI,CAAEr4C,MAAsB,GAAfkE,EAAM2F,MAAa,UAAY,WAC5CnC,QAAQ,cACRmC,MAAsB,GAAf3F,EAAM2F,MAAa3F,EAAM2F,MAAQ,MAC1CpF,IAAAC,cAACkiC,KAAG,CACFzB,IAAK,EACLC,KAAM,EACNyD,OAAQ,EACRxD,MAAO,EACP/C,SAAS,WACTn/B,QAAQ,OACRH,WAAW,SACXoE,eAAe,UAEf3C,IAAAC,cAACqD,IAAU,CACTL,QAAQ,UACRxC,UAAU,MACVlF,MAAM,QAAM,GAAAkC,OACT27C,KAAKq1B,MAAMhvE,EAAM2F,OAAM,QAMpC,MAAMi9D,GAAkBh+D,IAA8B,IAADwsE,EAAA,IAA5B,MAAEpxE,EAAK,OAAEgY,EAAM,KAAErM,GAAM/G,EAE9C,MAAM,UAAE8T,GAAc1Y,EAAM4sB,WACtB,eAAEzV,GAAmBnX,EAAMyrB,YAC3B4lD,EAAuBrxE,EAAMyrB,YAAY/S,WAExCvI,EAAQujD,GAAax5B,mBAAS,IAC/B,YAAEzO,GAAgBzrB,EAAMyrB,aACxB,UAAEmB,GAAc5sB,EAAM4sB,WAEtB,oBAAEhK,GAAwB0jB,aAC7BvkC,GAAUA,EAAM4J,OAEZouB,EAAOuG,GAAYpG,oBAAS,IAC5B+2C,EAAeK,GAAoBp3C,oBAAS,IAC5Cq3C,EAAcC,GAAmBt3C,oBAAS,IAC1Cy1C,EAAS8B,GAAcv3C,mBAAS,OAChCyzC,EAAe+D,GAAoBx3C,mBAAS,GAC7CJ,EAASA,IAAMwG,GAAUvG,GACzB43C,EAAqBA,IAAMH,GAAiBD,IAC1Cj1B,OAAO,OAAE7uC,IAAazN,GAEvBy8C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtCjpC,EAAW6mB,eACXF,EAAUC,eAETwP,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,IAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,QACtBq6B,EAAoBC,GAAyBt6B,oBAAS,GAQvD03C,EAAyBA,CAACx2C,EAAGy2C,KACjCJ,EAAWr2C,GACXk2C,EAAiBO,GACjBF,KAGF/uE,oBAAU,KAER,IAAI4T,EAAc,CAChB2B,OAAQH,GAGVxE,EAASyY,GAAgBC,aAAa1V,GAAa,KAElD,IAEH5T,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACNzxB,OAAQH,EACR8B,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACPr+B,SAAUnM,EACV0Q,UAAW+5B,GAGbpnC,EAAS2X,GAAkBC,eAAe5U,KAI5CqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAEtCh4C,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAC9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACNzxB,OAAQH,EACR8B,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACPr+B,SAAUi4C,EAAqB,EAAc,GAAVpkD,EAAcA,EAAS,EAC1D0Q,UAAW+5B,GAEbpnC,EAAS2X,GAAkBC,eAAe5U,GAAa,KAGzDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAACtqC,IAWJvN,oBAAU,KACJoV,IAAW4K,GACbpP,EAAS6O,GAAWM,uBAAuB3K,KAE5C,CAACA,EAAQ4K,IAEZ,MAsDMkvD,EAAoBA,KACxB,IAAInL,EAAQ,EACRoL,EAAO,EAUX,OATAnlD,EAAU05C,QAAS36D,IACjBA,EAAKmhB,iBAAiBw5C,QAASzqC,IAAU,IAADm2C,EACtCrL,GAAsC,QAAjCqL,EAAIn2C,EAAKlQ,gCAAwB,IAAAqmD,OAAA,EAA7BA,EAA+B7jE,OAAO,CAAC+2D,EAAa+I,KAAY,IAADC,EACtE,OAAOhJ,GAA+C,IAAd,QAAlBgJ,EAAAD,EAAOxiD,mBAAW,IAAAyiD,OAAA,EAAlBA,EAAoBxiD,WAAiBuiD,EAAOhC,aACjE,GACH8F,QAIIpL,EAAQoL,GAAS,KAG3B,SAASrW,IACP,OACEn7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,2BAKV,SAAS6oE,IACP,OACE9oE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,gCAaV,SAASyxE,IACP,OACE1xE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,yCAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACk7D,EAAS,MAGnB,SAAS4N,KACP,OAAO/oE,IAAAC,cAAC6oE,EAAkB,MAO5B,SAAS6I,KACP,OAAO3xE,IAAAC,cAACyxE,EAAoB,MAG9B,OACE1xE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGm4C,aAAc,SAAU/Y,UAAW,IAC/Jj9B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,gDACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA7NnB44C,KAgOUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,iBAMnEmX,GAAYW,aAAeX,GAAYa,kBAA6B1M,IAAdqlB,GAA2BA,EAAUnmB,OAC1FqrE,IAaC1+D,GAAYa,YAAc69D,KAAuB9xE,EAAM2L,KAAKD,cAAgB9D,IAC5ErH,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQiE,eAAgB,QACnF3C,IAAAC,cAACsD,EAAY,CAACzJ,MAAI,EAACoJ,MAAO,CAAE+5B,UAAW,OAAQr+B,YAAa,GAAK4E,QAASA,IAAMyP,EAAS6O,GAAWmC,gBAAgBxM,KAClHzX,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAI,mBAf5BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACsD,EAAY,CACX5D,KAAK,QACLsD,QAAQ,WACRC,MAAO,CAAEq8B,cAAe,UACxB/7B,QA/GoBouE,KAChC/qE,GAAQkH,KAAK,qCAAsC0J,IA+GvC2lB,QAASp9B,IAAAC,cAACo7D,KAAU,OACrB,iCAYL,MAGJr7D,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,GAAIp1B,MAAM,SACvBvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SA/KwB4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,QA+KfA,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAO,EAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eACjGjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAO,EAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eACjGjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAO,EAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eACjGjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAO,EAAGm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,cAIvGjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,cAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,eAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,mBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,UAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,kBAIdD,IAAAC,cAACumC,KAAS,UACPx/B,IAAckkB,GAAeA,EAAYhlB,OACtCglB,EAAYze,IAAKouB,IAAO,IAADg3C,EAAAC,EAAAC,EACvB,OACE/xE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SAASpH,MAAM,SACxD07B,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,oBAAsB,IAExDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAO,IAEhCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzP,yBAAwD,QAAhCymD,EAAGh3C,EAAEzP,yBAAyB,UAAE,IAAAymD,GAAe,QAAfC,EAA7BD,EAA+BhlD,qBAAa,IAAAilD,GAAY,QAAZC,EAA5CD,EAA8CpvD,kBAAU,IAAAqvD,OAA3B,EAA7BA,EAA0DnrE,cAAgB,IAE1G5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAC1CvG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO64B,EAAEpP,OAASoP,EAAEpP,QAAUoP,EAAElV,oBAAsB,OAASnW,KAAOqrB,EAAElV,qBAAqB6M,OAAO,oBAAsB,IAAM,MACvIxyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAAY,IAACyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAqB,GAAds/B,EAAE1P,SAAgB,UAA0B,GAAd0P,EAAE1P,UAAiB,UAAWzvB,SAAU,GAAIkD,YAAa,KAAO,IAACoB,IAAAC,cAAA,YAAqB,GAAd46B,EAAE1P,SAAgB,WAA2B,GAAd0P,EAAE1P,SAAgB,WAAa,eAG/QnrB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMxnC,MAAM,QAAQoH,MAAM,UACvD,MAAQs0B,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,KAEpE1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAASogC,MAAM,MAAMzjC,MAAO,CAAE/D,MAAO,UACpDa,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,2BACXxmC,UAAU,IACV+C,QAASA,IA9TfshE,EAAChwD,EAAI+lB,KAC3Bq2C,EAAWr2C,GACXs2C,EAAiBr8D,GACjBykB,KA4T8BurC,CAAgBjqC,EAAE/lB,GAAI+lB,GAExBl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,cACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,WAMT,OAAflgB,EAAE1P,UACDnrB,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,UACXxjC,SAAwB,GAAdo3B,EAAE1P,SACZ1qB,UAAU,IACV+C,QAASA,IA3OZq3B,KAC3BjB,EAAQ,CACN53B,MAAO,6CACPo9B,YAAa,2HACb37B,SAAUhE,EAAMyrB,YAAY/S,UAC5BknB,iBAAkB5/B,EAAMyrB,YAAY/S,UAAY,6BAAyB,gBACzEmnB,iBAAkB,YACjB9uB,KAAK,KACN6gE,EAAuBx2C,GAAG,MAoOIm3C,CAAoBn3C,GAEtBl7B,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,WACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC6kD,KAAQ,WAOL,OAAfjqB,EAAE1P,UACDnrB,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,WACXzjC,QAASA,IA/OXq3B,KAC5BjB,EAAQ,CACN53B,MAAO,8CACPo9B,YAAa,yHACb37B,SAAUhE,EAAMyrB,YAAY/S,UAC5BknB,iBAAkB5/B,EAAMyrB,YAAY/S,UAAY,6BAAyB,gBACzEmnB,iBAAkB,YACjB9uB,KAAK,KACN6gE,EAAuBx2C,GAAG,MAuOiBo3C,CAAqBp3C,GACpCl7B,KAAK,QACL8D,SAAwB,GAAdo3B,EAAE1P,UAEZnrB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,YACbhC,IAAAC,cAACu7B,KAAS,cAYzBs1C,EAKCrqC,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UACV7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC1C3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YArB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA6BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoB91C,IAAA,IAAC,KAAE9D,EAAI,GAAEH,GAAIiE,EAAA,SAAA9H,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aA9VeC,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IA8VAC,YAAa3B,EACb4B,oBA5ViBzmC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,QA8VN75C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAComC,KAAU,CACTC,UAAU,4GACVtkC,MAAOhC,IAAAC,cAAC8oE,GAAkB,QAE5B/oE,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAACumC,KAAS,KACPna,QAAarlB,IAAcqlB,GAAaA,EAAUnmB,OAEjDmmB,EAAU5f,IAAKrB,GACbpL,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKgK,EAAK0J,IACxB9U,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAASmL,EAAK9E,OAAOM,gBAEvB5G,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,kBAGXmL,EAAKmhB,iBAAiB9f,IAAK6uB,IAAI,IAAA42C,EAAA,OAC7Br/D,GAAYQ,YACRR,GAAYU,gBACZV,GAAYa,YACXb,GAAYW,aAAe8nB,EAAKlN,qBAAqBloB,OAAS,IAClElG,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKk6B,EAAKxmB,IACxB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7BrL,EAAK5Y,YAER1iB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAACiwE,GAAyB,CAAC9qE,MAAoC,QAA/B8sE,EAAE52C,EAAKlQ,gCAAwB,IAAA8mD,OAAA,EAA7BA,EAA+BtkE,QAAO,SAAU+2D,EAAa+I,GAAS,IAADyE,EACrG,OAAOxN,GAA+C,IAAd,QAAlBwN,EAAAzE,EAAOxiD,mBAAW,IAAAinD,OAAA,EAAlBA,EAAoBhnD,WAAiBuiD,EAAOhC,cACjE,WAQZvzD,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAV1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,oCAoBnEsM,GAAYa,YAAc69D,KAAuB9xE,EAAM2L,KAAKD,cAAgB9D,IAC3ErH,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQiE,eAAgB,QACnF3C,IAAAC,cAACsD,EAAY,CAACzJ,MAAI,EAACoJ,MAAO,CAAE+5B,UAAW,OAAQr+B,YAAa,GAAK4E,QAASA,IAAMyP,EAAS6O,GAAWmC,gBAAgBxM,KAClHzX,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAI,mBAwB9BjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,GAAIt6B,eAAgB,WAClE3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAComC,KAAU,CACTC,UAAU,2EACVtkC,MAAOhC,IAAAC,cAAC0xE,GAAoB,SAG/BtvD,GAA8C,MAAvBA,IAAkD,OAAnBA,QAAmB,IAAnBA,GAA4B,QAATwuD,EAAnBxuD,EAAqBjR,eAAO,IAAAy/D,OAAT,EAAnBA,EAA8B3qE,QAAS,EAC5FlG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACmyE,QAAI,CAACvmE,KAnbKwmE,KACnB,GAAIhwD,EAAqB,CAcvB,MAba,CACXysD,OAAQzsD,EAAoBjR,QAC5BkhE,SAAU,CACR,CACEC,MAAM,EACNv2C,MAAO,uCACPnwB,KAAMwW,EAAoBmwD,OAAO,GACjC3uE,YAAa,UACb/G,gBAAiB,wBACjB21E,QAAS,KAMf,MAAO,IAkayBrhE,QAASA,MAGrCpR,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC/CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,uCAO/Bu2B,EACCx5B,IAAAC,cAACgvE,GAAoB,CAAC11C,OAAQA,EAAQC,MAAOA,EAAO/5B,MAAOA,EAAO2tE,cAAeA,EAAegC,QAASA,IAEzG,KAID4B,EACChxE,IAAAC,cAACuwE,GAAsB,CAACj3C,OAAQ63C,EAAoB53C,MAAOw3C,EAAcvxE,MAAOA,EAAO2vE,QAASA,EAASsB,cAAeA,EAAe9gE,OAAQA,IAE/I,KAKDssC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB+B,mBAG3B,OAcJopE,GAA+B3oC,qBACnCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAzpBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA8nB4ByuC,CAAmBq4B,M,iCC/pB1D,SAAS6N,GAA0BzwE,GACjC,OACEO,IAAAC,cAACkiC,KAAG,CAACtE,SAAS,WAAWn/B,QAAQ,eAC/BsB,IAAAC,cAACo9B,KAAgB,CACfuW,GAAI,CAAEr4C,MAAsB,GAAfkE,EAAM2F,MAAa,UAAY,WAC5CnC,QAAQ,cACRmC,MAAsB,GAAf3F,EAAM2F,MAAa3F,EAAM2F,MAAQ,MAC1CpF,IAAAC,cAACkiC,KAAG,CACFzB,IAAK,EACLC,KAAM,EACNyD,OAAQ,EACRxD,MAAO,EACP/C,SAAS,WACTn/B,QAAQ,OACRH,WAAW,SACXoE,eAAe,UAEf3C,IAAAC,cAACqD,IAAU,CACTL,QAAQ,UACRxC,UAAU,MACVlF,MAAM,QAAM,GAAAkC,OACT27C,KAAKq1B,MAAMhvE,EAAM2F,OAAM,QAMpC,MAuRMutE,GAA+C5oC,qBACnDxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA5TvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAuTyBsuC,CAxREvqC,IAEvC,MACMgY,EADWsoC,wBACOv+C,OAClB,YAAE0pB,GAAgBzrB,EAAMyrB,aACvB2B,EAAe+lD,GAAoBj5C,mBAAS,KAC5CgyC,EAAgBkH,GAAqBl5C,mBAAS,OAC9C+xC,EAAYoH,GAAiBn5C,mBAAS,KACvC,QAAE55B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACrCi8C,OAAO,OAAE7uC,IAAazN,GAEvB+5B,EAAOuG,GAAYpG,oBAAS,GAC7BJ,EAASA,IAAMwG,GAAUvG,IAEzB,UAAEnN,GAAc0Z,aACnBvkC,GAAUA,EAAM6qB,WAEblU,EAAY4tB,aACfvkC,GAAUA,EAAMy2B,aAAa9f,WAehC,SAAS8tB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,uBAKV,SAAS8yE,IACP,OACE/yE,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,4BAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,SAAS+sC,IACP,OAAOhzE,IAAAC,cAAC8yE,EAAgB,MAG1B,OACE/yE,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MAAM,oDAENhC,IAAAC,cAACihE,GAAe,CAACzpD,OAAQA,EAAQuN,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,YACtFjlB,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAErF,aAAc,GACvByoC,UAAU,qCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAACumC,KAAS,UACPx/B,IAAcqlB,GAAaA,EAAUnmB,OAEpCmmB,EAAU5f,IAAK+3D,GACbxkE,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKojE,EAAM1vD,IACzB9U,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAASukE,EAAMl+D,OAAOM,eACtB5G,IAAAC,cAACsD,EAAY,CACX5D,KAAK,QACLsD,QAAQ,WACRC,MAAO,CAAEq8B,cAAe,SAAUnG,WAAY,GAC9C51B,QAASA,IA9DNghE,KAC7BqO,EAAkBrO,GAClBjrC,KA4DyC05C,CAAsBzO,GACrCpnC,QAASp9B,IAAAC,cAACo7D,KAAU,OACrB,8CAIHr7D,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,iBAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,UAC5BvG,IAAAC,cAAA,cAAQ,gBAGXukE,EAAMj4C,iBAAiB9f,IAAK6uB,IAAI,IAAAm2C,EAAAS,EAAA,OAC/B52C,EAAKlN,qBAAqBloB,OAAS,GAEjClG,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKk6B,EAAKxmB,GAAI5R,MAAO,CAAE8yC,aAAc,WACnDh2C,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7BrL,EAAK5Y,YAER1iB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAACiwE,GAAyB,CAAC9qE,MAAoC,QAA/BqsE,EAAEn2C,EAAKlQ,gCAAwB,IAAAqmD,OAAA,EAA7BA,EAA+B7jE,QAAO,SAAU+2D,EAAa+I,GAC7F,OAAO/I,GAA8C,GAA/B+I,EAAOxiD,YAAYC,UAAiBuiD,EAAOhC,cAChE,MAEL1rE,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,WACZ,QAA7B2rE,EAAA52C,EAAKlQ,gCAAwB,IAAA8mD,OAAA,EAA7BA,EAA+BtkE,QAAO,SAAU+2D,EAAa+I,GAC5D,OAAO/I,GAA8C,GAA/B+I,EAAOxiD,YAAYC,UAAiBuiD,EAAOhC,cAChE,IAAK,IACN1rE,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,OAAQmyC,aAAc,UAC3DxyC,QAASA,KAAA,IAAA0vE,EAAA,MArGnBpO,EAACjqC,EAAG6wC,KAC1BkH,EAAiB/3C,GACjBi4C,EAAcpH,GACdmH,EAAkB,MAClBt5C,KAkGkCurC,CAAgBxpC,EAAmC,QAA/B43C,EAAE53C,EAAKlQ,gCAAwB,IAAA8nD,OAAA,EAA7BA,EAA+BtlE,QAAO,SAAU+2D,EAAa+I,GACjF,OAAO/I,GAA8C,GAA/B+I,EAAOxiD,YAAYC,UAAiBuiD,EAAOhC,cAChE,MACH,aAGF,WASbvzD,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAV1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,oCAoBpEvG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE+5B,UAAW,KAC9Cj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAErF,aAAc,GACvByoC,UAAU,sDACVtkC,MAAOhC,IAAAC,cAAC+yE,EAAiB,QAE3BhzE,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,IAAOrjC,MAAO,CAAE+5B,UAAW,KACpDj9B,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,cAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,eAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SACdK,IAAAC,cAAA,cAAQ,qBAIdD,IAAAC,cAACumC,KAAS,UACPx/B,IAAckkB,GAAeA,EAAYhlB,OACtCglB,EAAYze,IAAKouB,IAAO,IAADg3C,EAAAC,EACvB,OACE9xE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,oBAAsB,IAExDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAO,IAEhCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzP,yBAAwD,QAAhCymD,EAAGh3C,EAAEzP,yBAAyB,UAAE,IAAAymD,GAAe,QAAfC,EAA7BD,EAA+BhlD,qBAAa,IAAAilD,OAAf,EAA7BA,EAA8CpvD,WAAW9b,cAAgB,GACtGi0B,EAAEpP,QACDzrB,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOwE,MAAO,CAAE+5B,UAAW,MAAO/9B,OAAQ,OAAQpC,gBAAiB,QAASwB,aAAc,MAAOqnC,YAAa,QACzH3lC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,OAAOwH,MAAO,CAAEq4B,UAAW,SAAWV,EAAEpP,UAI/EzrB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAAY,IAACyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAAqB,GAAds/B,EAAE1P,SAAgB,UAA0B,GAAd0P,EAAE1P,UAAiB,UAAWzvB,SAAU,GAAIkD,YAAa,KAAO,IAACoB,IAAAC,cAAA,YAAqB,GAAd46B,EAAE1P,SAAgB,WAA2B,GAAd0P,EAAE1P,SAAgB,WAAa,+BAOhRhT,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAnB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,oCA6BpEvG,IAAAC,cAACwG,KAAW,CAACvD,MAAO,CAAE+5B,UAAW,KAC/Bj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,IAAMqD,GAAQyd,UACxB,gCAOJkV,EACCx5B,IAAAC,cAAC4pE,GAAmB,CAACtwC,OAAQA,EAAQC,MAAOA,EAAO/5B,MAAOA,EAAOgY,OAAQA,EAAQoV,cAAeA,EAAe6+C,WAAYA,EAAYC,eAAgBA,IAEvJ,U,2BClTGpW,GAAkBlxD,IAAoF,IAAnF,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,OAAEnT,EAAM,iBAAEye,EAAgB,kBAAEoB,GAAmB9f,EAE3G,MAAMu5C,EAAU59C,IAAM69C,UAAU,MAE1B5qC,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IAOxB,QAAE+X,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAuBnB,SAASgO,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,oBAAAxC,OAAe0mB,EA7BO,yBA6BmCpB,EA9BpC,qBA8B4Eze,EAhCtF,OACU,wBAoC3B,SAAS4hC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAvCf+1B,MAwCMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GA9CAkpC,MACnB,IAAI9tC,EAAU,CAAEyV,eAAgBrmB,EAAM2L,KAAK0a,gBAEvCrmB,EAAM2L,KAAK0a,gBAA+C,MAA7BrmB,EAAM2L,KAAK0a,gBAAuD,IAA7BrmB,EAAM2L,KAAK0a,gBAC/E7S,EAAS6O,GAAWoC,eAAezM,EAAQD,EAASnH,EAAS/L,EAAQye,EAAkBoB,IACvFoV,KAEA1sB,IAAMlS,MAAM,0CAuCewjD,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAS,uBAAA7oC,OAAyB0mB,EAhElB,yBAgE4DpB,EAjE7D,qBAiEqGze,EAnE/G,OACU,sBAmEftC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,mBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,UAzEQ04C,EAyEe,iBAzEL9oC,IAC9BhC,EAAS6O,GAAW9M,cAAc+oC,EAAM9oC,MAyE5B7P,MAAO3F,EAAM2L,KAAK0a,eAClB7iB,QAAQ,cAGZjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAS,aAAA1a,OAAgB0mB,EA5GzB,yBA4GmEpB,EA7GpE,qBA6G4Gze,EA/GtH,OACU,qBA8GkJ,OAAQ,iBAtG/Jy5C,O,2BCjBXykB,GAAqDn+D,IAAyG,IAAxG,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAE6E,EAAM,iBAAEye,EAAgB,kBAAEoB,EAAiB,YAAEk7C,EAAW,eAAEC,GAAgBj7D,EAEnK,MAAMu5C,EAAU59C,IAAM69C,UAAU,MAE1B5qC,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IAWxB,QAAE+X,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAuBnB,SAASgO,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,6CAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KA3Cf+1B,MA4CMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,IAjDfxV,EAAM2L,KAAK2a,yCAAiG,MAAtDtmB,EAAM2L,KAAK2a,yCAAyG,IAAtDtmB,EAAM2L,KAAK2a,yCAE7HtmB,EAAM2L,KAAK0J,GACb7B,EAAS6O,GAAWgB,aAAarjB,EAAM2L,KAAK0J,GAAIuqD,EAAa7nD,EAASlT,EAAQye,EAAkBoB,IAEhGlR,EAAS6O,GAAWkC,WAAWq7C,EAAa7nD,EAASlT,EAAQye,EAAkBoB,IAGjFoV,KAEA1sB,IAAMlS,MAAM,2CAyCNqF,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAS,2BAAA7oC,OAA0B0mB,EApEnB,2BAoE6DpB,EArE9D,uBAqEsGze,EAvEhH,SACU,uBAsE4I,2BAC3JtC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBrjB,WAAS,EACTooB,QAAS,EACTD,WAAS,EACTrnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,gEACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,UArFQ04C,EAqFe,0CArFL9oC,IAC9BhC,EAAS6O,GAAW9M,cAAc+oC,EAAM9oC,MAqF5B7P,MAAO3F,EAAM2L,KAAK2a,wCAClB9iB,QAAQ,cAGZjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAM2L,KAAK+M,UACrB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM2L,KAAK+M,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAExDF,EAAM2L,KAAK+M,UAAS,aAAA1a,OAAgB0mB,EApHzB,2BAoHmEpB,EArHpE,uBAqH4Gze,EAvHtH,SACU,uBAsHkJ,OAAQ,0BAlH/Jy5C,O,gFCDXwX,GAAkBlxD,IAAoG,IAAnG,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,uBAAE07D,EAAsB,oBAAEC,EAAmB,eAAEC,GAAgBhvE,EAE3H,MAAMu5C,EAAU59C,IAAM69C,UAAU,OAEzBpyB,EAAQklD,GAAah3C,mBAAS,IAE/B1mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,GAM9B4C,oBAAU,KACJoV,GACFxE,EAAS6O,GAAWU,YAAY/K,KAEjC,CAACA,IAiBJpV,oBAAU,KACR6P,QAAQC,IAAI,yBAA0BghE,IACrC,CAACA,IAEJ,MAAMh1B,EAAeA,KAEnB,MAAMm1B,EAA2B,MAAV7nD,QAA4BzkB,GAAVykB,GAAkC,KAAXA,EAG1D8nD,GAxBR,SAAsB1pD,GAAQ,IAADyyC,EAAA8L,EAAAgB,EACvB9R,EAAgB,QAAbgF,EAAG78D,EAAM2L,YAAI,IAAAkxD,GAAiB,QAAjB8L,EAAV9L,EAAY9wD,uBAAe,IAAA48D,GAEnC,QAFmCgB,EAA3BhB,EAA6Br4B,QAAO,SAAUglB,GACtD,OAA0B,MAAnBA,EAAUlrC,gBACjB,IAAAu/C,OAFkB,EAAVA,EAENx7D,QAAO,SAAU4zB,EAAMgyC,GACzB,OAAOhyC,EAAK3X,MAAQ2pD,EAAK3pD,MAAQ2X,EAAOgyC,KAG1C,SAAIlc,GAAoB,MAAbA,EAAIztC,OAA8B,GAAbytC,EAAIztC,OAA2B,IAAbytC,EAAIztC,OAAeytC,EAAIztC,OAASA,GAiB3D4pD,CAAaN,GAKpC,GAHAjhE,QAAQC,IAAI,gBAAiBohE,GAGA,GAAzBH,KACF,GAAIC,GAAkBA,EAAentE,OAAS,EAC5C,GAAIqtE,GAAiBD,EACnBzmE,IAAMlS,MAAM,gEACP,CACL,IAAI0V,EAAU,CACZuH,OAAQH,EACRi8D,MAAOL,EACPM,OAAQloD,GAEVxY,EAAS6E,GAAoBwW,wBAAwBje,UAIzDxD,IAAMlS,MAAM,4FAIhB,SAASsrC,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,qBAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACgmC,EAAU,MAGpB,OACEjmC,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAhFf+1B,MAiFMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GAAUkpC,KAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,mCACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,GACbr7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTc,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,SACHknB,MAAM,0BACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW4P,GAAU07D,EAAU17D,EAAM7G,OAAOhJ,OAC5CA,MAAOqmB,GAAU,GACjBxoB,QAAQ,gBAKhBjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAMuuB,cAAc7V,UAC9B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMuuB,cAAc7V,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEjEF,EAAMuuB,cAAc7V,UAAY,wBAA0B,kBCzHvEiqD,GAAwB/9D,IAA8B,IAA7B,MAAE5E,EAAK,OAAEgY,EAAM,KAAErM,GAAM/G,EAEpD,MAAM,UAAE8T,GAAc1Y,EAAMuuB,cACtBpJ,EAA6BmhB,aAAavkC,GAAWA,EAAM0U,UAAY1U,EAAM0U,UAAUA,UAAU0O,gCAA6B5d,IAC7H4sE,EAAiCC,GAAsCl6C,mBAAS,KAEhFm6C,EAAsBC,GAA2Bp6C,oBAAS,IAC1Dw5C,EAAwBa,GAA6Br6C,mBAAS,OAC9Ds6C,EAAqBC,GAA0Bv6C,mBAAS,MACzDw6C,EAA6BA,IAAMJ,GAAyBD,GAE5DxvE,EAAS7E,EAAM2L,KAAK4a,SAAS5a,KAC7BgpE,EAAW9vE,EAAS,OAAS,sBAE5B64C,EAAOC,GAAYzjB,oBAAS,IAC5B06C,EAAUC,GAAe36C,mBAAS,IACnC1mB,EAAW6mB,eACXF,EAAUC,eACTw5C,EAAgBkB,GAAqB56C,mBAAS,KAE/C,iBAAEpN,GAAqBwZ,aAC1BvkC,GAAUA,EAAMytB,kBAAkBA,oBAE/B,gBAAEzjB,GAAoBu6B,aACzBvkC,GAAUA,EAAMytB,kBAAkBA,mBAErC5sB,oBAAU,OACP,CAAC86C,EAAOhlC,IAEX,MAAO+jC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAyB5C,SAASu3B,EAAa/lE,EAAK8mE,GAEzB,IAAIld,EAAM5pD,EAAI0gB,qBAAqBxgB,QAAO,SAAU4zB,EAAMgyC,GACxD,OAAOhyC,EAAK3X,MAAQ2pD,EAAK3pD,MAAQ2X,EAAOgyC,KAG1C,SAAIlc,GAAOA,EAAIkd,iBAAmBA,GAA0B,GAAPld,GAAmB,IAAPA,GArBnEj1D,oBAAU,KAER,IAAI4T,EAAc,CAChBwN,GAAIhM,GAKN,GAFAxE,EAAS0b,GAAwBE,yBAAyB5Y,IAEtD7K,GAAQA,EAAKwZ,4BAAiE,GAAnCxZ,EAAKwZ,2BAAiC,CACnF,MAAM6vD,EAAajlE,KAAOpE,EAAKwa,eAAem7C,IAAI31D,EAAKwZ,2BAA4B,SAAS4gC,cAC5FquB,EAAmCY,KAGpC,IAeH,MAAMC,EAAsBA,CAACC,EAAeC,KAC1C,GAAIA,QAAwB5tE,GAAZ4tE,EAAuB,CACrC,GAAuC,MAAnCxpE,EAAKwZ,4BAAyE,GAAnCxZ,EAAKwZ,4BAAmCpV,KAAOmlE,GAAe3gC,KAAKxkC,KAAOolE,GAAW,SAAWxpE,EAAKwZ,2BAClJ,OAAO,EACF,GAAkC,MAA9BA,GAAoE,GAA9BA,GAAiE,IAA9BA,EAClF,OAAIpV,KAAOmlE,GAAe3gC,KAAKxkC,KAAOolE,GAAW,SAAWhwD,IAkB5DiwD,EAAkB//D,IACtB,QAAU9N,GAAN8N,EACF,OAAuB,OAAhByX,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBsb,KAAMhN,GAAMA,EAAE3L,qBAAuBpa,GAA+B,MAAzB+lB,EAAE3L,sBAiI1E,SAASisC,IACP,OACEn7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,4CAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACk7D,EAAS,MAGnB,OACEn7D,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,gBAAiB9E,aAAc,EAAGU,WAAY,SAAU0+B,UAAW,IAC7Jj9B,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC5Cj/B,IAAAC,cAAComC,KAAU,CACTC,UAAU,2CACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYrF,cAAY,EAACsF,MAAO,CAAEk2B,WAAY,KAChEp5B,IAAAC,cAAA,cAASmL,GAAQA,EAAKwa,cAAa,oCAAAnoB,OAAiC+R,KAAOpE,EAAKwa,eAAe4M,OAAO,qBAAwB,OAEhIxyB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYrF,cAAY,EAACsF,MAAO,CAAEk2B,WAAY,KAChEp5B,IAAAC,cAAA,cAAQ,gDAA8C2zE,EAAkCpkE,KAAOokE,GAAiCphD,OAAO,oBAAsB,OAGjKxyB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA5NjB44C,KA+NQz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,eAKnEsE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,WAAWvE,QAAQ,SAAQ,kBAC7B01E,EAAS,aAE3Bp0E,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAClBjD,IAAAC,cAAA,SAAIR,EAAM2L,KAAKga,sBAAwB6oC,KAAKC,aAAa,QAAS,CAChEhrD,MAAO,WACPirD,SAAU,QACT37B,OAAO/yB,EAAM2L,KAAKga,uBAA0B9gB,EAAS,UAAY,WAGxEtE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAAC2D,IAAM,CACLV,MAAO,CAAEW,YAAa,OAAQtI,MAAO,QACrCwF,KAAK,SACLpB,KAAK,QACL6D,QAASA,IAvMOsxE,MAExB,IAAI7+D,EAAc,CAChBwN,GAAIhM,GAGNxE,EAAS+e,GAAgBgB,8BAA8B/c,KAiMhC6+D,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,yBAKLv/B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,GAC5ClG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEP,eAAgB,QACnD3C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACp4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAClDj/B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAYjD,IAAAC,cAAA,cAAQ,kBAE1CD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACp4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAClDj/B,IAAAC,cAAC+0E,KAAU,CAACphC,GAAI,CAAEr4C,MAAO,UAAWsI,YAAa,aAAe,QAAO7D,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAEzGjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACp4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,QAClDj/B,IAAAC,cAAC+0E,KAAU,CAACphC,GAAI,CAAEr4C,MAAO,UAAWsI,YAAa,UAAWu1B,WAAY,KAAO,OAAMp5B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,qBAK7HjD,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,SACbK,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQuD,MAAO,CAAE/D,MAAO,QACtCa,IAAAC,cAAA,cAAQ,SAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQuD,MAAO,CAAEq4B,UAAW,SAAUp8B,MAAO,OAASoH,MAAM,SAC1EvG,IAAAC,cAAA,cAAQ,eAEVD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQuD,MAAO,CAAEq4B,UAAW,SAAUp8B,MAAO,OAASoH,MAAM,UAC1EvG,IAAAC,cAAA,cAAQ,aAETuL,QAAsCxE,GAAnBwE,GAAgCA,EAAgBiB,IAAI,CAACouB,EAAGxrB,IAC1ErP,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQ4G,MAAM,QAAQrD,MAAO,CAAEq4B,UAAW,SAAUz+B,gBAA6B,GAAZ+9B,EAAEjrB,OAAc,UAAYpE,EAAgBq8B,KAAK0K,GAAKA,EAAE1oB,MAAQgR,EAAEhR,OAAS,OAAS,YACvK7pB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,kBACzF3C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,uCACbhC,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,IAhLKyxE,EAACC,EAAaC,KAEhD,IAAIC,EAAwB,GAE5B,GAAInB,GAAuBiB,EAKzB,OAHAhB,EAAuB,MACvBF,EAA0B,WAC1BO,EAAkB,IAQpB,GAJIY,GACFnB,EAA0BmB,GAGxBD,EAAa,CACfhB,EAAuBgB,GAEvB3oD,EAAiB9f,IAAKouB,IACpBA,EAAEzM,qBAAqB3hB,IAAK4oE,IACtBA,EAAGb,iBAAmBU,IACP,KAAbG,EAAGzlE,QAA8B,MAAbylE,EAAGzlE,QACzBylE,EAAGzlE,OAAS,IACZirB,EAAE3L,oBAAsBmmD,EAAGvgE,GAC3BsgE,EAAsBrnE,KAAKsnE,EAAGvgE,MAE9BugE,EAAGzlE,OAAS,IACZirB,EAAE3L,oBAAsB,KACxBkmD,EAAwB,SAMhCb,EAAkBa,GAElB,IAAIE,EAAyB,CAC3Bv0E,KAAM,OACNqN,OAAQ,CACNhJ,MAAOmnB,IAIXtZ,EAASyQ,GAAoB1O,cAAc,gBAAiBsgE,MAoI3BL,CAA4Bp6C,EAAE/lB,GAAI+lB,EAAEhR,OACnDtuB,MAAM,UACN4b,QAAS88D,GAAuBp5C,EAAE/lB,GAClCrR,SAAU2H,EAAKD,cAAgB9D,IAAqC+D,EAAKD,cAAgB9D,IAA2B+D,EAAKD,cAAgB9D,IAA4B+D,EAAKD,cAAgB9D,GAC1L1H,KAAK,WAGTK,IAAAC,cAAA,WACED,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAMsE,IAAAC,cAAA,cAAS46B,EAAEnhB,eAC1C1Z,IAAAC,cAAA,WAAKD,IAAAC,cAAC+4C,GAAK,CAACvwB,KAAMoS,EAAEqe,UAAWD,WAAYpe,EAAE0iB,mBAC7Cv9C,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO0yE,EAAoB75C,EAAEhvB,KAAMgvB,EAAEjV,eAAiB,mCAAkC,MAC/F5lB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,MAAOpH,MAAOm5E,EAAoB75C,EAAEhvB,KAAMgvB,EAAEjV,eAAiB,UAAY,OAAQnqB,WAAYi5E,EAAoB75C,EAAEhvB,KAAMgvB,EAAEjV,eAAiB,OAAS,WACxN5lB,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,UAC/BsE,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,OAAOm/B,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,MAGzFxyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,QACnE3C,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,UAC/BsE,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,OAAOm/B,EAAE5M,MAAQze,KAAOqrB,EAAE5M,OAAOuE,OAAO,cAAgB,KAEzFxyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,QACnE3C,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,UAC/BsE,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAM,OAAOm/B,EAAEhR,MAAQokC,KAAKC,aAAa,QAAS,CACzEhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEhR,OAAS,WASnC7pB,IAAAC,cAACumC,KAAS,KACPja,GAAoBA,EAAiBrmB,OAAS,EAC7CqmB,EAAiB3e,OAAO,CAAC22D,EAAK1pC,KAC5B,MAAM06C,EAAchR,EAAIhnC,KAAK0lB,GAAOA,EAAIz/B,cAAgBqX,EAAErX,aAC1D,GAAI+xD,EAAa,CACf,MAAMC,EAAeD,EAAYh/D,MAAMgnB,KAAKjC,GAAQA,EAAK5Y,aAAemY,EAAEnY,YACtE8yD,EACFA,EAAaC,SAAS1nE,KAAK8sB,GAE3B06C,EAAYh/D,MAAMxI,KAAK,CACrB2U,WAAYmY,EAAEnY,WACd+yD,SAAU,CAAC56C,UAIf0pC,EAAIx2D,KAAK,CAAEyV,YAAaqX,EAAErX,YAAajN,MAAO,CAAC,CAAEmM,WAAYmY,EAAEnY,WAAY+yD,SAAU,CAAC56C,OAExF,OAAO0pC,GACN,IAAI93D,IAAI,CAACw2C,EAAKvkB,KAAK,IAAAg3C,EAAA,OACpB11E,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAK6hD,EAAIz/B,aACvBxjB,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAE3E,WAAY,SAAU4F,OAAQ,WAAaX,QAASA,IAhP9Ek7B,KACpB,GAAI21C,EAASxsC,KAAK35B,GAAKA,IAAMwwB,GAAQ,CACnC,MAAMi3C,EAActB,EAAStkC,OAAO7hC,GAAKA,IAAMwwB,GAC/C41C,EAAYqB,OACP,CACL,MAAMA,EAAc,IAAItB,EAAU31C,GAClC41C,EAAYqB,KA0O0FC,CAAal3C,IACrG1+B,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,EAAGhD,MAAO,CAAEpG,gBAAiB,WAAayJ,MAAM,QAC5FvG,IAAAC,cAACkiC,KAAG,CAACzjC,QAAQ,OAAOiE,eAAe,gBAAgBpE,WAAW,UAC5DyB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIxH,WAAW,QAA0C,QAApCi6E,EAAEzyB,EAAI1sC,MAAM,GAAGk/D,SAAS,GAAGppD,iBAAS,IAAAqpD,OAAA,EAAlCA,EAAoCpvE,QAC9E+tE,EAASxsC,KAAK35B,GAAKA,GAAKwwB,GAAS1+B,IAAAC,cAAC41E,KAAU,MAAM71E,IAAAC,cAAC61E,KAAU,SAInEzB,EAASxsC,KAAK35B,GAAKA,GAAKwwB,IAAUukB,EAAI1sC,MAAM9J,IAAI6uB,GAC/Ct7B,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKk6B,EAAK5Y,YACvB4Y,EAAKm6C,SAAShpE,IAAIouB,GACjB76B,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKy5B,EAAE/lB,IACf9U,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO64B,EAAEnY,WAAamY,EAAEnY,WAAa,MAC5C1iB,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAE3E,WAAY,SAAU7C,SAAU,GAAIyD,MAAO,QAC5D07B,EAAEnY,WAAamY,EAAEnY,WAAWzT,UAAU,EAAG,IAAM,KAGpDjP,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAE3E,WAAY,QAAS7C,SAAU,GAAIyD,MAAO,OAASoH,MAAM,SAAQ,MAC/Es0B,EAAEzV,sBAAyByV,EAAEzV,sBAAuBqd,eAAe,QAAS,CAAEC,sBAAuB,IAAO,IAElH1iC,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAE3E,WAAY,SAAU7C,SAAU,GAAIyD,MAAO,OAASoH,MAAM,UAC3Es0B,EAAE7N,WAAW,IAAE6N,EAAE/E,QAAU+E,EAAE/E,QAAQ7W,UAAY,KAIpDzT,QAAsCxE,GAAnBwE,GAAgCA,EAAgBiB,IAAI,CAAC4oE,EAAIhmE,KAAC,IAAA0mE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAC3Ex2E,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAChBL,SAAU,IACVF,eAAgB,MAChB7F,gBACE+3E,EAAqC,QAAvBkB,EAACl7C,EAAEzM,4BAAoB,IAAA2nD,GAA8C,QAA9CC,EAAtBD,EAAwBhmC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAAkhE,OAA9C,EAAtBA,EAAsElhE,IACjF,UACA2+D,EAAa54C,EAAGw6C,EAAGvgE,IACjB,UACA,UACRvW,WAAY,WACX,QAAKyB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAOqzE,EAAGj9D,YAAci9D,EAAGj9D,YAAc,MACtDpY,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,SAAUoE,eAAgB,mBAClE,QAAtBszE,EAAAp7C,EAAEzM,4BAAoB,IAAA6nD,GAA8C,QAA9CC,EAAtBD,EAAwBlmC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAAohE,OAA9C,EAAtBA,EAAsErsD,QACrE7pB,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,KAAA,IAAAizE,EAAAC,EA5TZ5hE,EA4TY,OA5TZA,EA4TkE,QAAvB2hE,EAAC57C,EAAEzM,4BAAoB,IAAAqoD,GAA8C,QAA9CC,EAAtBD,EAAwB1mC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAA4hE,OAA9C,EAAtBA,EAAsE5hE,QA3T/I+/D,EAAe//D,GACbA,QAAY9N,GAAN8N,GACR7B,EAAS0b,GAAwBY,4BAA4Bza,EAAI2C,IAGnEmiB,EAAQ,CACN53B,MAAO,gDACPo9B,YAAa,+EACb37B,SAAU0U,EACVknB,iBAAkBlnB,EAAY,wBAA0B,gBACxDmnB,iBAAkB,YACjB9uB,KAAK,KACFsE,QAAY9N,GAAN8N,GACR7B,EAAS0b,GAAwBY,4BAA4Bza,EAAI2C,QA+SnClc,MAAM,UACNkI,SAAU2H,EAAKD,cAAgB9D,IAAqC+D,EAAKD,cAAgB9D,IAA2B+D,EAAKD,cAAgB9D,IAA4B+D,EAAKD,cAAgB9D,GAC1L1H,KAAK,QACLwX,QAAS09D,EAAqC,QAAvBsB,EAACt7C,EAAEzM,4BAAoB,IAAA+nD,GAA8C,QAA9CC,EAAtBD,EAAwBpmC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAAshE,OAA9C,EAAtBA,EAAsEthE,MAGlG9U,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,GAAIiH,eAAgB,SAAgC,QAAtB0zE,EAAAx7C,EAAEzM,4BAAoB,IAAAioD,GAA8C,QAA9CC,EAAtBD,EAAwBtmC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAAwhE,OAA9C,EAAtBA,EAAsEzsD,OAAQ,OAA+B,QAAvB0sD,EAAC17C,EAAEzM,4BAAoB,IAAAmoD,GAA8C,QAA9CC,EAAtBD,EAAwBxmC,OAAQwC,GAAMA,EAAEiiC,iBAAmBa,EAAGvgE,IAAI,UAAE,IAAA0hE,OAA9C,EAAtBA,EAAsE3sD,OAAO4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,gBAatSvqB,EAOHsuB,MAAMhlC,KAAK,CAAEyE,OAAQ,GAAK,CAACwgC,EAAGr3B,IAC5BrP,IAAAC,cAAC6+B,KAAQ,CAAC19B,IAAKiO,EAAG2vB,OAAK,GACrBh/B,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,GAC5ClG,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,GAC5ClG,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,GAC5ClG,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAf1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,SAAwB,OAAf37B,QAAe,IAAfA,OAAe,EAAfA,EAAiBtF,QAAS,EAAGK,MAAM,UAAS,2BAoBrEgmB,GAAoBA,EAAiBrmB,OAAS,GAC7ClG,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAEpG,gBAAiB,YAClCkD,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAGjkC,MAAO,CAAExH,SAAU,KACxCsE,IAAAC,cAAA,cAAQ,+CAETuL,IACgB,OAAfA,QAAe,IAAfA,OAAe,EAAfA,EAAiBiB,IAAI,CAAC4oE,EAAIhmE,KACxB,MAAMsnE,EAAapqD,EAChB9f,IAAI8lC,IAAC,IAAAqkC,EAAAC,EAAA,OAA0B,QAAtBD,EAAArkC,EAAEnkB,4BAAoB,IAAAwoD,GAAwD,QAAxDC,EAAtBD,EAAwBr5C,KAAKluB,GAAKA,EAAEmlE,iBAAmBa,EAAGvgE,IAAkB,GAAZzF,EAAEO,eAAY,IAAAinE,OAAxD,EAAtBA,EAAgFhtD,QAAS,IAClGjc,OAAO,CAAC+2D,EAAav/D,IAAUu/D,EAAcv/D,EAAO,GAEjD0xE,EAAiB,IAAI7oB,KAAKC,aAAa,QAAS,CACpDhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOmkD,GAEV,OACE32E,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAQnF,IAAKiO,GAC5BrP,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,SAAUvjC,SAAU,KAChEsE,IAAAC,cAAA,cAAS62E,YA5RfC,MAChB,MAAMC,EAAqD,GAA3Cv3E,EAAMumC,eAAe9yB,KAAKsjB,cACpCygD,EAAWx3E,EAAM2L,KAAKD,cAAgB9D,GAC5C,GAAgB,GAAZ4vE,GAAgC,GAAXD,EACvB,OAAO,EAGT,MAAME,EAAWz3E,EAAM2L,KAAKoa,QAAQuqB,OAAO1gC,GAAkB,MAAbA,EAAEO,QAAgB2/C,KAAK,CAAC1hD,EAAG2hD,IAAM3hD,EAAEhC,KAAO2jD,EAAE3jD,MAAQ,EAAI,GAClGoJ,EAAQgiE,GAAYC,EAAShxE,OAAS,EAAIgxE,EAAS,GAAa,KAChEC,EAAgBliE,EAAQzF,OAASwkC,KAAKxkC,KAAY,OAALyF,QAAK,IAALA,OAAK,EAALA,EAAOpJ,MAAO,WAAc,KAAW,KACpFurE,EAAa33E,EAAMyrB,YAAYA,YAAY2c,KAAK+nB,GAAKA,EAAEzkC,SAAW,GAExE,OAAO6rD,GAAWC,GAAYE,IAAkBC,GA0R7CL,IACC/2E,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXL,MAAO,CAAEpG,gBAAiB,UAAWvB,MAAO,OAAQoqC,YAAa,OAAQwE,aAAc,OAAQlN,UAAW,QAC1Gz5B,QAASA,KAjSnBo2B,EAAQ,CACN53B,MAAO,sEACPo9B,YAAa,wIACb37B,SAAUhE,EAAMuuB,cAAc7V,UAC9BknB,iBAAkB5/B,EAAMuuB,cAAc7V,UAAY,gBAAkB,iBACpEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS6E,GAAoB4W,OAAOjvB,EAAM2L,KAAK0J,SA4RvC9U,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAI1H,MAAM,QAAO,eAM3C6P,EAAKD,cAAgB9D,IACnBklB,QAAwCvlB,GAApBulB,GAAiCA,EAAiBrmB,SACrE2M,GAAYQ,YAAcR,GAAYU,gBACvCvT,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,KA/YrByP,EAAS6E,GAAoBkE,iBAgZlB,YAGDhc,IAAAC,cAACsD,EAAY,CACXzJ,MAAM,EACN0J,QAlZgB6zE,KAC5Bz9C,EAAQ,CACN53B,MAAO,kDACPo9B,YAAa,iFACb37B,SAAUhE,EAAMuuB,cAAc7V,UAC9BknB,iBAAkB5/B,EAAMuuB,cAAc7V,UAAY,wBAA0B,kBAC3E3H,KAAK,KA9FR2jE,OA2eY1wE,SAAU2H,EAAKD,cAAgB9D,IAAqC8Q,EACpE+kB,UAAWl9B,IAAAC,cAAC6kD,KAAQ,MACpB1nB,QAASjlB,GAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAC/C,sBAKH,KAGHu8C,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB4C,qBAG3B,KAKD2pE,EACC9zE,IAAAC,cAACs1D,GAAe,CACdh8B,OAAQ46C,EACR36C,MAAOs6C,EACPr0E,MAAOA,EACP4zE,eAAgBA,EAChBD,oBA9cV,WAEE,OAD4B,OAAhB7mD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBsb,KAAMhN,GAA+B,MAAzBA,EAAE3L,sBA8cpCzX,OAAQA,EACR07D,uBAAwBA,IAG1B,OAcJmE,GAAqCvtC,qBACzCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAjmBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAskB4ByuC,CAAmBo4B,MAI3CA,I,6BCnoBf,MAAMtuB,GAAM,IAAIhoC,KAiBVyrE,GAAgBC,GACpBC,MAAM,oBAADh6E,OAAqBiT,KAAKC,UAAU6mE,EAAS,KAAM,KAmKvBztC,qBACjCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA5KvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,MA0KYurC,CAjKjB3lC,IAA8B,IAA7B,MAAE5E,EAAK,OAAEgY,EAAM,KAAErM,GAAM/G,EAE5C6N,QAAQC,IAAI,OAAQ/G,GAEpB,MAAM,YAAE8f,GAAgBzrB,EAAMyrB,aACvBvO,EAAMwyB,GAAWxV,oBAAS,GAE3B+9C,EAAS,IAAI5rE,KAAS,OAAJV,QAAI,IAAJA,OAAI,EAAJA,EAAMuX,YACxBg1D,EAAM,IAAI7rE,KAAS,OAAJV,QAAI,IAAJA,OAAI,EAAJA,EAAMwX,aAErBzU,EAAQ,IAAIrC,KAAK4rE,EAAOtrE,cAAesrE,EAAOxrE,WAAa,EAAGwrE,EAAO1rE,WACrEsC,EAAM,IAAIxC,KAAK6rE,EAAIvrE,cAAeurE,EAAIzrE,WAAa,EAAGyrE,EAAI3rE,WAEhEkG,QAAQC,IAAI,aAAchE,GAC1B+D,QAAQC,IAAI,WAAY7D,GAMb,IAAIxC,KAAK,oBACX,IAAIA,KAAK,oBA+DlB,SAAS8rE,EAAUzrE,EAAKF,GACtB,OAAO,IAAIH,KAAKK,EAAKF,EAAM,EAAG,GAAGD,UASnC,MA2BM6rE,EAAU,CACd,CACE/iE,GAAI,QACJ9S,MAAO,QACPukE,MA/BgBuR,EAACJ,EAAQC,KAE3B,IAAII,EAAQ,GAEZ,KAAOL,GAAUC,GAAK,CAEpB,IAAI9rE,EAAO,IAAIC,KAAK4rE,GAEpBxlE,QAAQC,IAAI,OAAQtG,GAEpBksE,EAAMhqE,KACJ,CACE+G,GAAG,MAADrX,OAAQoO,EAAKK,WAAa,GAC5BlK,OAnBcmK,EAmBMN,EAAKO,cAnBNH,EAmBqBJ,EAAKK,WAAa,EAlBnD,IAAIJ,KAAKK,EAAKF,EAAK,GAEpB+rE,mBAAmB,QADhB,CAAE3U,MAAO,UAiB2Cz8D,cAC7DuH,MAAO,IAAIrC,KAAKD,EAAKO,cAAeP,EAAKK,WAAa,EAAG,GACzDoC,IAAK,IAAIxC,KAAKD,EAAKO,cAAeP,EAAKK,WAAa,EAAG0rE,EAAU/rE,EAAKO,cAAeP,EAAKK,WAAa,MAI3GwrE,EAAS,IAAI5rE,KAAKD,EAAKO,cAAeP,EAAKK,WAAa,EAAGL,EAAKG,WAzBpE,IAAsBG,EAAKF,EA8BzB,OADAiG,QAAQC,IAAI,QAAS4lE,GACdA,GAOED,CAAYJ,EAAQC,GAC3BM,WAAW,EACX/0E,MAAO,KAUX,OALAb,oBAAU,KACR6P,QAAQC,IAAI,oBAAqB+Y,IAEhC,CAACA,IAGFlrB,IAAAC,cAAA,OAAKP,UAAU,OACbM,IAAAC,cAACi4E,KAAQ,CACPC,MAAO,CACLhqE,QACAG,OAEFywD,OAAQpiD,EACR46D,aAAcA,GACdM,QAASA,EACTO,OAnHalyD,KACjB,IAEE,IAEImyD,EAFcnyD,EAAYoyD,QAAQjD,GAAMA,EAAG9oD,kBAEpB9f,IAAIouB,IAEtB,CACL/lB,GAAI+lB,EAAE/lB,GACN9S,MAAO64B,EAAEnY,WACT61D,SAAU19C,EAAEzP,yBAAyB3e,IAAI+rE,IAChC,CACL1jE,GAAI0jE,EAAG1jE,GACP9S,MAAOw2E,EAAG9M,WACVv9D,MAAO,IAAIrC,KAAK0sE,EAAGttD,YAAYrf,MAC/ByC,IAAK,IAAIxC,KAAK0sE,EAAGttD,YAAYrf,KAAO,IACpC3I,MAAO,CACLpG,gBAAgB,UAChBvB,MAAO,GACP+C,aAAc,MACdrB,UAAW,kCACXP,cAAe,iBAIrBwG,MAAO,CACLxH,SAAU,MAmBhB,OAFAwW,QAAQC,IAAI,SAAUkmE,GAEfA,EAEP,MAAO5sE,GACPyG,QAAQC,IAAI,MAAO1G,KAmETgtE,CAAUrtE,EAAK8a,aACvB4tB,IAAK,IAAIhoC,KAAKgoC,GAAI1nC,cAAe0nC,GAAI5nC,WAAY4nC,GAAI9nC,WAErD0sE,aAAW,S,yBChLZ,MAAMC,GAAuBC,0BAEvBC,GAA+Bx0E,IAAmB,IAAlB,SAAEpC,GAAUoC,EACvD,MAAOy0E,EAAeC,GAAoBp/C,mBAAS,MAC7C1mB,EAAW6mB,gBAEX,QAAEtiB,GAAYuuB,aAAavkC,GAAUA,EAAMy2B,cAE3C+gD,EAAmBC,sBAAYxnE,UACnCwB,ElI8NK,CACLlS,KAAM,sBkI9NN,MAAMqP,EAAc,gBAAkBpD,GAAYS,UAAU,CAAEkK,QAASH,IACvE,IACE,MAAM7H,QAAiBsB,GAAY1D,IAAI6C,GACvC2oE,EAAiBppE,EAAS9D,MAC1BoH,ElI+NG,CACLlS,KAAM,yBkI/NJ,MAAO0K,GACPyG,QAAQvX,MAAM8Q,GACf,QACCwH,ElI2NG,CACLlS,KAAM,2BkI1NL,CAACkS,EAAUuE,IAMd,OAJAnV,oBAAU,KACR22E,KACC,CAACxhE,EAASwhE,IAGXh5E,IAAAC,cAAC04E,GAAqBO,SAAQ,CAAC9zE,MAAO0zE,GACnC72E,I,iBC3BDlD,GAAYV,YAAYP,IAAK,CACjCjB,KAAM,CACJyB,aAAcR,EAAM8E,MAAMtE,aAC1BxB,gBAAiBgB,EAAMtC,QAAQP,WAAWE,MAC1CgrC,WAAYroC,EAAMW,QAAQ,GAC1B2nC,cAAetoC,EAAMW,QAAQ,IAE/BuD,MAAO,CACLvG,WAAY,IACZF,MAAOuC,EAAMtC,QAAQ5B,QAAQK,KAC7B4D,aAAcC,EAAMW,QAAQ,GAC5BH,aAAcR,EAAM8E,MAAMtE,aAC1Bi9B,UAAW,SACXh9B,WAAY,SACZghC,cAAe,UAEjBjE,KAAM,CACJ58B,QAAS,OACTH,WAAY,SACZoE,eAAgB,SAChBnE,QAASV,EAAMW,QAAQ,IACvB88B,UAAW,UAEb6qC,MAAO,CACL3qE,WAAY,WAsCD09E,OAlCa15E,IAC1B,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KACV+5E,EAAgB32E,qBAAWw2E,IAEjC,OACE34E,IAAAC,cAAC0F,KAAIzF,OAAAC,OAAA,CAACT,UAAWU,kBAAKL,EAAQlD,KAAM6C,IAAgBE,GAClDI,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACK,GAAI,GAAIz4B,MAAO,CAACpG,gBAAiB,YAC1CkD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYvD,UAAWK,EAAQiC,MAAOpE,cAAY,GAAC,uBAIzEoC,IAAAC,cAACuG,KAAO,CAACtD,MAAO,CAAE/D,MAAO,UACzBa,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIj8B,UAAWK,EAAQu7B,MACzDt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,0BACU,OAAb61E,QAAa,IAAbA,OAAa,EAAbA,EAAeM,YAA0B,OAAbN,QAAa,IAAbA,OAAa,EAAbA,EAAeM,WAAa,IAGnFp5E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIj8B,UAAWK,EAAQu7B,MACzDt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,8BACc,OAAb61E,QAAa,IAAbA,OAAa,EAAbA,EAAeO,OAAqB,OAAbP,QAAa,IAAbA,OAAa,EAAbA,EAAeO,MAAQ,IAG7Er5E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIj8B,UAAWK,EAAQu7B,MACzDt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,QAAQvD,UAAWK,EAAQqmE,OAC7CpmE,IAAAC,cAAA,cAAQ,uBAAiC,OAAb64E,QAAa,IAAbA,OAAa,EAAbA,EAAe1S,OAAqB,OAAb0S,QAAa,IAAbA,OAAa,EAAbA,EAAe1S,MAAQ,Q,4CCVhFn1B,GAAeltC,YAAOH,IAAPG,CAAe,MAClCoiC,WAAY,EACZR,YAAa,EACbwE,aAAc,EACd/D,cAAe,EACf1qC,SAAU,GACV6jC,cAAe,SACfziC,gBAAiB,UACjBvB,MAAO,OACP,UAAW,CACTuB,gBAAiB,OACjBq0C,WAAY,WAIVC,GAAcrtC,YAAO66B,KAAP76B,CAAc,MAChClG,aAAc,KAGVmzC,GAAajtC,YAAO,OAAPA,CAAe,CAChCzF,aAAc,EACd6nC,WAAY,EACZC,cAAe,EACf+D,aAAc,EACdxE,YAAa,EACbpqC,MAAO,OACPG,SAAU,GACVD,WAAY,IACZmD,YAAa,IAGTyyC,GAAmBttC,YAAOM,IAAA,IAAC,UAAE3E,GAAqB2E,EAAP5E,EAAKI,YAAAwE,EAAAvE,IAAA,OACpDE,IAAAC,cAAC8F,KAAO7F,OAAAC,OAAA,GAAKV,EAAK,CAAEM,QAAS,CAAEuxC,OAAQ5xC,OADhBqE,CAEtB,MACD,CAAC,MAADtG,OAAO8zC,KAAeC,UAAY,CAChC10C,gBAAiB,UACjBvB,MAAO,sBACP0/B,SAAU,IACVv/B,SAAU,EACV2H,OAAQ,0BA2dNi2E,GAAuBvvC,qBAC3BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aAzgBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAugBGurC,CAxdtBvqC,IAEf,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,QAAE+nB,GAAY/nB,EAAM+nB,SACpB,UAAErP,GAAc1Y,EAAM+nB,SACtB,eAAE5Q,GAAmBnX,EAAM+nB,SAE1B6hB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,iBAClB0gB,GAAa1gB,mBAAS,QAEtBquC,EAAcC,GAAmBtuC,oBAAS,IAC1CuuC,EAAWC,GAAgBxuC,mBAAS,OACpChd,EAAMwyB,GAAWxV,oBAAS,IAE1BwjB,GAAUn9C,IAAM25B,UAAS,IAE1B,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,GAGxCvE,EAASoU,GAAcC,WAAWrR,GAAa,KAIjDqkC,CAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,KACJ2lE,GAAgBE,GAClBG,KAED,CAAC5oE,EAAM+nB,QAAQE,kBAAmBsgD,IAErC3lE,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM+nB,QAAQrP,YAEzB,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IA4BJwuB,EAA2BA,KAC3BH,GAA0B,GAAbA,GACfj1D,EAASoU,GAAcS,4BAA4BogD,EAAW1wD,EAAS,KAAM,CAC3EkQ,kBAAmBjoB,EAAM+nB,QAAQE,sBASjC6xD,EAAqBv+E,IACzBsH,OAAOqa,KAAK3hB,EAAM,WAGdstE,EAAcxzD,IAClB,QAAU9N,GAAN8N,EACF,OAAc,OAAP0S,QAAO,IAAPA,OAAO,EAAPA,EAASqgB,KAAMhN,GAAyB,MAAnBA,EAAEjT,eAAyBiT,EAAE/lB,IAAMA,IAI7Do0D,EAA0Bh7D,IAC9BihC,GAAQ,GACR,IAAIr9B,EAAO5D,EAAEE,OAAOq3C,MAAM,GACtB3zC,GACFU,GAAWV,GACRtB,KAAMb,IACL,IAAI01C,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAASoU,GAAcrS,cAAc,oBAAqBqwC,IAC1DlW,GAAQ,KAETp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MA+DhB,OACEnvC,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,YACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcwgB,GAAWA,EAAQthB,OAAS,EACzClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQshB,EAAQthB,OAChB22C,SAAU,yBACV76C,MAAO,6BACPujC,KAAM,WACNuX,WAAYv1C,GAAmBoB,mBAGjC3I,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQ,EACR22C,SAAU,yBACV76C,MAAO,6BACPujC,KAAM,WACNuX,WAAYv1C,GAAmBoB,mBAGnC3I,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA/Ha4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WAiIXpF,IAAAC,cAAC44E,GAA4B,KAC3B74E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,UAC/CvG,IAAAC,cAACk5E,GAAkB,SAIzBn5E,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAO,qBACxBvG,IAAAC,cAAC8+B,KAAS,KAAC,WACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,oBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,SACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAG9BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcwgB,GAAWA,EAAQthB,OAC9BshB,EAAQ/a,IAAKouB,IAAO,IAAD2+C,EAAAC,EAAAC,EACnB,OACE15E,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAACoxC,GAAgB,CACfe,UAAU,OACVC,oBAAqBC,KACrBtwC,MACEhC,IAAAC,cAACm7B,KAAI,KACa,QADbo+C,EACF3+C,EAAErU,qBAAa,IAAAgzD,OAAA,EAAfA,EAAiB/sE,IAAI,CAAC8lC,EAAG7T,KAAK,IAAAuU,EAAAE,EAAAwmC,EAAAC,EAAAxmC,EAAAymC,EAAAtmC,EAAAE,EAAAqmC,EAAA,OAC7B95E,IAAAC,cAACmxC,GAAW,CAACzxC,KAAK,QAAQq7B,WAAS,GACjCh7B,IAAAC,cAAC4+B,KAAS,KACG,IAAVH,GACC1+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,GAClBnnC,IAAAC,cAACqD,IAAU,CAAC/H,MAAM,UAAUgL,MAAM,SAASrD,MAAO,CAAExH,SAAU,KAAMsE,IAAAC,cAAA,SAAG,2BACvED,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,UACtDvG,IAAAC,cAAA,SAAG,YAAY,QACR,QAANgzC,EAAAV,EAAEnnC,YAAI,IAAA6nC,OAAA,EAANA,EAAQznC,gBAAgB,IACf,QADiB2nC,EACvBZ,EAAEnnC,YAAI,IAAA+nC,GAA4B,QAA5BwmC,EAANxmC,EAAQ3nC,gBAAgB,GAAG8M,eAAO,IAAAqhE,GAAa,QAAbC,EAAlCD,EAAoClgE,mBAAW,IAAAmgE,OAAzC,EAANA,EAAiDhzE,cACjD,OAMd5G,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKmxC,EAAEnnC,KAAK0J,IAC1B9U,IAAAC,cAAC0+B,KAAc,CAACz7B,MAAO,CAAE+5B,UAAoB,GAATyB,GAAc,EAAGr7B,OAAQ,iBAAkB/E,aAAc,IAC3F0B,IAAAC,cAAC2+B,KAAK,CAACj/B,KAAK,QAAQuD,MAAO,CAAEG,OAAQ,IACnCrD,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KACR/+B,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QACtDvG,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC/DyB,IAAAC,cAAC+wC,GAAU,CAAC9tC,MAAO,CAAEpG,gBAAiB4O,GAAO6mC,EAAEnnC,KAAKD,gBAAkBD,GAAoBqnC,EAAEnnC,KAAKD,aAAconC,GAAG,IAClHvyC,IAAAC,cAAA,SAAG,cAAW,OAAa,QAAPmzC,EAACb,EAAEnnC,YAAI,IAAAgoC,GAAQ,QAARymC,EAANzmC,EAAQ9sC,cAAM,IAAAuzE,OAAR,EAANA,EAAgBjzE,iBAI3C5G,IAAAC,cAAC8+B,KAAS,KACR/+B,IAAAC,cAACqD,IAAU,CAACswC,GAAI,CAAEl4C,SAAU,IAAMH,MAAM,UAAUgL,MAAM,QACtDvG,IAAAC,cAAA,SAAG,eAAe,QAAa,QAANszC,EAAAhB,EAAEnnC,YAAI,IAAAmoC,OAAA,EAANA,EAAQ7wB,YAAmB,QAAT+wB,EAAGlB,EAAEnnC,YAAI,IAAAqoC,GAAY,QAAZqmC,EAANrmC,EAAQ/wB,kBAAU,IAAAo3D,OAAZ,EAANA,EAAoBlzE,cAAgB,MAGtF5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACgxC,GAAY,CACXztC,QAASA,KAAA,IAAAu2E,EAAA,OAAMz3E,OAAOqa,KAAK,UAAiB,QAAjBo9D,EAAWxnC,EAAEnnC,YAAI,IAAA2uE,OAAA,EAANA,EAAQjlE,IAAI,WAClDnV,KAAK,SACN,uBAcrBK,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAC+5E,KAAgB,CAAC92E,MAAO,CACvBiB,OAAQ,UACRzI,SAAU,aAIhBsE,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO64B,EAAEpT,gBAAkB,oDAClCznB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMzjC,MAAO,CAAEiB,OAAQ02B,EAAEpT,eAAiB,UAAY,WAAajkB,QAASA,IAAM+1E,EAAkB1+C,EAAEpT,iBACnIoT,EAAEpT,eAAiBznB,IAAAC,cAACg6E,KAA2B,CAAC/2E,MAAO,CACtDiB,OAAQ,UACRzI,SAAU,WACJ,MAGZsE,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO64B,EAAEnT,mBAAqB,oDACrC1nB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMzjC,MAAO,CAAEiB,OAAQ02B,EAAEnT,kBAAoB,UAAY,WAAalkB,QAASA,IAAM+1E,EAAkB1+C,EAAEnT,oBACtImT,EAAEnT,kBAAoB1nB,IAAAC,cAACg6E,KAA2B,CAAC/2E,MAAO,CACzDiB,OAAQ,UACRzI,SAAU,WACJ,MAGZsE,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAClB,MAAX9L,EAAEvV,MAA4B,QAAfm0D,EAAG5+C,EAAEvV,MAAMjf,YAAI,IAAAozE,OAAA,EAAZA,EAAc7yE,cAAgB,IAEnD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAElT,aAAenY,KAAOqrB,EAAElT,cAAc6K,OAAO,oBAAsB,IAExExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMjnC,UAAWK,EAAQ87B,WAAW,MACnC,QAA5B69C,EArKExR,IACf,OAAP1gD,QAAO,IAAPA,OAAO,EAAPA,EAAS5Z,OAAO,CAACw4D,EAAO8T,KAC7B,GAAIA,EAAGplE,KAAOozD,EAAW,CAAC,IAADiS,EAOvB,OAAO/T,GAN8B,QAAnB+T,EAAGD,EAAG1zD,qBAAa,IAAA2zD,OAAA,EAAhBA,EAAkBvsE,OAAO,CAACwsE,EAAUC,KAAQ,IAADC,EAAAC,EAI9D,OAAOH,GAHuB,QAAVE,EAAGD,EAAGjvE,YAAI,IAAAkvE,GAAiB,QAAjBC,EAAPD,EAAS9uE,uBAAe,IAAA+uE,OAAjB,EAAPA,EAA0B3sE,OAAO,CAAC4sE,EAAajR,IAC7DiR,GAAejR,EAAI1/C,OAAS,GAClC,KAEF,IAGL,OAAOu8C,GACN,GAyJyBqU,CAAsB5/C,EAAE/lB,WAAG,IAAA4kE,OAAA,EAA3BA,EAA6Bj3C,eAAe,QAAS,CAAEC,sBAAuB,KAEpF1iC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMjnC,UAAWK,EAAQ87B,WACtDhB,EAAEjT,cAAa,WAAAnqB,OAAc+R,KAAOqrB,EAAEjT,eAAe4K,OAAO,qBAAwB,aAEvFxyB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,eACNM,IAAKA,IACHhoC,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,qBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,KAAMimE,OAjSnB30D,EAiS0C+lB,EAAE/lB,QAhS1E8kB,EAAQ,CACN53B,MAAO,gDACPo9B,YAoEAp/B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,QAC/CvG,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,EAAQ0/C,SAAU9iC,KAAMA,GAC3C3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,8BAMnDyE,IAAAC,cAACqzD,KAAS,CAAC7yD,UAAU,UAAS,sBAC9BT,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,oBACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,gBACNye,YAAY,gBACZp1C,SAAU6jE,EACVnoE,KAAK,OACL4kD,YAAY,qBACZ3W,aAAW,EACX/S,OAAO,YAnGbx4B,SAAUhE,EAAM+nB,QAAQrP,UACxBknB,iBAAkB5/B,EAAM+nB,QAAQrP,UAAY,wBAA0B,OACtEmnB,iBAAkB,YACjB9uB,KAAK,KACNy3D,GAAgB,GAChBE,EAAarzD,KATeA,OAkSIvZ,MAAM,UACNoE,KAAK,QACL8D,SAAU6kE,EAAWztC,EAAE/lB,IACvBqC,QAASmxD,EAAWztC,EAAE/lB,UAMhC9U,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,YAADtQ,OAAao9B,EAAE/lB,IAAM+lB,EAAE/lB,IAErCnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAtT1B3oC,EAsTsC+lB,EAAE/lB,QArT3D8kB,EAAQ,CACN53B,MAAO,uCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM+nB,QAAQrP,UACxBknB,iBAAkB5/B,EAAM+nB,QAAQrP,UAAY,uBAAyB,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASoU,GAAca,kBAAkBpT,MARxBA,OAuTWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAaxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKiO,GACnBrP,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YA5B1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAoChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoB91C,IAAA,IAAC,KAAE9D,EAAI,GAAEH,GAAIiE,EAAA,SAAA9H,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,aCnhBzBwO,GAAaznD,YAAOq3B,KAAPr3B,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C,CAACvG,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,OACTugC,cAAe,SACf1D,UAAW,WAIT2gC,GAAcn4D,YAAOq3B,KAAPr3B,CAAawB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC/C,CAACzH,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,UAAW,MAITwuB,GAAmB1nD,YAAOT,IAAPS,CAAmB6tC,IAAA,IAAC,MAAE9zC,GAAO8zC,EAAA,MAAM,CAC1D,CAAC9zC,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,WAAY,GACZp/B,cAAe,EACfsoC,YAAa,GACbC,eAAgB,EAChB+D,aAAc,EACdvrC,YAAa,EACb+mC,YAAa,EACbvM,WAAY,MAuFVshD,GAAkC3wC,qBACtCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAxHvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAmHyBsuC,CApFXvqC,IAAW,IAADk7E,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAvB,EAEpC,MAAQ39B,OAAO,OAAE7uC,IAAazN,GACxB,UAAEyoE,GAAczoE,EAChBwT,EAAW6mB,eAEjBz3B,oBAAU,KACR4Q,EAASoU,GAAc5R,SACnByyD,GACFj1D,EAASoU,GAAcE,eAAe2gD,KAEvC,IAaH,OACEloE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACpCusC,GACCloE,IAAAC,cAACsmC,IAAK,CAACojB,UAAW,EAAGzmD,MAAO,CAAErF,aAAc,EAAGf,gBAAiB,UAAWspC,cAAe,IACxFpmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,WAAWC,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,uBAEzED,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,mBAAyBR,EAAM+nB,QAAQG,aAAenY,KAAO/P,EAAM+nB,QAAQG,cAAc6K,OAAO,cAAgB,MAGjKxyB,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,iBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAW,IAAe,QAAd03E,EAACl7E,EAAM+nB,eAAO,IAAAmzD,OAAA,EAAbA,EAAe7lE,MAG1D9U,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,mBAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAA+B,QAArB23E,EAAEn7E,EAAM+nB,QAAQlC,aAAK,IAAAs1D,GAAM,QAANC,EAAnBD,EAAqBv0E,YAAI,IAAAw0E,OAAN,EAAnBA,EAA2Bj0E,iBAGrE5G,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,eAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAiC,QAAvB63E,EAAEr7E,EAAM+nB,QAAQlP,eAAO,IAAAwiE,GAAa,QAAbC,EAArBD,EAAuBrhE,mBAAW,IAAAshE,OAAb,EAArBA,EAAoCn0E,iBAG9E5G,IAAAC,cAACi8D,GAAW,CAAC7gC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KACzEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAWjD,IAAAC,cAAA,cAAQ,aAE/CD,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,QAClDvG,IAAAC,cAACwrD,GAAgB,CAACxoD,QAAQ,YAAW,OAAiB,QAAb+3E,EAAAv7E,EAAM+nB,eAAO,IAAAwzD,GAAO,QAAPC,EAAbD,EAAenxD,aAAK,IAAAoxD,OAAP,EAAbA,EAAsBx4C,eAAe,QAAS,CAAEC,sBAAuB,OAAwC,QAApCg3C,EAlDjGxR,KAAe,IAADgT,EAAAC,EAC3C,OAAoB,QAApBD,EAAOz7E,EAAM+nB,eAAO,IAAA0zD,GAAe,QAAfC,EAAbD,EAAe10D,qBAAa,IAAA20D,OAAf,EAAbA,EAA8BvtE,OAAO,CAACwsE,EAAUC,KAAQ,IAADC,EAAAC,EAI5D,OAAOH,GAHuB,QAAVE,EAAGD,EAAGjvE,YAAI,IAAAkvE,GAAiB,QAAjBC,EAAPD,EAAS9uE,uBAAe,IAAA+uE,OAAjB,EAAPA,EAA0B3sE,OAAO,CAAC4sE,EAAajR,IAC7DiR,GAAejR,EAAI1/C,OAAS,GAClC,KAEF,IA4C+H4wD,UAAgC,IAAAf,OAAA,EAAhCA,EAAkCj3C,eAAe,QAAS,CAAEC,sBAAuB,c,mCC3CnN04C,GAAkBr3E,YAAOg7B,KAAPh7B,CAAkB,MACxCjH,gBAAiB,UACjBqpC,WAAY,EACZC,cAAe,EACf7K,UAAW,YAGP8/C,GAAmBt3E,YAAOg7B,KAAPh7B,CAAkB,MACzCjH,gBAAiB,UACjBqH,OAAQ,aAGJ2vD,GAAY/vD,YAAO,MAAPA,CAAc,MAC9BrF,QAAS,OACTugC,cAAe,MACf1gC,WAAY,YA4gBR+8E,GAA2BvxC,qBAC/BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAhjBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbC,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElB88C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAgiB4ByuC,CA1gBlBvqC,IAEnB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,MAAEulB,EAAK,UAAE5lB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC7C6c,EAAMwyB,GAAWxV,oBAAS,IAC1B7nB,EAAMmzC,GAAWtrB,wBAAS3yB,IAC1Bu0E,EAAQC,GAAa7hD,wBAAS3yB,IAC9By0E,EAAYC,GAAiB/hD,mBAAS,KACtC0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BygB,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACrBoiB,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OACzBr3B,EAAem1D,GAAoBhiD,mBAASl6B,EAAM+nB,QAAQhB,eAC3Do1D,EAAkB,IACjBC,EAAmBC,GAAwBniD,mBAAS,OAEpDuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAGtCgsB,EADWnoB,wBACUv+C,OAMrB,QAAEgW,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAOb7sB,EAAO26B,aAAavkC,GAAUA,EAAM4J,KAAKA,MAE/C/I,oBAAU,KAER4Q,EAASoU,GAAc5R,SAEvB,IAAIQ,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,GAG/BvE,EAAS6O,GAAWE,kBAAkB/L,KACrC,IAEH5T,oBAAU,KAER4Q,EAASoU,GAAc5R,SAEvB,IAAIQ,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,GAG/BvE,EAAS6O,GAAWE,kBAAkB/L,KACrC,CAACuB,IAGJnV,oBAAU,KACO,IAAXmV,IACF3K,IAAMlS,MAAM,4BACZkM,GAAQkH,KAAK,eAEd,CAACyJ,IAEJnV,oBAAU,KACJk5E,QAAoBv0E,GAAVu0E,GAAiC,MAAVA,IACnCpsC,GAAQ,GACRgW,EAAO,oBAAqBo2B,KAE7B,CAACA,IAwCJl5E,oBAAU,KACJyP,QAAgB9K,GAAR8K,GAA6B,MAARA,IAC/Bq9B,GAAQ,GACRgW,EAAO,iBAAkBrzC,KAE1B,CAACA,IAEJ,IAAK,MAAMygC,KAAKnnC,EAAM,CAAC,IAAD2wE,EACpB,MAAMC,EAAgC,QAAvBD,EAAGxpC,EAAE/mC,gBAAgB,UAAE,IAAAuwE,OAAA,EAApBA,EAAsB1jE,UACnCujE,EAAgBI,KACnBJ,EAAgBI,GAAa,IAE/BJ,EAAgBI,GAAWjuE,KAAKwkC,GAGlC,MAAM4S,EAASA,CAACpH,EAAMk+B,KACpBzpE,GAAWypE,GACRzrE,KAAMb,IACLy1C,YAAW,WACT,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAASoU,GAAcrS,cAAc+oC,EAAMsH,IAC3ClW,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,MAKR+sC,EAA2BA,KAAO,IAADhB,EAAAP,EACrC,GAAIzS,IAA0B,QAAjBgT,EAAIz7E,EAAM+nB,eAAO,IAAA0zD,OAAA,EAAbA,EAAezzD,sBAAmDzgB,IAApB,QAAb2zE,EAAAl7E,EAAM+nB,eAAO,IAAAmzD,OAAA,EAAbA,EAAelzD,gBAA6B,CAAC,IAADuzD,EAC5F,MAAMp1B,EAAyB,QAAhBo1B,EAAGv7E,EAAM+nB,eAAO,IAAAwzD,OAAA,EAAbA,EAAevzD,eAAelb,MAAM,KAEtD,OADoBq5C,EAAUA,EAAU1/C,OAAS,KAK/Ci2E,EAAsBA,KAAO,IAADC,EAAAC,EAChC,GAAInU,IAA0B,QAAjBkU,EAAI38E,EAAM+nB,eAAO,IAAA40D,OAAA,EAAbA,EAAe10D,yBAAyD1gB,IAAvB,QAAbq1E,EAAA58E,EAAM+nB,eAAO,IAAA60D,OAAA,EAAbA,EAAe30D,mBAAgC,CAAC,IAAD40D,EAClG,MAAM12B,EAAyB,QAAhB02B,EAAG78E,EAAM+nB,eAAO,IAAA80D,OAAA,EAAbA,EAAe50D,kBAAkBnb,MAAM,KAEzD,OADoBq5C,EAAUA,EAAU1/C,OAAS,KAS/CqzE,EAAqBv+E,IACzBsH,OAAOqa,KAAK3hB,EAAM,WAuDpB,SAASirC,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,iBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,mBAIV,SAASimC,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,2CACA,0CAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,KACnCzuB,EAAO4H,IAAMrV,EAAM+nB,QAAQ1S,KAC3B9U,IAAAC,cAACs8E,GAAkB,CAACrU,UAAWvsB,SAASzuC,EAAO4H,MAEjD9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GAAWizD,EA9DjBtR,MACjB,GAAIsR,EAAW,CACb,IAAI73D,EAAU,CACZyE,GAAIozD,EACJzgD,eAAgBhoB,EAAM+nB,QAAQC,eAC9BC,kBAAmBjoB,EAAM+nB,QAAQE,kBACjClQ,QAASA,EACTglE,uBAAwB/8E,EAAM+nB,QAAQg1D,uBACtCnkE,UAAW5Y,EAAM+nB,QAAQnP,WAG3BpF,EAASoU,GAAcQ,gBAAgBqgD,EAAW73D,MAmDgBumD,GAtFjDzY,MAEnB,GAbF,SAAyBs+B,GACvB,GAAwB,IAApBA,EAASv2E,OACX,OAAO,EAGT,MAAMw2E,EAAaD,EAAShwE,IAAIiB,GAAOA,EAAI2K,WAG3C,OAAOqkE,EAAWC,MAAM7nE,GAAMA,IAAO4nE,EAAW,IAK5CE,CAAgBnB,GAClB,GAAIj1D,GAAiBA,EAActgB,OAAS,EAAG,CAC7C,IAAImK,EAAU,CACZoX,eAAgBhoB,EAAM+nB,QAAQC,eAC9BC,kBAAmBjoB,EAAM+nB,QAAQE,kBACjClQ,QAASA,EACTgP,cAAeA,EACfqD,MArG4B,OAAbrD,QAAa,IAAbA,OAAa,EAAbA,EAAe5Y,OAAO,CAACwsE,EAAU7Q,IAC7C6Q,GAAY7Q,EAAI1/C,OAAS,GAC/B,GAoGGxR,UAAWojE,GAAcA,EAAW,GAAGpjE,WAGzCpF,EAASoU,GAAcY,cAAc5X,SAGrCxD,IAAMlS,MAAM,0EAGdkS,IAAMlS,MAAM,2EAmEgCwjD,IAElCn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,uBACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA7Q3B44C,KAgRkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMnEwsE,EAgFA,KA/EAloE,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,GAClBnnC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKsD,MAAM,SAASrD,MAAO,CAAErF,aAAc,IAC7DmC,IAAAC,cAAA,SAAG,iFAITD,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,OACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,cACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,gBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,qBACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,kBAGrCD,IAAAC,cAACumC,KAAS,KACPtmC,OAAOyN,KAAKiuE,GAAiB11E,OAAS,EACrChG,OAAOyN,KAAKiuE,GAAiBnvE,IAAKuvE,IAAe,IAADa,EAAAC,EAAAC,EAAAC,EAC9C,MAAMC,EAAerB,EAAgBI,GAC/BkB,EAA6B,QAAlBL,EAAGI,EAAa,UAAE,IAAAJ,GAAoB,QAApBC,EAAfD,EAAiBrxE,gBAAgB,UAAE,IAAAsxE,GAAS,QAATC,EAAnCD,EAAqCxkE,eAAO,IAAAykE,GAAa,QAAbC,EAA5CD,EAA8CtjE,mBAAW,IAAAujE,OAA1C,EAAfA,EAA2Dp2E,cACzEu2E,EAAatB,GAAqBG,EAExC,OACEh8E,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAK46E,GACnBh8E,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAACm7E,GAAe,CAACj0C,QAAS,GACxBnnC,IAAAC,cAAC6zD,GAAS,KACR9zD,IAAAC,cAAC8hE,KAAsB,CAACnuB,GAAI,CAAEh1C,YAAa,KAC3CoB,IAAAC,cAAA,YAAOi9E,KAGXl9E,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,6BACbhC,IAAAC,cAACo7E,GAAgB,CAAC90E,MAAM,SACtBvG,IAAAC,cAACm9E,KAAc,CAAC55E,QAASA,IA7T7Cw4E,KACpBF,EAAqBE,GAAaH,EAAoB,KAAOG,IA4TUqB,CAAarB,QAIjDmB,IACa,OAAZF,QAAY,IAAZA,OAAY,EAAZA,EAAcxwE,IAAKrB,IACjBpL,WAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKgK,EAAK0J,IACxB9U,IAAAC,cAAC8+B,KAAS,KAAE3zB,EAAK0J,IACjB9U,IAAAC,cAAC8+B,KAAS,KAAE3zB,EAAK9E,OAAS8E,EAAK9E,OAAOM,cAAgB,IACtD5G,IAAAC,cAAC8+B,KAAS,KAAE3zB,EAAKsX,WAAatX,EAAKsX,WAAW9b,cAAgB,IAC9D5G,IAAAC,cAAC8+B,KAAS,KAAE3zB,EAAKka,MAAMjf,KAAO+E,EAAKka,MAAMjf,KAAKO,cAAgB,IAC9D5G,IAAAC,cAAC8+B,KAAS,KAAE3zB,EAAKuc,aAAenY,KAAOpE,EAAKuc,cAAc6K,OAAO,oBAAsB,IACvFxyB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAAC4pD,KAAQ,CACPrmD,QAASA,KAAA,IAAA+H,EAtRbkM,EAAQ6lE,EAAmBzzD,EAsRd,OAtRbpS,EAsRoDrM,EAAK0J,GAtRjDwoE,EAsR4E,QAAzB/xE,EAAEH,EAAKI,gBAAgB,UAAE,IAAAD,OAAA,EAAvBA,EAAyB8M,UAtR3DwR,EAsRsEze,EAAKI,gBAAgB,GAAGqe,MArRjK6xD,EAAc,IAAID,EAAY,CAAEpjE,UAAWsjC,SAAS2hC,MAEhD7lE,IACE+O,EAAcqhB,KAAKuc,GAAMA,EAAG3sC,SAAWkkC,SAASlkC,IAClDkkE,EAAiBn1D,EAAcupB,OAAOqU,GAAMA,EAAG3sC,SAAWkkC,SAASlkC,KAEnEkkE,EAAiB,IAAIn1D,EAAe,CAAE/O,OAAQkkC,SAASlkC,GAASoS,MAAOA,WAIvEyzD,IACE7B,EAAW5zC,KAAKuc,GAAMA,EAAG/rC,YAAcsjC,SAAS2hC,IAClD5B,EAAcD,EAAW1rC,OAAOqU,GAAMA,EAAG/rC,YAAcsjC,SAAS2hC,KAEhE5B,EAAc,IAAID,EAAY,CAAEpjE,UAAWsjC,SAAS2hC,SAwQZ/hF,MAAM,UACNoE,KAAK,QACLwX,SA9PFM,EA8P8CrM,EAAK0J,QA7P9E9N,IAAXyQ,GACK+O,EAAcqhB,KAAKuc,GAAMA,EAAG3sC,SAAWkkC,SAASlkC,SAFfA,YAuQdzX,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAK,GACnBpB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SAAS4gC,QAAS,GAAG,sDAYnFnnC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,EAAQ0/C,SAAU9iC,KAAMA,GAC3C3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,0BAMnDyE,IAAAC,cAACqzD,KAAS,CAAC7yD,UAAU,UAAS,sBAC9BT,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,iBACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,qBACN32B,SAAU6I,GA1SNA,KACxB+2C,EAAQ/2C,EAAEE,OAAOq3C,MAAM,KAySYC,CAAiBx3C,GAChCnN,KAAK,OACL05C,YAAY,iBACZzL,aAAW,EACX/S,OAAO,UAERigD,IAA6Bl8E,IAAAC,cAACqD,IAAU,CAAC5D,UAAU,OAAOwD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,EAAG94B,OAAQ,WAAaX,QAASA,IAAM+1E,EAAkB95E,EAAM+nB,QAAQC,iBAAiB,kBAAgBy0D,KAA2C,IAElPl8E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAACmyD,KAAQ,CAAC1yD,UAAWK,EAAQ0/C,SAAU9iC,KAAMA,GAC3C3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,0BAMnDyE,IAAAC,cAACqzD,KAAS,CAAC7yD,UAAU,UAAS,iBAC9BT,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,oBACHpV,UAAWK,EAAQ87B,UACnBG,MAAM,gBACNye,YAAY,gBACZp1C,SAAU6I,GAnRIA,KAClCstE,EAAUttE,EAAEE,OAAOq3C,MAAM,KAkRU83B,CAA2BrvE,GAC1CnN,KAAK,OACLiuC,aAAW,EACX/S,OAAO,UAERkgD,IAAwBn8E,IAAAC,cAACqD,IAAU,CAAC5D,UAAU,OAAOwD,MAAO,CAAExH,SAAU,GAAIuhC,UAAW,EAAG94B,OAAQ,WAAaX,QAASA,IAAM+1E,EAAkB95E,EAAM+nB,QAAQE,oBAAoB,kBAAgBy0D,KAAsC,MAI/On8E,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,gFAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,cAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXN,QAAQ,YACRnJ,MAAM,EACNiH,KAAK,SACL0C,SAAUhE,EAAM+nB,QAAQrP,UACxB+kB,UAAWl9B,IAAAC,cAAC6xD,KAAQ,MACpB10B,QAAS39B,EAAM+nB,QAAQrP,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DuN,EAAO4H,GAAMrV,EAAM+nB,QAAQrP,UAAY,yBAA2B,YAAgB1Y,EAAM+nB,QAAQrP,UAAY,sBAAwB,wBAShJ+jC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBqB,mBAG3B,WCzSN40E,GAA4BzzC,qBAChCxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA5QvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAuQyBsuC,CAnQjBvqC,IAEpB,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,aAAE2b,GAAiB3b,EAAM2b,cACzB,eAAExE,GAAmBnX,EAAM2b,cAC3B,UAAEjD,GAAc1Y,EAAM2b,cAErBiuB,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SAGvB,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAGR,IAAI4T,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7BuE,SAAU,GAGZ9I,EAAS8H,GAAmBC,gBAAgB/E,GAAa,KAExD,IAEH5T,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAG9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7BuE,SAAU,GAGZ9I,EAAS8H,GAAmBC,gBAAgB/E,GAAa,KAG3DqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjD,MAAM+jC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAkCV,OAfAx3C,oBAAU,KAER,IAAI4T,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACXt+B,SAAU,GAGZ9I,EAAS8H,GAAmBC,gBAAgB/E,GAAa,KAExD,IAGDjW,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,UACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcoU,GAAgBA,EAAalV,OAAS,EACnDlG,IAAAC,cAAC28C,GAAY,CACX12C,OAAQkV,EAAalV,OACrB22C,SAAU,wBACV76C,MAAO,2DACPujC,KAAM,kBAGRvlC,IAAAC,cAAC28C,GAAY,CACX12C,OAAQ,EACR22C,SAAU,wBACV76C,MAAO,2DACPujC,KAAM,kBAGVvlC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAhDa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAmDbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,WACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,iBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,oBACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,kBACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcoU,GAAgBA,EAAalV,OACxCkV,EAAa3O,IAAKouB,IAAO,IAAD4iD,EACxB,OACEz9E,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAA+B,QAAxBmlE,EAAG5iD,EAAEviB,QAAQmB,mBAAW,IAAAgkE,OAAA,EAArBA,EAAuB72E,cAAgB,IAEtD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE9F,UAAY8F,EAAE9F,UAAU1uB,KAAO,IAEpCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE0qB,aAAe/1C,KAAOqrB,EAAE0qB,cAAc/yB,OAAO,cAAgB,IAElExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACf,GAAd9L,EAAE1P,SAAgB,WAA2B,GAAd0P,EAAE1P,SAAgB,WAAa,0BAEjEnrB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,aACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,YAADtQ,OAAao9B,EAAExiB,YA3J7C,GA6JgB1Y,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,oBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,WAMzB/6C,IAAAC,cAACunC,GAAa,CACZE,KAAM,wBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAtH1B3oC,EAsHsC+lB,EAAE/lB,QArH3D8kB,EAAQ,CACN53B,MAAO,qCACPo9B,YAAa,2CACb37B,SAAUhE,EAAM2b,aAAajD,UAC7BknB,iBAAkB5/B,EAAM2b,aAAajD,UAAY,qBAAuB,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8H,GAAmBe,uBAAuBhH,MARlCA,OAuHWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAtB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA8BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,aCFzB0gC,GAA4B3zC,qBAChCxB,aANuB/mC,IAChB,CACLioB,aAAcjoB,EAAMioB,eAIG,KAAM,KAA/B8e,CAAqCyB,aA1PvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAqPyBsuC,CAjPjBvqC,IAEpB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,aAAEgqB,GAAiBhqB,EAAMgqB,cACzB,eAAE7S,GAAmBnX,EAAMgqB,cAC3B,UAAEtR,GAAc1Y,EAAMgqB,aACtBm2C,KAAc/sD,GAAYQ,aAAcR,GAAYU,iBAEnD3D,EAAQujD,GAAax5B,mBAAS,KAC9B0P,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,EACtC+iC,OAAQ3qC,GAGVqD,EAASmW,GAAmBC,gBAAgBpT,GAAa,KAI3DqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,EAAS5H,EAAQoqC,IAElE33C,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAMgqB,aAAatR,YAE9B,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAWV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,gBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAAA,WACED,IAAAC,cAAC28C,GAAY,CACX12C,OAAQujB,EAAavjB,OACrB22C,SAAU,sBACV76C,MAAO,wBACP86C,WAAYv1C,GAAmBmC,oBAEjC1J,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA5Ba4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,WA8BXpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,GAAIp1B,MAAM,SAC5CvG,IAAAC,cAACozD,KAAW,KACVrzD,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,wBAElCjD,IAAAC,cAACy0D,KAAU,CACTzR,KAAG,EACHhE,kBAAgB,sCAChB5yC,KAAK,iCACLhH,SApCgB4P,IAChCk+C,EAAUl+C,EAAM7G,OAAOhJ,QAoCPA,MAAOwK,GAEP5P,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eACjGjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,UACjGjD,IAAAC,cAACqjD,KAAgB,CAACl+C,MAAM,IAAIm+C,QAASvjD,IAAAC,cAAC00D,KAAK,CAACh1D,KAAK,OAASq8B,MAAOh8B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,aAAY,eAKzGjD,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,WACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAO,QACxBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,SAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,QAAO,UACxBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAG9BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcyiB,GAAgBA,EAAavjB,OACxCujB,EAAahd,IAAKouB,IAAO,IAAD8iD,EAAAC,EAGxB,OADA1rE,QAAQC,IAAI,WAAY0oB,GAEtB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEnR,aAAela,KAAOqrB,EAAEnR,cAAc8I,OAAO,cAAgB,IAElExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUuiB,EAAEviB,QAAQmB,YAAY7S,cAAgB,IAErD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAsB,QAAfqlE,EAAG9iD,EAAEzvB,KAAKka,aAAK,IAAAq4D,OAAA,EAAZA,EAAct3E,KAAKO,cAAgB,IAElD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QACzCs0B,EAAEjR,uBAAsB,IAAAnsB,OAAOo9B,EAAEzvB,KAAK0J,GAAE,KAAArX,OAAU,QAAVmgF,EAAI/iD,EAAEzvB,YAAI,IAAAwyE,OAAA,EAANA,EAAQt3E,OAAOM,eAAkB,IAEhF5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACzCs0B,EAAEhR,MAAQ,KAAOgR,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,IAEpF1iC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,QAC1CvG,IAAAC,cAAC8F,KAAO,CACN/D,MAA0B,MAAnB64B,EAAEjT,eAAqB,WAAAnqB,OAAc+R,KAAOqrB,EAAEjT,eAAe4K,OAAO,sBAE3ExyB,IAAAC,cAAA,OAAKiD,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAAY,IAACyB,IAAAC,cAACg1D,KAAU,CAACrhB,GAAI,CAAEr4C,MAA0B,MAAnBs/B,EAAEjT,cAAwB,UAAY,UAAWlsB,SAAU,GAAIkD,YAAa,KAAO,IAACoB,IAAAC,cAAA,YAA0B,MAAnB46B,EAAEjT,cAAwB,YAAc,WAG9O5nB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,sBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,aACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAEpjB,QAAU,CAAEmoD,aAAYtnD,QAASuiB,EAAEviB,UAE7D3Y,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,gBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,eAY9B5iC,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAzB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAiChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPwkC,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1DyyB,KAAMA,EACNiS,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,0DCrMzB6gC,GAAoBp+E,IAAW,IAADq+E,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAElC,MAAM,UAAEpmE,GAAc1Y,EAAMgqB,cACtB,YAAEyB,GAAgBzrB,EAAMyrB,aAEtB6wB,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OAE1B,QAAE99C,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAGvC2X,EADWsoC,wBACOv+C,OAEjB27C,EAAOC,GAAYp9C,IAAM25B,UAAS,GACnC1mB,EAAW6mB,gBACVjQ,EAAO20D,GAAY7kD,mBAAS,IAC5B7nB,EAAMmzC,GAAWtrB,wBAAS3yB,IAC1B2V,EAAMwyB,GAAWxV,oBAAS,IAC1Bv4B,EAAK4jD,GAAUrrB,mBAAS,IAExBuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMrC1iB,EAAOuG,GAAYpG,oBAAS,GAC7BJ,EAASA,IAAMwG,GAAUvG,IAExBjjB,EAAOkoE,GAAY9kD,mBAAS,KAC5B+kD,EAAYC,GAAiBhlD,mBAAS,IAE7Ct3B,oBAAU,OACP,CAAC86C,EAAOhlC,IAEX9V,oBAAU,KACR4Q,EAASmW,GAAmB3T,SAExBvI,EAAO4H,IACT7B,EAASmW,GAAmBI,oBAAoBtc,EAAO4H,MAGxD,IAEH,MAAM,QAAE0C,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAiDnB51B,oBAAU,KACR,GAAIq8E,GAAcA,EAAWx4E,OAAS,EAAG,CACvC,MAAM04E,EAAMF,EAAW9wE,OAAO,CAAC+2D,EAAaka,IAAiBla,EAAcka,EAAc,GACzFL,EAASI,QAETJ,EAAS,IAEV,CAACE,IA0BJr8E,oBAAU,KAGR,IAAI4T,EAAc,CAChBlU,KAAM,EACN6V,OAAQH,EACRsE,SAAU,EACVw+B,OAAQ,eAGVtnC,EAAS2X,GAAkBC,eAAe5U,GAAa,KAEtD,IAMH5T,oBAAU,KACJyP,QAAgB9K,GAAR8K,GAA6B,MAARA,IAC/Bq9B,GAAQ,GA3CVA,GAAQ,GACR38B,GAAWV,GACRtB,KAAMb,IACLy1C,YAAW,WACT,IAAIC,EAAS,CACXtkD,KAAM,SACNqN,OAAQ,CACNhJ,MAAOuK,EAAS21C,aAGpBryC,EAASmW,GAAmBpU,cAAc,cAAeqwC,IAEzDlW,GAAQ,KAEP,OAGJp+B,MAAOtF,IACNyG,QAAQC,IAAI1G,GACZ0jC,GAAQ,OA2BX,CAACr9B,IAeJ,SAASo0B,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,GAAQ,MAEXziD,IAAAC,cAACgmC,GAAU,MAGpB,SAAS64C,IACP,OAAO9+E,IAAAC,cAAC8+E,GAAK,MAGf,SAASt8B,KACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,2BAKV,SAAS8+E,KACP,OACE/+E,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKsD,MAAM,UAC7BvG,IAAAC,cAAA,SAAI,0EAKV,SAASgmC,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,qBAKV,OACED,IAAAC,cAAC++E,EAAQ,CACPt/E,UAAWK,EAAQlD,KACnBmF,MAAM,uDAENhC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,oBAEH9U,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,0BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA7M3B44C,KAgNkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACN0G,EAAO4H,GAmJP9U,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,eACHknB,MAAM,sBACNC,OAAO,SACP72B,MAAOoK,KAAO/P,EAAMgqB,aAAaC,cAAc8I,OAAO,eAAiB,GACvEvvB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,gBACHknB,MAAM,oBACNC,OAAO,SACP72B,MAAO3F,EAAMgqB,aAAa7B,cAAgBpY,KAAO/P,EAAMgqB,aAAa7B,eAAe4K,OAAO,oBAAsB,GAChHvvB,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,UACHknB,MAAM,UACNC,OAAO,SACP72B,MAAiC,QAA5B04E,EAAEr+E,EAAMgqB,aAAanR,eAAO,IAAAwlE,GAAa,QAAbC,EAA1BD,EAA4BrkE,mBAAW,IAAAskE,OAAb,EAA1BA,EAAyCn3E,cAChD3D,QAAQ,eAIdjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP72B,OACoB,QAAlB44E,EAAAv+E,EAAMgqB,oBAAY,IAAAu0D,GAAM,QAANC,EAAlBD,EAAoB5yE,YAAI,IAAA6yE,GAAQ,QAARC,EAAxBD,EAA0B33E,cAAM,IAAA43E,OAAd,EAAlBA,EAAkCt3E,gBAAiB,GAErD3D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTmoB,WAAS,EACT87B,UAAQ,EACR77B,QAAS,EACTtnB,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,aACHknB,MAAM,aACNC,OAAO,SACP72B,OACoB,QAAlB+4E,EAAA1+E,EAAMgqB,oBAAY,IAAA00D,GAAM,QAANC,EAAlBD,EAAoB/yE,YAAI,IAAAgzE,GAAY,QAAZC,EAAxBD,EAA0B17D,kBAAU,IAAA27D,OAAlB,EAAlBA,EAAsCz3E,gBAAiB,GAEzD3D,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,QACHknB,MAAM,QACNC,OAAO,SACP72B,MAAO,GAAA3H,OAAqB,QAArB6gF,EAAG7+E,EAAMgqB,oBAAY,IAAA60D,GAAO,QAAPC,EAAlBD,EAAoBz0D,aAAK,IAAA00D,OAAP,EAAlBA,EAA2B97C,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,UAAc,GAC1GlrD,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTgB,MAAM,SACNC,OAAO,SACPgjD,UAAQ,EACRh8E,QAAQ,WACRmC,MAA2C,MAApC3F,EAAMgqB,aAAa7B,cAAwB,OAAS,gBAIjE5nB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIp1B,MAAM,UAC5CvG,IAAAC,cAACqzD,KAAS,KACRtzD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,YAAYsD,MAAM,UAAS,gBAEhD9G,EAAMgqB,aAAaE,cAAgBlqB,EAAMgqB,aAAaE,YAAY4qB,SAAS,SAAW90C,EAAMgqB,aAAaE,YAAY4qB,SAAS,UAAY90C,EAAMgqB,aAAaE,YAAY4qB,SAAS,SACjLv0C,IAAAC,cAAA,OACEiD,MAAO,CAAE/D,MAAO,IAAKD,OAAQ,IAAKojC,UAAW,UAAW9jC,QAAS,EAAGouD,eAAgB,QAAStuD,aAAc,GAC3G8H,IAAK3G,EAAMgqB,aAAaE,YACxB+b,IAAI,UAGNjmC,EAAMgqB,aAAaE,aAAelqB,EAAMgqB,aAAaE,YAAY4qB,SAAS,QACxEv0C,IAAAC,cAAA,UACEmG,IAAG,sCAAA3I,OAAwCgC,EAAMgqB,aAAaE,YAAW,kBACzEzmB,MAAO,CAAE/D,MAAO,IAAKD,OAAQ,IAAKojC,UAAW,UAAW9jC,QAAS,EAAGouD,eAAgB,QAAStuD,aAAc,GAC3G4gF,YAAY,IACZpyB,UAAU,OAGV,QAtRZ9sD,IAAAC,cAAC2F,KAAW,KACT6R,GACCzX,IAAAC,cAACihE,GAAe,CAACzpD,OAAQA,EAAQuN,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,YAExFjlB,IAAAC,cAAComC,KAAU,CACTrkC,MAAOhC,IAAAC,cAAC6+E,EAAQ,QAElB9+E,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAEL,SAAU,UAAW,SACzC7C,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAckkB,GAAeA,EAAYhlB,OACtCglB,EAAYze,IAAKouB,IAAO,IAADi3C,EAAAC,EAAAoN,EAEvB,IAAIC,EAAYvkD,EAAEhR,MACd6hD,EAA0C,QAAhCoG,EAAGj3C,EAAEzP,yBAAyB,UAAE,IAAA0mD,OAAA,EAA7BA,EAA+BpG,WAEhD,MAAM7hD,EAAQu1D,GAAa1T,EAAa,KAExC,OACE1rE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,IAElDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAAM,IAClC+kC,EAAW,KACZ7wC,EAAI,KAAmC,QAAhCk3C,EAAGl3C,EAAEzP,yBAAyB,UAAE,IAAA2mD,GAAe,QAAfoN,EAA7BpN,EAA+BllD,qBAAa,IAAAsyD,OAAf,EAA7BA,EAA8Cz8D,YAAa,IAExE1iB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9c,EAAQA,EAAM4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,QAAW,IAEnFnuD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAAC4pD,KAAQ,CACPxkD,SAAW4P,GAnNlBoqE,EAACpqE,EAAOqmB,EAAMzR,KACzC,MAAMy1D,EAAYrqE,EAAM7G,OAAO+I,QAEzBooE,EAAe,IAAIhpE,GACnBipE,EAAoB,IAAId,GAE9B,GAAIY,EACFC,EAAaxxE,KAAKutB,GAClBkkD,EAAkBzxE,KAAK8b,OAClB,CACL,MAAM6U,EAAQ6gD,EAAa90B,QAAQnvB,GAC7BmkD,EAAaD,EAAkB/0B,QAAQ5gC,IAC9B,IAAX6U,IACF6gD,EAAaG,OAAOhhD,EAAO,GAC3B8gD,EAAkBE,OAAOD,EAAY,IAIzChB,EAASc,GACTZ,EAAca,IAgMyCH,CAAqBpqE,EAAO4lB,EAAGhR,GACpD1S,QAASZ,EAAMg+B,SAAS1Z,GACxBt/B,MAAM,UACNoE,KAAK,cAQZwY,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAhB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAyBhEvG,IAAAC,cAACm7B,KAAI,CAACJ,WAAS,EAACM,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIj9B,QAAQ,OAAOH,WAAW,WAAWoE,eAAe,YACvG3C,IAAAC,cAACsD,EAAY,CACXL,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,QAC1C2F,QAASA,KAnR7Bi7E,EAAS,SACTE,EAAc,MAmRK,UAGD3+E,IAAAC,cAACsD,EAAY,CACXzJ,MAAI,EACJoJ,MAAO,CAAE+5B,UAAW,OAAQp/B,aAAc,QAC1C2F,QAASA,IAtRCm8E,MAC9B,MAAMC,EAAW,GACXC,EAAgB,GAEtB30D,GAAeA,EAAYhlB,OAAS,GAAKglB,EAAYze,IAAKouB,IAAO,IAADg3C,EAK9D,MAAMhoD,EAHUgR,EAAEhR,QAC4B,QAAhCgoD,EAAGh3C,EAAEzP,yBAAyB,UAAE,IAAAymD,OAAA,EAA7BA,EAA+BnG,YAER,KAExCkU,EAAS7xE,KAAK8sB,GACdglD,EAAc9xE,KAAK8b,KAGrB40D,EAASmB,GACTjB,EAAckB,IAsQqBF,IAChB,UAKH3/E,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAOt8B,eAAgB,eAAgBs6B,UAAW,KACrHj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC/Ej/B,IAAAC,cAACmyD,KAAQ,CAACxe,GAAI,CAAEr4C,MAAO,OAAQ0C,OAASH,GAAUA,EAAMG,OAAOE,OAAS,GAAKwe,KAAMA,GACjF3c,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,SACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,SACbqc,KAAK,UAELryD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACo9B,KAAgB,CAAC9hC,MAAM,aAE1ByE,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAK1H,MAAM,eAAc,uBAMnDyE,IAAAC,cAAA,aAAO,iBACPD,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,cACH5R,MAAO,CAAE+5B,UAAW,GACpBjB,MAAM,gBACN32B,SAAU6I,GAhORA,KACxB+2C,EAAQ/2C,EAAEE,OAAOq3C,MAAM,KA+NcC,CAAiBx3C,GAChCnN,KAAK,OACLkC,QAAQ,WACRg5B,OAAO,SACP0pB,YAAY,qBACZ3W,aAAW,EACX5tC,IAAKA,KAGTpB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC/Ej/B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,gBACHknB,MAAM,6BACNC,OAAO,SACP72B,MAAOykB,EAAQA,EAAM4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,QAAgB,EAC5FlrD,QAAQ,WACRQ,UAAQ,OAgJlBzD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,IAAMqD,GAAQkH,KAAK,oBAC7B,aAGCb,EAAO4H,IACP9U,IAAAC,cAACsD,EAAY,CACXN,QAAQ,YACRnJ,MAAM,EACNiH,KAAK,SACLyC,QAASA,KA3YzB+S,GAASA,EAAMrQ,OAAS,EACY,IAAlCzG,EAAMgqB,aAAaE,aAAuD,MAAlClqB,EAAMgqB,aAAaE,kBAAyD3iB,GAAlCvH,EAAMgqB,aAAaE,YACvG4P,IAEA1sB,IAAMlS,MAAM,6DAIdkS,IAAMlS,MAAM,yDAoYM8I,SAAUhE,EAAMgqB,aAAatR,UAC7B+kB,UAAWl9B,IAAAC,cAAC6/E,KAAa,OAC1B,mCAQNtmD,EACCx5B,IAAAC,cAAC8/E,GAAiC,CAACxmD,OAAQA,EAAQC,MAAOA,EAAO/5B,MAAOA,EAAOgY,OAAQA,EAAQD,QAASA,EAASqS,MAAOA,EAAOtT,MAAOA,EAAO2U,YAAaA,IAE1J,OAMLgxB,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBqD,oBAG3B,SAgBRo1E,GAAgCj2C,qBACpCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAjnBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAslB4ByuC,CAAmB6zC,M,2CC5nB7CkC,GAAoC17E,IAA2E,IAA1E,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,EAAM,QAAED,EAAO,MAAEqS,EAAK,MAAEtT,EAAK,YAAE2U,GAAa7mB,EAEpH,MAAMu5C,EAAU59C,IAAM69C,UAAU,MAE1B5qC,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,EAAS,QAAE4Y,GAAqB7Y,GACzCs8C,OAAO,OAAE7uC,KAD2BrN,YAAKJ,EAAKK,IACxBL,GAExB0Y,EAAY4tB,aACfvkC,GAAUA,EAAMi3B,eAAetgB,WA+BlC,SAAS8nE,IACP,OACEjgF,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,0BAKV,SAASimC,IACP,OAAOlmC,IAAAC,cAACggF,EAAI,MAGd,OACEjgF,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,CAAC50B,MAAM,QAAQrD,MAAO,CAAEijC,WAAY,EAAGlJ,UAAW,EAAGp/B,aAAc,EAAGuoC,cAAe,IAC/FpmC,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAnDf+1B,MAoDMv5B,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,IACxBj9B,IAAAC,cAAC+9C,iBAAa,CACZ96C,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCrE,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GAtDCA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACX4U,aAAcla,OAASg2C,cACvBntC,UAAW5Y,EAAMumC,eAAe9yB,KAAKiH,iBAAmB1a,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,GAAG9B,UAAY,EAClHZ,OAAQA,EACRoS,MAAOA,EACPF,YAAalqB,EAAMgqB,aAAaE,YAChCC,uBAAwBrT,EAAQA,EAAM9J,IAAIouB,IAAC,CACzCuyC,cAAevyC,EAAE/lB,MACb,IAGH5H,EAAO4H,KACV7B,EAASmW,GAAmBW,mBAAmB1Z,EAASmH,IACxD+hB,MAsC2B4kB,IAErBn+C,IAAAC,cAAComC,KAAU,CACTnjC,MAAO,CAAE+5B,UAAW,EAAGkJ,WAAY,GACnCG,UAAU,2BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAAC57B,MAAO,CAAEpG,gBAAiB,YAClCkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SAAQK,IAAAC,cAAA,cAAQ,SAChCD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SAAQK,IAAAC,cAAA,cAAQ,SAChCD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SAAQK,IAAAC,cAAA,cAAQ,YAGpCD,IAAAC,cAACumC,KAAS,KACPjwB,QAASvP,IAAcuP,GAASA,EAAMrQ,OACnCqQ,EAAM9J,IAAKouB,IAAO,IAADg3C,EAAAC,EAAAC,EACjB,IAAIqN,EAAYvkD,EAAEhR,MACd6hD,EAA0C,QAAhCmG,EAAGh3C,EAAEzP,yBAAyB,UAAE,IAAAymD,OAAA,EAA7BA,EAA+BnG,WAEhD,MAAM7hD,EAAQu1D,GAAa1T,EAAa,KAExC,OACE1rE,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,IAElDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAAM,IAClC+kC,EAAW,KACZ7wC,EAAI,KAAmC,QAAhCi3C,EAAGj3C,EAAEzP,yBAAyB,UAAE,IAAA0mD,GAAe,QAAfC,EAA7BD,EAA+BjlD,qBAAa,IAAAklD,OAAf,EAA7BA,EAA8CrvD,YAAa,IAExE1iB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACxB,OAAL9c,QAAK,IAALA,OAAK,EAALA,EAAO4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,YAOpEh2C,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAb1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,gCAmB5DvG,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,YAC/CkD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,QAAQwnC,QAAS,GAAGnnC,IAAAC,cAAA,cAAQ,iBAC5CD,IAAAC,cAAC8+B,KAAS,CAACp/B,KAAK,SAAQK,IAAAC,cAAA,cAAQ,8BAGpCD,IAAAC,cAACumC,KAAS,KACRxmC,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAK,GACnBpB,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,yDACbhC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMQ,QAAS,EAAGjkC,MAAO,CAAEiB,OAAQ,WAAaX,QAASA,KAAM0hD,OAnI7FlqD,EAmI4GyE,EAAMgqB,aAAaE,iBAlIrJrnB,OAAOqa,KAAK3hB,GADUA,QAoICyE,EAAMgqB,aAAaE,cAGxB3pB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9c,EAAQA,EAAM4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,QAAW,SAO7FnuD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CACrBxE,QAAS,OACTH,WAAY,MACZ0gC,cAAe,MACf1D,UAAW,MACX54B,eAAgB,QAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAAS+1B,GACV,YAGDv5B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLjH,MAAM,EACNmJ,QAAQ,YACRQ,SAAUhE,EAAMgqB,aAAatR,UAC7B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMgqB,aAAatR,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEhEF,EAAMgqB,aAAatR,UAAY,0BAAyB,6BC6ErE+nE,GAA2Bn2C,qBAC/BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aAvQvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAkQyBsuC,CA9PlBvqC,IAEnB,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,YAAEyrB,GAAgBzrB,EAAMyrB,aACxB,eAAEtU,GAAmBnX,EAAMyrB,aAC3B,UAAE/S,GAAc1Y,EAAMyrB,aAErBme,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAGnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAG9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7BuE,SAAU,GAGZ9I,EAAS2X,GAAkBC,eAAe5U,GAAa,KAGzDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAMyrB,YAAY/S,YAE7B,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAmCV,OAhBAx3C,oBAAU,KAER,IAAI4T,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,EAC7BuE,SAAU,GAGZ9I,EAAS2X,GAAkBC,eAAe5U,GAAa,KAEtD,IAGDjW,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,eACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,KAAA,IAAAm4C,EAAA,OACHngF,IAAAC,cAAA,gBACG+G,IAAckkB,GACblrB,IAAAC,cAAC28C,GAAY,CACX12C,OAA0B,QAApBi6E,EAAEj1D,EAAYhlB,cAAM,IAAAi6E,IAAI,EAC9BtjC,SAAU,gCACV76C,MAAO,oCACPujC,KAAM,eACNuX,WAAYv1C,GAAmBgC,mBAGnCvJ,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA3Ca4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YA8CbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,QAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,QAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,cAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,eAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,kBAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,SAC1BvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,iBAG9BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAckkB,GAAeA,EAAYhlB,OACtCglB,EAAYze,IAAKouB,IACjB3oB,QAAQC,IAAI0oB,GAEV76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,IAElDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzvB,KAAOyvB,EAAEzvB,KAAK9E,OAAS,IAE5BtG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAO,IAEhCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzvB,KAAOyvB,EAAEzvB,KAAKka,MAAMjf,KAAO,IAEhCrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACf,GAAd9L,EAAE1P,SAAgB,WAA2B,GAAd0P,EAAE1P,SAAgB,WAAa,0BAEjEnrB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B,MAAQ9L,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,KAEpE1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,aACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,SAADtQ,OAAUo9B,EAAEpjB,QAAU,CAAEkoD,cArJjD,IAuJWhgE,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,yBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,WAMzB/6C,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OA1H1B3oC,EA0HsC+lB,EAAE/lB,QAzH3D8kB,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,2CACb37B,SAAUhE,EAAMyrB,YAAY/S,UAC5BknB,iBAAkB5/B,EAAMyrB,YAAY/S,UAAY,0BAA4B,gBAC5EmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS2X,GAAkBkB,sBAAsBhX,MARhCA,OA2HWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,cAWxBhhB,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAtB1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCA8BhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,MAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,aCgBzBojC,GAA6Br2C,qBACjCxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA3QvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAsQyBsuC,CAlQhBvqC,IAELo6B,cAAhB,MACM5mB,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAcD,GACzB,cAAEuuB,GAAkBvuB,EAAMuuB,eAC1B,eAAEpX,GAAmBnX,EAAMuuB,eAC3B,UAAE7V,GAAc1Y,EAAMuuB,eAErBqb,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,SACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,GAG/BvE,EAAS6E,GAAoB8V,iBAAiB3X,GAAa,KAG7DqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAMuuB,cAAc7V,YAE/B,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAoCV,OAjBAx3C,oBAAU,KAER4Q,EAAS6E,GAAoBrC,SAE7B,IAAIQ,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAASH,GAAoB,GAG/BvE,EAAS6E,GAAoB8V,iBAAiB3X,GAAa,KAE1D,IAGDjW,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,sBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcgnB,GAAiBA,EAAc9nB,OAAS,EACrDlG,IAAAC,cAAC28C,GAAY,CACX12C,OAAQ8nB,EAAc9nB,OACtB22C,SAAU,2BACV76C,MAAO,8BACPujC,KAAM,iBACNuX,WAAYv1C,GAAmB8C,6BAGjCrK,IAAAC,cAAC28C,GAAY,CACX12C,OAAQ,EACR22C,SAAU,2BACV76C,MAAO,8BACPujC,KAAM,iBACNuX,WAAYv1C,GAAmB8C,6BAGnCrK,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SApDa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAuDbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,aACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,SACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,SACzBvG,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcgnB,GAAiBA,EAAc9nB,OAC1C8nB,EAAcvhB,IAAKouB,GAEjB76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/lB,GAAK+lB,EAAE/lB,GAAK,IAEjB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhvB,KAAO2D,KAAOqrB,EAAEhvB,MAAM2mB,OAAO,cAAgB,IAElDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE5M,MAAQze,KAAOqrB,EAAE5M,OAAOuE,OAAO,cAAgB,IAEpDxyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzvB,MAAQyvB,EAAEzvB,KAAKka,MAAQuV,EAAEzvB,KAAKka,MAAMjf,KAAO,IAEhDrG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEzvB,KAAO,IAAMyvB,EAAEzvB,KAAK0J,GAAK,IAAM+lB,EAAEzvB,KAAK9E,OAAS,IAEpDtG,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACjB,KAAZ9L,EAAEjrB,OAAgB,WAAyB,KAAZirB,EAAEjrB,OAAgB,WAAa,0BAEjE5P,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,SACzC0nD,KAAKC,aAAa,QAAS,CAC1BhrD,MAAO,WACPirD,SAAU,QACT37B,OAAOqI,EAAEhR,QAEd7pB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,aACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,kBAADtQ,OAAmBo9B,EAAE/lB,IAAM+lB,EAAEzvB,KAAK0J,IAEhDnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,uBACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAAC86C,KAAc,cAY9B5iC,EAKCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YA5B1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAoChEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,2BC7QlBqjC,GAAiCh8E,IAAuC,IAAtC,MAAEm1B,EAAK,OAAED,EAAM,MAAE95B,EAAK,OAAEgY,GAAQpT,EAE7E,MAAM4O,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,GAChCs8C,OAAO,OAAE7uC,KADkBrN,YAAKJ,EAAKK,IACfL,IACxB,UAAE0Y,GAAc1Y,EAAMwsB,0BAEtBhF,EAAY8e,aACfvkC,GAAUA,EAAMylB,UAAUA,WAO7B5kB,oBAAU,KACJoV,GACFxE,EAAS0T,GAAgBC,aAAa,CAAEhP,OAAQH,MAEjD,IAMH,OACEzX,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM6c,EACNwB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAAS3B,GAETv5B,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,OAAQ8/B,UAAW,OAAQ38B,YAAa,IAAK,kCAIlGoB,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,YACRtD,KAAK,QACLuD,MAAO,CAAEpG,gBAAiB,OAAQ+gC,SAAU,WAAYZ,UAAW,IACnEz5B,QAASA,KAhCjB+1B,MAiCQv5B,IAAAC,cAACu7B,KAAS,SAIhBx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CACHC,WAAS,EACT58B,QAAS,EACT47C,UAAU,MACV13C,eAAe,SACfpE,WAAW,SACXy3C,aAAa,UAEbh2C,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,IAAKo6B,UAAW,GAAKgK,aAAW,qBACpDjgC,IAAcigB,GAAaA,EAAU/gB,OAClC+gB,EAAUxa,IAAKouB,IACf,MAAM+qB,EAAY/qB,EAAEvf,aAAa/O,MAAM,KACjCs5C,EAAcD,EAAUA,EAAU1/C,OAAS,GAEjD,OACElG,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,wBACbhC,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC97B,MAAO,CAAEiB,OAAQ,WAAaX,QAASA,KAAM88E,OA9C7DtlF,EA8CwE6/B,EAAEvf,kBA7C5FhZ,OAAOqa,KAAK3hB,GADMA,QA+CEgF,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UACds0B,EAAE9F,UAAY8F,EAAE9F,UAAU1uB,KAAO,IAEpCrG,IAAAC,cAAC8+B,KAAS,KACP8mB,OAQR1tC,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WATxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,UAAS,qC,2BCT1CilD,GAAaznD,YAAOq3B,KAAPr3B,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C,CAACvG,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9B73C,QAAS,OACTugC,cAAe,SACf1D,UAAW,WAITglD,GAAgBx8E,YAAOH,IAAPG,CAAe,MACnCxI,MAAO,OACPuB,gBAAiB,UACjB+G,YAAa,UACbvF,aAAc,EACdE,QAAS,EACT2yC,WAAY,wBACZ,UAAW,CACTr0C,gBAAiB,WAIf2uD,GAAmB1nD,YAAOT,IAAPS,CAAmBwB,IAAA,IAAC,MAAEzH,GAAOyH,EAAA,MAAM,CAC1D,CAACzH,EAAMmsC,YAAYsM,KAAK,OAAQ,CAC9BtZ,WAAY,GACZp/B,cAAe,EACfsoC,YAAa,GACbC,eAAgB,EAChB+D,aAAc,EACdvrC,YAAa,EACb+mC,YAAa,EACbvM,WAAY,MAo0BVonD,GAAiCz2C,qBACrCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAj4BvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,UAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAs2B4ByuC,CAj0BZvqC,IAAW,IAADghF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEnC,MAAM/tE,EAAW6mB,gBACVuyB,EAAcC,GAAmB3yB,oBAAS,IAE3C,QAAE55B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACrCi8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OACzBrkB,EAAOuG,GAAYpG,oBAAS,GAC7BJ,EAASA,IAAMwG,GAAUvG,GAGzB/hB,EADWsoC,wBACOv+C,OAEjB06C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C,IAAI0iC,EAAM,EAEV,MAAOqC,EAAMC,GAAWvnD,mBAAS,IAE1B0tC,EAAcC,GAAmBtnE,IAAM25B,SAAS,OAChD4tC,EAAmBC,GAAwBxnE,IAAM25B,SAAS,KAC1DguC,EAAgBwZ,GAAqBnhF,IAAM25B,SAAS,KAEpDhd,EAAMwyB,GAAWnvC,IAAM25B,UAAS,IAEhCw7C,EAAgBiM,GAAqBznD,mBAAS,IAE/C,UAAEtN,GAAc0Z,aACnBvkC,GAAUA,EAAM6qB,YAEb,cAAE2B,GAAkB+X,aACvBvkC,GAAUA,EAAMwsB,gBAEb,QAAE1V,GAAYytB,aACjBvkC,GAAUA,EAAM8W,SAOnBjW,oBAAU,KACJwQ,GAAYQ,aACdJ,EAAS6D,GAAc2B,iBAAiB,OAExC0oE,EAAkB7oE,EAAQ7L,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,WAE5D,CAACwd,IAEJjW,oBAAU,KAMR,GAJA4Q,EAAS6E,GAAoBrC,SAE7BxC,EAAS6d,GAAgBU,0BAErBtkB,EAAO4H,GACT7B,EAAS6E,GAAoBiW,qBAAqB7gB,EAAO4H,SACpD,CACL7B,EAAS6E,GAAoBrC,SAC7B2rE,EAAkB,GAClBF,EAAQ,GACRtC,EAAM,EAEN,IAAI9hD,EAAiB,CACnB/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAOoK,OAASgjB,OAAO,gBAG3Bvf,EAAS6E,GAAoB9C,cAAc,OAAQ8nB,IAE/Cr9B,EAAM2L,KAAKwX,aAAenjB,EAAM2L,KAAKuX,aACvCma,EAAiB,CACf/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAOoK,KAAO/P,EAAM2L,KAAKwX,aAAaoxB,KAAKxkC,KAAO/P,EAAM2L,KAAKuX,YAAa,UAG9E1P,EAAS6E,GAAoB9C,cAAc,YAAa8nB,IAExDA,EAAiB,CACf/7B,KAAM,OACNqN,OAAQ,CACNhJ,MAAO3F,EAAM2L,KAAKwX,cAGtB3P,EAAS6E,GAAoB9C,cAAc,QAAS8nB,OAGvD,IAEH,MAAMghB,EAAgBC,GAAU9oC,IAC9BhC,EAAS6E,GAAoB9C,cAAc+oC,EAAM9oC,KAGnD5S,oBAAU,MACJoV,GAAoB,GAAVA,QAA6BzQ,GAAbkG,EAAO4H,IAAgC,GAAb5H,EAAO4H,KAC7DssE,EAAkB,GAClBF,EAAQ,GACRtC,EAAM,EACN3rE,EAAS6E,GAAoB9C,cAAc,uBAAwB,OAGpE,IAEH3S,oBAAU,KAC6B,GAAjC5C,EAAMuuB,cAAc3V,gBAA+BrR,GAAbkG,EAAO4H,IAC/CwyD,EAAgB7nE,EAAMuuB,cAAc1V,UAGrC,CAAC7Y,EAAMuuB,cAAc3V,YAExBhW,oBAAU,KACJglE,GACFga,GAAgCha,IAEjC,CAACA,IAEJ,MAAMga,GAAmC3zE,IACvC,GAAW,MAAPA,EAAa,CACf,IAAIixC,EAAWrmC,EAAQy3B,OACpBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE6D,GAAcoC,qBACZylC,EAAS,KAMfxP,GAAQ,IA0DV9sC,oBAAU,KAEJ4+E,EAAO,GACLxhF,EAAMuuB,cAAcI,sBAAwB3uB,EAAMuuB,cAAcI,qBAAqBloB,SACvF04E,EAAM,EACNA,EAAMn/E,EAAMuuB,cAAcI,qBAAqBxgB,QAAO,SAAU+2D,EAAarpC,GAC3E,OAAOqpC,EAAcrpC,EAAK6rC,aACzB,GACHia,EAAkBxC,KAGrB,CAACqC,IAEJ5+E,oBAAU,KACR,GAAI5C,EAAMuuB,cAAcniB,MAAQpM,EAAMuuB,cAAcE,UAAW,CAC7D,MAAMozD,EAAM9xE,KAAO/P,EAAMuuB,cAAcniB,MAAMk1D,IAAIthE,EAAMuuB,cAAcE,UAAW,QAChFzuB,EAAMuuB,cAAcC,MAAQze,KAAO8xE,GAAK9uD,OAAO,gBAEhD,CAAC/yB,EAAMuuB,cAAcE,UAAWzuB,EAAMuuB,cAAcniB,OAsCvD,SAAS01E,GAASpyD,EAAiBqyD,GAAiB,IAADC,EAAAC,EACjD,MAAMpmD,EAA0B,QAAtBmmD,EAAGhiF,EAAMuuB,qBAAa,IAAAyzD,GAAsB,QAAtBC,EAAnBD,EAAqBrzD,4BAAoB,IAAAszD,OAAtB,EAAnBA,EAA2CnkD,KAAK2hB,GAAKA,EAAE/vB,iBAAmBA,GACvF,OAAImM,GACEA,EAAKzR,MAEAyR,EAAKzR,MAKT,KAGT,SAASoc,KACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,kBAKV,SAASwiD,KACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,wBAKV,SAASimC,KACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,GAAQ,MAEXziD,IAAAC,cAACgmC,GAAU,MAGpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,6CACA,4CAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,oBACHmpC,SAAWhpC,IA5FlBxV,EAAMuuB,cAAcE,UAKpBinD,EAKL7oB,GAAgB,GAJdz/C,IAAMlS,MAAM,oDALZkS,IAAMlS,MAAM,sCA6FFqF,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,uBACVtkC,MAAOhC,IAAAC,cAACimC,GAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA/S3B44C,KAkTkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,SAC5B30B,GAAVyQ,EACCzX,IAAAC,cAACihE,GAAe,CAACzpD,OAAQA,EAAQmlD,aAAa,EAAM53C,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,YAEzGjlB,IAAAC,cAACihE,GAAe,CAACzpD,OAAQvK,EAAO4H,GAAI8nD,aAAa,EAAM53C,SAAUvlB,EAAM2L,KAAK4Z,SAAUC,UAAWxlB,EAAM2L,KAAK6Z,YAE9GjlB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAGjkC,MAAO,CAAExE,QAAS,OAAQiE,eAAgB,eAAgBpE,WAAY,WAC3FyB,IAAAC,cAAA,WACED,IAAAC,cAAA,cAASiN,EAAO4H,GAAK,2BAA0B,6BAEjD9U,IAAAC,cAAA,WACED,IAAAC,cAACsgF,GAAa,CAAC/8E,QAASA,KApTtD+1B,MAoT+E,6BACnBv5B,IAAAC,cAACq3C,KAAc,WAMrDt3C,IAAAC,cAACumC,KAAS,MACN/uB,GAAoB,GAAVA,GAA6B,GAAbvK,EAAO4H,SAAwB9N,GAAbkG,EAAO4H,IAA+C,MAA1BrV,EAAM2L,KAAK8a,YA2DpE,GAAbhZ,EAAO4H,IACT9U,IAAAC,cAAC6+B,KAAQ,CACP19B,IAAKirB,EAAUvX,IAEf9U,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG1mC,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAAS,+CA9DnE9G,EAAM2L,KAAK8a,YAAYzZ,IAAKouB,IAAO,IAAD8mD,EAChC,OACE3hF,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,WAC/CsE,IAAKy5B,EAAE/lB,IAEP9U,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG1mC,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACtDvG,IAAAC,cAAA,cAAS46B,EAAEv0B,UAGftG,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,cACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,mBACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,eACjCD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,mBACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,sBACjCD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,uBAGrCD,IAAAC,cAACumC,KAAS,KACW,QADXm7C,EACP9mD,EAAEtO,wBAAgB,IAAAo1D,OAAA,EAAlBA,EAAoBl1E,IAAI,CAAC4oE,EAAI32C,IAC5B1+B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKs9B,GACnB1+B,IAAAC,cAAC8+B,KAAS,KAAEs2C,EAAGvoD,QACf9sB,IAAAC,cAAC8+B,KAAS,KAAEs2C,EAAG3yD,YACf1iB,IAAAC,cAAC8+B,KAAS,KAAEs2C,EAAGlwD,gBAAkB,KAAOkwD,EAAGlwD,gBAAgBsd,eAAe,QAAS,CAAEC,sBAAuB,IAAO,KACnH1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAS8uE,EAAGroD,WAAW,IAAEqoD,EAAGv/C,QAAQ7W,WACrDjf,IAAAC,cAAC8+B,KAAS,KAAEs2C,EAAGlwD,gBAAkB,MAAQkwD,EAAGlwD,gBAAkBkwD,EAAGroD,YAAYyV,eAAe,QAAS,CAAEC,sBAAuB,IAAO,KACrI1iC,IAAAC,cAAC8+B,KAAS,KAAEs2C,EAAGjwD,sBAAwB,KAAOiwD,EAAGjwD,sBAAsBqd,eAAe,QAAS,CAAEC,sBAAuB,IAAO,KAC/H1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,YACHwpC,aAAa,MACb5+C,UAAU,eACVqB,KAAK,SACLk+E,SAAU/xE,EAAO4H,GACjB5R,MAAO,CAAE/D,MAAO,KAChBiG,MAAO3F,EAAMwvB,kBAAkBpF,MAAQpqB,EAAMwvB,kBAAkBpF,MAAQ03D,GAASlM,EAAGvgE,KAAO,GAC1FmwD,eAAgBjlE,IAAAC,cAACqD,IAAU,CAACu6B,SAAS,OAAO36B,MAAO,CAAExH,SAAU,KAAM,UACrE2J,SAAW4P,GAtP/B2sE,EAAC3sE,EAAO4lB,KAAO,IAADgnD,EACtC,MAAMzzD,EAA0C,QAAtByzD,EAAGpiF,EAAMuuB,qBAAa,IAAA6zD,OAAA,EAAnBA,EAAqBzzD,qBAElD,GAAwB,OAApBA,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBloB,OAAQ,CAEhC,GADckoB,EAAqB0zD,UAAUC,GAAKA,EAAE5yD,iBAAmB0L,EAAE/lB,KAC5D,EAAG,CACd,MAAMktE,EAAe5zD,EAAqB3hB,IAAIs1E,GAC5CA,EAAE5yD,iBAAmB0L,EAAE/lB,GAAExX,wBAAA,GAAQykF,GAAC,IAAEl4D,MAAOo4D,WAAWhtE,EAAM7G,OAAOhJ,OAAQ+hE,WAAY8a,WAAWhtE,EAAM7G,OAAOhJ,SAAW28E,GAE5H9uE,EAAS6E,GAAoB9C,cAAc,uBAAwBgtE,IACnEd,EAAQD,EAAO,OACV,CACL,MAAM5wE,EAAU,CACdyE,GAAI,EACJ0/D,gBAAiB/8D,EACjB0X,gBAAiB0L,EAAE/lB,GACnB+U,MAAOo4D,WAAWhtE,EAAM7G,OAAOhJ,OAC/B+hE,WAAY8a,WAAWhtE,EAAM7G,OAAOhJ,QAEtCgpB,EAAqBrgB,KAAKsC,GAC1B4C,EAAS6E,GAAoB9C,cAAc,uBAAwBoZ,IACnE8yD,EAAQD,EAAO,QAEZ,CACL,MAAM5wE,EAAU,CACdyE,GAAI,EACJ0/D,gBAAiB/8D,EACjB0X,gBAAiB0L,EAAE/lB,GACnB+U,MAAOo4D,WAAWhtE,EAAM7G,OAAOhJ,OAC/B+hE,WAAY8a,WAAWhtE,EAAM7G,OAAOhJ,QAGtCgpB,EAAqBrgB,KAAKsC,GAC1B4C,EAAS6E,GAAoB9C,cAAc,uBAAwBoZ,IACnE8yD,EAAQD,EAAO,KAoNgDW,CAAkB3sE,EAAOogE,GAC9CvyB,WAAY,CACVwU,IAAK,EACLmK,KAAM,WAIZzhE,IAAAC,cAAC8+B,KAAS,CAAC77B,MAAO,CAAEL,SAAU,KAAO0D,MAAM,SAAQ,UAAU9G,EAAMwvB,kBAAkBpF,MAAQpqB,EAAMwvB,kBAAkBpF,MAAQ03D,GAASlM,EAAGvgE,GAAIugE,EAAGroD,YAAcu0D,GAASlM,EAAGvgE,GAAIugE,EAAGroD,YAAc,GAAGyV,eAAe,QAAS,CAAEC,sBAAuB,YAkBrP,GAAbx1B,EAAO4H,SAAwB9N,GAAbkG,EAAO4H,KAAsC,QAAvB2rE,EAAIhhF,EAAMuuB,qBAAa,IAAAyyD,GAAM,QAANC,EAAnBD,EAAqBr1E,YAAI,IAAAs1E,OAAN,EAAnBA,EAA2Bx6D,aACnD,QAD8Dy6D,EACjFlhF,EAAMuuB,qBAAa,IAAA2yD,GAAM,QAANC,EAAnBD,EAAqBv1E,YAAI,IAAAw1E,OAAN,EAAnBA,EAA2B16D,YAAYzZ,IAAKouB,GAExC76B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAAC6+B,KAAQ,CAACn/B,KAAK,QAAQuD,MAAO,CAAEpG,gBAAiB,WAC/CsE,IAAKy5B,EAAE/lB,IAEP9U,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG1mC,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UACtDvG,IAAAC,cAAA,cAAS46B,EAAEv0B,UAGftG,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,cACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,mBACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,eACjCD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,qBACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,sBACjCD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,sBAEnCD,IAAAC,cAACumC,KAAS,KACP3L,EAAEtO,iBAAmBsO,EAAEtO,iBAAiB9f,IAAKy1E,IAAQ,IAADC,EAAAC,EAAAC,EACnD,OACEriF,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,KAAEmjD,EAAGp1D,OAASo1D,EAAGp1D,OAAS,IACpC9sB,IAAAC,cAAC8+B,KAAS,KAAEmjD,EAAGx/D,YACf1iB,IAAAC,cAAC8+B,KAAS,KAAC,MAAsB,QAAnBojD,EAACD,EAAG/8D,uBAAe,IAAAg9D,OAAA,EAAlBA,EAAoB1/C,eAAe,QAAS,CAAEC,sBAAuB,KACpF1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAS27E,EAAGl1D,WAAW,IAAY,QAAXo1D,EAACF,EAAGpsD,eAAO,IAAAssD,OAAA,EAAVA,EAAYnjE,WACtDjf,IAAAC,cAAC8+B,KAAS,KAAC,MAA4B,QAAzBsjD,EAACH,EAAG98D,6BAAqB,IAAAi9D,OAAA,EAAxBA,EAA0B5/C,eAAe,QAAS,CAAEC,sBAAuB,KAC1F1iC,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,MArTrE,SAAwB4oB,GAAkB,IAADmzD,EACvC,MAAMl0D,EAA0C,QAAtBk0D,EAAG7iF,EAAMuuB,qBAAa,IAAAs0D,OAAA,EAAnBA,EAAqBl0D,qBAClD,GAAuB,GAAnBe,IAA4C,OAApBf,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBloB,QAAQ,CACxD,MAAM2jB,EAAQuE,EAAqBmP,KAAK1C,GAAKA,EAAE1L,iBAAmBA,GAClE,OAAOtF,EAAQA,EAAMA,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,IAiTd6/C,CAAeL,EAAGptE,KAC/C9U,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,MA9TrE,SAA6B4oB,GAAkB,IAADqzD,EAC5C,MAAMp0D,EAA0C,QAAtBo0D,EAAG/iF,EAAMuuB,qBAAa,IAAAw0D,OAAA,EAAnBA,EAAqBp0D,qBAClD,GAAuB,GAAnBe,IAA4C,OAApBf,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBloB,QAAQ,CACxD,MAAMo1B,EAAOlN,EAAqBmP,KAAK1C,GAAKA,EAAE1L,iBAAmBA,GACjE,OAAOmM,EAAQA,EAAKzR,MAAO4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,IA0Td+/C,CAAoBP,EAAGptE,QAKxD9U,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG1mC,UAAU,KAAKkmC,MAAM,MAAMpgC,MAAM,UAAS,kDAS3E,WAQhBvG,IAAAC,cAACuG,KAAO,OACPiR,GAAoB,GAAVA,QAA6BzQ,GAAbkG,EAAO4H,IAAgC,GAAb5H,EAAO4H,GA6G3C,GAAb5H,EAAO4H,SAAwB9N,GAAbkG,EAAO4H,GACzB9U,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG5gC,MAAM,UAASvG,IAAAC,cAAA,cAAQ,qCAIpDD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL+T,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP72B,MAAO3F,EAAMuuB,cAAcniB,KAAO2D,KAAO/P,EAAMuuB,cAAcniB,MAAM2mB,OAAO,cAAgB,GAC1FvvB,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEVkjD,UAAQ,KAGZj/E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,YACHknB,MAAM,aACNC,OAAO,SACP72B,MAAO3F,EAAMuuB,cAAcE,UAC3BjrB,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEVkjD,UAAQ,KAGZj/E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,UACNC,OAAO,SACP72B,MAAkC,QAA7By7E,EAAEphF,EAAMuuB,cAAc1V,eAAO,IAAAuoE,GAAa,QAAbC,EAA3BD,EAA6BpnE,mBAAW,IAAAqnE,OAAb,EAA3BA,EAA0Cl6E,cACjD3D,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEVkjD,UAAQ,KAGZj/E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,oBACNC,OAAO,SACPolC,WAAY,CACV4D,eAAgBjlE,IAAAC,cAACqD,IAAU,CAACu6B,SAAS,QAAO,WAE9Cz4B,MAAO3F,EAAMuuB,cAAcnE,MAAQpqB,EAAMuuB,cAAcnE,MAAM4Y,eAAe,QAAS,CAAEC,sBAAuB,IAAO,EACrHz/B,QAAQ,WACRg8E,UAAQ,KAGZj/E,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,cACHknB,MAAM,oBACNC,OAAO,SACP72B,OAA0B,QAAnB27E,EAAAthF,EAAMuuB,qBAAa,IAAA+yD,GAAa,QAAbC,EAAnBD,EAAqB3oE,mBAAW,IAAA4oE,OAAb,EAAnBA,EAAkCp6E,gBAAiB,GAC1D3D,QAAQ,gBAKd,KArMJjD,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAAC2+B,KAAK,CAACgV,GAAI,CAAE/wC,SAAU,KAAOokC,aAAW,gBACvCjnC,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACoI,QAAS,EAAG5gC,MAAM,UAASvG,IAAAC,cAAA,cAAQ,yBAIpDD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,OACL0C,UAAQ,EACRqR,GAAG,OACHknB,MAAM,qBACNC,OAAO,SACP72B,MAAO3F,EAAMuuB,cAAcniB,KAAO2D,KAAO/P,EAAMuuB,cAAcniB,MAAM2mB,OAAO,cAAgB,GAC1FvvB,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,MAId/7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTj6B,KAAK,SACL+T,GAAG,YACHknB,MAAM,mCACN32B,SAAUy4C,EAAa,aACvB7hB,OAAO,SACP72B,MAAO3F,EAAMuuB,cAAcE,UAC3BjrB,QAAQ,WACRm7C,WAAY,CAAC,YACbtiB,gBAAiB,CACfC,QAAQ,GAEV+mB,WAAY,CACVwU,IAAK,GAEPjZ,cAAe,CAAC,6BAIlBxrC,GAAYW,aACZxT,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOiiE,EACPhiE,SAAUA,CAAC4P,EAAOs7B,KAChB+2B,EAAgB/2B,IAElBrtC,MAAO,CAAE+5B,UAAW,IACpBwS,WAAY83B,EACZ/2B,cAAeA,CAACv7B,EAAOw7B,KACrB+2B,EAAqB/2B,IAEvB37B,GAAG,2BACH1D,QAASu2D,EACTzjB,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5DmnB,OAAO,SACPh5B,QAAQ,WACR64B,gBAAiB,CACfC,QAAQ,GAEV2U,aAAc22B,EACd12B,eAAgBC,GAAUA,EAAOvqC,MAAQ,GACzCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,2BAA2BhB,WAAS,EAACkoB,UAAQ,KACnGloB,WAAS,KAIfh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,oBACNC,OAAO,SACPolC,WAAY,CACV4D,eAAgBjlE,IAAAC,cAACqD,IAAU,CAACu6B,SAAS,QAAO,WAE9Cz4B,MAAO+vE,EAAiBA,EAAe1yC,eAAe,QAAS,CAAEC,sBAAuB,IAAY,EACpGz/B,QAAQ,WACRQ,UAAQ,KAGZzD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTikD,UAAQ,EACRnjD,gBAAiB,CACfC,QAAQ,GAEVjnB,GAAG,cACHknB,MAAM,oBACN32B,SAAUy4C,EAAa,eACvB7hB,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB7I,MAAO3F,EAAMuuB,cAAc5V,aAAe,GAC1CnV,QAAQ,gBAgGlBjD,IAAAC,cAACwG,KAAW,UACKO,GAAbkG,EAAO4H,IAAgC,GAAb5H,EAAO4H,GACjC9U,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,GAAIiqC,YAAa,IAAK,6BAIvD3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,GAAIiqC,YAAa,IAAK,+IAKzD3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,aAAsBwD,GAAbkG,EAAO4H,GAAkB,IAAMjO,GAAQkH,KAAK,6BAA+B,IAAMlH,GAAQkH,KAAK,qBACxG,YAGD/N,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAMuuB,cAAc7V,WAAa6V,EAAc7iB,cAAgB9D,GACzE61B,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMuuB,cAAc7V,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEjEuN,EAAO4H,GAAMrV,EAAMuuB,cAAc7V,UAAY,0BAA4B,YAAgB1Y,EAAMuuB,cAAc7V,UAAY,uBAAyB,YAKzJnY,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,IAAMqD,GAAQyd,UACxB,mCAWb+nC,EACErsD,IAAAC,cAAC+4B,KAAM,CACLrc,KAAM0vC,EACNrxB,WAAS,EACT93B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,GAC7BhB,SAAS,KACTC,QAASA,IAAMoxB,GAAgB,IAE/BtsD,IAAAC,cAACk7B,KAAW,KACVn7B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQD,WAAY,SAAU,0CAG7DuE,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,OACRC,MAAO,CAAE26B,SAAU,WAAY6C,IAAK,EAAGE,MAAO,EAAGrlC,MAAO,OAAQsH,SAAU,SAC1EW,QAASA,IAAM8oD,GAAgB,IAC/BtsD,IAAAC,cAACu7B,KAAS,QAGdx7B,IAAAC,cAACw7B,KAAa,CAACv4B,MAAO,CAAE1E,QAAS,EAAGy9B,OAAQ,IAC1Cj8B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAE+5B,UAAW,EAAG0I,YAAa,EAAGwE,aAAc,EAAG/D,cAAe,IAC3EpmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAAC58B,QAAQ,OAAOugC,cAAc,SAASt8B,eAAe,UAC9D3C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAO,yFAGhDsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,8BAGxDD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,UAAgBuP,KAAO/P,EAAMuuB,cAAcniB,MAAM2mB,OAAO,iBAGhHxyB,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,iBAAuBk1E,EAAiBA,EAAe1yC,eAAe,QAAS,CAAEC,sBAAuB,IAAO,KAGvK1iC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAEyiC,YAAa,GAAIwE,aAAc,KAClEnqC,IAAAC,cAACurD,GAAU,CAAClwB,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIp1B,MAAM,QACrDvG,IAAAC,cAACwrD,GAAgB,CAACvoD,MAAO,CAAExH,SAAU,KAAOsE,IAAAC,cAAA,cAAQ,sBAA4BuP,KAAO/P,EAAMuuB,cAAcC,OAAOuE,OAAO,iBAI7HxyB,IAAAC,cAAC2D,IAAM,CACLJ,QAAUyR,GA5iBNA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXjJ,KAAM2D,KAAO/P,EAAMuuB,cAAcniB,MAAM25C,cACvCv3B,MAAOxuB,EAAMuuB,cAAcC,MAC3BC,UAAWzuB,EAAMuuB,cAAcE,UAC/BrE,MAAOsrD,EACP/8D,YAAa3Y,EAAMuuB,cAAc5V,YACjCgW,qBAAsB3uB,EAAMuuB,cAAcI,qBAC1C3W,OAAQA,EACRY,UAAWxF,GAAYW,aAAc/T,EAAMumC,eAAe9yB,KAAKiH,iBAAmB1a,EAAMumC,eAAe9yB,KAAKiH,iBAAiB,GAAG9B,UAA8BgvD,EAAavyD,IAGzK5H,EAAO4H,GACT7B,EAAS6E,GAAoBuW,sBAAsBnhB,EAAO4H,GAAIzE,GAAS,IAEvE4C,EAAS6E,GAAoB0W,oBAAoBne,KA2hBf8tC,GACpBl7C,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,OAAQvB,MAAO,OAAQ0hC,UAAW,IAC5Dx5B,SAAUhE,EAAMuuB,cAAc7V,WAAa6V,EAAc7iB,cAAgB9D,GACzE61B,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMuuB,cAAc7V,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAEjEuN,EAAO4H,GAAMrV,EAAMuuB,cAAc7V,UAAY,0BAA4B,YAAgB1Y,EAAMuuB,cAAc7V,UAAY,uBAAyB,uBAM3J,KAGHqhB,EACCx5B,IAAAC,cAACogF,GAA8B,CAAC9mD,OAAQA,EAAQC,MAAOA,EAAO/5B,MAAOA,EAAOgY,OAAQA,IAEpF,KAIDykC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBmB,qBAG3B,UCn1BJg6E,GAAmB34C,qBACvBxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA7EvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA2EGurC,CAvE1BvqC,IAEX,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GAEd,UAAE0xB,GAAc1xB,GAEfy8C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KACR4Q,EAAS6d,GAAgBM,WACxB,IAEH,MAAM0lC,EAAqBC,kBAAQ,KAAO,IAAD4rB,EACvC,MAAO,CAAE3rB,OAAiB,OAAT7lC,QAAS,IAATA,GAAgB,QAAPwxD,EAATxxD,EAAWtH,aAAK,IAAA84D,OAAP,EAATA,EAAkB17E,QAAQ,MAAO,yBACjD,CAACkqB,EAAUtH,QAEd,OACE7pB,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,kBACnChC,IAAAC,cAAA,WACED,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACzE4yB,QAAanqB,GAAamqB,GAA0B,MAAbA,GACtCnxB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAAK,kCAI1CjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAxBnB44C,KA2BUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKg3D,wBAAyBH,KAG7B5a,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBgD,WAG3B,UCWJq4E,GAAuB74C,qBAC3BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA9EvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA4EGurC,CAxEtBvqC,IAEf,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GAEd,UAAE0xB,GAAc1xB,GAEfy8C,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAM5C75C,oBAAU,KACR4Q,EAAS6d,GAAgBW,eACxB,IAEH,MAAMqlC,EAAqBC,kBAAQ,KAAO,IAAD4rB,EACvC,MAAO,CAAE3rB,OAAiB,OAAT7lC,QAAS,IAATA,GAAgB,QAAPwxD,EAATxxD,EAAWtH,aAAK,IAAA84D,OAAP,EAATA,EAAkB17E,QAAQ,MAAO,yBACjD,CAACkqB,EAAUtH,QAEd,OACE7pB,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,qBACnChC,IAAAC,cAAA,WACED,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACzE4yB,QAAanqB,GAAamqB,GAA0B,MAAbA,GACtCnxB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAAK,qBAI1CjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAxBnB44C,KA2BUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKg3D,wBAAyBH,KAI7B5a,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBiD,eAG3B,UCUJq4E,GAA0B94C,qBAC9BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA9EvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA4EGurC,CAxEnBvqC,IAElB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GAEd,UAAE0xB,GAAc1xB,EAEtB4C,oBAAU,KACR4Q,EAAS6d,GAAgBQ,kBACxB,IAEH,MAAO4qB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAOtC4a,EAAqBC,kBAAQ,KAAO,IAAD4rB,EACvC,MAAO,CAAE3rB,OAAiB,OAAT7lC,QAAS,IAATA,GAAgB,QAAPwxD,EAATxxD,EAAWtH,aAAK,IAAA84D,OAAP,EAATA,EAAkB17E,QAAQ,MAAO,yBACjD,CAACkqB,EAAUtH,QAEd,OACE7pB,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,kBACnChC,IAAAC,cAAA,WACED,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACzE4yB,QAAanqB,GAAamqB,GAA0B,MAAbA,GACtCnxB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAAK,gBAI1CjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KArBnB44C,KAwBUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKg3D,wBAAyBH,KAG7B5a,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBmD,WAG3B,UC6HJo4E,GAAyB/4C,qBAC7BxB,aANuB/mC,IAChB,CACL2vB,UAAW3vB,EAAM2vB,YAIM,KAAM,KAA/BoX,CAAqCyB,aAnLvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAiLGurC,CA7KpBvqC,IAEjB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,UAAE0Y,GAAc1Y,EAAM0xB,WACtB,UAAEA,GAAc1xB,EAAM0xB,WACtB,eAAEva,GAAmBnX,EAAM0xB,WAC1BkY,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,cAClB0gB,GAAa1gB,mBAAS,OAE7Bt3B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,GAGbpnC,EAAS6d,GAAgBG,aAAahb,GAAa,KAIrDqkC,CAAUjR,EAAMyQ,EAAOI,IAEtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,IAEtCh4C,oBAAU,OAEP,CAACuU,IAEJ,MAAM2kC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAOV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,iBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcmqB,GAAaA,EAAUjrB,OAAS,GAC7ClG,IAAAC,cAAC28C,GACA,CACC12C,OAAQirB,EAAUjrB,OAClB22C,SAAU,+BACV76C,MAAO,yBACPujC,KAAM,aACNuX,WAAYv1C,GAAmBuC,qBAGnC9J,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACK,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,IAC1C37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SA5Ba4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,QA4BP03C,WAAYv1C,GAAmBuC,uBAIrC9J,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,oBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,UACnBD,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQvG,IAAAC,cAAA,cAAQ,kBAGrCD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmqB,GAAaA,EAAUjrB,OAClCirB,EAAU1kB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE5b,WAELjf,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACnB,KAAV9L,EAAEnd,KAAcmd,EAAEhR,MAAQ,oBAE7B7pB,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,cAADtQ,OAAeo9B,EAAE/lB,KAE/BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,UACbhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,cAaxBrlC,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WATxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAgBhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACNiS,aAAcC,EACdH,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D6kC,YAAa3B,EACb4B,oBAAqB2B,KAI3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,sEC0JzB+lC,GAA6Bh5C,qBACjCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA/TvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAoS4ByuC,CAhShBvqC,IAErB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEoxB,EAAS,UAAEzxB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAClDkjF,EAAS3hD,iBAAO,OACd0a,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OACzBh4C,EAASo9E,GAActpD,mBAAS,KAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAMzCt3B,oBAAU,KAER4Q,EAAS6d,GAAgBrb,SAErBvI,EAAO4H,GACT7B,EAAS6d,GAAgBY,iBAAiBxkB,EAAO4H,KAEjD7B,EAAS6d,GAAgBrb,UAE1B,IAEHpT,oBAAU,KACR4Q,EAAS6d,GAAgBc,kBAAkB,QAAS/rB,KACnD,CAACA,IAEJ,MAAMi4C,EAAgBC,GAAU9oC,IAC9BhC,EAAS6d,GAAgB9b,cAAc+oC,EAAM9oC,KAG/C5S,oBAAU,OAEP,CAAC86C,EAAO19C,EAAM0xB,UAAUhZ,YAiC3B,SAASsqC,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,wBAIV,SAASimC,IACP,GAAIh5B,EAAO4H,GACT,OAAO9U,IAAAC,cAACwiD,EAAQ,MAGpB,OACEziD,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,oDACA,mDAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAGTuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,gBACHmpC,SAAWhpC,GAlEHA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXmK,UAAWxf,EAAM0xB,UAAUlS,UAC3BrB,MAAOne,EAAM0xB,UAAUvT,MACvBiM,MAAQpqB,EAAM0xB,UAAUtH,MAAOy7B,WAC/B5nC,KAAMje,EAAM0xB,UAAUzT,MAGpBxQ,EAAO4H,GACT7B,EAAS6d,GAAgBe,kBAAkB3kB,EAAO4H,GAAIzE,GAAS,IAE/D4C,EAAS6d,GAAgBgB,gBAAgBzhB,KAqDV8tC,IAErBn+C,IAAAC,cAAComC,KAAU,CACTC,UAAU,4BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,kBACNF,gBAAiB,CACfC,QAAQ,GAEVE,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAM0xB,UAAUlS,UACvBhc,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAChCl8B,EAAM0xB,UAAUrc,GAAK,EACrB9U,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,QACNC,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVt4B,UAAQ,EACR4B,SAAUy4C,EAAa,SACvB14C,MAAO3F,EAAM0xB,UAAUvT,MACvB3a,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,2BAGlBr+C,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHgnB,gBAAiB,CACfC,QAAQ,GAEVC,MAAM,QACNC,OAAO,SACP52B,SAAUy4C,EAAa,SACvB14C,MAAO3F,EAAM0xB,UAAUvT,MACvB3a,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAKtBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnBuiB,WAAY,CAAC,YACbpiB,MAAM,OACNyiB,QAAQ,OACR3iB,gBAAiB,CACfC,QAAQ,GAEVsiB,cAAe,CAAC,yBAChBj5C,MAAO3F,EAAM0xB,UAAUzT,KACvBrY,SAAUy4C,EAAa,QACvBzxC,KAAK,OACL2uB,WAAS,EACT8nB,WAAY,CACVz2C,KAAM,OACNyI,GAAI,QAENjW,MAAOmB,IAAAC,cAACu6C,IAAK,CAAC1lC,GAAG,SACjBmnB,OAAO,SACPh5B,QAAQ,WACR6R,GAAG,QAEH9U,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,KAAK,QACtBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,KAAK,eACtBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,KAAK,cAAkB,IACxCpF,IAAAC,cAACy+C,KAAQ,CAACt5C,MAAO,KAAK,WAG1BpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACV,MAAzBl8B,EAAM0xB,UAAUzT,KAChB1d,IAAAC,cAACijF,KAAW,CACVphD,IAAKkhD,EACL59E,MAAO3F,EAAM0xB,UAAUtH,MACvBtZ,OA/LT,CACb4yE,UAAU,GAgMYC,SAAU,EACVC,OAAQC,GAAcL,EAAWK,KAEP,MAAzB7jF,EAAM0xB,UAAUzT,MAAyC,MAAzBje,EAAM0xB,UAAUzT,KACjD1d,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHgnB,gBAAiB,CACfC,QAAQ,GAEVC,MAAM,QACNC,OAAO,SACP52B,SAAUy4C,EAAa,SACvB14C,MAAO3F,EAAM0xB,UAAUtH,MACvB5mB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBt9C,KAAgC,MAAzBtB,EAAM0xB,UAAUzT,KAAe,SAAW,SAGnD1d,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,QACHknB,MAAM,QACN52B,QAAO3F,EAAM0xB,UAAUtH,OAAQnZ,KAAK4C,MAAM7T,EAAM0xB,UAAUtH,OAC1DxkB,SAAUy4C,EAAa,SACvB7hB,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,SAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,UAEND,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAM,OACvBpF,IAAAC,cAACy+C,KAAQ,CAACt5C,OAAO,GAAO,cAMpCpF,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAAC2D,IAAM,CACLX,QAAQ,WACRC,MAAO,CAAE3H,MAAO,OAAQsI,YAAa,QACrCL,QAASA,IAAMqD,GAAQkH,KAAK,gBAC7B,YAGD/N,IAAAC,cAAC2D,IAAM,CACL7C,KAAK,SACLkC,QAAQ,YACRC,MAAO,CAAEpG,gBAAiB,QAC1B2G,SAAUhE,EAAM0xB,UAAUhZ,UAC1B+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAM0xB,UAAUhZ,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DuN,EAAO4H,GAAMrV,EAAM0xB,UAAUhZ,UAAY,8BAA6B,YAAgB1Y,EAAM0xB,UAAUhZ,UAAY,2BAA0B,qBC5O3JorE,GAAsBx5C,qBAC1BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aA7EvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA2EGurC,CAvEvBvqC,IAEd,MAAMwT,EAAW6mB,gBACX,QAAE/5B,GAAYN,GAEd,UAAE0xB,GAAc1xB,EAEtB4C,oBAAU,KACR4Q,EAAS6d,GAAgBO,cACxB,IAEH,MAAO6qB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,GAMtC4a,EAAqBC,kBAAQ,KAAO,IAAD4rB,EACvC,MAAO,CAAE3rB,OAAiB,OAAT7lC,QAAS,IAATA,GAAgB,QAAPwxD,EAATxxD,EAAWtH,aAAK,IAAA84D,OAAP,EAATA,EAAkB17E,QAAQ,MAAO,yBACjD,CAACkqB,EAAUtH,QAEd,OACE7pB,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,kBACnChC,IAAAC,cAAA,WACED,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WACzE4yB,QAAanqB,GAAamqB,GAA0B,MAAbA,GACtCnxB,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAChCkuB,EAAUlS,WAGfjf,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KApBnB44C,KAuBUz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKg3D,wBAAyBH,KAG7B5a,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBkD,mBAG3B,UCPJ+4E,GAAmCz5C,qBACvCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAhEvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA8DGurC,CA1DVvqC,IAE3B,MAAM,QAAEM,GAAYN,EAEpB,OACEO,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,8BACnChC,IAAAC,cAAA,WACED,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,UAC/CvG,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKsD,MAAM,SAASrD,MAAO,CAAEkjC,cAAe,KAAM,gCAG1EpmC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,wDACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,6IAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,qEACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,oIAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,+CACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,kKAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,+DACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,8DAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,oDACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,iPAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,qBACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,wOAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,gCACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,8HAE9BjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAAK,kFACzBjD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,SAAQ,yH,8CCnCxC,MAqOMwgF,GAA2B15C,qBAC/BxB,aAJuB/mC,GAChBA,EAGkB,KAAM,KAA/B+mC,CAAqCyB,aAtOvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,GACvBw9B,OAAQ,OACR/8B,OAAQ,SAEVmjC,KAAM,CACJ3jC,QAAS,OACTiE,eAAgB,SAChBnF,aAAc,kBACd4oC,cAAe,OACfvoC,aAAc,QAEhB6lF,UAAW,CACThlF,QAAS,OACTu4C,KAAM,EACNt0C,eAAgB,SAChBpE,WAAY,SACZW,OAAQ,QAEVykF,SAAU,CACRjlF,QAAS,OACTugC,cAAe,SACft8B,eAAgB,SAChBpE,WAAY,gBA8MuByrC,CA1MlBvqC,IAAW,IAAD+8D,EAAAonB,EAE7B,MAAM3wE,EAAW6mB,gBAEX,QAAE/5B,GAAYN,EAEdokF,EAAaxiD,iBAAO,MAEpBqgB,EAAU3b,aAAavkC,GAAUA,EAAMmU,OAAOA,QAC9CmuE,EAAS/9C,aAAavkC,GAAUA,EAAM8jB,MAAMA,QAE3C8rC,EAAQ2yB,GAAapqD,mBAAS,CAAEjlB,SAAU,GAAI8C,QAAS,MACvDymD,EAAiBC,GAAsBvkC,oBAAS,GAEvDt3B,oBAAU,KACR4Q,EAAS8J,GAAaC,oBACrB,IAEH3a,oBAAU,KACJ+uD,EAAO18C,UACTzB,EAAS2c,GAAYI,qBAAqB,YAADvyB,OAAa2zD,EAAO18C,aAE9D,CAAC08C,EAAO18C,WAEXrS,oBAAU,KACJ+uD,EAAO55C,SACTvE,EAAS6O,GAAWQ,oBAAoB,YAAD7kB,OAAa2zD,EAAO55C,YAE5D,CAAC45C,EAAO55C,UAEX,MAAMwsE,EAAqBA,KAAO,IAAD1nB,EAC/BrpD,EAAS0T,GAAgBE,mBAAmB,CAAEjP,OAAkB,QAAZ0kD,EAAE78D,EAAM2L,YAAI,IAAAkxD,OAAA,EAAVA,EAAYxnD,MAClEopD,GAAmB,IA4ErB,OACEl+D,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,oBAClCi8D,GAAmBj+D,IAAAC,cAACm9D,GAAa,CAAC74D,OAAQ9E,EAAMwnB,UAAUA,UAAWo2C,aAAcY,EAAiBhuB,YAAaA,IAAMiuB,GAAmB,KAE3Il+D,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACgf,UAAU,OACxBr6C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAEhE,OAAQ,QAAS2+B,SAAU,aAC1E79B,IAAAC,cAACgkF,GAAS,CAAC5tE,MAAO+6C,EAAO55C,QAAe,OAAL/X,QAAK,IAALA,GAAW,QAAN+8D,EAAL/8D,EAAO2L,YAAI,IAAAoxD,OAAN,EAALA,EAAapxD,KAAO,GAAI22B,WAAYtiC,EAAM2L,KAAK0J,KAAwB,QAAtB8uE,EAAInkF,EAAM2L,KAAKA,KAAK,UAAE,IAAAw4E,OAAA,EAAlBA,EAAoB9uE,IAAIslB,OAAQg3B,EAAO55C,QAAU,CAAE6iB,IAAK56B,EAAM2L,KAAK4Z,SAAUsV,IAAK76B,EAAM2L,KAAK6Z,WAAc,MAErMjlB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIn9B,QAAS,EAAGE,QAAQ,OAAOwlF,iBAAiB,WAAWhhF,MAAO,CAAEhE,OAAQ,QAASi3C,UAAW,UAClIn2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAAC6oD,QAAS,GAClBnkF,IAAAC,cAAA,OAAKP,UAAWK,EAAQsiC,MACtBriC,IAAAC,cAAA,OAAKmG,IAAKi8B,KAAMljC,MAAO,OAEzBa,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKsD,MAAM,UAAS,iCAChC,OAAPm7C,QAAO,IAAPA,OAAO,EAAPA,EAASx7C,QAAS,GACjBlG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK+hD,EACL/uE,GAAG,UACHmpC,SAAWhpC,GAAU/C,QAAQC,IAAI8C,IAEjCjV,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACgf,UAAU,MAAM57C,QAAS,GACvCuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,WACHknB,MAAM,SACN52B,MAAOgsD,EAAO18C,SACdrP,SAAW4P,GAAU8uE,EAASzmF,wBAAC,GAAK8zD,GAAM,IAAE18C,SAAUO,EAAM7G,OAAOhJ,SACnE62B,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,GAETh7B,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,WAELyhD,EAAQj1C,IAAI,CAACw2C,EAAKvkB,IACjB1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,SAMbkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAClC37B,IAAAC,cAACs+C,mBAAe,CACd7+C,UAAWK,EAAQ87B,UACnB54B,QAAQ,WACR6R,GAAG,UACHknB,MAAM,cACN52B,MAAOgsD,EAAO55C,QACd/T,UAAW2tD,EAAO18C,SAClBrP,SAAW4P,GAAU8uE,EAASzmF,wBAAC,GAAK8zD,GAAM,IAAE55C,QAASvC,EAAM7G,OAAOhJ,SAClE62B,OAAO,SACPH,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,GAETh7B,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,2BAELR,EAAM6lB,MAAMnN,WAAanY,IAAAC,cAACmkF,KAAa,CAACp5B,SAAO,EAAC9nD,MAAO,CAAEhE,OAAQ,QAASC,MAAO,WAC/EM,EAAM6lB,MAAMnN,YAAmB,OAAN2rE,QAAM,IAANA,OAAM,EAANA,EAAQ59E,QAAS,GAAM49E,EAAOr3E,IAAI,CAACw2C,EAAKvkB,IAClE1+B,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAKs9B,EAAOt5B,MAAO69C,EAAI79C,OAC9B69C,EAAInoD,aAUvBkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAAC6oD,QAAS,EAAGlrD,SAAS,SAAS/1B,MAAO,CAAEmhF,UAAW,WAC1DjzB,EAAO55C,QAAU,EAvJxBxX,IAAAC,cAACmpC,KAAI,KACF3pC,EAAM2L,KAAKA,KAAKqB,IAAKrB,IACkB,IAADmxD,EAArC,GAAInxD,EAAK4Z,UAAY5Z,EAAK6Z,UACxB,OACEjlB,IAAAC,cAACkiC,KAAG,CAAC/gC,IAAKgK,EAAK0J,GAAIytB,GAAI,GACrBviC,IAAAC,cAACqkF,KAAc,CACb3lC,SAAUvzC,EAAK0J,KAAOrV,EAAM2L,KAAK0J,GACjCtR,QAASA,IAAMyP,EAASoR,GAAiBjZ,IACzC1L,UAAWK,EAAQ4jF,UAEnB3jF,IAAAC,cAACkiC,KAAG,CACFzjC,QAAQ,OACRugC,cAAc,MACd1gC,WAAW,aACXoE,eAAe,aACfqiC,IAAI,MACJ9hC,MAAO,CAAE/D,MAAO,SAEhBa,IAAAC,cAAA,OAAKmG,KAAS,OAAJgF,QAAI,IAAJA,OAAI,EAAJA,EAAMyZ,gBAAiBwd,KAAMljC,MAAO,GAAID,OAAQ,GAAIgE,MAAO,CAAE5E,aAAc,MAAOgkC,UAAWl3B,EAAKyZ,cAAgB,QAAU,aACtI7kB,IAAAC,cAACkiC,KAAG,CACFzjC,QAAQ,OACRugC,cAAc,SACdt8B,eAAe,gBACfpE,WAAW,aACX2E,MAAO,CAAE/D,MAAO,SAEhBa,IAAAC,cAACqD,IAAU,CAACL,QAAQ,KAAKs/B,GAAI,EAAGr/B,MAAO,CAAExH,SAAU,SAAUE,WAAY,WAAawP,EAAK9E,QAC3FtG,IAAAC,cAACkiC,KAAG,CACFzjC,QAAQ,OACRugC,cAAc,MACdt8B,eAAe,gBACfpE,WAAW,SACX2E,MAAO,CAAE/D,MAAO,SAEhBa,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,QAAO,cAAS8T,KAAW,OAAJpE,QAAI,IAAJA,OAAI,EAAJA,EAAMuX,YAAY6P,OAAO,eAChFpnB,GAAQA,EAAKwX,YAAc5iB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIvH,SAAS,QAAO,eAAU8T,KAAW,OAAJpE,QAAI,IAAJA,OAAI,EAAJA,EAAMwX,aAAa4P,OAAO,eAA8B,OAE1I,OAAJpnB,QAAI,IAAJA,OAAI,EAAJA,EAAMga,uBACLplB,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIu/B,GAAI,EAAG9mC,SAAS,OAAOD,WAAW,OAAO8/B,UAAU,QAAQr4B,MAAO,CAAE/D,MAAO,SAAU,6BACnFiM,EAAKga,sBAAsBqd,eAAe,QAAS,CAAEC,sBAAuB,KAEpG,QAKG,QAAV65B,EAAA98D,EAAM2L,YAAI,IAAAmxD,OAAA,EAAVA,EAAYznD,MAAO1J,EAAK0J,IACvB9U,IAAAC,cAACsD,EAAY,CAACzJ,MAAI,EAACoJ,MAAO,CAAE+5B,UAAW,OAAQ99B,MAAO,QAAUqE,QAASwgF,GACvEhkF,IAAAC,cAACskF,KAAoB,MACrBvkF,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIk6D,GAAI,EAAGzhE,SAAS,QAAO,aAIrDsE,IAAAC,cAACuG,KAAO,UAYlBxG,IAAAC,cAAA,OAAKP,UAAWK,EAAQ2jF,WACtB1jF,IAAAC,cAACqD,IAAU,CAACL,QAAQ,IAAIsD,MAAM,UAAU6qD,EAAO55C,QAAU,6BAA4B,8C,iBCvJvFzY,GAAYV,YAAW,MAC3BxB,KAAM,MA4BO2nF,OAzBkB/kF,IAC/B,MAAM,UAAEC,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,IAC9BC,EAAUhB,KAChB,OACEiB,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GAASP,EAAI,CAAEF,UAAWU,kBAAKL,EAAQlD,KAAM6C,KAC3CM,IAAAC,cAACm7B,KAAI,CAAC78B,WAAW,WAAW88B,WAAS,EAAC14B,eAAe,gBAAgBlE,QAAS,GAC5EuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,GACRt7B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAK7C,cAAY,EAACqF,QAAQ,YAC7CxD,EAAMo9C,UAET78C,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,MAChCxD,EAAMuC,W,iCCsYbyiF,GAAwC16C,qBAC5CxB,aANuB/mC,IAChB,CACL2xB,UAAW3xB,EAAM2xB,YAIM,KAAM,KAA/BoV,CAAqCyB,aA/WvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA0WyBsuC,CAtWLvqC,IAEhC,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACvC,UAAEqzB,GAAc1zB,EAAM0zB,WACtB,eAAEvc,GAAmBnX,EAAM0zB,WAC3B,UAAEhb,GAAc1Y,EAAM0zB,WAErB1Z,EAAairE,GAAkB/qD,mBAAS,KACxC7qB,EAAM61E,GAAWhrD,mBAAS,KAC1B2mB,EAAYC,GAAiB5mB,mBAAS,OACtCirD,EAAiBC,GAAsBlrD,mBAAS,KAChD6mB,EAAWC,GAAgB9mB,oBAAS,IAEpCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAElCuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,QAAE1kC,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGb,aAAEA,GAAiB8N,aACtBvkC,GAAUA,EAAMy2B,eAGb,MAAE3S,GAAUygB,aACfvkC,GAAUA,EAAM8jB,OAcnBjjB,oBAAU,KACR4Q,EAAS2c,GAAYE,kBACrB7c,EAAS+e,GAAgBvc,UACxB,IAEH,MAAMqvE,EAAgBx/D,EAAM7Y,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAmB7DuH,oBAAU,KACR,GAAe,GAAXmV,GAA2B,IAAXA,GACdygB,GAAgBA,EAAa/xB,OAAS,EAAG,CAC3C,IAAI6+E,EAAgB9sD,EAAa8X,OAC9BzU,GAASA,EAAK9jB,SAAWA,GAE5B+oC,EAActoB,EAAa/xB,OAAS,EAAI6+E,EAAc,GAAGz/D,MAAQ,MAGpE,CAAC9N,IAiBJnV,oBAAU,KACJi+C,GACF0kC,EAA8B1kC,IAE/B,CAACA,IAEJ,MAAM0kC,EAAiCt3E,IACrC,GAAW,MAAPA,EAAa,CACf,IAAIq3E,EAAgBz/D,EAAMyqB,OACvBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE2c,GAAYY,mBACVu0D,EAAc,KAMpBtkC,GAAa,IAUf,OAPAp+C,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM0zB,UAAUhb,YAGzBnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,2BACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRy7B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAErF,aAAc,GAAIo/B,UAAW,IAC1Cj9B,IAAAC,cAAC+9C,iBAAa,CACZlpC,GAAG,sBACHmpC,SAAWhpC,GA3DLA,KACpB,GAAIqrC,QAA4Bt5C,GAAds5C,EAAyB,CAEzC,IAAIjwC,EAAU,CACZsH,QAAS2oC,EAAaA,EAAWxrC,GAAK,EACtCmwE,YAAaxrE,EACbyrE,KAAMp2E,EAAOA,EAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,IAGhEgM,EAAS+e,GAAgBU,4BAA4BriB,GAAS,SAE9DxD,IAAMlS,MAAM,8BAgDqBwjD,IAErBn+C,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACukF,GAAuB,CACtB3nC,SAAU,eACV76C,MAAO,6BAEThC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KApI/B44C,KAuIsBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOk7C,EACPj7C,SAAUA,CAAC4P,EAAOs7B,KAChBgQ,EAAchQ,IAEhBd,WAAYm1C,EACZp0C,cAAeA,CAACv7B,EAAOkwE,KACrBN,EAAmBM,IAErBrwE,GAAG,2BACH1D,QAAS0zE,EACT7oD,OAAO,SACPx4B,SAAsB,MAAX+T,GAA8B,GAAXA,GAA2B,IAAXA,EAC9CvU,QAAQ,WACRytC,aAAc4P,EACd3P,eAAiBy0C,GAAiBA,EAAcA,EAAY/+E,KAAO,GACnEwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,oBAAchB,WAAS,KAC7EA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,cACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW6I,GAAMw2E,EAAex2E,EAAEE,OAAOhJ,OACzCA,MAAOqU,GAAe,GACtBxW,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP52B,SAAW6I,GAAMy2E,EAAQz2E,EAAEE,OAAOhJ,OAClCA,MAAO8B,GAAS4H,IAAS,GACzB7L,QAAQ,eAIdjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,OAAQqzC,aAAc,SAC/Fh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAChD3E,WAAY,SACZG,QAAS,OACTugC,cAAe,MACft8B,eAAgB,QAChB44B,UAAW,UAEXv7B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM0zB,UAAUhb,UAC1B+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM0zB,UAAUhb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM0zB,UAAUhb,UAAY,iBAAmB,cAGpDnY,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,KAtL7B88C,QAA4Bt5C,GAAds5C,GAChBh+C,OAAOqa,KAAK,iCAAkC,WAsLxB1Z,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,KAAWt4D,MAAO,CAAEq8B,cAAe,aACpE,cAIHv/B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,IA3LTsxE,MAExB,IAAIzkE,EAAU,CACZsH,QAAS2oC,EAAaA,EAAWxrC,GAAK,EACtCmwE,YAAaxrE,EACbyrE,KAAMp2E,EAAOA,EAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,IAGhEgM,EAAS+e,GAAgBY,gCAAgCviB,KAmLlBykE,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,6BASbv/B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,gBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,oBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,SACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,WAGvBD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmsB,GAAaA,EAAUjtB,OAClCitB,EAAU1mB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,KAErC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEwqD,YAAcxqD,EAAEwqD,YAAYz+E,cAAgB,IAEjD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/rB,KAAO5H,GAAS2zB,EAAE/rB,MAAQ,IAE/B9O,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEpS,KAAOzoB,IAAAC,cAAC+4C,GAAK,CAACvwB,KAAMoS,EAAEpS,KAAMwwB,WAAYpe,EAAEoe,aAAiB,WAMvDjyC,GAAds5C,EACEnoC,EACCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,+BAItDvG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,gCAIvDS,IAAcmsB,GAAaA,EAAUjtB,OAEpClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,GAAGnnC,IAAAC,cAAA,SAAG,sBACtCD,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,GAAGj7C,IAAAC,cAAA,SA9R/C,WACE,GAAIkzB,GAAaA,EAAUjtB,OAAS,EAAG,CAIrC,OAFYitB,EAAUjtB,OAKtB,OAAO,EAsRwCo/E,MAG7B,WAShBr9C,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBd,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBsB,0BAG3B,U,aC1YV,MAAM87B,GAAS4gD,KAAWt9B,OAAO,CAC/B/R,MAAO,CACL13C,QAAS,GACTW,MAAO,IAET6C,MAAO,CACLtG,SAAU,GACV6/B,UAAW,UAEbshB,SAAU,CACRnhD,SAAU,GACV6/B,UAAW,SACX0B,UAAW,IAEb1iC,KAAM,CACJmB,SAAU,EACV6/B,UAAW,UAEbiqD,QAAS,CACP9pF,SAAU,EACV6/B,UAAW,QAEboH,OAAQ,CACN9E,SAAU,WACV6C,IAAK,GACLC,KAAM,GACNC,MAAO,MAILmD,GAAUtkC,GAGZO,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAOhC,QAClB3iC,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAE+7B,cAAe,MAAO9/B,MAAO,SAC1Ca,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAE3E,WAAY,aAAc66B,WAAY,EAAGj6B,MAAO,OAAQo8B,UAAW,WAChFv7B,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO3iC,OAAQvC,EAAMuC,OAClB,MAAdvC,EAAMlF,KAAeyF,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAOpqC,MAAOkF,EAAMlF,MAAe,QCpC3EoqC,GAAS4gD,KAAWt9B,OAAO,CAC/By9B,OAAQ,CACN7nD,SAAU,WACVuG,OAAQ,GACRzD,KAAM,GACNC,MAAO,GACP3B,cAAe,MACfvjC,SAAU,EACVD,WAAY,QACZwhC,UAAW,GAEbiZ,MAAO,CACL/2C,MAAO,MAILioC,GAAU3nC,GAGZO,IAAAC,cAACwlF,KAAI,CAACE,OAAK,EAACziF,MAAOyhC,GAAO+gD,QACxB1lF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAE3E,WAAY,aAAcg9B,UAAW,OAAQp8B,MAAO,QACjEa,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO6gD,SAAS,cAAYh2E,KAAO,IAAI1D,MAAM0mB,OAAO,oBAAoB,QAAM9hB,KAAK4C,MAAMrS,aAAaC,QAAQ,SAAe,OAE5IlB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAEq4B,UAAW,QAASp8B,MAAO,QACxCa,IAAAC,cAACggF,KAAI,CAAC0F,OAAK,EAAC/kF,OAAQyD,IAAA,IAAC,WAAEuhF,EAAU,WAAEC,GAAYxhF,EAAA,mBAAA5G,OACnCmoF,EAAU,QAAAnoF,OAAOooF,QCrB/BlhD,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBmlC,OAAQ,CACNqjD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,UAEb0qD,KAAM,CACJD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,YAIT2qD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UA4EHgnF,GAA6Cp8C,qBAAWxB,aAJrC/mC,GAChBA,EAG8E,KAAM,KAA/B+mC,CAzEvB9oC,IAErC,MAAO09C,EAAOC,GAAYp9C,IAAM25B,UAAS,IACjCoiB,OAAO,OAAE7uC,IAAazN,GACxB,UAAE0zB,GAAc1zB,EAAM0zB,UAE5B9wB,oBAAU,OAEP,CAAC5C,EAAM0zB,YAEV9wB,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAKH,OACGD,GACCn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAACC,SAPCC,OAOqBpnF,MAAM,QACpCa,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAAC8jC,GAAM,CAAC/hC,MAAM,6CACdhC,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,KAAO77B,IAAK,GACjDpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,gBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,oBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,UAIR9sD,EAAUjtB,OAAS,EAAIitB,EAAU1mB,IAAIouB,GAEjC76B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAKy5B,EAAE/lB,IAChC9U,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,KAE3C5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEwqD,YAAcxqD,EAAEwqD,YAAYz+E,cAAgB,KAEvD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/rB,KAAO5H,GAAS2zB,EAAE/rB,MAAQ,OAMvC9O,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAK,GAChCpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,gCAIdjgF,IAAAC,cAACmnC,GAAM,a,2BC0Rfq/C,GAAgD18C,qBACpDxB,aANuB/mC,IAChB,CACL2xB,UAAW3xB,EAAM2xB,YAIM,KAAM,KAAM,CACnCqiC,MAAM,GADRjtB,CAEGyB,aApVWlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA+UTsuC,CA3UqCvqC,IAExC,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACvC,UAAEqzB,GAAc1zB,EAAM0zB,WACtB,eAAEvc,GAAmBnX,EAAM0zB,WAC3B,UAAEhb,GAAc1Y,EAAM0zB,WAErBk0C,EAAcC,GAAmB3tC,mBAAS,OAC1C4tC,EAAmBC,GAAwB7tC,mBAAS,KACpD+sD,EAAaC,GAAkBhtD,oBAAS,IAExCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGZikB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,QAAE5jC,GAAYytB,aACjBvkC,GAAUA,EAAM8W,SAcnBjW,oBAAU,KACR,IAAI4T,EAAc,CAChB0B,QAASH,GAGXvE,EAAS6D,GAAc2B,iBAAiBxC,KAEvC,CAACuB,IAEJnV,oBAAU,KACR4Q,EAAS+e,GAAgBvc,UACxB,IAEH,MAAMmxE,EAAkBtuE,EAAQ7L,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QA8BjEuH,oBAAU,KACJglE,GACFga,EAAgCha,IAEjC,CAACA,IAEJ,MAAMga,EAAmC3zE,IACvC,GAAW,MAAPA,EAAa,CACf,IAAIywD,EAAkB7lD,EAAQy3B,OAC3BzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE6D,GAAcoC,qBACZilD,EAAgB,KAMtBwoB,GAAe,IAUjB,OAPAtkF,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM0zB,UAAUhb,YAGzBnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,qDACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRy7B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAErF,aAAc,GAAIo/B,UAAW,IAC1Cj9B,IAAAC,cAAC+9C,iBAAa,CACZlpC,GAAG,yCACHmpC,SAAWhpC,GAzDLA,KACpB,GAAIoyD,QAAgCrgE,GAAhBqgE,EAA2B,CAE7C,IAAIh3D,EAAU,CACZoT,GAAI4jD,EAAeA,EAAavyD,GAAK,GAGvC7B,EAAS+e,GAAgBC,oCAAoC5hB,GAAS,SAEtExD,IAAMlS,MAAM,2BAgDqBwjD,IAErBn+C,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACukF,GAAuB,CACtB3nC,SAAU,eACV76C,MAAO,uCAEThC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KArH/B44C,KAwHsBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOiiE,EACPhiE,SAAUA,CAAC4P,EAAOs7B,KAChB+2B,EAAgB/2B,IAElBd,WAAY83B,EACZ/2B,cAAeA,CAACv7B,EAAO4xE,KACrBrf,EAAqBqf,IAEvB/xE,GAAG,2BACH1D,QAASw1E,EACT3qD,OAAO,SACPh5B,QAAQ,WACRytC,aAAc22B,EACd12B,eAAiB4B,GAAOA,EAAIA,EAAElsC,KAAO,GACrCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,gBAAgBhB,WAAS,KAC/EA,WAAS,MAIfh7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,OAAQqzC,aAAc,SAC/Fh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAChD3E,WAAY,SACZG,QAAS,OACTugC,cAAe,MACft8B,eAAgB,QAChB44B,UAAW,UAEXv7B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM0zB,UAAUhb,UAC1B+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM0zB,UAAUhb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM0zB,UAAUhb,UAAY,iBAAmB,cAGpDnY,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,KA7I7B6jE,QAAgCrgE,GAAhBqgE,GAClB/kE,OAAOqa,KAAK,4CAA6C,WA6InC1Z,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,KAAWt4D,MAAO,CAAEq8B,cAAe,aACpE,cAIHv/B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,IAlJTsxE,MAExB,IAAIzkE,EAAU,CACZoT,GAAI4jD,EAAeA,EAAavyD,GAAK,GAGvC7B,EAAS+e,GAAgBG,2CAA2C9hB,KA4I7BykE,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,6BASbv/B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,SACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,UACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,gBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,UACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,aAGvBD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmsB,GAAaA,EAAUjtB,OAClCitB,EAAU1mB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/c,SAAWtO,KAAOqrB,EAAE/c,UAAU0U,OAAO,oBAAsB,KAEhExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEisD,WAAajsD,EAAEisD,WAAWlgF,cAAgB,KAE/C5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,KAErC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEhR,MAAQgR,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,QAAW,KAEvFnuD,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjrB,OAASirB,EAAEjrB,OAAOhJ,cAAgB,YAM5BI,GAAhBqgE,EACElvD,EACCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,+BAItDvG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,6BAIvDS,IAAcmsB,GAAaA,EAAUjtB,OAEpClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,GAAGnnC,IAAAC,cAAA,SAAG,uBACtCD,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,GAAGj7C,IAAAC,cAAA,SAvQ/C,WACE,GAAIkzB,GAAaA,EAAUjtB,OAAS,EAAG,CAIrC,OAFYitB,EAAUjtB,OAKtB,OAAO,EA+PwCo/E,MAG7B,WAShBr9C,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBd,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBwD,sCAG3B,UCpWJ45B,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBmlC,OAAQ,CACNqjD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,UAEb0qD,KAAM,CACJD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,YAIT2qD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UA4FH4nF,GAAqDh9C,qBAAWxB,aAJ7C/mC,GAChBA,EAGsF,KAAM,KAAM,CACzGg0D,MAAM,GAD8DjtB,CAzFvB9oC,IAE7C,MAAO09C,EAAOC,GAAYp9C,IAAM25B,UAAS,IACjCoiB,OAAO,OAAE7uC,IAAazN,GACxB,UAAE0zB,GAAc1zB,EAAM0zB,UAE5B9wB,oBAAU,OAEP,CAAC5C,EAAM0zB,YAEV9wB,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAKH,OACGD,GACCn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAACC,SAPCC,OAOqBpnF,MAAM,QACpCa,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAAC8jC,GAAM,CAAC/hC,MAAM,uDAEZmxB,EAAUjtB,OAAS,EAAIitB,EAAU1mB,IAAI,CAACouB,EAAG6D,IAErC1+B,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKs9B,GACR,IAAVA,GACC1+B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,MACrCj9B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,SAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,SAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,gBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,UAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,YAIZjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/c,SAAWtO,KAAOqrB,EAAE/c,UAAU0U,OAAO,oBAAsB,MAEtExyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEisD,WAAajsD,EAAEisD,WAAWlgF,cAAgB,MAErD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,IAAKzD,SAAU,MACjDsE,IAAAC,cAACggF,KAAI,KAAEplD,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,MAE3C5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEhR,MAAQgR,EAAEhR,MAAM4Y,eAAe,QAAS,CAAEv/B,MAAO,WAAYirD,SAAU,QAAW,MAE7FnuD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEjrB,OAASirB,EAAEjrB,OAAOhJ,cAAgB,SAOjD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACrBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,gCAIdjgF,IAAAC,cAACmnC,GAAM,a,+EC2Sf4/C,GAAiCj9C,qBACrCxB,aANuB/mC,IAChB,CACL2xB,UAAW3xB,EAAM2xB,YAIM,KAAM,KAA/BoV,CAAqCyB,aA/WvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KA0WyBsuC,CAtWZvqC,IAEzB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACvC,UAAEqzB,GAAc1zB,EAAM0zB,WACtB,eAAEvc,GAAmBnX,EAAM0zB,WAC3B,UAAEhb,GAAc1Y,EAAM0zB,WAErB9sB,EAAM+xD,GAAWz+B,mBAAS,KAC1B7f,EAAO4sC,GAAY/sB,mBAAS,KAC5B2mB,EAAYC,GAAiB5mB,mBAAS,OACtCirD,EAAiBC,GAAsBlrD,mBAAS,KAChD6mB,EAAWC,GAAgB9mB,oBAAS,IAEpCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAElCuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,QAAE1kC,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGb,aAAEA,GAAiB8N,aACtBvkC,GAAUA,EAAMy2B,eAGb,MAAE3S,GAAUygB,aACfvkC,GAAUA,EAAM8jB,OAcnBjjB,oBAAU,KACR4Q,EAAS2c,GAAYE,kBACrB7c,EAAS+e,GAAgBvc,UACxB,IAEH,MAAMqvE,EAAgBx/D,EAAM7Y,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAiB7DuH,oBAAU,KACR,GAAe,GAAXmV,GAA2B,IAAXA,GACdygB,GAAgBA,EAAa/xB,OAAS,EAAG,CAC3C,IAAI6+E,EAAgB9sD,EAAa8X,OAC9BzU,GAASA,EAAK9jB,SAAWA,GAE5B+oC,EAActoB,EAAa/xB,OAAS,EAAI6+E,EAAc,GAAGz/D,MAAQ,MAGpE,CAAC9N,IAaJnV,oBAAU,KACJi+C,GACF0kC,EAA8B1kC,IAE/B,CAACA,IAEJ,MAAM0kC,EAAiCt3E,IACrC,GAAW,MAAPA,EAAa,CACf,IAAIq3E,EAAgBz/D,EAAMyqB,OACvBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE2c,GAAYY,mBACVu0D,EAAc,KAMpBtkC,GAAa,IAUf,OAPAp+C,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM0zB,UAAUhb,YAGzBnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,2BACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRy7B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAErF,aAAc,GAAIo/B,UAAW,IAC1Cj9B,IAAAC,cAAC+9C,iBAAa,CACZlpC,GAAG,sBACHmpC,SAAWhpC,GAvDLA,KAEpB,IAAI5E,EAAU,CACZsH,QAAS2oC,EAAaA,EAAWxrC,GAAK,EACtCmyE,KAAM5gF,EACN6gF,MAAOptE,EAAQA,EAAMvN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,IAGnEgM,EAAS+e,GAAgBc,qBAAqBziB,GAAS,KA+CpB8tC,IAErBn+C,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACukF,GAAuB,CACtB3nC,SAAU,eACV76C,MAAO,gBAEThC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA9H/B44C,KAiIsBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOk7C,EACPj7C,SAAUA,CAAC4P,EAAOs7B,KAChBgQ,EAAchQ,IAEhBd,WAAYm1C,EACZp0C,cAAeA,CAACv7B,EAAOkwE,KACrBN,EAAmBM,IAErBrwE,GAAG,2BACH1D,QAAS0zE,EACT7oD,OAAO,SACPx4B,SAAsB,MAAX+T,GAA8B,GAAXA,GAA2B,IAAXA,EAC9CvU,QAAQ,WACRytC,aAAc4P,EACd3P,eAAiBy0C,GAAiBA,EAAcA,EAAY/+E,KAAO,GACnEwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,kBAAYhB,WAAS,KAC3EA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW6I,GAAMkqD,EAAQlqD,EAAEE,OAAOhJ,OAClCA,MAAOiB,GAAQ,GACfpD,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,QACHknB,MAAM,SACNC,OAAO,SACP52B,SAAW6I,GAAMw4C,EAASx4C,EAAEE,OAAOhJ,OACnCA,MAAO0U,GAAS,GAChB7W,QAAQ,eAIdjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,OAAQqzC,aAAc,SAC/Fh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAChD3E,WAAY,SACZG,QAAS,OACTugC,cAAe,MACft8B,eAAgB,QAChB44B,UAAW,UAEXv7B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM0zB,UAAUhb,UAC1B+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM0zB,UAAUhb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM0zB,UAAUhb,UAAY,iBAAmB,cAGpDnY,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,KAhLjClB,OAAOqa,KAAK,0BAA2B,WAiLf1Z,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,KAAWt4D,MAAO,CAAEq8B,cAAe,aACpE,cAIHv/B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,IAvLTsxE,MAExB,IAAIzkE,EAAU,CACZsH,QAAS2oC,EAAaA,EAAWxrC,GAAK,EACtCmyE,KAAM5gF,EACN6gF,MAAOptE,GAGT7G,EAAS+e,GAAgBe,4BAA4B1iB,KA+KdykE,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,6BASbv/B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,SACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,SACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,WACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,uBAGvBD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmsB,GAAaA,EAAUjtB,OAClCitB,EAAU1mB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/kB,YAA+B,iBAAjB+kB,EAAE/kB,YACjB9V,IAAAC,cAAA,YAAMD,IAAAC,cAACknF,KAAsB,CAACjkF,MAAO,CAAEq8B,cAAe,YAAc,qBACjD,WAAjB1E,EAAE/kB,YAA2B9V,IAAAC,cAAA,YAAMD,IAAAC,cAACmnF,KAAQ,CAAClkF,MAAO,CAAEq8B,cAAe,YAAc,eAClE,0BAAjB1E,EAAE/kB,YAAiC9V,IAAAC,cAAA,YAAMD,IAAAC,cAAC0sC,KAAgB,CAACzpC,MAAO,CAAEq8B,cAAe,YAAc,8BAA6B,GAAK,IAEzIv/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgBi0B,EAAEviB,QAAUuiB,EAAEviB,QAAQ1R,cAAgB,KAE3E5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEwsD,YAAcxsD,EAAEwsD,YAAYzgF,cAAgB,IAEjD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/gB,MAAQ+gB,EAAE/gB,MAAQ,IAEvB9Z,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjhB,SAAWzS,GAAU0zB,EAAEjhB,UAAYihB,EAAEhhB,QAAU1S,GAAU0zB,EAAEhhB,SAAW,MAMjF1B,EACEsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,oCAGvDS,IAAcmsB,GAAaA,EAAUjtB,OAEpClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,GAAGnnC,IAAAC,cAAA,SAAG,yBACtCD,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG10C,MAAM,UAASvG,IAAAC,cAAA,SA9R9D,WACE,GAAIkzB,GAAaA,EAAUjtB,OAAS,EAAG,CAIrC,OAFYitB,EAAUjtB,OAKtB,OAAO,EAsRuDo/E,MAG5C,WAShBr9C,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBd,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmB+C,oBAG3B,U,2BCvBJg9E,GAAuCv9C,qBAC3CxB,aANuB/mC,IAChB,CACL2xB,UAAW3xB,EAAM2xB,YAIM,KAAM,KAA/BoV,CAAqCyB,aA9UvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAyUyBsuC,CArUNvqC,IAE/B,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACvC,UAAEqzB,GAAc1zB,EAAM0zB,WACtB,eAAEvc,GAAmBnX,EAAM0zB,WAC3B,UAAEhb,GAAc1Y,EAAM0zB,WAErBo0D,EAAWC,GAAgB7tD,mBAAS,OACpC8tD,EAAgBC,GAAqB/tD,mBAAS,KAC9CguD,EAAUC,GAAejuD,oBAAS,IAElCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGZikB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,KAAE9wC,GAAS26B,aACdvkC,GAAUA,EAAM4J,MAcnB/I,oBAAU,KACR4Q,EAAS6O,GAAWI,cAAc,CAAEvK,QAASH,MAE5C,CAACA,IAEJnV,oBAAU,KACR4Q,EAAS+e,GAAgBvc,UACxB,IAEH,MAAMoyE,EAAez8E,EAAKqB,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QA8B3DuH,oBAAU,KACJklF,GACFO,EAA6BP,IAE9B,CAACA,IAEJ,MAAMO,EAAgCp6E,IACpC,GAAW,MAAPA,EAAa,CACf,IAAIq6E,EAAe38E,EAAK2kC,OACrBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE6O,GAAWW,kBACTslE,EAAa,KAMnBH,GAAY,IAUd,OAPAvlF,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM0zB,UAAUhb,YAGzBnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,6CACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRy7B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAErF,aAAc,GAAIo/B,UAAW,IAC1Cj9B,IAAAC,cAAC+9C,iBAAa,CACZlpC,GAAG,+BACHmpC,SAAWhpC,GAzDLA,KACpB,GAAIsyE,QAA0BvgF,GAAbugF,EAAwB,CAEvC,IAAIl3E,EAAU,CACZuH,OAAQ2vE,EAAYA,EAAUzyE,GAAK,GAGrC7B,EAAS+e,GAAgBiB,2BAA2B5iB,GAAS,SAE7DxD,IAAMlS,MAAM,wBAgDqBwjD,IAErBn+C,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACukF,GAAuB,CACtB3nC,SAAU,eACV76C,MAAO,+BAEThC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAjH/B44C,KAoHsBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOmiF,EACPliF,SAAUA,CAAC4P,EAAOs7B,KAChBi3C,EAAaj3C,IAEfd,WAAYg4C,EACZj3C,cAAeA,CAACv7B,EAAO+yE,KACrBN,EAAkBM,IAEpBlzE,GAAG,2BACH1D,QAASy2E,EACT5rD,OAAO,SACPh5B,QAAQ,WACRytC,aAAc62C,EACd52C,eAAiB4B,GAAOA,EAAIA,EAAElsC,KAAO,GACrCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,aAAahB,WAAS,KAC5EA,WAAS,MAIfh7B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,OAAQqzC,aAAc,SAC/Fh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAChD3E,WAAY,SACZG,QAAS,OACTugC,cAAe,MACft8B,eAAgB,QAChB44B,UAAW,UAEXv7B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM0zB,UAAUhb,UAC1B+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM0zB,UAAUhb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM0zB,UAAUhb,UAAY,iBAAmB,cAGpDnY,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,KA7I7B+jF,QAA0BvgF,GAAbugF,GACfjlF,OAAOqa,KAAK,iCAAkC,WA6IxB1Z,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,KAAWt4D,MAAO,CAAEq8B,cAAe,aACpE,cAIHv/B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,IAlJTsxE,MAExB,IAAIzkE,EAAU,CACZuH,OAAQ2vE,EAAYA,EAAUzyE,GAAK,GAGrC7B,EAAS+e,GAAgBkB,kCAAkC7iB,KA4IpBykE,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,6BASbv/B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,SACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,kBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,eACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,gBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,cAGvBD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmsB,GAAaA,EAAUjtB,OAClCitB,EAAU1mB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/c,SAAWtO,KAAOqrB,EAAE/c,UAAU0U,OAAO,oBAAsB,KAEhExyB,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEotD,oBAAsBptD,EAAEotD,oBAAoBrhF,cAAgB,KAEjE5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEjqB,QAAUiqB,EAAEjqB,QAAQhK,cAAgB,IAAI,KAAE5G,IAAAC,cAAA,QAAMiD,MAAO,CAAExH,SAAU,KAAOm/B,EAAEqtD,cAAoB,KAErGloF,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,KAErC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEviB,QAAUuiB,EAAEviB,QAAQ1R,cAAgB,YAMjCI,GAAbugF,EACEpvE,EACCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,+BAItDvG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,0BAIvDS,IAAcmsB,GAAaA,EAAUjtB,OAEpClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,GAAGnnC,IAAAC,cAAA,SAAG,4BACtCD,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,GAAGj7C,IAAAC,cAAA,SAnQ/C,WACE,GAAIkzB,GAAaA,EAAUjtB,OAAS,EAAG,CAIrC,OAFYitB,EAAUjtB,OAKtB,OAAO,EA2PwCo/E,MAG7B,WAShBr9C,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBd,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBkC,4BAG3B,UChWJk7B,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBmlC,OAAQ,CACNqjD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,UAEb0qD,KAAM,CACJD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,YAIT2qD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UAgHHgpF,GAA4Cp+C,qBAAWxB,aAJpC/mC,GAChBA,EAG6E,KAAM,KAA/B+mC,CA7GvB9oC,IAEpC,MAAO09C,EAAOC,GAAYp9C,IAAM25B,UAAS,IACjCoiB,OAAO,OAAE7uC,IAAazN,GACxB,UAAE0zB,GAAc1zB,EAAM0zB,UAE5B9wB,oBAAU,OAEP,CAAC5C,EAAM0zB,YAEV9wB,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAKH,OACGD,GACCn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAACC,SAPCC,OAOqBpnF,MAAM,QACpCa,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAAC8jC,GAAM,CAAC/hC,MAAM,+CAEZmxB,EAAUjtB,OAAS,EAAIitB,EAAU1mB,IAAI,CAACouB,EAAG6D,IAErC1+B,IAAAC,cAACD,IAAMmB,SAAQ,CAACC,IAAKs9B,GACR,IAAVA,GACC1+B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,MACrCj9B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,cAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,UAGVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEpjB,SAEXzX,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEisD,WAAW,MAAIjsD,EAAEutD,mBAKvB,IAAV1pD,GACC1+B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,KACrCj9B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,SAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,kBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,eAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,gBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,aAIZjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/c,SAAWtO,KAAOqrB,EAAE/c,UAAU0U,OAAO,oBAAsB,MAEtExyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEotD,oBAAsBptD,EAAEotD,oBAAoBrhF,cAAgB,MAEvE5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,IAAKzD,SAAU,MACjDsE,IAAAC,cAACggF,KAAI,KAAEplD,EAAEjqB,QAAUiqB,EAAEjqB,QAAQhK,cAAgB,IAAI,KAAGi0B,EAAEqtD,aAAa,MAErEloF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgB,MAE3C5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEviB,QAAUuiB,EAAEviB,QAAQ1R,cAAgB,SAOnD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACrBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,gCAIdjgF,IAAAC,cAACmnC,GAAM,aCzHfzC,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBmlC,OAAQ,CACNqjD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,UAEb0qD,KAAM,CACJD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,YAIT2qD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UA2FHkpF,GAAsCt+C,qBAAWxB,aAJ9B/mC,GAChBA,EAGuE,KAAM,KAA/B+mC,CAxFvB9oC,IAE9B,MAAO09C,EAAOC,GAAYp9C,IAAM25B,UAAS,IACjCoiB,OAAO,OAAE7uC,IAAazN,GACxB,UAAE0zB,GAAc1zB,EAAM0zB,UAE5B9wB,oBAAU,OAEP,CAAC5C,EAAM0zB,YAEV9wB,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAKH,OACGD,GACCn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAACC,SAPCC,OAOqBpnF,MAAM,QACpCa,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAAC8jC,GAAM,CAAC/hC,MAAM,gCACdhC,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,KAAO77B,IAAK,GACjDpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,SAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,eAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,SAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,WAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,sBAIR9sD,EAAUjtB,OAAS,EAAIitB,EAAU1mB,IAAIouB,GAEjC76B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAKy5B,EAAE/lB,IAChC9U,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/kB,YAA+B,iBAAjB+kB,EAAE/kB,YACvB,gBACmB,WAAjB+kB,EAAE/kB,YAA2B,UACZ,0BAAjB+kB,EAAE/kB,YAAiC,yBAAkB,GAAK,KAEhE9V,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,IAAEplD,EAAEvV,MAAQuV,EAAEvV,MAAM1e,cAAgBi0B,EAAEviB,QAAUuiB,EAAEviB,QAAQ1R,cAAgB,MAElF5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEwsD,YAAcxsD,EAAEwsD,YAAYzgF,cAAgB,KAEvD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/gB,MAAQ+gB,EAAE/gB,MAAQ,KAE7B9Z,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,IAAEplD,EAAEjhB,SAAWzS,GAAU0zB,EAAEjhB,UAAYihB,EAAEhhB,QAAU1S,GAAU0zB,EAAEhhB,SAAW,OAMpF7Z,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAK,GAChCpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,gCAIdjgF,IAAAC,cAACmnC,GAAM,a,2BCiSfkhD,GAA8Cv+C,qBAClDxB,aANuB/mC,IAChB,CACL2xB,UAAW3xB,EAAM2xB,YAIM,KAAM,KAA/BoV,CAAqCyB,aAxWvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,IAElCo9B,UAAW,CACTngC,SAAU,KAmWyBsuC,CA/VCvqC,IAEtC,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KACvC,UAAEqzB,GAAc1zB,EAAM0zB,WACtB,eAAEvc,GAAmBnX,EAAM0zB,WAC3B,UAAEhb,GAAc1Y,EAAM0zB,WAErB1Z,EAAairE,GAAkB/qD,mBAAS,KACxC7qB,EAAM61E,GAAWhrD,mBAAS,KAC1B4uD,EAAkBC,GAAuB7uD,mBAAS,OAClD8uD,EAAuBC,GAA4B/uD,mBAAS,KAC5DgvD,EAAiBC,GAAsBjvD,oBAAS,IAChD1M,EAAe47D,GAAoBlvD,mBAAS,IAE5CwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAElCuiB,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,aAAEjkB,GAAiB8N,aACtBvkC,GAAUA,EAAMy2B,eAGb,YAAE/K,GAAgB6Y,aACrBvkC,GAAUA,EAAM0rB,aAcnB7qB,oBAAU,KACR4Q,EAASkiB,GAAkBC,yBAC3BniB,EAAS+e,GAAgBvc,UACxB,IAEH,MAAMqzE,EAAuB57D,GAAeA,EAAYzgB,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QA6CzFuH,oBAAU,KACJkmF,GACFQ,EAAoCR,IAErC,CAACA,IAEJ,MAAMQ,EAAuCr7E,IAC3C,GAAW,MAAPA,EAAa,CACf,IAAIs7E,EAAsB97D,EAAY6iB,OACnCzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACEkiB,GAAkBK,yBAChBwzD,EAAoB,KAM1BJ,GAAmB,IAUrB,OAPAvmF,oBAAU,OAEP,CAACuU,EAAgBuB,IAEpB9V,oBAAU,OACP,CAAC86C,EAAO19C,EAAM0zB,UAAUhb,YAGzBnY,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,2BACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRy7B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC0F,KAAI,CAACzC,MAAO,CAAErF,aAAc,GAAIo/B,UAAW,IAC1Cj9B,IAAAC,cAAC+9C,iBAAa,CACZlpC,GAAG,gBACHmpC,SAAWhpC,GA3DLA,KACpB,GAAIszE,QAAwCvhF,GAApBuhF,EAA+B,CAErD,IAAIl4E,EAAU,CACZ44E,cAAeV,EAAmBA,EAAiBzzE,GAAK,EACxDmwE,YAAaxrE,EACbyrE,KAAMp2E,EAAOA,EAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,IAGhEgM,EAAS+e,GAAgBW,kCAAkCtiB,GAAS,SAEpExD,IAAMlS,MAAM,qCAgDqBwjD,IAErBn+C,IAAAC,cAAC2F,KAAW,KACV5F,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAACukF,GAAuB,CACtB3nC,SAAU,eACV76C,MAAO,oCAEThC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KAhI/B44C,KAmIsBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOmjF,EACPljF,SAAUA,CAAC4P,EAAOs7B,KAChBi4C,EAAoBj4C,IAEtBd,WAAYg5C,EACZj4C,cAAeA,CAACv7B,EAAOi0E,KACrBR,EAAyBQ,IAE3Bp0E,GAAG,2BACH1D,QAAS03E,EACT7sD,OAAO,SACPx4B,SAA4B,MAAjBwpB,GAA0C,GAAjBA,GAAuC,IAAjBA,EAC1DhqB,QAAQ,WACRytC,aAAc63C,EACd53C,eAAiBw4C,GAAuBA,EAAoBA,EAAkB9iF,KAAO,GACrFwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,2BAAwBhB,WAAS,KACvFA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,cACHknB,MAAM,kBACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAW6I,GAAMw2E,EAAex2E,EAAEE,OAAOhJ,OACzCA,MAAOqU,GAAe,GACtBxW,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,OACNC,OAAO,SACP52B,SAAW6I,GAAMy2E,EAAQz2E,EAAEE,OAAOhJ,OAClCA,MAAO8B,GAAS4H,IAAS,GACzB7L,QAAQ,eAIdjD,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,EAAGyE,MAAO,CAAE3E,WAAY,SAAUoE,eAAgB,OAAQqzC,aAAc,SAC/Fh2C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,GAAIz4B,MAAO,CAChD3E,WAAY,SACZG,QAAS,OACTugC,cAAe,MACft8B,eAAgB,QAChB44B,UAAW,UAEXv7B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAM0zB,UAAUhb,UAC1B+kB,UAAWl9B,IAAAC,cAACk9B,IAAU,MACtBC,QAAS39B,EAAM0zB,UAAUhb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE7DF,EAAM0zB,UAAUhb,UAAY,iBAAmB,cAGpDnY,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,KAtL7B+kF,QAAwCvhF,GAApBuhF,GACtBjmF,OAAOqa,KAAK,uCAAwC,WAsL9B1Z,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMogE,KAAWt4D,MAAO,CAAEq8B,cAAe,aACpE,cAIHv/B,IAAAC,cAACm7B,KAAI,KACHp7B,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLyC,QAASA,IA3LTsxE,MAExB,IAAIzkE,EAAU,CACZ44E,cAAeV,EAAmBA,EAAiBzzE,GAAK,EACxDmwE,YAAaxrE,EACbyrE,KAAMp2E,EAAOA,EAAKvC,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,SAAU,IAAM,IAGhEgM,EAAS+e,GAAgBa,sCAAsCxiB,KAmLxBykE,GACf7xE,QAAQ,WACRm6B,QAASp9B,IAAAC,cAACu5C,KAAe,CAACp+C,KAAM25E,KAAa7xE,MAAO,CAAEq8B,cAAe,aACtE,6BASbv/B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,uBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,oBACnBD,IAAAC,cAAC8+B,KAAS,KAAC/+B,IAAAC,cAAA,cAAQ,WAGvBD,IAAAC,cAACumC,KAAS,UACPx/B,IAAcmsB,GAAaA,EAAUjtB,OAClCitB,EAAU1mB,IAAKouB,GAEb76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE3N,YAAc2N,EAAE3N,YAAYtmB,cAAgB,KAEjD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEwqD,YAAcxqD,EAAEwqD,YAAYz+E,cAAgB,IAEjD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/rB,KAAO5H,GAAS2zB,EAAE/rB,MAAQ,WAMhB9H,GAApBuhF,EACEpwE,EACCsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,+BAItDvG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,uCAIvDS,IAAcmsB,GAAaA,EAAUjtB,OAEpClG,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,GAAGnnC,IAAAC,cAAA,SAAG,sBACtCD,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,GAAGj7C,IAAAC,cAAA,SA1R/C,WACE,GAAIkzB,GAAaA,EAAUjtB,OAAS,EAAG,CAIrC,OAFYitB,EAAUjtB,OAKtB,OAAO,EAkRwCo/E,MAG7B,WAShBr9C,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,QAGtBd,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBuB,8BAG3B,UC7XJ67B,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBmlC,OAAQ,CACNqjD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,UAEb0qD,KAAM,CACJD,YAAa,EACbxnF,QAAS,EACT+8B,UAAW,YAIT2qD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UA4EHiqF,GAAmDr/C,qBAAWxB,aAJ3C/mC,GAChBA,EAGoF,KAAM,KAA/B+mC,CAzEvB9oC,IAE3C,MAAO09C,EAAOC,GAAYp9C,IAAM25B,UAAS,IACjCoiB,OAAO,OAAE7uC,IAAazN,GACxB,UAAE0zB,GAAc1zB,EAAM0zB,UAE5B9wB,oBAAU,OAEP,CAAC5C,EAAM0zB,YAEV9wB,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAKH,OACGD,GACCn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAACC,SAPCC,OAOqBpnF,MAAM,QACpCa,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAAC8jC,GAAM,CAAC/hC,MAAM,oDACdhC,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEhmB,UAAW,KAAO77B,IAAK,GACjDpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,uBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,oBAERjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOhC,OAAQ,CAAExjC,MAAO,OACpCa,IAAAC,cAACggF,KAAI,KAAC,UAIR9sD,EAAUjtB,OAAS,EAAIitB,EAAU1mB,IAAIouB,GAEjC76B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAKy5B,EAAE/lB,IAChC9U,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE3N,YAAc2N,EAAE3N,YAAYtmB,cAAgB,KAEvD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAEwqD,YAAcxqD,EAAEwqD,YAAYz+E,cAAgB,KAEvD5G,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAEplD,EAAE/rB,KAAO5H,GAAS2zB,EAAE/rB,MAAQ,OAMvC9O,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAM7hD,IAAK,GAChCpB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOshD,KAAM,CAAE9mF,MAAO,OAClCa,IAAAC,cAACggF,KAAI,KAAC,gCAIdjgF,IAAAC,cAACmnC,GAAM,aC+JfiiD,GAAwBt/C,qBAC5BxB,aANuB/mC,IAChB,CACLiyB,SAAUjyB,EAAMiyB,WAIO,KAAM,KAA/B8U,CAAqCyB,aAjOvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MA+NGurC,CA3NrBvqC,IAEhB,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,SAAEg0B,GAAah0B,EAAMg0B,UACrB,UAAEtb,GAAc1Y,EAAMg0B,UACtB,eAAE7c,GAAmBnX,EAAMg0B,UAE1B4V,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,QAEtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,GAGxCvE,EAASmgB,GAAeC,YAAYpd,GAAa,KAInDqkC,CAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAACuU,IAEJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAMg0B,SAAStb,YAE1B,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAmBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,oBACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,iBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAcysB,GAAYA,EAASvtB,OAAS,EAC3ClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,mBACNxhC,OAAQutB,EAASvtB,OACjB22C,SAAU,iCACV76C,MAAO,4BACPujC,KAAM,cAGRvlC,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,mBACNxhC,OAAQ,EACR22C,SAAU,iCACV76C,MAAO,4BACPujC,KAAM,cAGVvlC,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACPhf,WAAS,EACT31B,SAnCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,YAsCbpF,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,eACX/+B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAcysB,GAAYA,EAASvtB,OAChCutB,EAAShnB,IAAKouB,GAEZ76B,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEx0B,KAAOw0B,EAAEx0B,KAAKO,cAAgB,IAEnC5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEvV,OAASuV,EAAEvV,MAAMjf,KAAOw0B,EAAEvV,MAAMjf,KAAKO,cAAgB,IAE1D5G,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,iBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,aAADtQ,OAAco9B,EAAE/lB,KAE9BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,mBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAjG1B3oC,EAiGsC+lB,EAAE/lB,QAhG3D8kB,EAAQ,CACN53B,MAAO,+CACPo9B,YAAa,2CACb37B,SAAUhE,EAAMg0B,SAAStb,UACzBknB,iBAAkB5/B,EAAMg0B,SAAStb,UAAY,+BAA2B,gBACxEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAASmgB,GAAec,mBAAmBpf,MAR1BA,OAkGWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,aAWxBhhB,EAKCnY,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,WAZxB7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAmBhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAK3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,sCCoMzBssC,GAA4Bv/C,qBAChCxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aA/YvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UAoX4ByuC,CAhXjBvqC,IAEpB,MAAMwT,EAAW6mB,gBACX,QAAE/5B,EAAO,SAAE0zB,EAAQ,UAAE/zB,GAAuBD,EAATG,EAAIC,YAAKJ,EAAKK,KAC/Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,MAC1BjkB,EAAUC,eAET,CAAEH,GAAe15B,IAAM25B,SAAS,IAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAElCnc,EAAW+rE,GAAgB5vD,mBAAS,IACpC6vD,EAAaC,GAAkB9vD,mBAAS,KAExC2mB,EAAYC,GAAiB5mB,mBAAS,OACtCirD,EAAiBC,GAAsBlrD,mBAAS,KAChD6mB,EAAWC,GAAgB9mB,oBAAS,IAEpC+vD,EAAcC,GAAmB3pF,IAAM25B,SAAS,OAChDiwD,EAAmBC,GAAwB7pF,IAAM25B,SAAS,KAE3D,MAAErU,GAAUygB,aACfvkC,GAAUA,EAAM8jB,QAEb,QAAE9N,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,eAGb,aAAEA,GAAiB8N,aACtBvkC,GAAUA,EAAMy2B,eAGb,QAAErnB,GAAYm1B,aACjBvkC,GAAUA,EAAMoP,SAGnB,IAAIk0E,EAAgB7sD,EAAaxrB,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAEzhB,MAAMxQ,GAAIzO,KAAM0gC,EAAEzhB,MAAMjf,QAE3E,MAAM+K,EAAUR,EAAQnE,IAAIs6B,IAAC,CAAOjyB,GAAIiyB,EAAE3hC,MAAOiB,KAAM0gC,EAAEjsC,QAEzDuH,oBAAU,KAER4Q,EAASmgB,GAAe3d,SACxBxC,EAAS2c,GAAYE,kBACrB7c,EAAS8iB,GAAcI,yBACnBjpB,EAAO4H,GACT7B,EAASmgB,GAAeI,gBAAgBtmB,EAAO4H,KAE/C7B,EAASmgB,GAAe3d,UAGzB,IACHpT,oBAAU,OAEP,CAAC86C,EAAO19C,EAAMg0B,SAAStb,YAM1B9V,oBAAU,KACJi+C,GACF0kC,EAA8B1kC,IAE/B,CAACA,IAEJ,MAAM0kC,EAAiCt3E,IACrC,GAAW,MAAPA,EAAa,CACf,IAAIq3E,EAAgBz/D,EAAMyqB,OACvBzU,GAASA,EAAKl2B,OAASsI,EAAIoH,IAG9B7B,EACE2c,GAAYY,mBACVu0D,EAAc,KAMpBtkC,GAAa,IAqCfp+C,oBAAU,KACR,GAAe,GAAXmV,EAAc,CAChB,GAAIygB,GAAgBA,EAAa/xB,OAAS,EAAG,CAC3C,IAAI6+E,EAAgB9sD,EAAa8X,OAC9BzU,GAASA,EAAK9jB,SAAWA,GAE5B+oC,EAActoB,EAAa/xB,OAAS,EAAI6+E,EAAc,GAAGz/D,MAAQ,IAGnErS,EAAS8iB,GAAcI,sBAAsB3e,MAG9C,CAACA,IAEJnV,oBAAU,KACsB,GAA1B5C,EAAMg0B,SAASjc,cAA6BxQ,GAAbkG,EAAO4H,IACxCyrC,EAAc9gD,EAAMg0B,SAASnO,QAE9B,CAAC7lB,EAAMg0B,SAASjc,UASnBnV,oBAAU,KAP+BqL,MAQnCg8E,GAPO,OAD4Bh8E,EASLg8E,KAPhCH,EAAa77E,EAAIoH,IACjB20E,EAAe/7E,EAAIrH,QAQpB,CAACqjF,IAkBJ,SAASzjD,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,yBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,2BAIV,SAASimC,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAEpB,OACEjmC,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,2DACA,0DAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,eACHmpC,SAAWhpC,GA3DHA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXzO,KAAM5G,EAAMg0B,SAASptB,KACrBmR,QAAS8oC,EAAaA,EAAWxrC,GAAKrV,EAAMg0B,SAASjc,QACrDkc,kBAAmBj0B,EAAMg0B,SAASC,mBAGhCxmB,EAAO4H,GACT7B,EAASmgB,GAAeO,iBAAiBzmB,EAAO4H,GAAIzE,GAAS,IAE7D4C,EAASmgB,GAAea,eAAe5jB,KA+CR8tC,IAErBn+C,IAAAC,cAAComC,KAAU,CACTC,UAAU,+BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,UA1KA04C,EA0KuB,OA1Kb9oC,IAC9BhC,EAASmgB,GAAepe,cAAc+oC,EAAM9oC,MA0KxB7P,MAAO3F,EAAMg0B,SAASptB,MAAQ,GAC9BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC1Dj9B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOk7C,EACPj7C,SAAUA,CAAC4P,EAAOs7B,KAChBgQ,EAAchQ,IAEhBd,WAAYm1C,EACZp0C,cAAeA,CAACv7B,EAAOkwE,KACrBN,EAAmBM,IAErBrwE,GAAG,2BACH1D,QAAS0zE,EACT7oD,OAAO,SACPx4B,SAAsB,MAAX+T,GAA8B,IAAXA,EAC9BvU,QAAQ,WACRytC,aAAc4P,EACd3P,eAAiBy0C,GAAiBA,EAAcA,EAAY/+E,KAAO,GACnEwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,iBAAWhB,WAAS,KAC1EA,WAAS,MAId9tB,EAAO4H,GAAK9U,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACpCuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC7Dj9B,IAAAC,cAACqD,IAAU,CAAC7C,UAAU,KAAKwC,QAAQ,WAAWsD,MAAM,UAAS,4CAI/DvG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACqwC,KAAY,CACXlrC,MAAOskF,EACPrkF,SAAUA,CAAC4P,EAAO60E,KAChBH,EAAgBG,IAElBr6C,WAAYm6C,EACZp5C,cAAeA,CAACv7B,EAAO80E,KACrBF,EAAqBE,IAEvBj1E,GAAG,2BACH1D,QAASA,EACT6qB,OAAO,SACPh5B,QAAQ,WACRytC,aAAcg5C,EACdxlC,qBAAsBA,CAACtT,EAAQxrC,IAAUwrC,EAAO97B,IAAM1P,EAAM0P,GAC5D67B,eAAgBC,GAAUA,EAAOvqC,KACjCwqC,YAAc3jC,GAAWlN,IAAAC,cAAC6wC,KAAS5wC,OAAAC,OAAA,GAAK+M,EAAM,CAAE8uB,MAAM,6BAA0BhB,WAAS,KACzFA,WAAS,KAGbh7B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAE3E,WAAY,MAAOoE,eAAgB,WAClF3C,IAAAC,cAAC2D,IAAM,CAACV,MAAO,CAAE/D,MAAO,QAASi6B,WAAY,OAAQt8B,gBAAiB,QAAUuP,KAAK,cAAcyI,GAAG,cAAc7R,QAAQ,YAAYvD,UAAU,MAAMe,UAAU,IAAI+C,QAxM3JwmF,KACxBN,GAAgC,GAAhBA,EAKjBjqF,EAAMg0B,SAASC,kBAAkBqc,OAAOqU,GAAMA,EAAG5mC,WAAam+B,SAASn+B,IAAYtX,OAAS,EAC9F2G,IAAMlS,MAAM,qDAGZ8E,EAAMg0B,SAASC,kBAAkB3lB,KAAK,CACpC,UAAayP,EACb,WAAc/d,EAAMg0B,SAAS3e,GAC7B,QAAW,CACT,KAAQ00E,KAGZD,EAAa,GACbI,EAAgB,OAhBhB98E,IAAMlS,MAAM,8BAsM2M,gBAAeqF,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMipD,UAI/O,MAEJrkD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIp1B,MAAM,SAASrD,MAAO,CAAE+5B,UAAW,EAAGp/B,aAAc,IAEtD,MAApC4B,EAAMg0B,SAASC,mBAA6Bj0B,EAAMg0B,SAASC,kBAAkBxtB,OAAS,EACrFzG,EAAMg0B,SAASC,kBAAkBjnB,IAAIouB,GAEvB,KAATA,EAAE/lB,IAAa+lB,EAAErd,UAChBxd,IAAAC,cAAC+mC,KAAI,CACH/jC,QAAQ,SACR2wC,GAAI,CACF3W,UAAW,GACX7D,WAAY,GACZx6B,YAAa,GACbJ,QAAS,EACT1B,gBAAiB,UACjBvB,MAAO,OACPgD,WAAY,SACZymC,IAAK,OAEPtG,MAAO7D,EAAE/lB,GACT1T,IAAK,UAAYy5B,EAAE/lB,GACnBknB,MAAK,GAAAv+B,OAAKo9B,EAAEjqB,QAAUiqB,EAAEjqB,QAAQvK,KAAOw0B,EAAErd,UAAS,KAClD8mC,WAAYtkD,IAAAC,cAACu5C,KAAe,CAACp+C,KAAMmpD,KAAYrhD,MAAO,CAAE3H,MAAO,OAAQG,SAAU,MACjF8oD,SAAUA,KAAMylC,OA9MVn1E,EA8MoC+lB,EAAErd,eA7MtEoc,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,yEACb37B,SAAUhE,EAAMg0B,SAAStb,UACzBknB,iBAAkB5/B,EAAMg0B,SAAStb,UAAY,0BAAyB,kBACrE3H,KAAK,KACN/Q,EAAMg0B,SAASC,kBAAoBj0B,EAAMg0B,SAASC,kBAAkBqc,OAAOqU,GAAMA,EAAG5mC,WAAam+B,SAAS7mC,IAC1G4kB,EAAYmB,IAAMA,KARY/lB,SAgNN,MAGN,MAGR9U,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,eAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXN,QAAQ,YACRnJ,MAAM,EACNiH,KAAK,SACL0C,SAAUhE,EAAMg0B,SAAStb,UACzB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMg0B,SAAStb,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE5DuN,EAAO4H,GAAMrV,EAAMg0B,SAAStb,UAAY,iCAA6B,YAAgB1Y,EAAMg0B,SAAStb,UAAY,8BAA0B,kBAnSzI4lC,UC8NlBmsC,GAAuBngD,qBAC3BxB,aANuB/mC,IAChB,CACLoP,QAASpP,EAAMoP,UAIQ,KAAM,KAA/B23B,CAAqCyB,aA3TvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,EAAG,EAAG,EAAG,MAyTGurC,CArTtBvqC,IAEf,MAAMm6B,EAAUC,cACV5mB,EAAW6mB,gBACX,QAAE/5B,GAAYN,GACd,QAAEmR,GAAYnR,EAAMmR,SACpB,UAAEuH,GAAc1Y,EAAMmR,SACtB,eAAEgG,GAAmBnX,EAAMmR,SAE1By4B,EAAMwQ,GAAWlgB,mBAAS,IAC1BmgB,EAAOC,GAAYpgB,mBAAS,KAC5BqgB,EAAMC,GAAWtgB,mBAAS,KAC1BugB,GAAgBC,aAAYH,EAAM,MAClCI,GAASzgB,mBAAS,SAClB0gB,GAAa1gB,mBAAS,QACtBwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,IAEnC,QAAEniB,GAAYuuB,aACjBvkC,GAAUA,EAAMy2B,cAGnB51B,oBAAU,KAEUi4C,EAACjR,EAAMyQ,EAAOE,KAE9B,IAAI/jC,EAAc,CAChBlU,KAAMsnC,EACN9vB,MAAOugC,EACPtgC,KAAMwgC,EACN35B,MAAO+5B,EACP95B,UAAW+5B,EACX1iC,QAAUH,GAAsB,IAAXA,GAAiBA,GAGxCvE,EAAS8iB,GAAcC,WAAW/f,GAAa,KAIjDqkC,CAAUjR,EAAMyQ,EAAOI,IACtB,CAAC7Q,EAAMyQ,EAAOI,EAAcE,EAAOC,EAAW7iC,IAEjDnV,oBAAU,OAEP,CAAC5C,EAAMmR,QAAQA,UAElBvO,oBAAU,OAEP,CAACuU,IA0BJvU,oBAAU,OAEP,CAAC86C,EAAO19C,EAAMmR,QAAQuH,YAEzB,MAAMojC,EAAmBA,CAACtmC,EAAOumC,KAC/B3B,EAAQ2B,IAGJ6B,EAAqBpoC,IACzB8kC,EAAS4B,SAAS1mC,EAAM7G,OAAOhJ,MAAO,KACtCy0C,EAAQ,IAmBV,OACE75C,IAAAC,cAAC8B,EAAI,CAACrC,UAAWK,EAAQlD,KAAMmF,MAAM,eACnChC,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAAA,gBACG+G,IAAc4J,GAAWA,EAAQ1K,OAAS,EACzClG,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQ0K,EAAQ1K,OAChB22C,SAAU,4BACV76C,MAAO,uBACPujC,KAAM,WACNuX,WAAYv1C,GAAmBiB,mBAGjCxI,IAAAC,cAAC28C,GAAY,CACXlV,KAAM,kBACNxhC,OAAQ,EACR22C,SAAU,4BACV76C,MAAO,uBACPujC,KAAM,WACNuX,WAAYv1C,GAAmBiB,mBAGnCxI,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACK,GAAI,GAAIr8B,GAAI,GAAID,GAAI,GAAIu8B,GAAI,IAC1C37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACI,GAAI,EAAGr8B,GAAI,EAAGD,GAAI,EAAGu8B,GAAI,IAClC37B,IAAAC,cAACu6C,IAAK,CACJ1lC,GAAG,OACHknB,MAAM,OACNye,YAAY,SACZr1C,MAAO40C,EACP30C,SApCa4P,IAC3BglC,EAAQhlC,EAAM7G,OAAOhJ,QAoCP41B,WAAS,MAIfh7B,IAAAC,cAAA,WACAD,IAAAC,cAAC0+B,KAAc,CAACl+B,UAAW8lC,KACzBvmC,IAAAC,cAAC2+B,KAAK,KACJ5+B,IAAAC,cAAC4+B,KAAS,KACR7+B,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,UACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,QACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,cACX/+B,IAAAC,cAAC8+B,KAAS,KAAC,iBACT/+B,IAAAC,cAAC8F,KAAO,CACN7C,MAAO,CAAEyiC,YAAa,GACtB3jC,MAAM,oEAENhC,IAAAC,cAAC4kE,KAAQ,CAACllE,KAAM,EAAGi0C,GAAI,CAAErU,cAAe,cAG5Cv/B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SAAQ,iBAG7BvG,IAAAC,cAACumC,KAAS,UACPx/B,IAAc4J,GAAWA,EAAQ1K,OAC9B0K,EAAQnE,IAAKouB,IAAO,IAADsvD,EAAAC,EAAAC,EAAAC,EACnB,OACEtqF,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,EAAC59B,IAAKy5B,EAAE/lB,IACrB9U,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAEx0B,KAAOw0B,EAAEx0B,KAAKO,cAAgB,GAAG,IAAEi0B,EAAEtE,UAAYsE,EAAEtE,UAAU3vB,cAAgB,IAElF5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/gB,MAAQ+gB,EAAE/gB,MAAMtM,cAAgB,IAErCxN,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC7B9L,EAAE/kB,YAAc+kB,EAAE/kB,YAAYzP,KAAKO,cAAgB,IAEtD5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC5B9L,EAAEzK,gBAAkByK,EAAEzK,eAAelqB,OAAS,EAAwB,QAAvBikF,EAAItvD,EAAEzK,eAAe,UAAE,IAAA+5D,GAAO,QAAPC,EAAnBD,EAAqB7kE,aAAK,IAAA8kE,GAAM,QAANC,EAA1BD,EAA4B/jF,YAAI,IAAAgkF,OAAb,EAAnBA,EAAkCzjF,cAAiBi0B,EAAE1gB,kBAAoB0gB,EAAE1gB,iBAAiBjU,OAAS,EAA8C,QAA7CokF,EAAIzvD,EAAE1gB,iBAAiB,GAAG7B,QAAQmB,mBAAW,IAAA6wE,OAAA,EAAzCA,EAA2C1jF,cAAgB,SAE5N5G,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OACP,MAArB9L,EAAE/D,iBAAgD,GAArB+D,EAAE/D,gBAA2B,MAAQ,UAEtE92B,IAAAC,cAAC8+B,KAAS,CAACx4B,MAAM,SACfvG,IAAAC,cAACunC,GAAa,CACZE,KAAM,gBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,OACXxmC,UAAU,IACV+C,QAASA,IACPqD,GAAQkH,KAAK,YAADtQ,OAAao9B,EAAE/lB,KAE7BnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,UACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,WAMnBx9C,IAAAC,cAACunC,GAAa,CACZE,KAAM,kBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,SACXzjC,QAASA,KAAMi6C,OAtH1B3oC,EAsHsC+lB,EAAE/lB,QArH3D8kB,EAAQ,CACN53B,MAAO,0CACPo9B,YAAa,2CACb37B,SAAUhE,EAAMmR,QAAQuH,UACxBknB,iBAAkB5/B,EAAMmR,QAAQuH,UAAY,0BAAyB,gBACrEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8iB,GAAclZ,kBAAkB/H,EAAI0C,MAR5B1C,OAuHWnV,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,WACbhC,IAAAC,cAACk5B,KAAU,UAKG,GAArB0B,EAAE/D,iBACD92B,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,cACXtnC,KAAK,QACL6D,QAASA,IA5KTq3B,KAClCjB,EAAQ,CACN53B,MAAO,wCACPo9B,YAAa,kDACb37B,SAAUhE,EAAMmR,QAAQuH,UACxBknB,iBAAkB5/B,EAAMmR,QAAQuH,UAAY,wBAA0B,kBACtEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8iB,GAAc+B,mBAAmB+C,EAAGrjB,OAoKE+yE,CAA2B1vD,EAAE/lB,KAE5C9U,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,oBACbhC,IAAAC,cAAC6kD,KAAQ,UAKjB9kD,IAAAC,cAACunC,GAAa,CACZE,KAAM,uBACNM,IAAKA,IACHhoC,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,8BACXtnC,KAAK,QACL6D,QAASA,KAAMgnF,OA9Kf1wE,EA8K0C+gB,EAAE/gB,WA7K9E8f,EAAQ,CACN53B,MAAO,gEACPo9B,YAAa,yFACb37B,SAAUhE,EAAMmR,QAAQuH,UACxBknB,iBAAkB5/B,EAAMmR,QAAQuH,UAAY,qBAAuB,eACnEmnB,iBAAkB,YACjB9uB,KAAK,KACNyC,EAAS8iB,GAAc2B,qBAAqB5d,MARZA,QAgLA9Z,IAAAC,cAAC8F,KAAO,CAAC/D,MAAM,+CACbhC,IAAAC,cAAC6xD,KAAQ,eAa3B35C,EACEsuB,MAAMuU,MAAM,KAAM,CAAE90C,OAAQ,IAAKuG,IAAI,CAACyB,EAAGmB,IACvCrP,IAAAC,cAAC6+B,KAAQ,CAACE,OAAK,GACbh/B,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,UAEtB7mC,IAAAC,cAAC8+B,KAAS,CAACt+B,UAAU,KAAKkmC,MAAM,OAC9B3mC,IAAAC,cAAC2mC,KAAQ,CAACC,UAAU,YAK1B7mC,IAAAC,cAAC6+B,KAAQ,KACP9+B,IAAAC,cAAC8+B,KAAS,CAACkc,QAAS,EAAG9T,QAAS,EAAG5gC,MAAM,UAAS,kCAOhEvG,IAAAC,cAACi7C,KAAe,CACdz6C,UAAU,MACV06C,MAAOvkC,EACPyyB,KAAMA,EACN+R,iBAAiB,uBACjBC,mBAAoBh3C,IAAA,IAAC,KAAE5C,EAAI,GAAEH,GAAI+C,EAAA,SAAA5G,OAAQgE,EAAI,KAAAhE,OAAI6D,EAAE,QAAA7D,OAAOmZ,IAC1D0kC,aAAcC,EACdE,YAAa3B,EACb4B,oBAAqB2B,KAI3BpV,GAAIA,IAAMjoC,IAAAC,cAAC+8C,GAAY,a,oCC0PzBytC,GAA2B1gD,qBAC/BxB,aALuB/mC,GAChBA,EAIkB,KAAM,KAA/B+mC,CAAqCyB,aAtiBvBlsC,IAAK,CACnBjB,KAAM,CACJ2B,QAASV,EAAMW,QAAQ,IAEzBoH,QAAS,CACPnH,QAAS,OACTH,WAAY,SACZ0gC,cAAe,SACfsgB,UAAW,UAEbl5C,KAAM,CACJ42B,UAAWn/B,EAAMW,QAAQ,IAE3B+gD,aAAc,CACZ5gD,YAAad,EAAMW,QAAQ,GAC3BkE,eAAgB,iBAElBwD,OAAQ,CACNjH,OAAQ,IACRC,MAAO,IACPb,aAAc,OACd2F,mBAAoB,OACpBC,gBAAiB,OACjBC,OAAQ,WAEVs7C,SAAU,CACRxhD,OAAQH,EAAMG,OAAOE,OAAS,EAC9B5C,MAAO,UA2gB4ByuC,CAvgBlBvqC,IAAW,IAADirF,EAE7B,MAAMz3E,EAAW6mB,gBACX,QAAE/5B,EAAO,UAAEL,EAAS,OAAE65B,GAAoB95B,EAATG,EAAIC,YAAKJ,EAAKK,KAC7Ci8C,OAAO,OAAE7uC,IAAazN,EACxBm+C,EAAU59C,IAAM69C,UAAU,OACzB8sC,EAAeC,GAAoBjxD,oBAAS,GAE7C7jB,EAAciwB,aAAavkC,GAAUA,EAAMsU,YAAYA,cAEtD,CAAE4jB,GAAe15B,IAAM25B,SAAS,IAChCwjB,EAAOC,GAAYp9C,IAAM25B,UAAS,GAEzCt3B,oBAAU,KACR4Q,EAAS8iB,GAActgB,SACvBxC,EAAS2C,GAAkBC,yBAEvB3I,EAAO4H,IACT7B,EAAS8iB,GAAcO,eAAeppB,EAAO4H,KAC7C7B,EAASmK,GAAUG,gBAAgBrQ,EAAO4H,MAE1C7B,EAAS8iB,GAActgB,UAGxB,IAEH,MAAOymC,EAAWC,GAAgBxiB,oBAAS,GACrCyiB,EAAkBA,IAAMD,GAAcD,IAMtC,IAAE/pC,GAAQ4zB,aACbvkC,GAAUA,EAAM2Q,KAGnB9P,oBAAU,OAEP,CAAC86C,EAAO19C,EAAMmR,QAAQuH,YAEzB,MAAM2lC,EAAgBC,GAAU9oC,IAC9BhC,EAAS8iB,GAAc/gB,cAAc+oC,EAAM9oC,KAoC7C,SAASgxB,IACP,OACEjmC,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,oBAKV,SAASwiD,IACP,OACEziD,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,sBAKV,SAAS4qF,IACP,OACE7qF,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI,qBAKV,SAAS6qF,IACP,OACE9qF,IAAAC,cAACqD,IAAU,CAACL,QAAQ,MAClBjD,IAAAC,cAAA,SAAI4S,GAAYQ,WAAa,gBAAkB,WAKrD,SAAS6yB,IACP,OAAIh5B,EAAO4H,GACF9U,IAAAC,cAACwiD,EAAQ,MAEXziD,IAAAC,cAACgmC,EAAU,MAGpB,SAAS8kD,IACP,OAAI79E,EAAO4H,GACF9U,IAAAC,cAAC6qF,EAAa,MAEhB9qF,IAAAC,cAAC4qF,EAAe,MAGzB,OACE7qF,IAAAC,cAAC8B,EAAI,CACHrC,UAAWK,EAAQlD,KACnBmF,MACEkL,EAAO4H,GACH,iDACA,gDAGN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,cACHmpC,SAAWhpC,GAzFHA,KAEpB,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXzO,KAAM5G,EAAMmR,QAAQvK,KACpB8M,MAAO1T,EAAMmR,QAAQuC,MACrBojB,UAAW92B,EAAMmR,QAAQ2lB,UACzBzc,MAAOra,EAAMmR,QAAQkJ,MAAMtM,cAC3BgpB,cAAgBtpB,EAAO4H,GAAMrV,EAAMmR,QAAQ4lB,cAAgB,EAC3D3c,QAASpa,EAAMmR,QAAQiJ,SAAWpa,EAAMmR,QAAQiJ,QAAQtN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAC3H2vB,UAAWn3B,EAAMmR,QAAQgmB,UACzBhd,SAAUna,EAAMmR,QAAQgJ,UAAYna,EAAMmR,QAAQgJ,SAASrN,MAAM,KAAK3P,KAAK,IAAIqK,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAG5HiG,EAAO4H,GACT7B,EAAS8iB,GAAcmB,gBAAgBhqB,EAAO4H,GAAIzE,GAAS,IAE3D4C,EAAS8iB,GAAcqB,cAAc/mB,KAwEN8tC,IAErBn+C,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAACn4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,MAAO1gC,WAAY,WAC1EyB,IAAAC,cAAComC,KAAU,CACTC,UAAU,0BACVtkC,MAAOhC,IAAAC,cAACimC,EAAS,QAEnBlmC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACT+H,aAAW,QACXxmC,UAAU,IACV+C,QAASA,KA/H3B44C,KAkIkBz8C,KAAK,SAELK,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,SACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACs8C,KAAQ,CAAC3I,GAAI,CAAE4I,MAAO,SAAUjhD,MAAO,QAAUG,SAAS,gBAMrEsE,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,OACHknB,MAAM,SACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,QACvB14C,MAAO3F,EAAMmR,QAAQvK,MAAQ,GAC7BpD,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGpBr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,cACNC,OAAO,SACPC,QAASlvB,GAAYiB,iBACrB5I,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQ2lB,WAAa,GAClCtzB,QAAQ,WACRm7C,WAAY,CAAC,YACbC,cAAe,CAAC,4BAGnBnxC,EAAO4H,GACN9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,gBACHknB,MAAM,oBACNv4B,UAAQ,EACRw4B,OAAO,SACP72B,MAAO3F,EAAMmR,QAAQ4lB,cACrBsF,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,qBAEJ+iD,mBAAQltC,SACR9O,IAAc8O,GACdA,EAAY5P,QACZ4P,EAAYrJ,IAAKw2C,GACfjjD,IAAAC,cAACy+C,KAAQ,CAACt9C,IAAK6hD,EAAI79C,MAAOA,MAAO69C,EAAI79C,OAClC69C,EAAInoD,SAMfkF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACs+C,mBAAe,CACdH,WAAY,CAAC,YACbC,cAAe,CAAC,yBAChBp7C,QAAQ,WACR6R,GAAG,gBACHknB,MAAM,oBACNv4B,UAAQ,EACRw4B,OAAO,SACP72B,MAAO,EACP02B,gBAAiB,CACfC,QAAQ,GAEVf,WAAS,EACTwjB,cAAY,EACZC,QAAQ,iBAERz+C,IAAAC,cAACy+C,KAAQ,CAACj7C,UAAQ,EAAC2B,MAAM,IACvBpF,IAAAC,cAAA,UAAI,oBAEND,IAAAC,cAACy+C,KAAQ,CAACC,UAAQ,EAACv5C,MAAO,GAAG,mBAInCpF,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,UACHknB,MAAM,WACNC,OAAO,SACP52B,SAAUy4C,EAAa,WACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQiJ,UAAY,GAC3C5W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,WACHknB,MAAM,YACNC,OAAO,SACP52B,SAAUy4C,EAAa,YACvB14C,MAAO+B,GAAU1H,EAAMmR,QAAQgJ,WAAa,GAC5C3W,QAAQ,cAGZjD,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,YACHknB,MAAM,eACNj7B,KAAK,SACLk7B,OAAO,SACP52B,SAAUy4C,EAAa,aACvB14C,MAAO3F,EAAMmR,QAAQgmB,WAAa,GAClC3zB,QAAQ,eAGViK,EAAO4H,IACP9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,GAAIz4B,MAAO,CAAExE,QAAS,OAAQugC,cAAe,WAC/Ej/B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,kCACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,yBAINr+C,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,GAAIiqC,YAAa,IAC9C3lC,IAAAC,cAAA,SAAG,6EAKTR,EAAMmR,SAAWnR,EAAMmR,QAAQ6lB,qBAC/Bz2B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,uBACHknB,MAAM,gCACNC,OAAO,SACP72B,MAAO3F,EAAMmR,QAAQ6lB,qBAAuBjnB,KAAO/P,EAAMmR,QAAQ6lB,sBAAsBjE,OAAO,oBAAsB,GACpHvvB,QAAQ,cAIZ,KAEAkP,GAAOA,EAAIvB,SAAW1D,EAAO4H,GAC7B9U,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZl8B,UAAWK,EAAQ87B,UACnBb,WAAS,EACTlmB,GAAG,kBACHknB,MAAM,yBACNC,OAAO,SACP72B,MAAO+M,EAAIvB,QAA0B,QAAnB85E,EAAGv4E,EAAIvB,QAAQvK,YAAI,IAAAqkF,OAAA,EAAhBA,EAAkB9jF,cAAgB,GACvD3D,QAAQ,cAIZ,OAINjD,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACrC37B,IAAAC,cAACqD,IAAU,CAACJ,MAAO,CAAExH,SAAU,OAAQiqC,YAAa,QAAS,6BAI/D3lC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACfsgB,UAAW,QACX58C,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,cAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAMmR,QAAQuH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmR,QAAQuH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DuN,EAAO4H,GAAMrV,EAAMmR,QAAQuH,UAAY,4BAA2B,YAAgB1Y,EAAMmR,QAAQuH,UAAY,yBAAwB,aAK5IjL,EAAO4H,IACN9U,IAAAC,cAACm7B,KAAIl7B,OAAAC,OAAA,GACCP,EAAI,CACRF,UAAWU,kBAAKL,EAAQlD,KAAM6C,GAC9B27B,WAAS,EACT58B,QAAS,IAETuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAAE+5B,UAAW,KAC7Dj9B,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACl8B,GAAI,GAAIu8B,GAAI,IACrB37B,IAAAC,cAAC0F,KAAI,KACH3F,IAAAC,cAAC+9C,iBAAa,CACZt+C,UAAWK,EAAQ8iD,KACnB/gB,IAAK8b,EACL9oC,GAAG,mBACHmpC,SAAWhpC,GAvWDA,KAEhC,IAAI5E,EAAU,CACZyE,GAAI5H,EAAO4H,GACXgF,MAAOra,EAAMmR,QAAQkJ,OAGnB5M,EAAO4H,IACT7B,EAAS8iB,GAAcoB,qBAAqBjqB,EAAO4H,GAAIzE,GAAS,KA+VvB26E,IAErBhrF,IAAAC,cAAComC,KAAU,CACTrkC,MAAOhC,IAAAC,cAAC8qF,EAAc,MACtBzkD,UAAWzzB,GAAYQ,WAAa,6DAA4D,2BAElGrT,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAAC2F,KAAW,CAACvG,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,IACvC37B,IAAAC,cAACm7B,KAAI,CAACC,WAAS,EAAC58B,QAAS,GACvBuB,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAAC27B,iBAAa,CACZ34B,QAAQ,WACRg5B,OAAO,SACPjB,WAAS,EACTgB,MAAM,WACN52B,MAAO3F,EAAMmR,QAAQkJ,OAAS,GAC9Bpa,UAAWK,EAAQ87B,UACnBK,QAASlvB,GAAYyB,iBACrBpJ,SAAUy4C,EAAa,SACvBhpC,GAAG,QACHzI,KAAK,QACLiyC,aAAa,QACbF,WAAY,CAAC,WAAY,WACzBC,cAAe,CACb,oCACA,sBAEF56C,SAA8B,GAApBhE,EAAMmR,QAAQkE,IAA4B,GAAjB61E,KAGvC3qF,IAAAC,cAACunC,GAAa,CACZE,KAAM,qBACNM,IAAKA,IACHhoC,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,EAAGD,GAAI,EAAGs8B,GAAI,EAAGC,GAAI,IAClC37B,IAAAC,cAACi/B,KAAU,CACTh8B,MAAO,CAAE+5B,UAAW,IACpB1hC,MAAM,UACNiI,QAASA,IAAMonF,GAAiB,IAEhC5qF,IAAAC,cAAC8F,KAAO,CAAC/D,MAAO,kCACdhC,IAAAC,cAAC8F,KAAO,KACN/F,IAAAC,cAACu9C,KAAQ,cASxB3qC,GAAYQ,YACXrT,IAAAC,cAAAD,IAAAmB,SAAA,KACEnB,IAAAC,cAACuG,KAAO,MACRxG,IAAAC,cAACwG,KAAW,KACVzG,IAAAC,cAACm7B,KAAI,CAACE,MAAI,EAACj8B,GAAI,GAAID,GAAI,GAAIs8B,GAAI,GAAIC,GAAI,GAAIz4B,MAAO,CAChDxE,QAAS,OACTH,WAAY,QACZ0gC,cAAe,MACf1D,UAAW,QACX54B,eAAgB,UAEhB3C,IAAAC,cAACsD,EAAY,CACXN,QAAQ,WACRO,QAASA,IAAMqD,GAAQkH,KAAK,cAC7B,YAGD/N,IAAAC,cAACsD,EAAY,CACXxC,KAAK,SACLkC,QAAQ,YACRnJ,MAAM,EACN2J,SAAUhE,EAAMmR,QAAQuH,UACxB+kB,UAAWl9B,IAAAC,cAACw/B,KAAQ,MACpBrC,QAAS39B,EAAMmR,QAAQuH,WAAanY,IAAAC,cAACo9B,KAAgB,CAAC19B,KAAM,MAE3DuN,EAAO4H,GAAMrV,EAAMmR,QAAQuH,UAAY,uBAAyB,mBAAuB1Y,EAAMmR,QAAQuH,UAAY,oBAAsB,6BAiBnK+jC,EACCl8C,IAAAC,cAAC4lC,GAAS,CACRtM,OAAQ6iB,EACR5iB,MAAO0iB,EACPz8C,MAAOA,EACPqmC,KAAMv+B,GAAmBe,mBAG3B,U,yBCjjBV,MAAMq8B,GAAS4gD,KAAWt9B,OAAO,CAC/BhF,IAAK,CACHhkB,cAAe,MACfvjC,SAAU,EACVoqF,UAAW,EACXC,WAAY,EACZC,YAAa,EACbxoF,aAAc,GAEhBytF,OAAQ,CACNhsD,cAAe,UAEjBisD,cAAe,CACb1sF,QAAS,EACT9C,SAAU,GACVD,WAAY,OACZ8/B,UAAW,SACX/9B,aAAc,GAEhB2tF,kBAAmB,CACjB3sF,QAAS,EACT9C,SAAU,GACVD,WAAY,OACZ8/B,UAAW,UAEb6vD,2BAA4B,CAC1B5sF,QAAS,EACT9C,SAAU,GACVD,WAAY,OACZ8/B,UAAW,QAEb8vD,QAAS,CACPpsD,cAAe,MACf1gC,WAAY,SACZf,aAAc,GAEhB8tF,YAAa,CACXrsD,cAAe,MACf1gC,WAAY,UAEdgtF,UAAW,CACT7vF,SAAU,GACVD,WAAY,OACZ0D,MAAO,MACPo8B,UAAW,OACX/8B,QAAS,EACTwnF,YAAa,GAEfwF,UAAW,CACT9vF,SAAU,GACVyD,MAAO,MACPo8B,UAAW,OACXoK,YAAa,GAEfhD,OAAQ,CACNpH,UAAW,SACX/8B,QAAS,GAEX6pD,gBAAiB,CACf1lD,eAAgB,SAChBxD,MAAO,MACPmjC,UAAW,WAEbmpD,WAAY,CACVtsF,MAAO,IACPD,OAAQ,IACRojC,UAAW,aAIT4jD,GAAaniF,YAAOhC,KAAPgC,CAAaM,IAAA,IAAC,MAAEvG,GAAOuG,EAAA,MAAM,CAC9C7F,QAAS,GACT4nC,cAAe,GACflnC,OAAQ,OACRC,MAAO,UA8PHusF,GAAkC3hD,qBAAWxB,aAJ1B/mC,GAChBA,EAGmE,KAAM,KAA/B+mC,CA3PvB9oC,IAAW,IAADksF,EAAAC,EAAAC,EAAAC,EAAAC,EACpC,MAAMrqF,EAAWq+C,yBAEV5C,EAAOC,GAAYzjB,oBAAS,IAC3BoiB,OAAO,OAAE7uC,IAAazN,GACxB,WAAE4qB,GAAe3oB,EAASF,OAAS,GACnCwqF,EAAU3hE,EAAWI,oBACrB0vC,EAAS9vC,EAAWG,oBACnByhE,EAAaC,GAAkBvyD,mBAAS,OACxCwyD,EAAuBC,GAA4BzyD,mBAAS,OAC5D0yD,EAAkBC,GAAuB3yD,oBAAS,GAGnD4yD,EAAqB96E,UACzB,MAAM9B,QAAiB68E,MAAMv6E,GAEvBqgB,QAAa3iB,EAAS2iB,OAC5B,OAAO,IAAIxiB,QAASsC,IAClB,MAAMq6E,EAAS,IAAIC,WACnBD,EAAOE,UAAY,IAAMv6E,EAAQq6E,EAAOG,QACxCH,EAAOI,cAAcv6D,MAkCzB,OA9BAjwB,oBAAU,KACRkqF,EAAmBO,MAAet8E,KAAK07E,IACtC,IAEH7pF,oBAAU,KACR,GAAI83D,GAAUA,EAAOj0D,OAAS,EAAG,CACJuL,WACzB,MAAMs7E,QAAqBj9E,QAAQ2pD,IACjCU,EAAO1tD,IAAIgF,UACT,GAtBUQ,EAsBK+6E,EAAM1xE,aAtBH,yBAAyB2xE,KAAKh7E,GAsBZ,CAClC,MAAMi7E,QAAoBX,EAAmBS,EAAM1xE,cACnD,OAAO4xE,EAAW5vF,wBAAA,GAAQ0vF,GAAK,IAAEG,OAAQD,IAAgB,KAxBjDj7E,MA0BV,OAAO,QAGXm6E,EAAyBW,EAAah9C,OAAOq9C,UAC7Cd,GAAoB,IAGtBe,KAED,CAAClzB,IAEJ93D,oBAAU,KACR+iD,WAAW,KACThI,GAAS,IACR,OACF,IAGDD,GACEn9C,IAAAC,cAAA,OAAKiD,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,SACnCc,IAAAC,cAACmmF,KAAS,CAACljF,MAAO,CAAE/D,MAAO,OAAQD,OAAQ,UACzCc,IAAAC,cAAComF,KAAQ,CAAClnF,MAAM,QACda,IAAAC,cAACimF,GAAU,CAACM,YAAY,YAAY7mF,KAAK,KAAKuD,MAAOyhC,GAAO0E,KAAMgpB,MAAM,GACtEryD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAE+4B,OAAQ,KACrBj8B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,KAAMoP,MAAM,GAE/BryD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,YACjFyB,IAAAC,cAAC2nD,KAAK,CAACxhD,IAAK6lF,EAAa/oF,MAAOyhC,GAAO0jB,mBAIzCroD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,MAAOynF,YAAa,KACrGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAE1tF,aAAc,KAClDwC,IAAAC,cAACggF,KAAI,KAAC,uBAKVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,SAEpCa,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAEpuF,gBAAiB,aACrDkD,IAAAC,cAACggF,KAAI,KAAC,UAIRjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAO0mD,SAClBrrF,IAAAC,cAACggF,KAAI,CAAC/8E,MAAO,CAACyhC,GAAO4mD,UAAW,CAAEzuF,gBAAiB,aAAc,WACjEkD,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO6mD,WAAsB,OAAVnhE,QAAU,IAAVA,GAAgB,QAANshE,EAAVthE,EAAYjf,YAAI,IAAAugF,GAAO,QAAPC,EAAhBD,EAAkBrmE,aAAK,IAAAsmE,OAAb,EAAVA,EAAyBvlF,OAI3DrG,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAO0mD,SAClBrrF,IAAAC,cAACggF,KAAI,CAAC/8E,MAAO,CAACyhC,GAAO4mD,UAAW,CAAEzuF,gBAAiB,aAAc,QACjEkD,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO6mD,WAAsB,OAAVnhE,QAAU,IAAVA,GAAgB,QAANwhE,EAAVxhE,EAAYjf,YAAI,IAAAygF,OAAN,EAAVA,EAAkBvlF,SAIpDtG,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAO0mD,SAClBrrF,IAAAC,cAACggF,KAAI,CAAC/8E,MAAO,CAACyhC,GAAO4mD,UAAW,CAAEzuF,gBAAiB,aAAc,SACjEkD,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO6mD,WAAYnhE,EAAWjf,KAAK2O,UAAY,MAI9D/Z,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAO2mD,aAClBtrF,IAAAC,cAACggF,KAAI,CAAC/8E,MAAO,CAACyhC,GAAO4mD,UAAW,CAAEzuF,gBAAiB,aAAc,QACjEkD,IAAAC,cAACggF,KAAI,CAAC/8E,MAAOyhC,GAAO6mD,WAAYh8E,KAAiB,OAAV6a,QAAU,IAAVA,OAAU,EAAVA,EAAYxe,MAAM2mB,OAAO,kBAMtExyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,kBAAmB,CAAEruF,gBAAiB,UAAWkpF,YAAa,EAAGD,WAAY,KAChG/lF,IAAAC,cAACggF,KAAI,KAAC,iBAIRjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MAEnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOrC,gBAAiB,UAAW6F,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACpIhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAC,WAIVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SACjFyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,kBAAmB,CAAEruF,gBAAiB,aACzDkD,IAAAC,cAACggF,KAAI,KAAC,aAIZjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACxGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,MAAY,OAAV51D,QAAU,IAAVA,OAAU,EAAVA,EAAYC,oBAAqBrf,GAAqC,OACjE,OAAVof,QAAU,IAAVA,OAAU,EAAVA,EAAYC,oBAAqBrf,GAAyC,UACxE,WAGRjL,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,QAASwD,eAAgB,SAAUpE,WAAY,SACnFyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,kBAAmB,CAAEnF,YAAa,EAAGlpF,gBAAiB,aACzEkD,IAAAC,cAACggF,KAAI,KAAC,WAGVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,QAASwD,eAAgB,SAAUpE,WAAY,SACnFyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,kBAAmB,CAAEruF,gBAAiB,aACzDkD,IAAAC,cAACggF,KAAI,KAAC,WAIX+L,GAAWA,EAAQ9lF,OAAS,EAAW,OAAP8lF,QAAO,IAAPA,OAAO,EAAPA,EAASv/E,IAAI,CAACwtD,EAAQv7B,IACrD1+B,IAAAC,cAACwlF,KAAI,CAACrkF,IAAK64D,EAAOnlD,GAAI5R,MAAO,CAACyhC,GAAOse,MACnCjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACxGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,QAGTjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,QAASwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KAC1GhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOymD,6BACnBprF,IAAAC,cAACggF,KAAI,KAAQ,OAANhmB,QAAM,IAANA,OAAM,EAANA,EAAQ5B,SAGnBr4D,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,QAASwD,eAAgB,SAAUpE,WAAY,SACnFyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAQ,OAANhmB,QAAM,IAANA,OAAM,EAANA,EAAQrpD,aAKrB5Q,IAAAC,cAACwlF,KAAI,CAACrkF,IAAG,iBAAoB8B,MAAO,CAACyhC,GAAOse,MAC1CjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,OAAQwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACzGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAC,uCAKdjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACxGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOymD,6BACnBprF,IAAAC,cAACggF,KAAI,KAAC,UAAkB,OAAV51D,QAAU,IAAVA,GAAgB,QAANyhE,EAAVzhE,EAAYjf,YAAI,IAAA0gF,GAAoB,QAApBC,EAAhBD,EAAkBtgF,gBAAgB,UAAE,IAAAugF,OAA1B,EAAVA,EAAsC79D,UAAU,YAIpEluB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACxGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOymD,6BACnBprF,IAAAC,cAACggF,KAAI,KAAC,cAASzwE,KAAO6a,EAAWjf,KAAKuX,YAAY6P,OAAO,kBAI/DxyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,MACnBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,MAAOwD,eAAgB,SAAUpE,WAAY,SAAUynF,YAAa,KACxGhmF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOymD,6BACnBprF,IAAAC,cAACggF,KAAI,KAAC,eAAUzwE,KAAO6a,EAAWjf,KAAKwX,aAAa4P,OAAO,kBAIjExyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEtgD,eAAgB,SAAUpE,WAAY,SAAUzB,gBAAiB,aAC3FkD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAC,mCAGVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEtgD,eAAgB,SAAUpE,WAAY,YAChEyB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOymD,6BACnBprF,IAAAC,cAACggF,KAAI,KAAY,OAAV51D,QAAU,IAAVA,OAAU,EAAVA,EAAYjS,eAKvBpY,IAAAC,cAACwlF,KAAI,CAACpzB,MAAM,GACVryD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEtgD,eAAgB,SAAUpE,WAAY,SAAUzB,gBAAiB,UAAWmgC,UAAW,KACjHj9B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAC,kBAIVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOse,IAAK,CAAEtgD,eAAgB,SAAUpE,WAAY,YAChEyB,IAAAC,cAACwlF,KAAI,CAACpzB,MAAM,EAAOnvD,MAAO,CAACyhC,GAAO9+B,QAAS,CAAEoxC,KAAM,EAAGq2C,iBAAkB,EAAGC,iBAAkB,OAAQC,iBAAkB,WACpHnB,GAAoBF,GAAyBA,EAAsBjmF,OAAS,EAC3ElG,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAAE+7B,cAAe,MAAO2E,SAAU,OAAQplC,QAAS,IAC7D2tF,EAAsB1/E,IAAI,CAACouB,EAAG6D,IAE3B7D,EAAEsyD,OACAntF,IAAAC,cAAC2nD,KAAK,CAACxmD,IAAKy5B,EAAE/lB,GAAI1O,IAAKy0B,EAAEsyD,OAAQjqF,MAAO,CAACyhC,GAAO8mD,WAAY,CAAExvD,OAAQ,IAAMo2B,MAAM,IAElFryD,IAAAC,cAACggF,KAAI,CAAC7+E,IAAKs9B,GAAO,iCAK1B1+B,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOwmD,oBACnBnrF,IAAAC,cAACggF,KAAI,KAAC,qCAMhBjgF,IAAAC,cAACwtF,GAAwB,CACvBljE,mBAAoBF,EAAWE,mBAC/B1e,KAAMwe,EAAWxe,eChU7B84B,GAAS4gD,KAAWt9B,OAAO,CAC/By9B,OAAQ,CACNvmF,MAAO,OACP1D,WAAY,QACZwhC,UAAW,IAEbgmB,IAAK,CACHhkB,cAAe,MACf9/B,MAAO,OACP2mF,UAAW,EACXtoF,aAAc,GAEhBytF,OAAQ,CACNhsD,cAAe,UAEjBisD,cAAe,CACb1sF,QAAS,EACT9C,SAAU,GACVD,WAAY,OACZ8/B,UAAW,SACX/9B,aAAc,KAIZiwF,GAA2BppF,IAAA,IAAC,mBAAEkmB,EAAkB,KAAE1e,GAAMxH,EAAA,OAC5DrE,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAO+gD,QAElB1lF,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAOse,KAClBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,SACpCa,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAEpF,UAAW,EAAGC,WAAY,EAAGvoF,aAAc,EAAGV,gBAAiB,aACnGkD,IAAAC,cAACggF,KAAI,KAAC,+BAGVjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,SACpCa,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAEpF,UAAW,EAAGE,YAAa,EAAGxoF,aAAc,EAAGuoF,WAAY,EAAGjpF,gBAAiB,aACnHkD,IAAAC,cAACggF,KAAI,KAAC,WAMZjgF,IAAAC,cAACwlF,KAAI,CAACviF,MAAOyhC,GAAOse,KAClBjjD,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,SACpCa,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAEnF,WAAY,KAChD/lF,IAAAC,cAACggF,KAAI,KAAE11D,KAGXvqB,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOsmD,OAAQ,CAAE9rF,MAAO,SACpCa,IAAAC,cAACwlF,KAAI,CAACviF,MAAO,CAACyhC,GAAOumD,cAAe,CAAEnF,WAAY,EAAGC,YAAa,KAChEhmF,IAAAC,cAACggF,KAAI,KAAEzwE,KAAO3D,GAAM2mB,OAAO,oBC0ZtBk7D,OA5YAA,IAEX1tF,IAAAC,cAACo/C,SAAM,KACLr/C,IAAAC,cAACa,EAAsB,CACrBL,UAAWktF,GACXC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,eAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWktF,GACXC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,MAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWstF,GACXH,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,aAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWutF,GACXJ,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,YAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWutF,GACXJ,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,gBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWwtF,GACXL,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,eAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWytF,GACXN,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,cAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWytF,GACXN,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,kBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW0tF,GACXP,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,kBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW2tF,GACXR,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,iBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW2tF,GACXR,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,qBAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAW4tF,GACXT,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,6BAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAW6tF,GACXV,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,kBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW8tF,GACXX,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,cAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW+tF,GACXZ,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,aAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW+tF,GACXZ,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,iBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWguF,GACXb,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,cAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWiuF,GACXd,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,aAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAWkuF,GACXf,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,qBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWmuF,GACXhB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,cAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWouF,GACXjB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,aAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWouF,GACXjB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,iBAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAWquF,GACXlB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,mBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWiuF,GACXd,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,iBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWsuF,GACXnB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,wBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWuuF,GACXpB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,YAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWwuF,GACXrB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,WAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWwuF,GACXrB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,eAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWyuF,GACXtB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,gBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW0uF,GACXvB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,eAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW0uF,GACXvB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,mBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW2uF,GACXxB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,8BAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW4uF,GACXzB,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,mCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW6uF,GACX1B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,yCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW8uF,GACX3B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,8CAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW+uF,GACX5B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,+BAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWgvF,GACX7B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,mCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWivF,GACX9B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,qCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWkvF,GACX/B,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,yCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWmvF,GACXhC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,uBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWovF,GACXjC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,4BAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWqvF,GACXlC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,WAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWsvF,GACXnC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,eAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWuvF,GACXpC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,sBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWwvF,GACXrC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,uBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWyvF,GACXtC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,sBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW0vF,GACXvC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,oBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW2vF,GACXxC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,sCAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW4vF,GACXzC,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,8BAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW6vF,GACX1C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,oBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW8vF,GACX3C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,sBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW8vF,GACX3C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,kBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW+vF,GACX5C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,UAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAW+vF,GACX5C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,cAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWgwF,GACX7C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,qBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWiwF,GACX9C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,mBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWiwF,GACX9C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,uBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWkwF,GACX/C,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,SAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWmwF,GACXhD,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,YAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWowF,GACXjD,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,iBAEP9tF,IAAAC,cAACa,EAAsB,CACrBL,UAAWqwF,GACXlD,OAAK,EACLrtF,OAAQstF,GACRC,KAAK,aAEP9tF,IAAAC,cAACU,QAAK,CAACF,UAAWswF,GAAWnD,OAAK,EAACE,KAAK,WACxC9tF,IAAAC,cAACU,QAAK,CACJF,UAAWuwF,GACXpD,OAAK,EACLE,KAAK,wBAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAWwwF,GACXrD,OAAK,EACLE,KAAK,oBAEP9tF,IAAAC,cAACU,QAAK,CACJF,UAAWywF,GACXtD,OAAK,EACLE,KAAK,4BAEP9tF,IAAAC,cAACK,EAAe,CACdG,UAAW0wF,GACXvD,OAAK,EACLrtF,OAAQ6wF,GACRtD,KAAK,eAEP9tF,IAAAC,cAACoB,WAAQ,CAACC,GAAG,gBCpcDjD,YAAW,MAC3BxB,KAAM,MA2BOw0F,OAxBAA,KACbhvF,oBAAU,KACR,MAAMivF,EAAIC,SAAStxF,cAAc,UACjCqxF,EAAEvwF,KAAO,kBACTuwF,EAAE7/E,OAAQ,EACV6/E,EAAElrF,IAAM,2DACRkrF,EAAEE,QAAU,QACZF,EAAEG,aAAa,cAAe,KAC9BF,SAASG,KAAKC,YAAYL,IACzB,IAGDtxF,IAAAC,cAAA,aCgBW2xF,OAvBHA,KACV,MAAM3+E,EAAW6mB,eAMjB,OAJAuiB,0BAAgB,KACdppC,EAASJ,GAAYe,YACpB,IAGD5T,IAAAC,cAAC4xF,IAAoB,CAACC,YAAaC,KACjC/xF,IAAAC,cAACoxF,GAAM,MACPrxF,IAAAC,cAAC+xF,IAAa,CAACl0F,MAAOA,GACpBkC,IAAAC,cAACgyF,IAAe,KACdjyF,IAAAC,cAAA,OAAKP,UAAU,OACbM,IAAAC,cAACiyF,EAAS,OAEZlyF,IAAAC,cAACkyF,SAAM,CAACtrF,QAASA,IACf7G,IAAAC,cAACytF,GAAM,W,mDC/BnB,IAAI78E,GAAQ5P,aAAaC,QAAQ,SAC7B4P,GAAU7P,aAAaC,QAAQ,WAC/BgS,GAAOxC,KAAK4C,MAAMrS,aAAaC,QAAQ,SAE3C,MAAMkxF,GAAel/E,GACjB,CAAEm3C,WAAW,EAAOC,UAAU,EAAMz5C,MAAK,GAAEC,WAASoC,KAAK,IACzD,GCNJ,MAAMk/E,GAAe,CACnB3jD,OAAQ,OACR75B,OAAQ,GACR+H,MAAM,EACN7H,GAAI,EACJzO,KAAM,GACNqO,SAAU,EACVU,KAAM,GACNO,OAAQ,MCRV,MAAMy8E,GAAe,CACnB3jD,OAAQ,OACRt2B,WAAW,EACXxB,WAAY,GACZgG,MAAM,EACN7H,GAAI,EACJjJ,KAAM,GACNuM,YAAa,GACbC,UAAW,EACXC,QAAS,GACTb,OAAQ,EACRrM,KAAM,GACNwL,eAAgB,EAChBiB,QAAQ,GCbV,MAAMu6E,GAAe,CACnBl8E,UAAW,CACTshC,eAAgB,EAChBgB,wBAAyB,EACzB65C,yBAA0B,EAC1BC,eAAgB,EAChBC,gBAAiB,EACjBl6C,mBAAoB,EACpBV,uBAAwB,EACxBN,qBAAsB,EACtB/gC,WAAY,EACZk8E,cAAe,EACf7iE,cAAe,EACf8iE,aAAc,CAAErhF,QAAS,GAAIohE,OAAQ,IACrCkgB,mBAAoB,CAAEthF,QAAS,GAAIohE,OAAQ,IAC3C5tD,2BAA4B,GAC5B+tE,mBAAoB,EACpBC,2BAA4B,EAC5BC,wBAAyB,GAE3Bx8E,MAAO,GACPC,WAAY,EACZ6B,WAAW,EACX26E,wBAAwB,EACxBC,uBAAuB,GCxBzB,MAAMX,GAAe,CACnB3jD,OAAQ,OACR94B,OAAQ,GACRgH,MAAM,EACN7H,GAAI,GACJzO,KAAM,GACNmO,GAAI,GACJY,KAAM,ICPR,MAAMg9E,GAAe,CACnB3jD,OAAQ,OACRt2B,WAAW,EACXG,QAAS,GACTqE,MAAM,EACN7H,GAAI,EACJ2E,YAAa,GACbC,aAAc,GACdC,IAAK,GACL7K,KAAM,GACN8K,SAAU,GACVC,QAAS,GACTC,MAAO,GACPC,SAAU,GACVG,SAAU,EACVxF,SAAU,EACVuF,kBAAmB,GACnBD,oBAAqB,GACrBG,iBAAkB,GAClBC,eAAgB,GAChBxF,OAAQ,GACRgC,eAAgB,EAChBgE,mBAAmB,EACnBC,kBAAkB,EAClBP,YAAY,EACZC,UAAU,EACVC,kBAAkB,EAClBC,SAAS,EACTK,kBAAkB,EAClBJ,eAAgB,GAChBL,gBAAiB,GACjBM,sBAAuB,IC/BzB,MAAMy3E,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXiD,aAAc,GACduB,MAAM,EACN7H,GAAI,EACJuG,YAAa,EACbC,aAAc,GACdiqC,aAAc,GACdltC,UAAW,EACXC,QAAS,KACTiD,UAAU,GCXZ,MAAM62E,GAAe,CACnBY,cAAe,GACfl+E,GAAI,GACJqD,WAAW,EACX+B,SAAU,GACV7B,UAAW,GACXkD,SAAU,KACVjD,QAAS,ICPX,MAAM85E,GAAe,CACnBj2E,aAAc,GACdrH,GAAI,GACJqD,WAAW,EACXX,QAAS,GACTa,UAAW,GACXkD,SAAU,KACVjD,QAAS,ICPX,MAAM85E,GAAe,CACnBj6E,WAAW,EACXvH,QAAS,GACT+L,MAAM,EACN7H,GAAI,GACJzO,KAAM,GACNuQ,eAAgB,GCNlB,MAAMw7E,GAAe,CACnB3jD,OAAQ,OACRt8B,IAAK,GACL2C,GAAI,EACJ4I,KAAM,GACNC,OAAQ,GACRC,MAAO,GACPC,WAAY,EACZC,SAAU,GACVC,MAAO,GACPC,YAAa,GACbC,UAAW,GACXrN,QAAS,ICZX,MAAMwhF,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXuG,OAAQ,GACR5J,GAAI,GACJzO,KAAM,GACN4Y,UAAW,GACXD,UAAW,EACXhkB,KAAM,GACNkkB,qBAAsB,GACtB3D,SAAU,ICRZ,MAAM62E,GAAe,CACnBj6E,WAAW,EACXgI,kCAAkC,EAClCD,4BAA4B,EAC5BE,8BAA8B,EAC9BtL,GAAI,EACJgJ,SAAUtO,KAAO,IAAI1D,MAAQ0mB,OAAO,oBACpClsB,OAAQ,GACR2Y,UAAW,GACX4F,cAAe,GACfqtC,KAAM,GACNt0C,MAAO,GACPrC,UAAU,EACV03E,oBAAqB,GACrBxgC,0BAA2B,EAC3BD,aAAc,GCjBhB,MAAM4/B,GAAe,CACnBj6E,WAAW,EACXrD,GAAI,EACJkM,cAAe,GACfowC,OAAQ,GACRC,yBAA0B,ICL5B,MAAM+gC,GAAe,CACnBj6E,WAAW,EACXrD,GAAI,EACJkM,cAAe,GACfxD,UAAW,GACX5M,QAAS,MCLX,MAAMwhF,GAAe,CACnBt9E,GAAI,EACJkM,cAAe,GACfxD,UAAW,GACX5M,QAAS,MCJX,MAAMwhF,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXmN,MAAO,GACPxQ,GAAI,GACJzO,KAAM,GACN6T,SAAU,EACVxF,SAAU,GACV6G,SAAU,GACV1B,QAAS,GACT/K,KAAM,GACNgL,MAAO,GACPC,SAAU,GACVH,SAAU,GACVhF,OAAQ,GACRkG,kBAAkB,EAClBoV,aAAa,EACbC,oBAAoB,EACpBC,eAAgB,IClBlB,MAAMgiE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX/M,KAAM,GACNuR,MAAM,EACNspD,qBAAqB,EACrBnxD,GAAI,GACJ4N,WAAY,GACZpc,OAAQ,GACRkX,UAAW,EACX+G,WAAY,EACZ5B,WAAY,GACZm9C,YAAa,GACbr6C,yBAA0B,EAC1BC,uBAAwB,GACxBC,oBAAqB,GACrBC,cAAe,GACfhD,YAAa,GACbpL,QAAS,EACT2N,gBAAiB,EACjBC,sBAAuB,EACvBC,WAAY,EACZb,eAAgB,GAChBC,gBAAiB,GACjBC,gBAAiB,GACjBC,qBAAsB,GACtBC,2BAA4B,EAC5BE,SAAS,EACTC,UAAU,EACVzZ,gBAAgB,EAChB0Z,SAAU,GACVC,UAAW,GACXlL,SAAU,GACVmL,IAAK,GACL/Z,aAAc,KACd0Z,cAAe,GACfiB,eAAgB,GAChBC,wCAAyC,GACzCC,SAAU,GACVV,MAAO,GACPC,WAAY,EACZjN,QAAS,GACTuN,QAAS,GACTjV,QAAS,GACT4U,QAAS,GACTS,YAAa,GACbC,YAAa,GACb1a,gBAAiB,GACjB4a,eAAgB,GAChBG,gBAAiB,GACjBJ,iBAAkB,GAClBE,aAAc,GACdC,mBAAoB,GACpBE,cAAe,GACfC,wBAAyB,EACzBC,8BAA+B,EAC/BrE,oBAAqB,CAAEjR,QAAS,GAAIohE,OAAQ,KCxD9C,MAAM4f,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX8O,UAAW,GACXtK,MAAM,EACN7H,GAAI,EACJuG,YAAa,EACbC,aAAc,GACd7D,OAAQ,EACRrM,KAAM,KACNmQ,UAAU,GCVZ,MAAM62E,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXqQ,cAAe,GACf7L,MAAM,EACN7H,GAAI,EACJmK,UAAW,GACXxH,OAAQ,EACRD,QAAS,EACTa,UAAW,EACXoQ,KAAM,EACNrd,KAAM,KACNmQ,UAAU,GCZZ,MAAM62E,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXkS,WAAY,GACZvV,GAAI,GACJ2C,OAAQ,EACRY,UAAW,EACXxM,KAAM,GACNye,kBAAmB,GACnBlS,YAAa,GACbmS,mBAAoB,GACpBnf,KAAM,GACNkN,QAAS,GACTkS,mBAAoB,GACpBC,oBAAqB,ICdvB,MAAM2nE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXqP,QAAS,GACT1S,GAAI,GACJ2S,eAAgB,GAChBC,kBAAmB,GACnBlQ,QAAS,EACTmQ,aAAc,GACdC,cAAe,GACftC,MAAO,GACPjN,UAAW,EACXC,QAAS,GACTkO,cAAe,GACfjL,SAAU,ICdZ,MAAM62E,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXsR,aAAc,GACd9M,MAAM,EACN7H,GAAI,EACJ4U,aAAc,GACd9B,cAAe,GACfvP,UAAW,EACXsR,YAAa,GACbrR,QAAS,GACTlN,KAAM,GACNwe,uBAAwB,GACxBC,MAAO,ICbT,MAAMuoE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX6Q,eAAgB,GAChBrM,MAAM,EACN7H,GAAI,EACJmU,OAAQ,EACRxR,OAAQ,EACRrM,KAAM,KACN4Z,SAAU,GACVC,UAAW,GACXlL,SAAU,GACVwB,UAAU,GCZZ,MAAM62E,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX+S,YAAa,GACbvO,MAAM,EACN7H,GAAI,GACJjJ,KAAM,GACN4L,OAAQ,EACRrM,KAAM,GACNoS,UAAW,EACX5M,QAAS,GACT2K,UAAU,EACVsO,MAAO,EACPvjB,OAAQ,GACR6kB,SAAU,GACVC,yBAA0B,GAC1BE,oBAAqB,GACrBD,iBAAkB,ICjBpB,MAAM+mE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX8T,0BAA2B,GAC3BtP,MAAM,EACN7H,GAAI,GACJ2S,eAAgB,GAChBunD,uBAAwB,GCP1B,MAAMojB,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXkU,UAAW,GACXq2C,aAAc,GACd/lD,MAAM,EACN7H,GAAI,EACJ4N,WAAY,GACZpc,OAAQ,GACRgmB,SAAU,GACV7U,OAAQ,EACRkL,WAAY,GACZC,YAAa,GACbuC,gBAAiB,GACjBC,sBAAuB,GACvBha,KAAM,KACNmhB,iBAAkB,IChBpB,MAAM6lE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX0U,cAAe,GACflQ,MAAM,EACN7H,GAAI,EACJ4N,WAAY,GACZoK,OAAQ,GACRtJ,YAAa,EACbuJ,UAAW,EACXC,WAAY,EACZC,cAAe,EACf5G,aAAc,GACdlB,gBAAiB,GACjBC,sBAAuB,GACvBZ,eAAgB,EAChBG,qBAAsB,EACtBF,gBAAiB,EACjBC,gBAAiB,EACjBI,SAAS,EACTuH,UAAW,MCpBb,MAAM+lE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXg0D,oBAAqB,GACrBr3D,GAAI,GACJ2S,eAAgB,GAChByrE,iBAAkB,EAClB33E,UAAU,GCPZ,MAAM62E,GAAe,CACjBx7E,eAAgB,EAChBuB,WAAW,EACXwV,gBAAiB,ICHrB,MAAMykE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACX6V,cAAe,GACfrR,MAAM,EACN7H,GAAI,GACJjJ,KAAM,GACNoiB,MAAO,GACPC,UAAW,EACXrE,MAAO,EACPsE,gBAAiB,EACjB3W,QAAS,EACTC,OAAQ,EACRY,UAAW,EACXC,QAAS,GACTlN,KAAM,GACNmQ,UAAU,EACVnD,YAAa,GACbgW,qBAAsB,IClBxB,MAAMgkE,GAAe,CACnBx7E,eAAgB,EAChB+Y,cAAe,EACfxX,WAAW,EACXwE,MAAM,EACN7H,GAAI,GACJ0/D,gBAAiB,EACjBrlD,gBAAiB,EACjBvf,OAAQ,EACRwf,oBAAqB,GACrBvF,MAAO,EACPtO,UAAU,EACV0T,kBAAmB,ICZrB,MAAMmjE,GAAe,CACnBj6E,WAAW,EACXgZ,UAAW,GACXrc,GAAI,GACJmK,UAAW,GACXrB,MAAO,GACPiM,MAAO,GACPnM,KAAM,GACN5iB,KAAM,GACNsK,MAAO,EACPwR,eAAgB,GCVlB,MAAMw7E,GAAe,CACnB3jD,OAAQ,OACR3G,UAAW,GACXnrB,MAAM,EACN7H,GAAI,EACJzO,KAAM,GACN4Y,UAAW,GACX1D,UAAU,GCPZ,MAAM62E,GAAe,CACnB3jD,OAAQ,OACR9G,qBAAsB,GACtBhrB,MAAM,EACN7H,GAAI,EACJq+E,YAAa,EACb38D,cAAe,EACfuR,WAAW,EACXqrD,YAAY,EACZj7E,WAAW,GCTb,MAAMi6E,GAAe,CACnB3jD,OAAQ,OACR7G,iBAAkB,GAClBjrB,MAAM,EACN7H,GAAI,EACJq+E,YAAa,EACbE,UAAW,EACXtrD,WAAW,EACXqrD,YAAY,EACZj7E,WAAW,GCTb,MAAMi6E,GAAe,CACnBj6E,WAAW,EACXvB,eAAgB,EAChBuc,UAAW,ICHb,MAAMi/D,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXsb,SAAU,GACVnO,MAAO,GACPxQ,GAAI,GACJzO,KAAM,GACNmR,QAAS,EACTkc,kBAAmB,GACnBnY,UAAU,GCTZ,MAAM62E,GAAe,CACnBpnC,SAAS,EACTruC,MAAM,EACN7H,GAAI,EACJmK,UAAW,GACX1D,UAAU,GCLZ,MAAM62E,GAAe,CACnBpnC,SAAS,EACTruC,MAAM,EACN7H,GAAI,GACJha,KAAM,GACNsK,MAAO,GACPmvB,gBAAiB,GACjBhZ,UAAU,GCPZ,MAAM62E,GAAe,CACnBpnC,SAAS,EACTruC,MAAM,EACN7H,GAAI,GACJha,KAAM,GACNsK,MAAO,GACPsvB,gBAAiB,GACjBnZ,UAAU,GCPZ,MAAM62E,GAAe,CACnBpnC,SAAS,EACTsoC,KAAM,GACN32E,MAAM,EACN7H,GAAI,GACJzO,KAAM,GACNkV,UAAU,GCNZ,MAAM62E,GAAe,CACnBj6E,WAAW,EACXvH,QAAS,GACT+L,MAAM,EACN7H,GAAI,GACJzO,KAAM,GACNmwB,cAAe,ICNjB,MAAM47D,GAAe,CACnBpnC,SAAS,EACTp6C,QAAS,GACT+L,MAAM,EACN7H,GAAI,GACJzO,KAAM,ICLR,MAAM+rF,GAAe,CACnB3jD,OAAQ,OACRzoB,SAAU,GACVrJ,MAAM,EACN7H,GAAI,GACJzO,KAAM,GACNmO,GAAI,GACJY,KAAM,ICPR,MAAMg9E,GAAe,CACnBpnC,SAAS,EACTp6C,QAAS,GACT+L,MAAM,EACN7H,GAAI,GACJmK,UAAW,ICLb,MAAMmzE,GAAe,CACnBx7E,eAAgB,EAChBuB,WAAW,EACXvH,QAAS,GACT+L,MAAM,EACN7H,GAAI,GACJgF,MAAO,GACPzT,KAAM,GACN8M,MAAO,GACPojB,UAAW,GACXC,cAAe,GACf1iB,WAAY,GACZnB,cAAe,GACf8jB,qBAAsB,GACtBoB,+BAA+B,EAC/BnB,WAAY,GACZ7c,QAAS,GACT8c,IAAK,GACLC,UAAW,GACXhd,SAAU,GACVid,eAAgB,EAChBC,iBAAiB,GCrBnB,MAAMs7D,GAAe,CACnBn6D,aAAc,GACdnjB,GAAI,GACJqD,WAAW,EACXqF,UAAW,GACXhG,QAAS,GACT+D,SAAU,KACV+J,MAAO,ICPT,MAAM8sE,GAAe,CACnB35D,eAAgB,GAChB3jB,GAAI,GACJqD,WAAW,EACXqF,UAAW,GACXnF,UAAW,GACXkD,SAAU,KACVjD,QAAS,I,eC+CX,MAAMi7E,GAAaC,aAAgB,CACjCxtD,ejD/CK,WAAuD,IAA/BxkC,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACzD,OAAQysF,EAAO1yF,MACb,IAAK,gBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRkoD,WAAW,EACXx2C,KAAMugF,EAAOvgF,OAEjB,IAAK,gBACH,OAAA5V,wBAAA,GACKkE,GAAK,IACR8oD,UAAU,EACVZ,WAAW,EACXx2C,KAAMugF,EAAOvgF,KACbrC,MAAO4iF,EAAO5iF,MACdC,QAAS2iF,EAAO3iF,UAEpB,IAAK,gBACH,MAAO,GACT,IAAK,iCACH,OAAAxT,wBAAA,GACKkE,GAAK,IACR6oD,WAAW,EACXx5C,MAAO4iF,EAAO5iF,QAElB,IAAK,iCACH,OAAAvT,wBAAA,GACKkE,GAAK,IACR8oD,UAAU,EACVD,WAAW,EACXX,WAAW,EACXx2C,KAAMugF,EAAOvgF,OAEjB,IAAK,iCACH,OAAA5V,wBAAA,GACKkE,GAAK,IACR6oD,WAAW,EACXC,UAAU,EACVp3C,KAAM,KACNrC,MAAO,KACPC,QAAS,OAEb,IAAK,4BACH,OAAAxT,wBAAA,GACKkE,GAAK,IACR0R,KAAI5V,YAAA,GAAOkE,EAAM0R,QAErB,IAAK,oBACH,OAAA5V,wBAAA,GACKkE,GAAK,IACR0R,KAAI5V,wBAAA,GACCkE,EAAM0R,MACNugF,EAAOvgF,QAGhB,IAAK,sBACH,OAAA5V,wBAAA,GACKkE,GAAK,IACR0R,KAAMugF,EAAOvgF,OAEjB,QACE,OAAO1R,IiDbXoT,OhD7CK,WAA+C,IAA/BpT,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACjD,OAAQysF,EAAO1yF,MACb,IAAK,qBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRoT,OAAQ6+E,EAAO7+E,SAEnB,IAAK,gBACH,OAAAtX,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXzO,KAAMotF,EAAOptF,KACbqO,SAAU++E,EAAO/+E,SACjBU,KAAMq+E,EAAOr+E,KACbO,OAAQ89E,EAAO99E,SAEnB,IAAK,iBACH,OAAOnU,EACT,IAAK,eACH,OAAO4wF,GACT,IAAK,mBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRoT,OAAQ,KAEZ,IAAK,0BACH,OAAAtX,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,IgDeXmV,W/CzCK,WAAmD,IAA/BnV,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACrD,OAAQysF,EAAO1yF,MACb,IAAK,oBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXtM,KAAM4nF,EAAO5nF,KACbuM,YAAaq7E,EAAOr7E,YACpBC,UAAWo7E,EAAOp7E,UAClBC,QAASm7E,EAAOn7E,QAChBb,OAAQg8E,EAAOh8E,OACfrM,KAAMqoF,EAAOroF,KACbyM,OAAQ47E,EAAO57E,SAEnB,IAAK,qBACH,OAAOrW,EACT,IAAK,mBACH,OAAO4wF,GACT,IAAK,uBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRmV,WAAY,KAEhB,IAAK,yBACH,OAAArZ,wBAAA,GACKkE,GAAK,IACRmV,WAAY88E,EAAO98E,WACnBC,eAAgB68E,EAAO78E,iBAE3B,IAAK,8BACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,uBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,0BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I+CJX0U,U9C/BK,WAAkD,IAA/B1U,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,4BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,4BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR0U,UAAWu9E,EAAOv9E,UAClBiC,WAAW,IAEf,IAAK,mDACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRuxF,uBAAuB,IAE3B,IAAK,mDACH,OAAAz1F,wBAAA,GACKkE,GAAK,IACRuxF,uBAAuB,EACvB18E,MAAOo9E,EAAOp9E,MACdC,WAAYm9E,EAAOn9E,aAEvB,IAAK,mDACH,OAAAhZ,wBAAA,GACKkE,GAAK,IACRuxF,uBAAuB,EACvBp4F,MAAO84F,EAAO94F,QAElB,IAAK,kBACH,OAAOy3F,GACT,QACE,OAAO5wF,I8CRXmU,O7CjDK,WAA+C,IAA/BnU,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACjD,OAAQysF,EAAO1yF,MACb,IAAK,qBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRmU,OAAQ89E,EAAO99E,SAEnB,IAAK,gBACH,OAAArY,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXzO,KAAMotF,EAAOptF,KACbmO,GAAIi/E,EAAOj/E,GACXY,KAAMq+E,EAAOr+E,OAEjB,IAAK,iBACH,OAAO5T,EACT,IAAK,mBACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,I6C2BXgmB,Q5B3CK,WAAgD,IAA/BhmB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAClD,OAAQysF,EAAO1yF,MACb,IAAK,yBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOjsE,QAAQ1S,GACnBqD,WAAW,EACXsP,eAAgBgsE,EAAOjsE,QAAQC,eAC/BC,kBAAmB+rE,EAAOjsE,QAAQE,kBAClClQ,QAASi8E,EAAOjsE,QAAQhQ,QACxBmQ,aAAc8rE,EAAOjsE,QAAQG,aAC7BC,cAAe6rE,EAAOjsE,QAAQI,cAC9BtC,MAAOmuE,EAAOjsE,QAAQlC,MACtBjN,UAAWo7E,EAAOjsE,QAAQnP,UAC1BC,QAASm7E,EAAOjsE,QAAQlP,QACxBkO,cAAeitE,EAAOjsE,QAAQhB,cAC9BjL,SAAUk4E,EAAOjsE,QAAQjM,WAE7B,IAAK,yBACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,uBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOjsE,QAAQ1S,GACnBqD,WAAW,EACXsP,eAAgBgsE,EAAOjsE,QAAQC,eAC/BC,kBAAmB+rE,EAAOjsE,QAAQE,kBAClClQ,QAASi8E,EAAOjsE,QAAQhQ,QACxBmQ,aAAc8rE,EAAOjsE,QAAQG,aAC7BC,cAAe6rE,EAAOjsE,QAAQI,cAC9BtC,MAAOmuE,EAAOjsE,QAAQlC,MACtBjN,UAAWo7E,EAAOjsE,QAAQnP,UAC1BC,QAASm7E,EAAOjsE,QAAQlP,QACxBkO,cAAeitE,EAAOjsE,QAAQhB,cAC9BjL,SAAUk4E,EAAOjsE,QAAQjM,WAE7B,IAAK,uBACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,sBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRgmB,QAASisE,EAAOjsE,QAChB5Q,eAAgB68E,EAAO78E,iBAE3B,IAAK,iBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXsP,eAAgBgsE,EAAOhsE,eACvBC,kBAAmB+rE,EAAO/rE,kBAC1BlQ,QAASi8E,EAAOj8E,QAChBmQ,aAAc8rE,EAAO9rE,aACrBC,cAAe6rE,EAAO7rE,cACtBtC,MAAOmuE,EAAOnuE,MACdjN,UAAWo7E,EAAOp7E,UAClBC,QAASm7E,EAAOn7E,QAChBkO,cAAeitE,EAAOjtE,cACtBjL,SAAUk4E,EAAOl4E,WAErB,IAAK,gBACH,OAAO62E,GACT,IAAK,2BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,oBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I4BpDX8W,Q5C3BK,WAAgD,IAA/B9W,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAClD,OAAQysF,EAAO1yF,MACb,IAAK,iBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXsB,YAAag6E,EAAOh6E,YACpBC,aAAc+5E,EAAO/5E,aACrB5K,KAAM2kF,EAAO3kF,KACb6K,IAAK85E,EAAO95E,IACZC,SAAU65E,EAAO75E,SACjBC,QAAS45E,EAAO55E,QAChBC,MAAO25E,EAAO35E,MACdC,SAAU05E,EAAO15E,SACjBG,SAAUu5E,EAAOv5E,SACjBxF,SAAU++E,EAAO/+E,SACjBsF,oBAAqBy5E,EAAOz5E,oBAC5BC,kBAAmBw5E,EAAOx5E,kBAC1BE,iBAAkBs5E,EAAOt5E,iBACzBE,gBAAiBo5E,EAAOp5E,gBACxBD,eAAgBq5E,EAAOr5E,eACvBE,WAAYm5E,EAAOn5E,WACnB1F,OAAQ6+E,EAAO7+E,OACf4F,iBAAkBi5E,EAAOj5E,iBACzBD,SAAUk5E,EAAOl5E,SACjBE,QAASg5E,EAAOh5E,QAChBK,iBAAkB24E,EAAO34E,iBACzBF,kBAAmB64E,EAAO74E,kBAC1BC,iBAAkB44E,EAAO54E,iBACzBH,eAAgB+4E,EAAO/4E,eACvBC,sBAAuB84E,EAAO94E,wBAElC,IAAK,kBACH,OAAOnZ,EACT,IAAK,gBACH,OAAO4wF,GACT,IAAK,oBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR8W,QAAS,KAEb,IAAK,kCACH,OAAAhb,wBAAA,GACKkE,GAAK,IACR2Y,iBAAkB,KAEtB,IAAK,+BACH,OAAA7c,wBAAA,GACKkE,GAAK,IACRmZ,sBAAuB,KAE3B,IAAK,sBACH,OAAArd,wBAAA,GACKkE,GAAK,IACR8W,QAASm7E,EAAOn7E,QAChB1B,eAAgB68E,EAAO78E,iBAE3B,IAAK,2BACH,MAAsB,qBAAjB68E,EAAOh0F,OAAiD,eAAjBg0F,EAAOh0F,QAA2Bg0F,EAAOruF,MAQzD,aAAjBquF,EAAOh0F,OAAwBg0F,EAAOruF,MAC/C9H,wBAAA,GACKkE,GAAK,IACR+Y,UAAU,EACVD,YAAY,EACZG,SAAS,EACTD,kBAAkB,EAClBG,sBAAuB,KAEC,YAAjB84E,EAAOh0F,OAAuBg0F,EAAOruF,MAC9C9H,wBAAA,GACKkE,GAAK,IACR+Y,UAAU,EACVD,YAAY,EACZG,SAAS,EACTD,kBAAkB,EAClBG,sBAAuB,KAGzBrd,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QA5BzB9H,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,QAAQ,EAChB8a,UAAU,EACVE,SAAS,EACTE,sBAAuB,KA0B7B,IAAK,oBACH,OAAArd,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I4C1EX4Z,a3ChDK,WAAqD,IAA/B5Z,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACvD,OAAQysF,EAAO1yF,MACb,IAAK,+BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOr4E,aAAatG,GACxBqD,WAAW,EACXkD,YAAao4E,EAAOr4E,aAAaC,YACjCC,aAAcm4E,EAAOr4E,aAAaE,aAClCiqC,aAAckuC,EAAOr4E,aAAamqC,aAClCltC,UAAWo7E,EAAOr4E,aAAa/C,UAC/BC,QAASm7E,EAAOr4E,aAAa9C,QAC7BiD,SAAUk4E,EAAOr4E,aAAaG,SAC9BH,aAAcq4E,EAAOr4E,aAAaA,eAEtC,IAAK,+BACH,OAAA9d,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,6BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOr4E,aAAatG,GACxBqD,WAAW,EACXkD,YAAao4E,EAAOr4E,aAAaC,YACjCC,aAAcm4E,EAAOr4E,aAAaE,aAClCiqC,aAAckuC,EAAOr4E,aAAamqC,aAClCltC,UAAWo7E,EAAOr4E,aAAa/C,UAC/BC,QAASm7E,EAAOr4E,aAAa9C,QAC7BiD,SAAUk4E,EAAOr4E,aAAaG,SAC9BH,aAAcq4E,EAAOr4E,aAAaA,eAEtC,IAAK,6BACH,OAAA9d,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,4BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR4Z,aAAcq4E,EAAOr4E,aACrBxE,eAAgB68E,EAAO78E,iBAE3B,IAAK,uBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXkD,YAAao4E,EAAOp4E,YACpBC,aAAcm4E,EAAOn4E,aACrBiqC,aAAckuC,EAAOluC,aACrBltC,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,QAChB8C,aAAcq4E,EAAOr4E,eAEzB,IAAK,sBACH,OAAOg3E,GACT,IAAK,6BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJuD,UAAW,EACXiD,aAAc,GACdiqC,aAAc,GACdlqC,YAAa,EACb/C,QAAS,OAEb,IAAK,4BACH,OAAAhb,wBAAA,GACKkE,GAAK,IACR4Z,aAAc,IAAI5Z,EAAM4Z,aAAcq4E,EAAO5nF,KAAKuP,gBAEtD,IAAK,iCACH,OAAA9d,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,0BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I2CtDXwxF,c1CrDK,WAAsD,IAA/BxxF,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACxD,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR6W,UAAW,GACX26E,cAAe,IACVxxF,EAAMwxF,cACTS,EAAOT,iBAGb,IAAK,6BACH,OAAA11F,wBAAA,GACKkE,GAAK,IACRwxF,cAAeS,EAAOT,gBAE1B,IAAK,wBACH,OAAA11F,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXoF,SAAUu5E,EAAOv5E,SACjB7B,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,yBACH,OAAO9W,EACT,IAAK,6BACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BAKL,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCAKL,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAOi6E,GACT,IAAK,2BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRwxF,cAAe,KAEnB,IAAK,gCACH,OAAA11F,wBAAA,GACKkE,GAAK,IACRsT,GAAI,GACJqD,WAAW,EACX+B,SAAU,GACV7B,UAAW,GACXkD,SAAU,KACVjD,QAAS,KAEb,IAAK,gCACH,OAAAhb,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXoF,SAAUu5E,EAAOv5E,SACjB7B,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,iCAKL,IAAK,gBACH,OAAAhb,wBAAA,GACKkE,GAAK,IACRwxF,cAAeS,EAAOvgF,KAAKiH,mBAE/B,IAAK,6CACH,OAAA7c,wBAAA,GACKkE,GAAK,IACRkyF,+BAAgCD,EAAO92E,OAE3C,IAAK,2CACH,OAAArf,wBAAA,GACKkE,GAAK,IACRob,6BAA8B62E,EAAO92E,OAEzC,QACE,OAAOnb,I0ClDX2a,azCtDK,WAAqD,IAA/B3a,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACvD,OAAQysF,EAAO1yF,MACb,IAAK,+BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR6W,UAAW,GACX8D,aAAc,IACT3a,EAAM2a,aACTs3E,EAAOt3E,gBAGb,IAAK,4BACH,OAAA7e,wBAAA,GACKkE,GAAK,IACR2a,aAAcs3E,EAAOt3E,eAEzB,IAAK,uBACH,OAAA7e,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0C,QAASi8E,EAAOj8E,QAChBa,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,wBACH,OAAO9W,EACT,IAAK,4BACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BAKL,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCAKL,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAOi6E,GACT,IAAK,0BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2a,aAAc,KAElB,IAAK,+BACH,OAAA7e,wBAAA,GACKkE,GAAK,IACRsT,GAAI,GACJqD,WAAW,EACXX,QAAS,GACTa,UAAW,GACXkD,SAAU,KACVjD,QAAS,KAEb,IAAK,+BACH,OAAAhb,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0C,QAASi8E,EAAOj8E,QAChBa,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,iCAKL,IAAK,gBACH,OAAAhb,wBAAA,GACKkE,GAAK,IACR2a,aAAcs3E,EAAOvgF,KAAKiH,mBAE9B,IAAK,4CACH,OAAA7c,wBAAA,GACKkE,GAAK,IACRkb,8BAA+B+2E,EAAO92E,OAE1C,IAAK,2CACH,OAAArf,wBAAA,GACKkE,GAAK,IACRob,6BAA8B62E,EAAO92E,OAEzC,QACE,OAAOnb,IyCjDX2b,OxCxDK,WAA+C,IAA/B3b,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACjD,OAAQysF,EAAO1yF,MACb,IAAK,qBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2b,OAAQs2E,EAAOt2E,OACfvG,eAAgB68E,EAAO78E,iBAE3B,IAAK,eACH,OAAOw7E,GACT,IAAK,mBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IwCoCX2Q,IvCnDK,WAA4C,IAA/B3Q,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC9C,OAAQysF,EAAO1yF,MACb,IAAK,kBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2Q,IAAKshF,EAAOthF,MAEhB,IAAK,aACH,OAAA7U,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX4I,KAAM+1E,EAAO/1E,KACbC,OAAQ81E,EAAO91E,OACfC,MAAO61E,EAAO71E,MACdC,WAAY41E,EAAO51E,WACnBC,SAAU21E,EAAO31E,SACjBC,MAAO01E,EAAO11E,MACdC,YAAay1E,EAAOz1E,YACpBC,UAAWw1E,EAAOx1E,UAClBrN,QAAS6iF,EAAO7iF,UAEpB,IAAK,cACH,OAAOpP,EACT,IAAK,YACH,OAAO4wF,GACT,IAAK,gBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2Q,IAAK,KAET,IAAK,uBACH,OAAA7U,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,IuCgBXkd,OtCtDK,WAA+C,IAA/Bld,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACjD,OAAQysF,EAAO1yF,MACb,IAAK,wBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,wBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO/0E,OAAO5J,GAClBqD,WAAW,EACX9R,KAAMotF,EAAO/0E,OAAOrY,KACpB4Y,UAAWw0E,EAAO/0E,OAAOO,UACzBD,UAAWy0E,EAAO/0E,OAAOM,UACzBhkB,KAAMy4F,EAAO/0E,OAAO1jB,KACpBkkB,qBAAsBu0E,EAAO/0E,OAAOQ,qBACpC3D,SAAUk4E,EAAO/0E,OAAOnD,WAE5B,IAAK,wBACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,sBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO/0E,OAAO5J,GAClBqD,WAAW,EACX9R,KAAMotF,EAAO/0E,OAAOrY,KACpB4Y,UAAWw0E,EAAO/0E,OAAOO,UACzBD,UAAWy0E,EAAO/0E,OAAOM,UACzBhkB,KAAMy4F,EAAO/0E,OAAO1jB,KACpBkkB,qBAAsBu0E,EAAO/0E,OAAOQ,qBACpC3D,SAAUk4E,EAAO/0E,OAAOnD,WAE5B,IAAK,sBACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,qBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRkd,OAAQ+0E,EAAO/0E,OACf9H,eAAgB68E,EAAO78E,iBAE3B,IAAK,gBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACX9R,KAAMotF,EAAOptF,KACb4Y,UAAWw0E,EAAOx0E,UAClBD,UAAWy0E,EAAOz0E,UAClBhkB,KAAMy4F,EAAOz4F,KACbkkB,qBAAsBu0E,EAAOv0E,qBAC7B3D,SAAUk4E,EAAOl4E,WAErB,IAAK,eACH,OAAO62E,GACT,IAAK,0BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,mBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IsC7BX8d,YrChDK,WAAoD,IAA/B9d,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACtD,OAAQysF,EAAO1yF,MACb,IAAK,0BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR8d,YAAam0E,EAAOn0E,YACpB1I,eAAgB68E,EAAO78E,iBAE3B,IAAK,qBACH,OAAO68E,EAAOn0E,YAChB,IAAK,sBACH,OAAO9d,EACT,IAAK,oBACH,OAAO4wF,GACT,IAAK,wBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR8d,YAAa,KAEjB,IAAK,+BACH,OAAAhiB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,uCACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2e,iCAAkCszE,EAAO92E,OAE7C,IAAK,gCACH,OAAArf,wBAAA,GACKkE,GAAK,IACR0e,2BAA4BuzE,EAAO92E,OAEvC,IAAK,kCACH,OAAArf,wBAAA,GACKkE,GAAK,IACR4e,6BAA8BqzE,EAAO92E,OAEzC,IAAK,wBACH,OAAArf,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,2BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IqCDXof,kBpC7DK,WAA0D,IAA/Bpf,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC5D,OAAQysF,EAAO1yF,MACb,IAAK,iCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRof,kBAAmB6yE,EAAO7yE,kBAC1BhK,eAAgB68E,EAAO78E,iBAE3B,IAAK,4BACH,OAAO68E,EAAO7yE,kBAChB,IAAK,6BACH,OAAOpf,EACT,IAAK,2BACH,OAAO4wF,GACT,IAAK,+BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRof,kBAAmB,KAEvB,IAAK,gCACH,OAAAtjB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJkM,cAAe,GACfowC,OAAQ,KAEZ,IAAK,sCACH,OAAA9zD,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,+BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,kCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IoCmBX8f,mBnC9DK,WAA2D,IAA/B9f,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC7D,OAAQysF,EAAO1yF,MACb,IAAK,kCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR8f,mBAAoBmyE,EAAOnyE,mBAC3B1K,eAAgB68E,EAAO78E,iBAE3B,IAAK,6BACH,OAAO68E,EAAOnyE,mBAChB,IAAK,8BACH,OAAO9f,EACT,IAAK,4BACH,OAAO4wF,GACT,IAAK,gCACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR8f,mBAAoB,KAExB,IAAK,iCACH,OAAAhkB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJkM,cAAe,GACfxD,UAAW,GACX5M,QAAS,OAEb,IAAK,uCACH,OAAAtT,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,gCACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,mCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,ImCmBXmyF,iBlChEK,WAAyD,IAA/BnyF,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC3D,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRmyF,iBAAkBF,EAAOE,iBACzB/8E,eAAgB68E,EAAO78E,iBAE3B,IAAK,2BACH,OAAO68E,EAAOE,iBAChB,IAAK,4BACH,OAAOnyF,EACT,IAAK,0BACH,OAAO4wF,GACT,IAAK,8BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRmyF,iBAAkB,KAEtB,IAAK,+BACH,OAAAr2F,wBAAA,GACKkE,GAAK,IACRsT,GAAI,EACJkM,cAAe,GACfxD,UAAW,GACX5M,QAAS,OAEb,IAAK,qCACH,OAAAtT,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,IkCgCX4J,KhCbK,WAA6C,IAA/B5J,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC/C,OAAQysF,EAAO1yF,MACb,IAAK,sBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOroF,KAAK0J,GAChBqD,WAAW,EACXuK,WAAY+wE,EAAOroF,KAAKsX,WACxBpc,OAAQmtF,EAAOroF,KAAK9E,OACpBkX,UAAWi2E,EAAOroF,KAAKoS,UACvB+G,WAAYkvE,EAAOroF,KAAKmZ,WACxB5B,WAAY8wE,EAAOroF,KAAKuX,WACxBC,YAAa6wE,EAAOroF,KAAKwX,YACzBgD,cAAe6tE,EAAOroF,KAAKwa,cAC3BpO,QAASi8E,EAAOroF,KAAKoM,QACrB2N,gBAAiBsuE,EAAOroF,KAAK+Z,gBAC7BC,sBAAuBquE,EAAOroF,KAAKga,sBACnCC,WAAYouE,EAAOroF,KAAKia,WACxBb,eAAgBivE,EAAOroF,KAAKoZ,eAC5BC,gBAAiBgvE,EAAOroF,KAAKqZ,gBAC7BC,gBAAiB+uE,EAAOroF,KAAKsZ,gBAC7BC,qBAAsB8uE,EAAOroF,KAAKuZ,qBAClCC,2BAA4B6uE,EAAOroF,KAAKwZ,2BACxCC,cAAe4uE,EAAOroF,KAAKyZ,cAC3BC,QAAS2uE,EAAOroF,KAAK0Z,QACrBxZ,eAAgBmoF,EAAOroF,KAAKE,eAC5ByZ,SAAU0uE,EAAOroF,KAAK2Z,SACtBC,SAAUyuE,EAAOroF,KAAK4Z,SACtBC,UAAWwuE,EAAOroF,KAAK6Z,UACvBC,IAAKuuE,EAAOroF,KAAK8Z,IACjB/Z,aAAcsoF,EAAOroF,KAAKD,aAC1B6a,SAAUytE,EAAOroF,KAAK4a,SACtBV,MAAOmuE,EAAOroF,KAAKka,MACnBC,WAAYkuE,EAAOroF,KAAKma,WACxBjN,QAASm7E,EAAOroF,KAAKkN,QACrBkN,QAASiuE,EAAOroF,KAAKoa,QACrB5U,QAAS6iF,EAAOroF,KAAKwF,QACrB6U,yBAA0BguE,EAAOroF,KAAKqa,yBACtCC,uBAAwB+tE,EAAOroF,KAAKsa,uBACpCC,oBAAqB8tE,EAAOroF,KAAKua,oBACjCE,QAAS4tE,EAAOroF,KAAKya,QACrBC,eAAgB2tE,EAAOroF,KAAK0a,eAC5BC,wCAAyC0tE,EAAOroF,KAAK2a,wCACrDG,YAAautE,EAAOroF,KAAK8a,YACzBD,YAAawtE,EAAOroF,KAAK6a,YACzBza,gBAAiBioF,EAAOroF,KAAKI,gBAC7B4a,eAAgBqtE,EAAOroF,KAAKgb,eAC5BD,iBAAkBstE,EAAOroF,KAAK+a,iBAC9BK,cAAeitE,EAAOroF,KAAKob,cAC3BH,aAAcotE,EAAOroF,KAAKib,aAC1BC,mBAAoBmtE,EAAOroF,KAAKkb,mBAChCG,wBAAyBgtE,EAAOroF,KAAKqb,wBACrCF,gBAAiBktE,EAAOroF,KAAKmb,gBAC7BG,8BAA+B+sE,EAAOroF,KAAKsb,8BAC3CrE,oBAAqBoxE,EAAOroF,KAAKiX,sBAErC,IAAK,+BACH,OAAA/kB,wBAAA,GACKkE,GAAK,IACR6gB,oBAAqBoxE,EAAOpxE,sBAEhC,IAAK,sBACH,OAAA/kB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,oBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,oBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOroF,KAAK0J,GAChBqD,WAAW,EACXuK,WAAY+wE,EAAOroF,KAAKsX,WACxBpc,OAAQmtF,EAAOroF,KAAK9E,OACpBkX,UAAWi2E,EAAOroF,KAAKoS,UACvB+G,WAAYkvE,EAAOroF,KAAKmZ,WACxB5B,WAAY8wE,EAAOroF,KAAKuX,WACxBC,YAAa6wE,EAAOroF,KAAKwX,YACzBpL,QAASi8E,EAAOroF,KAAKoM,QACrB2N,gBAAiBsuE,EAAOroF,KAAK+Z,gBAC7BC,sBAAuBquE,EAAOroF,KAAKga,sBACnCC,WAAYouE,EAAOroF,KAAKia,WACxBb,eAAgBivE,EAAOroF,KAAKoZ,eAC5BC,gBAAiBgvE,EAAOroF,KAAKqZ,gBAC7BC,gBAAiB+uE,EAAOroF,KAAKsZ,gBAC7BI,QAAS2uE,EAAOroF,KAAK0Z,QACrBxZ,eAAgBmoF,EAAOroF,KAAKE,eAC5ByZ,SAAU0uE,EAAOroF,KAAK2Z,SACtBJ,qBAAsB8uE,EAAOroF,KAAKuZ,qBAClCC,2BAA4B6uE,EAAOroF,KAAKwZ,2BACxCC,cAAe4uE,EAAOroF,KAAKyZ,cAC3BG,SAAUyuE,EAAOroF,KAAK4Z,SACtBC,UAAWwuE,EAAOroF,KAAK6Z,UACvBC,IAAKuuE,EAAOroF,KAAK8Z,IACjB/Z,aAAcsoF,EAAOroF,KAAKD,aAC1B6a,SAAUytE,EAAOroF,KAAK4a,SACtBV,MAAOmuE,EAAOroF,KAAKka,MACnBC,WAAYkuE,EAAOroF,KAAKma,WACxBjN,QAASm7E,EAAOroF,KAAKkN,QACrBkN,QAASiuE,EAAOroF,KAAKoa,QACrB5U,QAAS6iF,EAAOroF,KAAKwF,QACrBkV,eAAgB2tE,EAAOroF,KAAK0a,eAC5BC,wCAAyC0tE,EAAOroF,KAAK2a,wCACrDN,yBAA0BguE,EAAOroF,KAAKqa,yBACtCC,uBAAwB+tE,EAAOroF,KAAKsa,uBACpCC,oBAAqB8tE,EAAOroF,KAAKua,oBACjCC,cAAe6tE,EAAOroF,KAAKwa,cAC3BC,QAAS4tE,EAAOroF,KAAKya,QACrBI,YAAawtE,EAAOroF,KAAK6a,YACzBC,YAAautE,EAAOroF,KAAK8a,YACzBC,iBAAkBstE,EAAOroF,KAAK+a,iBAC9B3a,gBAAiBioF,EAAOroF,KAAKI,gBAC7Bgb,cAAeitE,EAAOroF,KAAKob,cAC3BJ,eAAgBqtE,EAAOroF,KAAKgb,eAC5BC,aAAcotE,EAAOroF,KAAKib,aAC1BC,mBAAoBmtE,EAAOroF,KAAKkb,mBAChCG,wBAAyBgtE,EAAOroF,KAAKqb,wBACrCF,gBAAiBktE,EAAOroF,KAAKmb,gBAC7BG,8BAA+B+sE,EAAOroF,KAAKsb,8BAC3CrE,oBAAqBoxE,EAAOroF,KAAKiX,sBAErC,IAAK,oBACH,OAAA/kB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,mBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR4J,KAAMqoF,EAAOroF,KACbwL,eAAgB68E,EAAO78E,iBAE3B,IAAK,cACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXuK,WAAY+wE,EAAO/wE,WACnBpc,OAAQmtF,EAAOntF,OACfkX,UAAWi2E,EAAOj2E,UAClB+G,WAAYkvE,EAAOlvE,WACnB5B,WAAY8wE,EAAO9wE,WACnBC,YAAa6wE,EAAO7wE,YACpBgD,cAAe6tE,EAAO7tE,cACtBpO,QAASi8E,EAAOj8E,QAChB2N,gBAAiBsuE,EAAOtuE,gBACxBC,sBAAuBquE,EAAOruE,sBAC9BC,WAAYouE,EAAOpuE,WACnBb,eAAgBivE,EAAOjvE,eACvBC,gBAAiBgvE,EAAOhvE,gBACxBC,gBAAiB+uE,EAAO/uE,gBACxBI,QAAS2uE,EAAO3uE,QAChBxZ,eAAgBmoF,EAAOnoF,eACvByZ,SAAU0uE,EAAO1uE,SACjBJ,qBAAsB8uE,EAAO9uE,qBAC7BC,2BAA4B6uE,EAAO7uE,2BACnCC,cAAe4uE,EAAO5uE,cACtBG,SAAUyuE,EAAOzuE,SACjBC,UAAWwuE,EAAOxuE,UAClBC,IAAKuuE,EAAOvuE,IACZ/Z,aAAcsoF,EAAOtoF,aACrB6a,SAAUytE,EAAOztE,SACjBV,MAAOmuE,EAAOnuE,MACdC,WAAYkuE,EAAOluE,WACnBjN,QAASm7E,EAAOn7E,QAChBkN,QAASiuE,EAAOjuE,QAChB5U,QAAS6iF,EAAO7iF,QAChBkV,eAAgB2tE,EAAO3tE,eACvBC,wCAAyC0tE,EAAO1tE,wCAChDN,yBAA0BguE,EAAOhuE,yBACjCC,uBAAwB+tE,EAAO/tE,uBAC/BC,oBAAqB8tE,EAAO9tE,oBAC5BE,QAAS4tE,EAAO5tE,QAChBI,YAAawtE,EAAOxtE,YACpBC,YAAautE,EAAOvtE,YACpB1a,gBAAiBioF,EAAOjoF,gBACxB2a,iBAAkBstE,EAAOttE,iBACzBC,eAAgBqtE,EAAOrtE,eACvBI,cAAeitE,EAAOjtE,cACtBH,aAAcotE,EAAOptE,aACrBC,mBAAoBmtE,EAAOntE,mBAC3BG,wBAAyBgtE,EAAOhtE,wBAChCF,gBAAiBktE,EAAOltE,gBACxBG,8BAA+B+sE,EAAO/sE,8BACtCrE,oBAAqBoxE,EAAOpxE,sBAEhC,IAAK,aACH,OAAO+vE,GACT,IAAK,mCACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR4J,KAAM,IAAI5J,EAAM4J,KAAMqoF,EAAO5nF,KAAKT,QAEtC,IAAK,wBACH,OAAA9N,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,iBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,oBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRykE,qBAAsBzkE,EAAMykE,sBAEhC,QACE,OAAOzkE,IgCnNXylB,U/B5DK,WAAkD,IAA/BzlB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,4BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxsE,UAAUnS,GACrBqD,WAAW,EACXkD,YAAao4E,EAAOxsE,UAAU5L,YAC9BC,aAAcm4E,EAAOxsE,UAAU3L,aAC/B7D,OAAQg8E,EAAOxsE,UAAUxP,OACzBrM,KAAMqoF,EAAOxsE,UAAU7b,KACvBmQ,SAAUk4E,EAAOxsE,UAAU1L,SAC3B0L,UAAWwsE,EAAOxsE,UAAUA,YAEhC,IAAK,4BACH,OAAA3pB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,0BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,0BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxsE,UAAUnS,GACrBqD,WAAW,EACXkD,YAAao4E,EAAOxsE,UAAU5L,YAC9BC,aAAcm4E,EAAOxsE,UAAU3L,aAC/B7D,OAAQg8E,EAAOxsE,UAAUxP,OACzBrM,KAAMqoF,EAAOxsE,UAAU7b,KACvBmQ,SAAUk4E,EAAOxsE,UAAU1L,SAC3B0L,UAAWwsE,EAAOxsE,UAAUA,YAEhC,IAAK,0BACH,OAAA3pB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,yBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRylB,UAAWwsE,EAAOxsE,UAClBrQ,eAAgB68E,EAAO78E,iBAE3B,IAAK,oBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXkD,YAAao4E,EAAOp4E,YACpBC,aAAcm4E,EAAOn4E,aACrB7D,OAAQg8E,EAAOh8E,OACf8D,SAAUk4E,EAAOl4E,SACjBnQ,KAAMqoF,EAAOroF,KACb6b,UAAWwsE,EAAOxsE,YAEtB,IAAK,mBACH,OAAOmrE,GACT,IAAK,0BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJ2C,OAAQ,EACR6D,aAAc,GACdD,YAAa,EACbjQ,KAAM,OAEV,IAAK,yBACH,OAAA9N,wBAAA,GACKkE,GAAK,IACRylB,UAAW,IAAIzlB,EAAMylB,UAAWwsE,EAAO5nF,KAAKob,aAEhD,IAAK,8BACH,OAAA3pB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,uBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,0BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I+BtCXgnB,c9B3DK,WAAsD,IAA/BhnB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACxD,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,gCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOjrE,cAAc1T,GACzBqD,WAAW,EACX8G,UAAWw0E,EAAOjrE,cAAcvJ,UAChCwJ,KAAMgrE,EAAOjrE,cAAcC,KAC3BhR,OAAQg8E,EAAOjrE,cAAc/Q,OAC7BD,QAASi8E,EAAOjrE,cAAchR,QAC9Ba,UAAWo7E,EAAOjrE,cAAcnQ,UAChCjN,KAAMqoF,EAAOjrE,cAAcpd,KAC3BmQ,SAAUk4E,EAAOjrE,cAAcjN,SAC/BiN,cAAeirE,EAAOjrE,cAAcA,gBAExC,IAAK,gCACH,OAAAlrB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,8BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOjrE,cAAc1T,GACzBqD,WAAW,EACXsQ,KAAMgrE,EAAOjrE,cAAcC,KAC3BxJ,UAAWw0E,EAAOjrE,cAAcvJ,UAChCxH,OAAQg8E,EAAOjrE,cAAc/Q,OAC7BD,QAASi8E,EAAOjrE,cAAchR,QAC9Ba,UAAWo7E,EAAOjrE,cAAcnQ,UAChCjN,KAAMqoF,EAAOjrE,cAAcpd,KAC3BmQ,SAAUk4E,EAAOjrE,cAAcjN,SAC/BiN,cAAeirE,EAAOjrE,cAAcA,gBAExC,IAAK,8BACH,OAAAlrB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,6BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRgnB,cAAeirE,EAAOjrE,cACtB5R,eAAgB68E,EAAO78E,iBAE3B,IAAK,wBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXsQ,KAAMgrE,EAAOhrE,KACbxJ,UAAWw0E,EAAOx0E,UAClBxH,OAAQg8E,EAAOh8E,OACfD,QAASi8E,EAAOj8E,QAChBa,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBnQ,KAAMqoF,EAAOroF,KACbod,cAAeirE,EAAOjrE,gBAE1B,IAAK,uBACH,OAAO4pE,GACT,IAAK,8BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJ2C,OAAQ,EACRwH,UAAW,GACXzH,QAAS,EACTa,UAAW,EACXoQ,KAAM,EACNrd,KAAM,OAEV,IAAK,6BACH,OAAA9N,wBAAA,GACKkE,GAAK,IACRgnB,cAAe,IAAIhnB,EAAMgnB,cAAeirE,EAAO5nF,KAAK2c,iBAExD,IAAK,kCACH,OAAAlrB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,2BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I8B/CXioB,a3B3DK,WAAqD,IAA/BjoB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACvD,OAAQysF,EAAO1yF,MACb,IAAK,+BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOhqE,aAAa3U,GACxBqD,WAAW,EACXuR,aAAc+pE,EAAOhqE,aAAaC,aAClC9B,cAAe6rE,EAAOhqE,aAAa7B,cACnCvP,UAAWo7E,EAAOhqE,aAAapR,UAC/BsR,YAAa8pE,EAAOhqE,aAAaE,YACjCrR,QAASm7E,EAAOhqE,aAAanR,QAC7BlN,KAAMqoF,EAAOhqE,aAAare,KAC1Bwe,uBAAwB6pE,EAAOhqE,aAAaG,uBAC5CC,MAAO4pE,EAAOhqE,aAAaI,QAE/B,IAAK,+BACH,OAAAvsB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,6BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOhqE,aAAa3U,GACxBqD,WAAW,EACXuR,aAAc+pE,EAAOhqE,aAAaC,aAClC9B,cAAe6rE,EAAOhqE,aAAa7B,cACnCvP,UAAWo7E,EAAOhqE,aAAapR,UAC/BsR,YAAa8pE,EAAOhqE,aAAaE,YACjCrR,QAASm7E,EAAOhqE,aAAanR,QAC7BlN,KAAMqoF,EAAOhqE,aAAare,KAC1Bwe,uBAAwB6pE,EAAOhqE,aAAaG,uBAC5CC,MAAO4pE,EAAOhqE,aAAaI,QAE/B,IAAK,6BACH,OAAAvsB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,4BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRioB,aAAcgqE,EAAOhqE,aACrB7S,eAAgB68E,EAAO78E,iBAE3B,IAAK,uBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXuR,aAAc+pE,EAAO/pE,aACrB9B,cAAe6rE,EAAO7rE,cACtBvP,UAAWo7E,EAAOp7E,UAClBsR,YAAa8pE,EAAO9pE,YACpBrR,QAASm7E,EAAOn7E,QAChBlN,KAAMqoF,EAAOroF,KACbwe,uBAAwB6pE,EAAO7pE,uBAC/BC,MAAO4pE,EAAO5pE,QAElB,IAAK,sBACH,OAAOuoE,GACT,IAAK,6BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRsT,GAAI,EACJqD,WAAW,EACXuR,aAAc,GACd9B,cAAe,GACfvP,UAAW,EACXsR,YAAa,GACbrR,QAAS,GACTlN,KAAM,GACNwe,uBAAwB,GACxBC,MAAO,KAEX,IAAK,4CACH,OAAAvsB,wBAAA,GACKkE,GAAK,IACRioB,aAAc,IAAIjoB,EAAMioB,aAAcgqE,EAAO5nF,KAAK4d,gBAEtD,IAAK,iCACH,OAAAnsB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,0BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I2BjDXwnB,e1B7DK,WAAuD,IAA/BxnB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACzD,OAAQysF,EAAO1yF,MACb,IAAK,iCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,iCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOzqE,eAAelU,GAC1BqD,WAAW,EACX8Q,OAAQwqE,EAAOzqE,eAAeC,OAC9BxR,OAAQg8E,EAAOzqE,eAAevR,OAC9BrM,KAAMqoF,EAAOzqE,eAAe5d,KAC5B4Z,SAAUyuE,EAAOzqE,eAAehE,SAChCC,UAAWwuE,EAAOzqE,eAAe/D,UACjClL,SAAU05E,EAAOzqE,eAAejP,SAChCwB,SAAUk4E,EAAOzqE,eAAezN,SAChCyN,eAAgByqE,EAAOzqE,eAAeA,iBAE1C,IAAK,iCACH,OAAA1rB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,+BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOzqE,eAAelU,GAC1BqD,WAAW,EACX8Q,OAAQwqE,EAAOzqE,eAAeC,OAC9BxR,OAAQg8E,EAAOzqE,eAAevR,OAC9BrM,KAAMqoF,EAAOzqE,eAAe5d,KAC5B4Z,SAAUyuE,EAAOzqE,eAAehE,SAChCC,UAAWwuE,EAAOzqE,eAAe/D,UACjClL,SAAU05E,EAAOzqE,eAAejP,SAChCwB,SAAUk4E,EAAOzqE,eAAezN,SAChCyN,eAAgByqE,EAAOzqE,eAAeA,iBAE1C,IAAK,+BACH,OAAA1rB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,8BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRwnB,eAAgByqE,EAAOzqE,eACvBpS,eAAgB68E,EAAO78E,iBAE3B,IAAK,yBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACX8Q,OAAQwqE,EAAOxqE,OACfxR,OAAQg8E,EAAOh8E,OACfrM,KAAMqoF,EAAOroF,KACb4Z,SAAUyuE,EAAOzuE,SACjBC,UAAWwuE,EAAOxuE,UAClBlL,SAAU05E,EAAO15E,SACjBwB,SAAUk4E,EAAOl4E,SACjByN,eAAgByqE,EAAOzqE,iBAE3B,IAAK,wBACH,OAAOopE,GACT,IAAK,+BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXrD,GAAI,EACJmU,OAAQ,EACRxR,OAAQ,EACRrM,KAAM,KACN4Z,SAAU,GACVC,UAAW,GACXlL,SAAU,GACVwB,UAAU,IAEd,IAAK,8BACH,OAAAje,wBAAA,GACKkE,GAAK,IACRwnB,eAAgB,IAAIxnB,EAAMwnB,eAAgByqE,EAAO5nF,KAAKmd,kBAE1D,IAAK,mCACH,OAAA1rB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,4BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I0B9CX6oB,W7B5DK,WAAmD,IAA/B7oB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACrD,OAAQysF,EAAO1yF,MACb,IAAK,6BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOppE,WAAWvV,GACtBqD,WAAW,EACXV,OAAQg8E,EAAOppE,WAAW5S,OAC1BY,UAAWo7E,EAAOppE,WAAWhS,UAC7BxM,KAAM4nF,EAAOppE,WAAWxe,KACxBye,kBAAmBmpE,EAAOppE,WAAWC,kBACrClS,YAAaq7E,EAAOppE,WAAWjS,YAC/BmS,mBAAoBkpE,EAAOppE,WAAWE,mBACtCnf,KAAMqoF,EAAOppE,WAAWjf,KACxBkN,QAASm7E,EAAOppE,WAAW/R,QAC3BkS,mBAAoBipE,EAAOppE,WAAWG,mBACtCC,oBAAqBgpE,EAAOppE,WAAWI,sBAE3C,IAAK,6BACH,OAAAntB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,2BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,2BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOppE,WAAWvV,GACtBqD,WAAW,EACXV,OAAQg8E,EAAOppE,WAAW5S,OAC1BY,UAAWo7E,EAAOppE,WAAWhS,UAC7BxM,KAAM4nF,EAAOppE,WAAWxe,KACxBye,kBAAmBmpE,EAAOppE,WAAWC,kBACrCC,mBAAoBkpE,EAAOppE,WAAWE,mBACtCnf,KAAMqoF,EAAOppE,WAAWjf,KACxBkN,QAASm7E,EAAOppE,WAAW/R,QAC3BkS,mBAAoBipE,EAAOppE,WAAWG,mBACtCC,oBAAqBgpE,EAAOppE,WAAWI,sBAE3C,IAAK,2BACH,OAAAntB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,0BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR6oB,WAAYopE,EAAOppE,WACnBzT,eAAgB68E,EAAO78E,iBAE3B,IAAK,qBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXV,OAAQg8E,EAAOh8E,OACfY,UAAWo7E,EAAOp7E,UAClBxM,KAAM4nF,EAAO5nF,KACbye,kBAAmBmpE,EAAOnpE,kBAC1BC,mBAAoBkpE,EAAOlpE,mBAC3Bnf,KAAMqoF,EAAOroF,KACbkN,QAASm7E,EAAOn7E,QAChBkS,mBAAoBipE,EAAOjpE,mBAC3BC,oBAAqBgpE,EAAOhpE,sBAEhC,IAAK,oBACH,OAAO2nE,GACT,IAAK,0CACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR6oB,WAAY,IAAI7oB,EAAM6oB,WAAYopE,EAAO5nF,KAAKwe,cAElD,IAAK,+BACH,OAAA/sB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,wBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,2BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,I6BtCX0pB,YzB1DK,WAAoD,IAA/B1pB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACtD,OAAQysF,EAAO1yF,MACb,IAAK,8BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOvoE,YAAYpW,GACvBqD,WAAW,EACXtM,KAAM4nF,EAAOvoE,YAAYrf,KACzB4L,OAAQg8E,EAAOvoE,YAAYzT,OAC3BrM,KAAMqoF,EAAOvoE,YAAY9f,KACzBoS,UAAWi2E,EAAOvoE,YAAY1N,UAC9B5M,QAAS6iF,EAAOvoE,YAAYta,QAC5B2K,SAAUk4E,EAAOvoE,YAAY3P,SAC7BjV,OAAQmtF,EAAOvoE,YAAY5kB,OAC3BujB,MAAO4pE,EAAOvoE,YAAYrB,MAC1BsB,SAAUsoE,EAAOvoE,YAAYC,SAC7BC,yBAA0BqoE,EAAOvoE,YAAYE,yBAC7CE,oBAAqBmoE,EAAOvoE,YAAYI,oBACxCD,iBAAkBooE,EAAOvoE,YAAYG,mBAEzC,IAAK,8BACH,OAAA/tB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,4BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOvoE,YAAYpW,GACvBqD,WAAW,EACXtM,KAAM4nF,EAAOvoE,YAAYrf,KACzB4L,OAAQg8E,EAAOvoE,YAAYzT,OAC3BrM,KAAMqoF,EAAOvoE,YAAY9f,KACzBoS,UAAWi2E,EAAOvoE,YAAY1N,UAC9B5M,QAAS6iF,EAAOvoE,YAAYta,QAC5B2K,SAAUk4E,EAAOvoE,YAAY3P,SAC7BjV,OAAQmtF,EAAOvoE,YAAY5kB,OAC3BujB,MAAO4pE,EAAOvoE,YAAYrB,MAC1BsB,SAAUsoE,EAAOvoE,YAAYC,SAC7BC,yBAA0BqoE,EAAOvoE,YAAYE,yBAC7CC,iBAAkBooE,EAAOvoE,YAAYG,iBACrCC,oBAAqBmoE,EAAOvoE,YAAYI,sBAE5C,IAAK,4BACH,OAAAhuB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,2BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR0pB,YAAauoE,EAAOvoE,YACpBtU,eAAgB68E,EAAO78E,iBAE3B,IAAK,qBACH,OAAOw7E,GACT,IAAK,2CACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR0pB,YAAa,IAAI1pB,EAAM0pB,YAAauoE,EAAO5nF,KAAKqf,eAEpD,IAAK,sBACH,OAAA5tB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXtM,KAAM4nF,EAAO5nF,KACb4L,OAAQg8E,EAAOh8E,OACfrM,KAAMqoF,EAAOroF,KACboS,UAAWi2E,EAAOj2E,UAClB5M,QAAS6iF,EAAO7iF,QAChB2K,SAAUk4E,EAAOl4E,SACjBjV,OAAQmtF,EAAOntF,OACfujB,MAAO4pE,EAAO5pE,MACdsB,SAAUsoE,EAAOtoE,SACjBC,yBAA0BqoE,EAAOroE,yBACjCC,iBAAkBooE,EAAOpoE,iBACzBC,oBAAqBmoE,EAAOnoE,sBAEhC,IAAK,gCACH,OAAAhuB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,yBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IyBhDXyqB,0BxBrEK,WAAkE,IAA/BzqB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpE,OAAQysF,EAAO1yF,MACb,IAAK,+CACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+CACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxnE,0BAA0BnX,GACrCqD,WAAW,EACXsP,eAAgBgsE,EAAOxnE,0BAA0BxE,eACjDunD,uBAAwBykB,EAAOxnE,0BAA0B+iD,yBAE7D,IAAK,+CACH,OAAA1xE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,6CACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6CACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxnE,0BAA0BnX,GACrCqD,WAAW,EACXsP,eAAgBgsE,EAAOxnE,0BAA0BxE,eACjDunD,uBAAwBykB,EAAOxnE,0BAA0B+iD,yBAE7D,IAAK,6CACH,OAAA1xE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,4CACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRyqB,0BAA2BwnE,EAAOxnE,0BAClCrV,eAAgB68E,EAAO78E,iBAE3B,IAAK,sCACH,OAAOw7E,GACT,IAAK,4DACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRyqB,0BAA2B,IAAIzqB,EAAMyqB,0BAA2BwnE,EAAO5nF,KAAKogB,6BAEhF,IAAK,uCACH,OAAA3uB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXsP,eAAgBgsE,EAAOhsE,eACvBunD,uBAAwBykB,EAAOzkB,yBAEnC,IAAK,iDACH,OAAA1xE,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,0CACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,6CACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IwBPX6qB,UvB7DK,WAAkD,IAA/B7qB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,4BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOpnE,UAAUvX,GACrBqD,WAAW,EACXuK,WAAY+wE,EAAOpnE,UAAU3J,WAC7Bpc,OAAQmtF,EAAOpnE,UAAU/lB,OACzBgmB,SAAUmnE,EAAOpnE,UAAUC,SAC3B7U,OAAQg8E,EAAOpnE,UAAU5U,OACzBkL,WAAY8wE,EAAOpnE,UAAU1J,WAC7BC,YAAa6wE,EAAOpnE,UAAUzJ,YAC9BuC,gBAAiBsuE,EAAOpnE,UAAUlH,gBAClCC,sBAAuBquE,EAAOpnE,UAAUjH,sBACxCha,KAAMqoF,EAAOpnE,UAAUjhB,KACvBmhB,iBAAkBknE,EAAOpnE,UAAUE,mBAEvC,IAAK,4BACH,OAAAjvB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,0BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,0BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOpnE,UAAUvX,GACrBqD,WAAW,EACXuK,WAAY+wE,EAAOpnE,UAAU3J,WAC7Bpc,OAAQmtF,EAAOpnE,UAAU/lB,OACzBgmB,SAAUmnE,EAAOpnE,UAAUC,SAC3B7U,OAAQg8E,EAAOpnE,UAAU5U,OACzBkL,WAAY8wE,EAAOpnE,UAAU1J,WAC7BC,YAAa6wE,EAAOpnE,UAAUzJ,YAC9B+B,qBAAsB8uE,EAAOpnE,UAAU1H,qBACvCQ,gBAAiBsuE,EAAOpnE,UAAUlH,gBAClCC,sBAAuBquE,EAAOpnE,UAAUjH,sBACxCha,KAAMqoF,EAAOpnE,UAAUjhB,KACvBmhB,iBAAkBknE,EAAOpnE,UAAUE,mBAEvC,IAAK,0BACH,OAAAjvB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,yBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR6qB,UAAWonE,EAAOpnE,UAClBzV,eAAgB68E,EAAO78E,iBAE3B,IAAK,oBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXuK,WAAY+wE,EAAO/wE,WACnBpc,OAAQmtF,EAAOntF,OACfgmB,SAAUmnE,EAAOnnE,SACjB7U,OAAQg8E,EAAOh8E,OACfkL,WAAY8wE,EAAO9wE,WACnBC,YAAa6wE,EAAO7wE,YACpBuC,gBAAiBsuE,EAAOtuE,gBACxBC,sBAAuBquE,EAAOruE,sBAC9Bha,KAAMqoF,EAAOpnE,UACbE,iBAAkBknE,EAAOG,wBAE7B,IAAK,mBACH,OAAOxB,GACT,IAAK,0BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRsT,GAAI,EACJ4N,WAAY,GACZpc,OAAQ,GACRgmB,SAAU,GACV7U,OAAQ,EACRkL,WAAY,GACZC,YAAa,GACbuC,gBAAiB,GACjBC,sBAAuB,GACvBha,KAAM,KACNmhB,iBAAkB,KAEtB,IAAK,yCACH,OAAAjvB,wBAAA,GACKkE,GAAK,IACRqyF,cAAe,IAAIryF,EAAM6qB,UAAWonE,EAAO5nF,KAAKwgB,aAEpD,IAAK,8BACH,OAAA/uB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,uBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,0BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IuBvDXqrB,ctB1DK,WAAsD,IAA/BrrB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACxD,OAAQysF,EAAO1yF,MACb,IAAK,iCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,iCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO5mE,cAAc/X,GACzBqD,WAAW,EACXuK,WAAY+wE,EAAO5mE,cAAcnK,WACjCoK,OAAQ2mE,EAAO5mE,cAAcC,OAC7BtJ,YAAaiwE,EAAO5mE,cAAcrJ,YAClCuJ,UAAW0mE,EAAO5mE,cAAcE,UAChCC,WAAYymE,EAAO5mE,cAAcG,WACjCC,cAAewmE,EAAO5mE,cAAcI,cACpC9H,gBAAiBsuE,EAAO5mE,cAAc1H,gBACtCC,sBAAuBquE,EAAO5mE,cAAczH,sBAC5CiB,aAAcotE,EAAO5mE,cAAcxG,aACnC7B,eAAgBivE,EAAO5mE,cAAcrI,eACrCG,qBAAsB8uE,EAAO5mE,cAAclI,qBAC3CF,gBAAiBgvE,EAAO5mE,cAAcpI,gBACtCC,gBAAiB+uE,EAAO5mE,cAAcnI,gBACtCI,QAAS2uE,EAAO5mE,cAAc/H,QAC9BuH,UAAWonE,EAAO5mE,cAAcR,YAEpC,IAAK,iCACH,OAAA/uB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,+BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO5mE,cAAc/X,GACzBqD,WAAW,EACXuK,WAAY+wE,EAAO5mE,cAAcnK,WACjCoK,OAAQ2mE,EAAO5mE,cAAcC,OAC7BtJ,YAAaiwE,EAAO5mE,cAAcrJ,YAClCuJ,UAAW0mE,EAAO5mE,cAAcE,UAChCC,WAAYymE,EAAO5mE,cAAcG,WACjCC,cAAewmE,EAAO5mE,cAAcI,cACpC5G,aAAcotE,EAAO5mE,cAAcxG,aACnC1B,qBAAsB8uE,EAAO5mE,cAAclI,qBAC3CQ,gBAAiBsuE,EAAO5mE,cAAc1H,gBACtCC,sBAAuBquE,EAAO5mE,cAAczH,sBAC5CZ,eAAgBivE,EAAO5mE,cAAcrI,eACrCG,qBAAsB8uE,EAAO5mE,cAAclI,qBAC3CF,gBAAiBgvE,EAAO5mE,cAAcpI,gBACtCC,gBAAiB+uE,EAAO5mE,cAAcnI,gBACtCI,QAAS2uE,EAAO5mE,cAAc/H,QAC9BuH,UAAWonE,EAAO5mE,cAAcR,YAEpC,IAAK,+BACH,OAAA/uB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,8BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRqrB,cAAe4mE,EAAO5mE,cACtBjW,eAAgB68E,EAAO78E,iBAE3B,IAAK,yBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXuK,WAAY+wE,EAAO/wE,WACnBoK,OAAQ2mE,EAAO3mE,OACftJ,YAAaiwE,EAAOjwE,YACpBuJ,UAAW0mE,EAAO1mE,UAClBC,WAAYymE,EAAOzmE,WACnBC,cAAewmE,EAAOxmE,cACtB5G,aAAcotE,EAAOptE,aACrBlB,gBAAiBsuE,EAAOtuE,gBACxBC,sBAAuBquE,EAAOruE,sBAC9BZ,eAAgBivE,EAAOjvE,eACvBG,qBAAsB8uE,EAAO9uE,qBAC7BF,gBAAiBgvE,EAAOhvE,gBACxBC,gBAAiB+uE,EAAO/uE,gBACxBI,QAAS2uE,EAAO3uE,QAChBuH,UAAWonE,EAAOpnE,YAEtB,IAAK,wBACH,OAAO+lE,GACT,IAAK,+BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRsT,GAAI,EACJqD,WAAW,EACXuK,WAAY,GACZoK,OAAQ,GACRtJ,YAAa,EACbuJ,UAAW,EACXC,WAAY,GACZC,cAAe,GACf9H,gBAAiB,GACjBC,sBAAuB,GACvBZ,eAAgB,EAChBG,qBAAsB,EACtBF,gBAAiB,GACjBC,gBAAiB,GACjBI,SAAS,EACTuH,UAAW,OAEf,IAAK,+BACH,OAAA/uB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXuK,WAAY,GACZoK,OAAQ,GACRC,UAAW,EACXC,WAAY,GACZC,cAAe,GACf9H,gBAAiB,GACjBC,sBAAuB,KAE3B,IAAK,8CACH,OAAA9nB,wBAAA,GACKkE,GAAK,IACRsyF,kBAAmB,IAAItyF,EAAMqrB,cAAe4mE,EAAO5nF,KAAKghB,iBAE5D,IAAK,mCACH,OAAAvvB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,4BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,+BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IsB1FX2qE,oBrBxEK,WAA4D,IAA/B3qE,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC9D,OAAQysF,EAAO1yF,MACb,IAAK,uCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOtnB,oBAAoBr3D,GAC/BqD,WAAW,EACXsP,eAAgBgsE,EAAOtnB,oBAAoB1kD,eAC3CyrE,iBAAkBO,EAAOtnB,oBAAoB+mB,iBAC7C33E,SAAUk4E,EAAOtnB,oBAAoB5wD,WAEzC,IAAK,uCACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,qCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,qCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOtnB,oBAAoBr3D,GAC/BqD,WAAW,EACXsP,eAAgBgsE,EAAOtnB,oBAAoB1kD,eAC3CyrE,iBAAkBO,EAAOtnB,oBAAoB+mB,iBAC7C33E,SAAUk4E,EAAOtnB,oBAAoB5wD,WAEzC,IAAK,qCACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,oCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2qE,oBAAqBsnB,EAAOtnB,oBAC5Bv1D,eAAgB68E,EAAO78E,iBAE3B,IAAK,8BACH,OAAOw7E,GACT,IAAK,oDACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2qE,oBAAqB,IAAI3qE,EAAM2qE,oBAAqBsnB,EAAO5nF,KAAKsgE,uBAEpE,IAAK,+BACH,OAAA7uE,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXsP,eAAgBgsE,EAAOhsE,eACvByrE,iBAAkBO,EAAOP,iBACzB33E,SAAUk4E,EAAOl4E,WAErB,IAAK,yCACH,OAAAje,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,kCACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,qCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IqBPXmsB,gBpB7EK,WAAwD,IAA/BnsB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACxD,OAAQysF,EAAO1yF,MACX,IAAK,+BACD,OAAAzD,wBAAA,GACOkE,GAAK,IACRmsB,gBAAiB8lE,EAAO9lE,gBACxB/W,eAAgB68E,EAAO78E,iBAE/B,IAAK,6BACD,OAAAtZ,wBAAA,GACOkE,GAAK,IACR2W,WAAW,IAEnB,IAAK,gCACD,OAAA7a,wBAAA,GACOkE,GAAK,IACR2W,WAAW,IAEnB,QACI,OAAO3W,IoB2DjBwsB,cnB/DK,WAAsD,IAA/BxsB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACxD,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,gCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOzlE,cAAclZ,GACzBqD,WAAW,EACXtM,KAAM4nF,EAAOzlE,cAAcniB,KAC3BoiB,MAAOwlE,EAAOzlE,cAAcC,MAC5BC,UAAWulE,EAAOzlE,cAAcE,UAChCrE,MAAO4pE,EAAOzlE,cAAcnE,MAC5BsE,gBAAiBslE,EAAOzlE,cAAcG,gBACtC3W,QAASi8E,EAAOzlE,cAAcxW,QAC9BC,OAAQg8E,EAAOzlE,cAAcvW,OAC7BrM,KAAMqoF,EAAOzlE,cAAc5iB,KAC3BiN,UAAWo7E,EAAOzlE,cAAc3V,UAChCC,QAASm7E,EAAOzlE,cAAc1V,QAC9BiD,SAAUk4E,EAAOzlE,cAAczS,SAC/BnD,YAAaq7E,EAAOzlE,cAAc5V,YAClCgW,qBAAsBqlE,EAAOzlE,cAAcI,uBAE/C,IAAK,gCACH,OAAA9wB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,8BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOzlE,cAAclZ,GACzBqD,WAAW,EACXtM,KAAM4nF,EAAOzlE,cAAcniB,KAC3BoiB,MAAOwlE,EAAOzlE,cAAcC,MAC5BC,UAAWulE,EAAOzlE,cAAcE,UAChCrE,MAAO4pE,EAAOzlE,cAAcnE,MAC5BsE,gBAAiBslE,EAAOzlE,cAAcG,gBACtC3W,QAASi8E,EAAOzlE,cAAcxW,QAC9BC,OAAQg8E,EAAOzlE,cAAcvW,OAC7BrM,KAAMqoF,EAAOzlE,cAAc5iB,KAC3BiN,UAAWo7E,EAAOzlE,cAAc3V,UAChCC,QAASm7E,EAAOzlE,cAAc1V,QAC9BiD,SAAUk4E,EAAOzlE,cAAczS,SAC/BnD,YAAaq7E,EAAOzlE,cAAc5V,YAClCgW,qBAAsBqlE,EAAOzlE,cAAcI,uBAE/C,IAAK,8BACH,OAAA9wB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,6BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRwsB,cAAeylE,EAAOzlE,cACtBpX,eAAgB68E,EAAO78E,iBAE3B,IAAK,uBACH,OAAOw7E,GACT,IAAK,6CACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRwsB,cAAe,IAAIxsB,EAAMwsB,cAAeylE,EAAO5nF,KAAKmiB,iBAExD,IAAK,wBACH,OAAA1wB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXtM,KAAM4nF,EAAO5nF,KACboiB,MAAOwlE,EAAOxlE,MACdC,UAAWulE,EAAOvlE,UAClBrE,MAAO4pE,EAAO5pE,MACdsE,gBAAiBslE,EAAOtlE,gBACxB3W,QAASi8E,EAAOj8E,QAChBC,OAAQg8E,EAAOh8E,OACfrM,KAAMqoF,EAAOroF,KACbiN,UAAWo7E,EAAOp7E,UAClBC,QAASm7E,EAAOn7E,QAChBiD,SAAUk4E,EAAOl4E,SACjBnD,YAAaq7E,EAAOr7E,YACpBgW,qBAAsBqlE,EAAOrlE,uBAEjC,IAAK,kCACH,OAAA9wB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,2BACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,ImB9CXytB,kBlBtEK,WAA0D,IAA/BztB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC5D,OAAQysF,EAAO1yF,MACb,IAAK,qCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,qCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxkE,kBAAkBna,GAC7BqD,WAAW,EACXq8D,gBAAiBif,EAAOxkE,kBAAkBulD,gBAC1CrlD,gBAAiBskE,EAAOxkE,kBAAkBE,gBAC1CtF,MAAO4pE,EAAOxkE,kBAAkBpF,MAChCtO,SAAUk4E,EAAOxkE,kBAAkB1T,SACnC3L,OAAQ6jF,EAAOxkE,kBAAkBrf,OACjCwf,oBAAqBqkE,EAAOxkE,kBAAkBG,oBAC9CH,kBAAmBwkE,EAAOxkE,kBAAkBA,kBAC5C1C,iBAAkBknE,EAAOxkE,kBAAkB1C,mBAE/C,IAAK,qCACH,OAAAjvB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,mCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,mCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOxkE,kBAAkBna,GAC7BqD,WAAW,EACXq8D,gBAAiBif,EAAOxkE,kBAAkBulD,gBAC1CrlD,gBAAiBskE,EAAOxkE,kBAAkBE,gBAC1CtF,MAAO4pE,EAAOxkE,kBAAkBpF,MAChCtO,SAAUk4E,EAAOxkE,kBAAkB1T,SACnC3L,OAAQ6jF,EAAOxkE,kBAAkBrf,OACjCwf,oBAAqBqkE,EAAOxkE,kBAAkBG,oBAC9CH,kBAAmBwkE,EAAOxkE,kBAAkBA,kBAC5C1C,iBAAkBknE,EAAOxkE,kBAAkB1C,mBAE/C,IAAK,mCACH,OAAAjvB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,kCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRytB,kBAAmBwkE,EAAOxkE,kBAC1B1C,iBAAkBknE,EAAOlnE,iBACzB3V,eAAgB68E,EAAO78E,eACvB+Y,cAAe8jE,EAAO9jE,gBAE1B,IAAK,6BACH,OAAAryB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACXq8D,gBAAiBif,EAAOjf,gBACxBrlD,gBAAiBskE,EAAOtkE,gBACxBtF,MAAO4pE,EAAO5pE,MACdtO,SAAUk4E,EAAOl4E,SACjB3L,OAAQ6jF,EAAO7jF,OACfwf,oBAAqBqkE,EAAOrkE,oBAC5BH,kBAAmBwkE,EAAOxkE,kBAC1B1C,iBAAkBknE,EAAOlnE,mBAE7B,IAAK,4BACH,OAAO6lE,GACT,IAAK,kDACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRytB,kBAAmB,IAAIztB,EAAMytB,kBAAmBwkE,EAAO5nF,KAAKojB,qBAEhE,IAAK,uCACH,OAAA3xB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,gCACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,mCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IkB1BX8jB,MjCjEK,WAA8C,IAA/B9jB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAChD,OAAQysF,EAAO1yF,MACb,IAAK,uBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOnuE,MAAMxQ,GACjBqD,WAAW,EACX9R,KAAMotF,EAAOnuE,MAAMjf,KACnBwT,QAAS45E,EAAOnuE,MAAMzL,QACtB/K,KAAM2kF,EAAOnuE,MAAMxW,KACnBgL,MAAO25E,EAAOnuE,MAAMxL,MACpBC,SAAU05E,EAAOnuE,MAAMvL,SACvBH,SAAU65E,EAAOnuE,MAAM1L,SACvBM,SAAUu5E,EAAOnuE,MAAMpL,SACvBxF,SAAU++E,EAAOnuE,MAAM5Q,SACvBoG,iBAAkB24E,EAAOnuE,MAAMxK,iBAC/BlG,OAAQ6+E,EAAOnuE,MAAM1Q,OACrBsb,YAAaujE,EAAOnuE,MAAM4K,YAC1BC,mBAAoBsjE,EAAOnuE,MAAM6K,mBACjCC,eAAgBqjE,EAAOrjE,iBAE3B,IAAK,uBACH,OAAA9yB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,qBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,qBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOnuE,MAAMxQ,GACjBqD,WAAW,EACX9R,KAAMotF,EAAOnuE,MAAMjf,KACnBwT,QAAS45E,EAAOnuE,MAAMzL,QACtB/K,KAAM2kF,EAAOnuE,MAAMxW,KACnBgL,MAAO25E,EAAOnuE,MAAMxL,MACpBC,SAAU05E,EAAOnuE,MAAMvL,SACvBH,SAAU65E,EAAOnuE,MAAM1L,SACvBM,SAAUu5E,EAAOnuE,MAAMpL,SACvBxF,SAAU++E,EAAOnuE,MAAM5Q,SACvBE,OAAQ6+E,EAAOnuE,MAAM1Q,OACrBkG,iBAAkB24E,EAAOnuE,MAAMxK,iBAC/BoV,YAAaujE,EAAOnuE,MAAM4K,YAC1BC,mBAAoBsjE,EAAOnuE,MAAM6K,mBACjCC,eAAgBqjE,EAAOnuE,MAAM8K,iBAEjC,IAAK,8BACH,OAAA9yB,wBAAA,GACKkE,GAAK,IACR4uB,eAAgB,KAEpB,IAAK,qBACH,OAAA9yB,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,oBAML,IAAK,2BACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR8jB,MAAOmuE,EAAOnuE,MACd1O,eAAgB68E,EAAO78E,iBAE3B,IAAK,eACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACX9R,KAAMotF,EAAOptF,KACbwT,QAAS45E,EAAO55E,QAChB/K,KAAM2kF,EAAO3kF,KACbgL,MAAO25E,EAAO35E,MACdC,SAAU05E,EAAO15E,SACjBH,SAAU65E,EAAO75E,SACjBM,SAAUu5E,EAAOv5E,SACjBxF,SAAU++E,EAAO/+E,SACjBoG,iBAAkB24E,EAAO34E,iBACzBoV,YAAaujE,EAAOvjE,YACpBtb,OAAQ6+E,EAAO7+E,OACfub,mBAAoBsjE,EAAOtjE,mBAC3BC,eAAgBqjE,EAAOrjE,iBAE3B,IAAK,cACH,OAAOgiE,GACT,IAAK,yBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,kBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,qBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IiClDX2vB,UjB1EK,WAAkD,IAA/B3vB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,wBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2vB,UAAWsiE,EAAOtiE,UAClBva,eAAgB68E,EAAO78E,iBAE3B,IAAK,mBACH,OAAO68E,EAAOtiE,UAChB,IAAK,oBACH,OAAO3vB,EACT,IAAK,kBACH,OAAO4wF,GACT,IAAK,sBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2vB,UAAW,KAEf,IAAK,6BACH,OAAA7zB,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,sBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IiBwCXsmC,UhB9EK,WAAkD,IAA/BtmC,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,wBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRsmC,UAAW2rD,EAAO3rD,YAEtB,IAAK,mBACH,OAAAxqC,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXzO,KAAMotF,EAAOptF,KACb4Y,UAAWw0E,EAAOx0E,UAClB1D,SAAUk4E,EAAOl4E,WAErB,IAAK,oBACH,OAAO/Z,EACT,IAAK,kBACH,OAAO4wF,GACT,IAAK,sBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRsmC,UAAW,KAEf,IAAK,6BACH,OAAAxqC,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,IgBiDXmmC,qBf7EK,WAA6D,IAA/BnmC,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC/D,OAAQysF,EAAO1yF,MACb,IAAK,qCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRmmC,qBAAsB8rD,EAAO9rD,qBAC7BnR,cAAei9D,EAAOj9D,gBAE1B,IAAK,gCACH,OAAAl5B,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXq+E,YAAaM,EAAON,YACpB38D,cAAei9D,EAAOj9D,cACtBuR,UAAW0rD,EAAO1rD,YAEtB,IAAK,+BACH,OAAOqqD,GACT,IAAK,mCACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRmmC,qBAAsB,KAE1B,IAAK,wCACH,OAAArqC,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,wCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXqe,cAAe,EACf48D,YAAY,EACZzrD,qBAAsB,KAE1B,IAAK,wCACH,OAAArqC,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,0CACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,iDACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR4xF,YAAa5xF,EAAM4xF,aAEvB,IAAK,kDACH,OAAA91F,wBAAA,GACKkE,GAAK,IACRmmC,qBAAsBnmC,EAAMmmC,qBAAqBl7B,IAC9Ck7B,GACCA,EAAqB7yB,KAAO2+E,EAAO3+E,GAAExX,wBAAA,GAE9BqqC,GAAoB,IACvBI,WAAYJ,EAAqBI,YAEjCJ,KAGZ,IAAK,0CACH,OAAArqC,wBAAA,GACKkE,GAAK,IACRmmC,qBAAsBnmC,EAAMmmC,qBAAqBl7B,IAC9Ck7B,GAAoBrqC,wBAAA,GAChBqqC,GAAoB,IACvBI,UAAW0rD,EAAOt8E,aAI1B,QACE,OAAO3V,IeEXomC,iBd9EK,WAAyD,IAA/BpmC,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC3D,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRomC,iBAAkB6rD,EAAO7rD,iBACzByrD,UAAWI,EAAOJ,YAEtB,IAAK,2BACH,OAAA/1F,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXq+E,YAAaM,EAAON,YACpBE,UAAWI,EAAOJ,UAClBtrD,UAAW0rD,EAAO1rD,YAEtB,IAAK,0BACH,OAAOqqD,GACT,IAAK,8BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRomC,iBAAkB,KAEtB,IAAK,mCACH,OAAAtqC,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,mCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXk7E,UAAW,EACXD,YAAY,EACZxrD,iBAAkB,KAEtB,IAAK,mCACH,OAAAtqC,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,qCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,4CACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR4xF,YAAa5xF,EAAM4xF,aAEvB,IAAK,6CACH,OAAA91F,wBAAA,GACKkE,GAAK,IACRomC,iBAAkBpmC,EAAMomC,iBAAiBn7B,IAAKm7B,GAC5CA,EAAiB9yB,KAAO2+E,EAAO3+E,GAAExX,wBAAA,GAE1BsqC,GAAgB,IACnBG,WAAYH,EAAiBG,YAE7BH,KAGV,IAAK,qCACH,OAAAtqC,wBAAA,GACKkE,GAAK,IACRomC,iBAAkBpmC,EAAMomC,iBAAiBn7B,IAAKm7B,GAAgBtqC,wBAAA,GACzDsqC,GAAgB,IACnBG,UAAW0rD,EAAOt8E,aAGxB,QACE,OAAO3V,IcMX2xB,UbrFK,WAAkD,IAA/B3xB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,wBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2xB,UAAWsgE,EAAOtgE,UAClBvc,eAAgB68E,EAAO78E,iBAE3B,IAAK,kBACH,OAAOw7E,GACT,IAAK,sBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2xB,UAAW,KAEf,IAAK,6BACH,OAAA71B,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,sBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IauDXiyB,SZhFK,WAAiD,IAA/BjyB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACnD,OAAQysF,EAAO1yF,MACb,IAAK,2BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,2BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOhgE,SAAS3e,GACpBqD,WAAW,EACXmN,MAAOmuE,EAAOhgE,SAASnO,MACvBjf,KAAMotF,EAAOhgE,SAASptB,KACtBmR,QAASi8E,EAAOhgE,SAASjc,QACzBkc,kBAAmB+/D,EAAOhgE,SAASC,kBACnCnY,SAAUk4E,EAAOl4E,WAErB,IAAK,2BACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,yBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOhgE,SAAS3e,GACpBqD,WAAW,EACXmN,MAAOmuE,EAAOhgE,SAASnO,MACvBjf,KAAMotF,EAAOhgE,SAASptB,KACtBmR,QAASi8E,EAAOhgE,SAASjc,QACzBkc,kBAAmB+/D,EAAOhgE,SAASC,kBACnCnY,SAAUk4E,EAAOhgE,SAASlY,WAE9B,IAAK,yBACH,OAAAje,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,wBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRiyB,SAAUggE,EAAOhgE,SACjB7c,eAAgB68E,EAAO78E,iBAE3B,IAAK,mBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACX9R,KAAMotF,EAAOptF,KACbif,MAAOmuE,EAAOnuE,MACd9N,QAASi8E,EAAOj8E,QAChBkc,kBAAmB+/D,EAAO//D,kBAC1BnY,SAAUk4E,EAAOl4E,WAErB,IAAK,kBACH,OAAO62E,GACT,IAAK,6BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,sBACH,OAAA9H,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IYAX6kB,aXrFK,WAAqD,IAA/B7kB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACvD,OAAQysF,EAAO1yF,MACb,IAAK,4BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR6kB,aAAcotE,EAAOptE,eAEzB,QACE,OAAO7kB,IW8EX+yB,gBVpFK,WAAwD,IAA/B/yB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC1D,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR+yB,gBAAiBk/D,EAAOl/D,kBAE5B,QACE,OAAO/yB,IU6EXkzB,gBTrFK,WAAwD,IAA/BlzB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAC1D,OAAQysF,EAAO1yF,MACb,IAAK,gCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRkzB,gBAAiB++D,EAAO/+D,kBAE5B,IAAK,YACH,OAAO09D,GACT,QACE,OAAO5wF,IS4EXuzB,URvFK,WAAkD,IAA/BvzB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACpD,OAAQysF,EAAO1yF,MACb,IAAK,yBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRuzB,UAAW0+D,EAAO1+D,YAEtB,QACE,OAAOvzB,IQgFX0rB,YNzFK,WAAoD,IAA/B1rB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACtD,OAAQysF,EAAO1yF,MACb,IAAK,2BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR0rB,YAAaumE,EAAOvmE,cAExB,QACE,OAAO1rB,IMkFXsU,YPzFK,WAAoD,IAA/BtU,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACtD,OAAQysF,EAAO1yF,MACb,IAAK,2BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRsU,YAAa29E,EAAO39E,cAExB,IAAK,qBACH,OAAOs8E,GACT,IAAK,yBACH,OAAA90F,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IOsEXwkB,SLzFK,WAAiD,IAA/BxkB,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACnD,OAAQysF,EAAO1yF,MACb,IAAK,wBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRwkB,SAAUytE,EAAOztE,WAErB,IAAK,gBACH,OAAA1oB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXzO,KAAMotF,EAAOptF,KACbmO,GAAIi/E,EAAOj/E,GACXY,KAAMq+E,EAAOr+E,OAEjB,IAAK,iBACH,OAAO5T,EACT,IAAK,mBACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,QACE,OAAO5D,IKmEXs0B,QJ5FK,WAAgD,IAA/Bt0B,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAClD,OAAQysF,EAAO1yF,MACb,IAAK,sBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRs0B,QAAS29D,EAAO39D,UAEpB,QACE,OAAOt0B,IIqFXoP,QH7EK,WAAgD,IAA/BpP,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EAClD,OAAQysF,EAAO1yF,MACb,IAAK,sBACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOvgF,KAAK4B,GAChBqD,WAAW,EACX2B,MAAO25E,EAAOvgF,KAAK4G,MACnBzT,KAAMotF,EAAOvgF,KAAK7M,KAClB8M,MAAOsgF,EAAOvgF,KAAKC,MACnBojB,UAAWk9D,EAAOvgF,KAAKqjB,UACvBC,cAAei9D,EAAOvgF,KAAKsjB,cAC3BC,qBAAsBg9D,EAAOvgF,KAAKujB,qBAClCC,WAAY+8D,EAAOvgF,KAAKwjB,WACxB7c,QAAS45E,EAAOvgF,KAAK2G,QACrB8c,IAAK88D,EAAOvgF,KAAKyjB,IACjBC,UAAW68D,EAAOvgF,KAAK0jB,UACvBhd,SAAU65E,EAAOvgF,KAAK0G,SACtBid,eAAgB48D,EAAOvgF,KAAK2jB,eAC5BC,gBAAiB28D,EAAOvgF,KAAK4jB,kBAEjC,IAAK,sBACH,OAAAx5B,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,oBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAO3W,EACT,IAAK,oBACH,OAAAlE,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAOvgF,KAAK4B,GAChBqD,WAAW,EACX2B,MAAO25E,EAAOvgF,KAAK4G,MACnBzT,KAAMotF,EAAOvgF,KAAK7M,KAClB8M,MAAOsgF,EAAOvgF,KAAKC,MACnBojB,UAAWk9D,EAAOvgF,KAAKqjB,UACvBC,cAAei9D,EAAOvgF,KAAKsjB,cAC3BC,qBAAsBg9D,EAAOvgF,KAAKujB,qBAClCC,WAAY+8D,EAAOvgF,KAAKwjB,WACxB7c,QAAS45E,EAAOvgF,KAAK2G,QACrB8c,IAAK88D,EAAOvgF,KAAKyjB,IACjBC,UAAW68D,EAAOvgF,KAAK0jB,UACvBhd,SAAU65E,EAAOvgF,KAAK0G,SACtBid,eAAgB48D,EAAO58D,eACvBC,gBAAiB28D,EAAO38D,kBAE5B,IAAK,oBACH,OAAAx5B,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,iCACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,iCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACX0f,+BAA+B,IAEnC,IAAK,iCACH,OAAAv6B,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,yBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,EACXxd,MAAO84F,EAAO94F,QAElB,IAAK,sBACH,OAAA2C,wBAAA,GACKkE,GAAK,IACRoP,QAAS6iF,EAAO7iF,QAChBgG,eAAgB68E,EAAO78E,iBAE3B,IAAK,iBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACXqD,WAAW,EACX2B,MAAO25E,EAAO35E,MACdzT,KAAMotF,EAAOptF,KACb8M,MAAOsgF,EAAOtgF,MACdojB,UAAWk9D,EAAOl9D,UAClBC,cAAei9D,EAAOj9D,cACtBC,qBAAsBg9D,EAAOh9D,qBAC7BC,WAAY+8D,EAAO/8D,WACnB7c,QAAS45E,EAAO55E,QAChB8c,IAAK88D,EAAO98D,IACZC,UAAW68D,EAAO78D,UAClBhd,SAAU65E,EAAO75E,SACjBid,eAAgB48D,EAAO58D,eACvBC,gBAAiB28D,EAAO38D,kBAE5B,IAAK,aACH,OAAOs7D,GACT,IAAK,sCACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRoP,QAAS,IAAIpP,EAAMoP,QAAS6iF,EAAO5nF,KAAK+E,WAE5C,IAAK,uBACH,MAAO,CACLimB,eAAgB48D,EAAO58D,gBAE3B,IAAK,2BACH,OAAAv5B,wBAAA,GACKkE,GAAK,IACR,CAACiyF,EAAOh0F,OAAQg0F,EAAOruF,QAE3B,IAAK,oCACH,OAAA9H,wBAAA,GACKkE,GAAK,IACRq2B,8BAA+B47D,EAAO92E,OAE1C,IAAK,oBACH,OAAArf,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,uBACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,QACE,OAAO3W,IG5EXy2B,aF5FK,WAAqD,IAA/Bz2B,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACvD,OAAQysF,EAAO1yF,MACb,IAAK,+BACH,OAAAzD,wBAAA,GACKkE,GAAK,IACRgW,QAAS,GACTygB,aAAc,IACTz2B,EAAMy2B,aACTw7D,EAAOx7D,gBAGb,IAAK,4BACH,OAAA36B,wBAAA,GACKkE,GAAK,IACRy2B,aAAcw7D,EAAOx7D,aACrBrhB,eAAgB68E,EAAO78E,iBAE3B,IAAK,uBACH,OAAAtZ,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0I,UAAWi2E,EAAOj2E,UAClBhG,QAASi8E,EAAOj8E,QAChB+D,SAAUk4E,EAAOl4E,SACjB+J,MAAOmuE,EAAOnuE,QAElB,IAAK,wBACH,OAAO9jB,EACT,IAAK,4BACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,4BAKL,IAAK,4BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCAKL,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,sBACH,OAAOi6E,GACT,IAAK,0BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRy2B,aAAc,KAElB,IAAK,+BACH,OAAA36B,wBAAA,GACKkE,GAAK,IACRsT,GAAI,GACJqD,WAAW,EACXqF,UAAW,GACXhG,QAAS,GACT+D,SAAU,KACV+J,MAAO,KAEX,IAAK,+BACH,OAAAhoB,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0I,UAAWi2E,EAAOj2E,UAClBhG,QAASi8E,EAAOj8E,QAChB+D,SAAUk4E,EAAOl4E,SACjB+J,MAAOmuE,EAAOnuE,QAElB,IAAK,iCAKL,IAAK,gBACH,OAAAhoB,wBAAA,GACKkE,GAAK,IACRy2B,aAAcw7D,EAAOvgF,KAAKkd,iBAE9B,QACE,OAAO5uB,IEFXi3B,eD7FK,WAAuD,IAA/Bj3B,EAAK8K,UAAApG,OAAA,QAAAc,IAAAsF,UAAA,GAAAA,UAAA,GAAG8lF,GAAcqB,EAAMnnF,UAAApG,OAAA,EAAAoG,UAAA,QAAAtF,EACzD,OAAQysF,EAAO1yF,MACb,IAAK,iCACH,OAAAzD,wBAAA,GACKkE,GAAK,IACR6W,UAAW,GACXogB,eAAgB,IACXj3B,EAAMi3B,eACTg7D,EAAOh7D,kBAGb,IAAK,8BACH,OAAAn7B,wBAAA,GACKkE,GAAK,IACRi3B,eAAgBg7D,EAAOh7D,iBAE3B,IAAK,yBACH,OAAAn7B,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0I,UAAWi2E,EAAOj2E,UAClBnF,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,0BACH,OAAO9W,EACT,IAAK,8BACH,OAAAlE,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,8BAKL,IAAK,8BACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,yCAKL,IAAK,yCACH,OAAA7a,wBAAA,GACKkE,GAAK,IACR2W,WAAW,IAEf,IAAK,wBACH,OAAOi6E,GACT,IAAK,4BACH,OAAA90F,wBAAA,GACKkE,GAAK,IACRi3B,eAAgB,KAEpB,IAAK,iCACH,OAAAn7B,wBAAA,GACKkE,GAAK,IACRsT,GAAI,GACJqD,WAAW,EACXqF,UAAW,GACXnF,UAAW,GACXkD,SAAU,KACVjD,QAAS,GACTy7E,YAAa,IAEjB,IAAK,iCACH,OAAAz2F,wBAAA,GACKkE,GAAK,IACRsT,GAAI2+E,EAAO3+E,GACX0I,UAAWi2E,EAAOj2E,UAClBnF,UAAWo7E,EAAOp7E,UAClBkD,SAAUk4E,EAAOl4E,SACjBjD,QAASm7E,EAAOn7E,UAEpB,IAAK,iCAKL,IAAK,gBACH,OAAAhb,wBAAA,GACKkE,GAAK,IACRi3B,eAAgBg7D,EAAOvgF,KAAKiH,mBAEhC,QACE,OAAO3Y,ICDXqhD,KAAMmxC,OAUOC,OAPKA,CAACzyF,EAAOiyF,KAC1B,GAAoB,mBAAhBA,EAAO1yF,KAA2B,CACpC,MAAM,QAAEmzF,GAAY1yF,EACpBA,EAAQ,CAAE0yF,WAEZ,OAAOX,GAAW/xF,EAAOiyF,I,yCCnG3B,MAAMU,GAAgB,CACpB/yF,IAAK,mBACLgzF,aACAC,UAAW,CAAC,mBAERC,GAAmBC,aAAeJ,GAAeK,IACjDC,GACJnyF,OAAOoyF,8BAAgCpyF,OAAOoyF,+BAE1CC,GAAQC,aAAgBC,KAAOC,KAAvBF,CAA8BG,KAA9BH,CACZN,GACAG,IAEIO,GAAYC,aAAaN,IAElBO,IAASC,WAAW5D,SAAS6D,eAAe,SAEpDx0F,OACHZ,IAAAC,cAACi5E,KAAQ,CAACyb,MAAOA,IACf30F,IAAAC,cAACo1F,KAAW,CAACrqC,QAAS,KAAMgqC,UAAWA,IACrCh1F,IAAAC,cAAC2xF,GAAG,U,oBCjCVv4F,EAAOC,QAAU,IAA0B,mC,i3ECA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,sC,kBCA3CD,EAAOC,QAAU,sxH,oBCAjBD,EAAOC,QAAU,IAA0B,wC,gkgGCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,2C,+ECA3CD,EAAOC,QAAU,0kD,kBCAjBD,EAAOC,QAAU,uxH","file":"static/js/main.04a0a6ac.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/background.937c7585.png\";","// eslint-disable-next-line no-undef\r\nmodule.exports = {\r\n headers: {\r\n accept: 'application/json'\r\n },\r\n // baseUrl: 'https://f3a6-177-137-253-157.ngrok-free.app/api/'\r\n // baseUrl: 'https://localhost:44301/api/'\r\n baseUrl: 'https://app.raiarconstrutoraonline.com.br/api/'\r\n}\r\n","import { colors } from '@mui/material'\r\n\r\nconst white = '#FFFFFF'\r\nconst black = '#000000'\r\n\r\nexport default {\r\n black,\r\n white,\r\n primary: {\r\n contrastText: white,\r\n dark: colors.grey[600],\r\n main: '#000000',\r\n light: colors.grey[200]\r\n },\r\n secondary: {\r\n contrastText: white,\r\n dark: '#000000',\r\n main: '#000000',\r\n light: '#BF1E21'\r\n },\r\n alternative: {\r\n contrastText: white,\r\n dark: '#BF1E21',\r\n main: '#BF1E21',\r\n light: '#BF1E21'\r\n },\r\n success: {\r\n contrastText: white,\r\n dark: colors.green[900],\r\n main: colors.green[600],\r\n light: colors.green[400]\r\n },\r\n info: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue[600],\r\n light: colors.blue[400]\r\n },\r\n warning: {\r\n contrastText: white,\r\n dark: colors.orange[900],\r\n main: colors.orange[600],\r\n light: colors.orange[400]\r\n },\r\n error: {\r\n contrastText: white,\r\n dark: colors.red[900],\r\n main: colors.red[600],\r\n light: colors.red[400]\r\n },\r\n yellow: {\r\n primary: '#F2D647'\r\n },\r\n text: {\r\n primary: colors.blueGrey[900],\r\n secondary: colors.blueGrey[600],\r\n link: '#BF1E21',\r\n white: white\r\n },\r\n background: {\r\n default: '#F4F6F8',\r\n paper: white\r\n },\r\n icon: colors.blueGrey[600],\r\n divider: colors.grey[200]\r\n}\r\n","import palette from './palette'\r\n\r\nexport default {\r\n h1: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '35px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '40px'\r\n },\r\n h2: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '29px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '32px'\r\n },\r\n h3: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '24px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '28px'\r\n },\r\n h4: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '20px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '24px'\r\n },\r\n h5: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px'\r\n },\r\n h6: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px'\r\n },\r\n subtitle1: {\r\n color: palette.text.primary,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '25px'\r\n },\r\n subtitle2: {\r\n color: palette.text.secondary,\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px'\r\n },\r\n body1: {\r\n color: palette.text.primary,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px'\r\n },\r\n body2: {\r\n color: palette.text.secondary,\r\n fontSize: '12px',\r\n letterSpacing: '-0.04px',\r\n lineHeight: '18px'\r\n },\r\n body3: {\r\n color: palette.text.secondary,\r\n fontSize: '13px',\r\n letterSpacing: '-0.04px',\r\n lineHeight: '15px'\r\n },\r\n button: {\r\n color: palette.text.primary,\r\n fontSize: '14px'\r\n },\r\n caption: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px'\r\n },\r\n overline: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px',\r\n textTransform: 'uppercase'\r\n },\r\n fontFamily: [\r\n 'Poppins',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Open Sans\"',\r\n 'Cantarell',\r\n 'Ubuntu',\r\n 'Oxygen',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(',')\r\n}\r\n","import palette from '../palette'\r\n\r\nexport default {\r\n root: {\r\n color: palette.icon,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\r\n }\r\n }\r\n}\r\n","import MuiButton from './MuiButton'\r\nimport MuiIconButton from './MuiIconButton'\r\nimport MuiPaper from './MuiPaper'\r\nimport MuiTableCell from './MuiTableCell'\r\nimport MuiTableHead from './MuiTableHead'\r\nimport MuiTypography from './MuiTypography'\r\n\r\nexport default {\r\n MuiButton,\r\n MuiIconButton,\r\n MuiPaper,\r\n MuiTableCell,\r\n MuiTableHead,\r\n MuiTypography\r\n}\r\n","export default {\r\n contained: {\r\n boxShadow:\r\n '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\r\n backgroundColor: '#FFFFFF'\r\n }\r\n}\r\n","export default {\r\n elevation1: {\r\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)'\r\n }\r\n}\r\n","import palette from '../palette'\r\nimport typography from '../typography'\r\n\r\nexport default {\r\n root: {\r\n ...typography.body3,\r\n borderBottom: `1px solid ${palette.divider}`\r\n }\r\n}\r\n","import { colors } from '@mui/material'\r\n\r\nexport default {\r\n root: {\r\n backgroundColor: colors.grey[50]\r\n }\r\n}\r\n","export default {\r\n gutterBottom: {\r\n marginBottom: 8\r\n }\r\n}\r\n","import { createTheme } from '@mui/material/styles';\r\nimport { ptBR } from '@mui/material/locale'\r\nimport palette from './palette'\r\nimport typography from './typography'\r\nimport overrides from './overrides'\r\n\r\nconst theme = createTheme(\r\n {\r\n palette,\r\n typography,\r\n overrides,\r\n zIndex: {\r\n appBar: 1200,\r\n drawer: 1100\r\n }\r\n },\r\n ptBR\r\n)\r\n\r\nexport default theme\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Paper, Input } from '@mui/material'\r\nimport SearchIcon from '@mui/icons-material/Search'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n borderRadius: '4px',\r\n alignItems: 'center',\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n flexBasis: 420\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n color: theme.palette.text.secondary\r\n },\r\n input: {\r\n flexGrow: 1,\r\n fontSize: '14px',\r\n lineHeight: '16px',\r\n letterSpacing: '-0.05px'\r\n }\r\n}))\r\n\r\nconst SearchInput = (props) => {\r\n const { className, onChange, style, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nSearchInput.propTypes = {\r\n className: PropTypes.string,\r\n onChange: PropTypes.func,\r\n style: PropTypes.object\r\n}\r\n\r\nexport default SearchInput\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-block',\r\n borderRadius: '50%',\r\n flexGrow: 0,\r\n flexShrink: 0\r\n },\r\n sm: {\r\n height: theme.spacing(1),\r\n width: theme.spacing(1)\r\n },\r\n md: {\r\n height: theme.spacing(2),\r\n width: theme.spacing(2)\r\n },\r\n lg: {\r\n height: theme.spacing(3),\r\n width: theme.spacing(3)\r\n },\r\n neutral: {\r\n backgroundColor: theme.palette.neutral\r\n },\r\n primary: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n info: {\r\n backgroundColor: theme.palette.info.main\r\n },\r\n warning: {\r\n backgroundColor: theme.palette.warning.main\r\n },\r\n danger: {\r\n backgroundColor: theme.palette.error.main\r\n },\r\n success: {\r\n backgroundColor: theme.palette.success.main\r\n }\r\n}))\r\n\r\nconst StatusBullet = (props) => {\r\n const { className, size, color, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nStatusBullet.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n 'neutral',\r\n 'primary',\r\n 'info',\r\n 'success',\r\n 'warning',\r\n 'danger'\r\n ]),\r\n size: PropTypes.oneOf(['sm', 'md', 'lg'])\r\n}\r\n\r\nStatusBullet.defaultProps = {\r\n size: 'md',\r\n color: 'default'\r\n}\r\n\r\nexport default StatusBullet\r\n","import React from 'react'\r\nimport { Route } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\n\r\nconst RouteWithLayout = (props) => {\r\n const { layout: Layout, component: Component, ...rest } = props\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )\r\n}\r\n\r\nRouteWithLayout.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string\r\n}\r\n\r\nexport default RouteWithLayout\r\n","import React from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\n\r\nconst PrivateRouteWithLayout = (props) => {\r\n const { layout: Layout, component: Component, type: Type, ...rest } = props\r\n\r\n return (\r\n \r\n localStorage.getItem('user') ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n )\r\n}\r\n\r\nPrivateRouteWithLayout.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n type: PropTypes.string,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string\r\n}\r\n\r\nexport default PrivateRouteWithLayout\r\n","import React from 'react'\r\nimport { ToastContainer, toast } from 'react-toastify'\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nexport default (props) => \r\n","/* eslint-disable no-undef */\r\nimport React, { useEffect } from 'react'\r\nimport { Helmet } from 'react-helmet'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport useRouter from 'utils/useRouter'\r\n\r\nconst NODE_ENV = process.env.NODE_ENV\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID\r\n\r\nconst Page = (props) => {\r\n const { title, children, ...rest } = props\r\n\r\n const router = useRouter()\r\n\r\n useEffect(() => {\r\n if (NODE_ENV !== 'production') {\r\n return\r\n }\r\n\r\n if (window.gtag) {\r\n window.gtag('config', GA_MEASUREMENT_ID, {\r\n page_path: router.location.pathname,\r\n page_name: title\r\n })\r\n }\r\n }, [title, router])\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nPage.propTypes = {\r\n children: PropTypes.node,\r\n title: PropTypes.string\r\n}\r\n\r\nexport default Page\r\n","import { useContext } from 'react'\r\nimport { __RouterContext } from 'react-router'\r\n\r\nexport default () => useContext(__RouterContext)\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography, colors } from '@mui/material'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexGrow: 0,\r\n flexShrink: 0,\r\n borderRadius: theme.shape.borderRadius,\r\n lineHeight: '10px',\r\n fontSize: '10px',\r\n height: 20,\r\n minWidth: 20,\r\n whiteSpace: 'nowrap',\r\n padding: theme.spacing(0.5, 1)\r\n },\r\n rounded: {\r\n borderRadius: 10,\r\n padding: theme.spacing(0.5)\r\n }\r\n}))\r\n\r\nconst Label = (props) => {\r\n const { className, variant, color, shape, children, style, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const rootClassName = clsx(\r\n {\r\n [classes.root]: true,\r\n [classes.rounded]: shape === 'rounded'\r\n },\r\n className\r\n )\r\n\r\n const finalStyle = { ...style }\r\n\r\n if (variant === 'contained') {\r\n finalStyle.backgroundColor = color\r\n finalStyle.color = '#FFF'\r\n } else {\r\n finalStyle.border = `1px solid ${color}`\r\n finalStyle.color = color\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nLabel.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n color: PropTypes.string,\r\n shape: PropTypes.oneOf(['square', 'rounded']),\r\n style: PropTypes.object,\r\n variant: PropTypes.oneOf(['contained', 'outlined'])\r\n}\r\n\r\nLabel.defaultProps = {\r\n style: {},\r\n color: colors.grey[600],\r\n variant: 'contained',\r\n shape: 'square'\r\n}\r\n\r\nexport default Label\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button'; // Supondo que você esteja usando o Material-UI\r\n\r\nconst CustomButton = (props) => {\r\n const { onClick, disabled, children, style: customStyle, dark, ...otherProps } = props; \r\n\r\n return (\r\n dark ?\r\n (\r\n \r\n {children}\r\n \r\n )\r\n :\r\n (\r\n \r\n {children}\r\n \r\n )\r\n )\r\n};\r\n\r\nexport default CustomButton;\r\n","import React from 'react';\r\nimport ImageUploading from 'react-images-uploading';\r\nimport { styled } from '@mui/material/styles';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport CloudUploadTwoToneIcon from '@mui/icons-material/CloudUploadTwoTone'\r\nimport {\r\n Avatar,\r\n Typography,\r\n Tooltip,\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Divider\r\n} from '@mui/material';\r\n\r\nconst AvatarStyled = styled(Avatar)({\r\n height: 300,\r\n width: 500,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n})\r\n\r\nconst ImageUploader = ({ isObra, disabled, images, onChangeImage, onError, acceptType, maxFileSize, resolutionWidth, resolutionHeight, resolutionType, removeImage, props, imagem, getInitials, classes, rest, className, isBanner }) => {\r\n function bytesToMB(bytes) {\r\n return bytes / (1024 * 1024);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {({ onImageUpload, isDragging, dragProps }) => (\r\n \r\n \r\n {isDragging ? (\r\n <>\r\n \r\n \r\n Solte a imagem aqui!\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {props.nome != null ? getInitials(props.nome) : getInitials(props.titulo)}\r\n \r\n \r\n \r\n {/*{produto.nome}*/}\r\n \r\n \r\n )}\r\n \r\n {!disabled &&\r\n <>\r\n \r\n \r\n \r\n {!isObra ? props && imagem ? 'Trocar imagem' : 'Carregar imagem' :\r\n props && imagem ? 'Trocar foto da placa da obra' : 'Carregar placa da obra'}\r\n \r\n {props && imagem && (\r\n \r\n {!isObra ? 'Remover imagem' : 'Remover placa da obra'}\r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n )}\r\n \r\n \r\n Tamanho máximo da imagem para upload: {bytesToMB(maxFileSize).toFixed(2)} MB.\r\n \r\n \r\n Resolução máxima: {resolutionWidth}x{resolutionHeight}px.\r\n \r\n \r\n Formatos aceitos: {acceptType.join(', ').toUpperCase()}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ImageUploader;\r\n","import { createBrowserHistory } from 'history'\r\nexport const history = createBrowserHistory()\r\n","export const slugMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .normalize('NFD')\r\n .replace(/(^-+|-+$)/, '') // Remove hífens extras do final ou do inicio da string\r\n .replace(/[\\u0300-\\u036f]/g, '') // Remove acentos\r\n .replace(/([^\\w]+|\\s+)/g, '-') // Substitui espaço e outros caracteres por hífen\r\n .replace(/\\-\\-+/g, '-') // Substitui multiplos hífens por um único hífen\r\n .toLowerCase() //tudo em letra minuscula\r\n }\r\n}\r\n\r\nexport const cpfCnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n if (value.length === 14 && value.includes('-')) {\r\n return cpfMask(value)\r\n }\r\n if (value.length >= 14) {\r\n return cnpjMask(value)\r\n } else {\r\n return cpfMask(value)\r\n }\r\n }\r\n}\r\n\r\nexport const cpfMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '') // substitui qualquer caracter que nao seja numero por nada\r\n .replace(/(\\d{3})(\\d)/, '$1.$2') // captura 2 grupos de numero o primeiro de 3 e o segundo de 1, apos capturar o primeiro grupo ele adiciona um ponto antes do segundo grupo de numero\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,2})/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1') // captura 2 numeros seguidos de um traço e não deixa ser digitado mais nada\r\n }\r\n}\r\nexport const cnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const phoneMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '($1) $2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(\\d{4})-(\\d)(\\d{4})/, '$1$2-$3')\r\n .replace(/(-\\d{4})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const cepMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{3})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const pisMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5}\\.)(\\d{2})(\\d)/, '$1$2-$3')\r\n .replace(/(-\\d{1})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const dataMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d{2})$/, '$1$2')\r\n }\r\n}\r\n","export const TIPO_USUARIO = {\r\n ADMIN: 1,\r\n GESTOR_ORGAO: 2,\r\n PRESTADOR: 3,\r\n MOTORISTA: 4,\r\n FISCAL: 5,\r\n USUARIO_ORGAO: 6\r\n};\r\n\r\nexport const STATUS_SERVICO = {\r\n LANCAMENTO: null,\r\n PENDENTE: '1',\r\n RECEBENDO_ORCAMENTOS: '2',\r\n ORCAMENTO_APROVADO: '3',\r\n RECUSADO: '4',\r\n CONCLUIDO: '5',\r\n AVALIADO: '6',\r\n PAUSADO: '7',\r\n DESERTO: '8',\r\n SEM_SUCESSO: '9',\r\n CREDENCIADA: '10'\r\n};\r\n\r\nexport const STATUS_FINANCEIRO_EMPENHO = {\r\n EM_ABERTO: '1',\r\n PAGOS: '2',\r\n TODOS: '3'\r\n};\r\n\r\nexport const TIPO_OBRA = {\r\n OBRA_NOVA: 1,\r\n REFORMA: 2,\r\n COMPRA_MATERIAL: 3,\r\n PLANO_TRABALHO: 4,\r\n PROJETO_TECNICO: 5,\r\n REPARO: 6,\r\n PREVENCAO: 7\r\n};\r\n\r\nexport const MANUAIS_CATEGORIAS = {\r\n ABA_CADASTRO_OBRA: 1,\r\n ABA_EDICAO_OBRA: 2,\r\n LISTAGEM_ORDEM_SERVICO: 3,\r\n CADASTRO_ORGAO_ADMIN: 4,\r\n CADASTRO_ORGAO_ORGAO: 5,\r\n CADASTRO_EMPRESA_ADMIN: 6,\r\n CADASTRO_EMPRESA_EMPRESA: 7,\r\n EDICAO_ORGAO: 8,\r\n LISTAGEM_ORGAO: 9,\r\n CADASTRO_SUB_ORGAO: 10,\r\n EDICAO_SUB_ORGAO: 11,\r\n LISTAGEM_SUB_ORGAO: 12,\r\n EDICAO_PARAMETRO: 13,\r\n EDICAO_EMPRESA: 14,\r\n CADASTRO_USUARIO: 15,\r\n EDICAO_USUARIO: 16,\r\n LISTAGEM_USUARIO: 17,\r\n LISTAGEM_ORCAMENTO: 18,\r\n CADASTRO_ORCAMENTO: 19,\r\n LISTAGEM_EMPENHO: 20,\r\n CADASTRO_EMPENHO: 21,\r\n RELATORIO_EMPRESA_ORGAO: 22,\r\n RELATORIO_SERVICO_REALIZADO: 23,\r\n CADASTRO_AJUDA: 24,\r\n EDICAO_AJUDA: 25,\r\n LISTAGEM_AJUDA: 26,\r\n ABA_OBRA_FINANCEIRO: 27,\r\n ABA_OBRA_OCORRENCIA: 28,\r\n ABA_OBRA_ETAPA: 29,\r\n ABA_OBRA_ITEM: 30,\r\n ABA_OBRA_MEDICAO: 31,\r\n LISTAGEM_MEDICAO: 32,\r\n RELATORIO_LOGS_SISTEMA: 33,\r\n RELATORIO_OCORRENCIA_OBRA: 34,\r\n LISTAGEM_COBRANCA: 35,\r\n LISTAGEM_EMPRESA: 36,\r\n EMPRESA_EDIT_ANEXO: 37,\r\n LISTAGEM_NOTIFICACAO: 38,\r\n LISTAGEM_PARAMETRO: 39,\r\n LISTAGEM_OBRA_REFORMA: 40,\r\n LISTAGEM_OBRA_COMPRA_MATERIAL: 41,\r\n ABA_CADASTRO_COMPRA_MATERIAL: 42,\r\n ABA_OBRA_ANEXO: 43,\r\n ABA_OBRA_ORCAMENTO: 44,\r\n LISTAGEM_OBRA_AGUARDANDO_ORCAMENTO: 45,\r\n LISTAGEM_ORCAMENTO_ENVIADO: 46,\r\n RELATORIO_USUARIO: 47,\r\n LINK_BDI: 48,\r\n LINK_CALCMAT: 49,\r\n LINK_DIARIO_OBRA: 50,\r\n LINK_GOV: 51,\r\n DASHBOARD: 52,\r\n CADASTRO_COBRANCA: 53,\r\n LISTAGEM_OBRA_PLANO_TRABALHO: 54,\r\n LISTAGEM_OBRA_REPARO_PREVENCAO: 55,\r\n RELATORIO_EMPRESA_ORCAMENTO_ENVIADO: 56,\r\n ABA_DIARIO_OBRA: 57\r\n};\r\n\r\nexport const OBRA_DIARIO_CONDICAO_CLIMATICA = {\r\n SOL: 'S',\r\n CHUVA: 'C',\r\n NUBLADO: 'N'\r\n};\r\n","import { STATUS_SERVICO } from \"./constants\";\r\n\r\nexport function getNomeEvento(evento) {\r\n try {\r\n if (evento.tipo == STATUS_SERVICO.LANCAMENTO) {\r\n return \"EM LANÇAMENTO\"\r\n } else if (evento.tipo == STATUS_SERVICO.PENDENTE) {\r\n return \"PENDENTE\";\r\n } else if (evento.tipo == STATUS_SERVICO.RECEBENDO_ORCAMENTOS) {\r\n return \"RECEBENDO PROPOSTAS\";\r\n } else if (evento.tipo == STATUS_SERVICO.ORCAMENTO_APROVADO) {\r\n return \"EM EXECUÇÃO\"; //ERA \"ORÇAMENTO APROVADO\"\r\n } else if (evento.tipo == STATUS_SERVICO.RECUSADO) {\r\n return \"RECUSADA\";\r\n } else if (evento.tipo == STATUS_SERVICO.CONCLUIDO) {\r\n return \"CONCLUÍDA\";\r\n } else if (evento.tipo == STATUS_SERVICO.AVALIADO) {\r\n return \"AVALIADA\";\r\n } else if (evento.tipo == STATUS_SERVICO.DESERTO) {\r\n return \"DESERTA\";\r\n } else if (evento.tipo == STATUS_SERVICO.SEM_SUCESSO) {\r\n return \"SEM SUCESSO\";\r\n } else {\r\n return \"STATUS INDEFINIDO\";\r\n }\r\n } catch (err) {\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function getNomeUltimoEvento(ultimoEvento, obra, isLista) {\r\n try {\r\n if (ultimoEvento == STATUS_SERVICO.LANCAMENTO) {\r\n return 'EM LANÇAMENTO';\r\n } else if (ultimoEvento == STATUS_SERVICO.PENDENTE) {\r\n return 'PENDENTE';\r\n } else if (ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS && obra.credenciamento != true && isLista == true) {\r\n return 'RECEBENDO PROPOSTAS (' + obra?.obrasOrcamentos?.length + ')';\r\n } else if (ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS && obra.credenciamento == true) {\r\n return 'CREDENCIADA';\r\n } else if (ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS && isLista == false) {\r\n return 'RECEBENDO PROPOSTAS';\r\n } else if (ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO) {\r\n return \"EM EXECUÇÃO\"; //ERA \"ORÇAMENTO APROVADO\"\r\n } else if (ultimoEvento == STATUS_SERVICO.RECUSADO) {\r\n return \"RECUSADA/EXCLUÍDA\";\r\n } else if (ultimoEvento == STATUS_SERVICO.CONCLUIDO) {\r\n return \"CONCLUÍDA\";\r\n } else if (ultimoEvento == STATUS_SERVICO.AVALIADO) {\r\n return \"AVALIADA\";\r\n } else if (ultimoEvento == STATUS_SERVICO.PAUSADO) {\r\n return \"PAUSADA\";\r\n } else if (ultimoEvento == STATUS_SERVICO.DESERTO) {\r\n return \"DESERTA\";\r\n } else if (ultimoEvento == STATUS_SERVICO.SEM_SUCESSO) {\r\n return \"SEM SUCESSO\";\r\n } else {\r\n return \"STATUS INDEFINIDO\";\r\n }\r\n } catch (err) {\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function getCor(ultimoEvento) {\r\n try {\r\n if (ultimoEvento == STATUS_SERVICO.LANCAMENTO) {\r\n return \"#5e5e5e\";\r\n } else if (ultimoEvento == STATUS_SERVICO.PENDENTE) {\r\n return \"#9E9E9E\";\r\n } else if (ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS) {\r\n return \"#673AB7\";\r\n } else if (ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO) {\r\n return \"#2196F3\";\r\n } else if (ultimoEvento == STATUS_SERVICO.RECUSADO) {\r\n return \"#FF5722\";\r\n } else if (ultimoEvento == STATUS_SERVICO.CONCLUIDO) {\r\n return \"#4CAF50\";\r\n } else if (ultimoEvento == STATUS_SERVICO.AVALIADO) {\r\n return \"#FF9800\";\r\n } else if (ultimoEvento == STATUS_SERVICO.PAUSADO) {\r\n return \"#99FF99\";\r\n } else if (ultimoEvento == STATUS_SERVICO.DESERTO) {\r\n return \"#FF9999\";\r\n } else if (ultimoEvento == STATUS_SERVICO.SEM_SUCESSO) {\r\n return \"#FF2222\";\r\n } else if (ultimoEvento == STATUS_SERVICO.CREDENCIADA) {\r\n return \"#cc0066\";\r\n } else {\r\n return \"#000000\";\r\n }\r\n } catch (err) {\r\n return \"\";\r\n }\r\n}\r\n","const toLongDate = (dataString) => {\r\n const meses = [\r\n \"janeiro\", \"fevereiro\", \"março\", \"abril\", \"maio\", \"junho\",\r\n \"julho\", \"agosto\", \"setembro\", \"outubro\", \"novembro\", \"dezembro\"\r\n ];\r\n\r\n const data = new Date(dataString);\r\n const dia = data.getDate();\r\n const mes = meses[data.getMonth()];\r\n const ano = data.getFullYear();\r\n\r\n const dataFormatada = `${dia} de ${mes} de ${ano}`;\r\n return dataFormatada;\r\n}\r\n\r\nexport default toLongDate;\r\n","// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n const { ctx } = this._chart\r\n const vm = this._view\r\n let { borderWidth } = vm\r\n\r\n let left\r\n let right\r\n let top\r\n let bottom\r\n let signX\r\n let signY\r\n let borderSkipped\r\n let radius\r\n\r\n // If radius is less than 0 or is large enough to cause drawing errors a max\r\n // radius is imposed. If cornerRadius is not defined set it to 0.\r\n let { cornerRadius } = this._chart.config.options\r\n if (cornerRadius < 0) {\r\n cornerRadius = 0\r\n }\r\n\r\n if (typeof cornerRadius === 'undefined') {\r\n cornerRadius = 0\r\n }\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2\r\n right = vm.x + vm.width / 2\r\n top = vm.y\r\n bottom = vm.base\r\n signX = 1\r\n signY = bottom > top ? 1 : -1\r\n borderSkipped = vm.borderSkipped || 'bottom'\r\n } else {\r\n // horizontal bar\r\n left = vm.base\r\n right = vm.x\r\n top = vm.y - vm.height / 2\r\n bottom = vm.y + vm.height / 2\r\n signX = right > left ? 1 : -1\r\n signY = 1\r\n borderSkipped = vm.borderSkipped || 'left'\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom))\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth\r\n const halfStroke = borderWidth / 2\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n const borderLeft =\r\n left + (borderSkipped !== 'left' ? halfStroke * signX : 0)\r\n const borderRight =\r\n right + (borderSkipped !== 'right' ? -halfStroke * signX : 0)\r\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0)\r\n const borderBottom =\r\n bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0)\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop\r\n bottom = borderBottom\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft\r\n right = borderRight\r\n }\r\n }\r\n\r\n ctx.beginPath()\r\n ctx.fillStyle = vm.backgroundColor\r\n ctx.strokeStyle = vm.borderColor\r\n ctx.lineWidth = borderWidth\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n const corners = [\r\n [left, bottom],\r\n [left, top],\r\n [right, top],\r\n [right, bottom]\r\n ]\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n const borders = ['bottom', 'left', 'top', 'right']\r\n let startCorner = borders.indexOf(borderSkipped, 0)\r\n if (startCorner === -1) {\r\n startCorner = 0\r\n }\r\n\r\n function cornerAt(index) {\r\n return corners[(startCorner + index) % 4]\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n let corner = cornerAt(0)\r\n ctx.moveTo(corner[0], corner[1])\r\n\r\n for (let i = 1; i < 4; i += 1) {\r\n corner = cornerAt(i)\r\n let nextCornerId = i + 1\r\n if (nextCornerId === 4) {\r\n nextCornerId = 0\r\n }\r\n\r\n const width = corners[2][0] - corners[1][0]\r\n const height = corners[0][1] - corners[1][1]\r\n const x = corners[1][0]\r\n const y = corners[1][1]\r\n\r\n radius = cornerRadius\r\n // Fix radius being too large\r\n if (radius > Math.abs(height) / 2) {\r\n radius = Math.floor(Math.abs(height) / 2)\r\n }\r\n if (radius > Math.abs(width) / 2) {\r\n radius = Math.floor(Math.abs(width) / 2)\r\n }\r\n\r\n if (height < 0) {\r\n // Negative values in a standard bar chart\r\n const xTl = x\r\n const xTr = x + width\r\n const yTl = y + height\r\n const yTr = y + height\r\n\r\n const xBl = x\r\n const xBr = x + width\r\n const yBl = y\r\n const yBr = y\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl)\r\n ctx.lineTo(xBr - radius, yBr)\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius)\r\n ctx.lineTo(xTr, yTr + radius)\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr)\r\n ctx.lineTo(xTl + radius, yTl)\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius)\r\n ctx.lineTo(xBl, yBl - radius)\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl)\r\n } else if (width < 0) {\r\n // Negative values in a horizontal bar chart\r\n const xTl = x + width\r\n const xTr = x\r\n const yTl = y\r\n const yTr = y\r\n\r\n const xBl = x + width\r\n const xBr = x\r\n const yBl = y + height\r\n const yBr = y + height\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl)\r\n ctx.lineTo(xBr - radius, yBr)\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius)\r\n ctx.lineTo(xTr, yTr + radius)\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr)\r\n ctx.lineTo(xTl + radius, yTl)\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius)\r\n ctx.lineTo(xBl, yBl - radius)\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl)\r\n } else {\r\n // Positive Value\r\n ctx.moveTo(x + radius, y)\r\n ctx.lineTo(x + width - radius, y)\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius)\r\n ctx.lineTo(x + width, y + height - radius)\r\n ctx.quadraticCurveTo(\r\n x + width,\r\n y + height,\r\n x + width - radius,\r\n y + height\r\n )\r\n ctx.lineTo(x + radius, y + height)\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius)\r\n ctx.lineTo(x, y + radius)\r\n ctx.quadraticCurveTo(x, y, x + radius, y)\r\n }\r\n }\r\n\r\n ctx.fill()\r\n if (borderWidth) {\r\n ctx.stroke()\r\n }\r\n}\r\n\r\nexport default {\r\n draw\r\n}\r\n","export default (name = '') =>\r\n name\r\n .replace(/\\s+/, ' ')\r\n .split(' ')\r\n .slice(0, 2)\r\n .map((v) => v && v[0].toUpperCase())\r\n .join('')\r\n","import { toast } from 'react-toastify'\r\n\r\nexport default function ErrorsUploadImage(erros) {\r\n if (erros.acceptType === true) {\r\n toast.error(`Opss! Tipo de arquivo inválido! 😥`)\r\n } else if (erros.maxFileSize === true) {\r\n toast.error(`Opss! A imagem é muito grande! 😥`)\r\n } else if (erros.maxNumber === true) {\r\n toast.error(`Opss! Quantidade de imagens excedida! 😥`)\r\n } else if (erros.resolution === true) {\r\n toast.error(`Opss! A resolução da imagem é incorreta! 😥`)\r\n }\r\n}\r\n","import React from 'react'\r\n\r\nexport const useDidMountEffect = (effect, dependencies) => {\r\n const mounted = React.useRef(false)\r\n React.useEffect(() => {\r\n if (mounted.current) {\r\n const unmount = effect()\r\n return () => unmount && unmount()\r\n } else {\r\n mounted.current = true\r\n }\r\n }, dependencies)\r\n\r\n React.useEffect(() => {\r\n return () => (mounted.current = false)\r\n }, [])\r\n}\r\n\r\n// hook usado para renderizar o componente somente quando state sofre alguma mudança,\r\n// não dispara na criação do componente como o useEffect() padrão\r\n","export const stringUtils = {\r\n getObraParam,\r\n serialize,\r\n toInputUppercase,\r\n toInputLowerCase,\r\n removeDiacritics\r\n};\r\n\r\nfunction serialize(obj) {\r\n let str = '?' + Object.keys(obj).reduce(function (a, k) {\r\n a.push(k + '=' + encodeURIComponent(obj[k]));\r\n return a;\r\n }, []).join('&');\r\n return str;\r\n}\r\n\r\nfunction getObraParam() {\r\n // Obtenha a parte dos parâmetros da URL (após o '?')\r\n const params = new URLSearchParams(window.location.search);\r\n \r\n // Verifique se o parâmetro 'obra' existe\r\n if (params.has('obra')) {\r\n // Obtenha o valor do parâmetro 'obra'\r\n const obraValue = params.get('obra').toLowerCase();\r\n\r\n // Faça o parse para booleano ou null\r\n if (obraValue === 'true') {\r\n return true;\r\n } else if (obraValue === 'false') {\r\n return false;\r\n }\r\n }else{\r\n return null;\r\n }\r\n}\r\n\r\nfunction toInputUppercase(e) {\r\n var start = e.target.selectionStart;\r\n var end = e.target.selectionEnd;\r\n e.target.value = e.target.value.toUpperCase();\r\n e.target.setSelectionRange(start, end);\r\n}\r\n\r\nfunction toInputLowerCase(e) {\r\n var start = e.target.selectionStart;\r\n var end = e.target.selectionEnd;\r\n e.target.value = e.target.value.toLowerCase();\r\n e.target.setSelectionRange(start, end);\r\n}\r\n\r\nexport function removeDiacritics(palavra) {\r\n return palavra.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n}\r\n","export const validateCNPJ = (cnpj) => {\r\n cnpj = cnpj.replace(/[^\\d]+/g, '');\r\n\r\n if (cnpj == '') return false;\r\n\r\n if (cnpj.length != 14) return false;\r\n\r\n // Validar d�gitos verificadores\r\n let tamanho = cnpj.length - 2;\r\n let numeros = cnpj.substring(0, tamanho);\r\n let digitos = cnpj.substring(tamanho);\r\n let soma = 0;\r\n let pos = tamanho - 7;\r\n\r\n for (let i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n\r\n let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n\r\n if (resultado != digitos.charAt(0)) return false;\r\n\r\n tamanho = tamanho + 1;\r\n numeros = cnpj.substring(0, tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n\r\n for (let i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n\r\n if (resultado != digitos.charAt(1)) return false;\r\n\r\n return true;\r\n}","import moment from 'moment';\r\nimport 'moment/locale/pt-br';\r\n\r\nmoment.locale('pt-br');\r\n\r\nexport function formatRelativeTime(date) {\r\n const now = moment();\r\n const duration = moment.duration(now.diff(moment(date)));\r\n\r\n const days = duration.days();\r\n const hours = duration.hours();\r\n const minutes = duration.minutes();\r\n const seconds = duration.seconds();\r\n\r\n let relativeTime = 'há ';\r\n\r\n if (days > 0 && days != 1) {\r\n relativeTime += `${days} dias`;\r\n }\r\n if (days > 0 && days == 1) {\r\n relativeTime += `${days} dia`;\r\n }\r\n if (hours > 0 && hours != 1) {\r\n relativeTime += `${days > 0 ? ' e ' : ''}${hours} horas`;\r\n }\r\n if (hours > 0 && hours == 1) {\r\n relativeTime += `${days > 0 ? ' e ' : ''}${hours} hora`;\r\n }\r\n if (minutes > 0 && days === 0 && hours === 0 && minutes != 1) {\r\n relativeTime += `${minutes} minutos`;\r\n }\r\n if (minutes > 0 && days === 0 && hours === 0 && minutes == 1) {\r\n relativeTime += `${minutes} minuto`;\r\n }\r\n if (seconds > 0 && days === 0 && hours === 0 && minutes === 0 && seconds != 1) {\r\n relativeTime += `${seconds} segundos`;\r\n }\r\n if (seconds > 0 && days === 0 && hours === 0 && minutes === 0 && seconds == 1) {\r\n relativeTime += `${seconds} segundo`;\r\n }\r\n\r\n return relativeTime;\r\n};","import { toast } from 'react-toastify'\r\nimport { history } from '../utils'\r\n\r\nexport function errorHandler(error) {\r\n if (error.response.status === 400) {\r\n if (error.response.data != null) {\r\n toast.error(error.response.data, {\r\n autoClose: 6600\r\n })\r\n }\r\n else\r\n {\r\n toast.error(`Opss! Algo deu errado 😥`, {\r\n autoClose: 6600\r\n })\r\n }\r\n\r\n return Promise.reject(error.response || error.message)\r\n }\r\n if (error.response.status === 403) {\r\n toast.error(`Sem permissão para realizar essa operação! 🔐`)\r\n return Promise.reject(error.response || error.message)\r\n }\r\n if (error.response.status === 401) {\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user')\r\n localStorage.removeItem('expires')\r\n history.push('/login')\r\n return Promise.reject(error)\r\n }\r\n if (error.response.status === 404) {\r\n toast.error(`Opss! ${error.response.data} 😥`)\r\n return Promise.reject(error.response || error.message)\r\n }\r\n return Promise.reject(error.response || error.message)\r\n}\r\n","import axios from 'axios'\r\nimport config from '../config/config'\r\nimport { errorHandler } from './errorHandler'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const authServices = {\r\n post,\r\n logout\r\n}\r\n\r\nfunction post(apiEndpoint, payload) {\r\n return axios\r\n .post(config.baseUrl + apiEndpoint, payload)\r\n .then((response) => {\r\n localStorage.setItem('user', JSON.stringify(response.data.usuario))\r\n localStorage.setItem('token', response.data.token)\r\n localStorage.setItem('expires', response.data.expires)\r\n return response\r\n })\r\n .catch((error) => {\r\n if (error.response.data === '') {\r\n toast.error('Opss! Problema ao autenticar usuário! 😥')\r\n } else {\r\n return errorHandler(error)\r\n }\r\n })\r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user')\r\n localStorage.removeItem('expires')\r\n}\r\n","import axios from 'axios'\r\nimport config from '../config/config'\r\nimport { toast } from 'react-toastify'\r\nimport { errorHandler } from './errorHandler'\r\n\r\nexport const crudService = {\r\n get,\r\n post,\r\n postWithToken,\r\n put,\r\n putWithOutMessage,\r\n deleteDetail\r\n}\r\n\r\nfunction get(apiEndpoint) {\r\n return axios\r\n .get(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => {\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction post(apiEndpoint, payload) {\r\n return axios\r\n .post(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction postWithToken(apiEndpoint, payload, token) {\r\n let options = {}\r\n if (token) {\r\n options.headers = { 'Authorization': 'Bearer ' + token, 'Cache-Control': 'no-cache' };\r\n } else {\r\n options.headers = { 'Cache-Control': 'no-cache' };\r\n }\r\n\r\n return axios\r\n .post(config.baseUrl + apiEndpoint, payload, options)\r\n .then((response) => {\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction put(apiEndpoint, payload) {\r\n return axios\r\n .put(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n toast.success('Feito! Dados alterados com sucesso! 😎')\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction putWithOutMessage(apiEndpoint, payload) {\r\n return axios\r\n .put(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction deleteDetail(apiEndpoint) {\r\n return axios\r\n .delete(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => {\r\n toast.success('Feito! Registro excluído com sucesso! 😎')\r\n return response\r\n })\r\n .catch((error) => {\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\nfunction getOptions() {\r\n let options = {}\r\n if (localStorage.getItem('token')) {\r\n options.headers = { 'Authorization': 'Bearer ' + localStorage.getItem('token'), 'Cache-Control': 'no-cache' };\r\n } else {\r\n options.headers = { 'Cache-Control': 'no-cache' };\r\n }\r\n return options\r\n}\r\n","import axios from 'axios'\r\nimport { errorHandler } from './errorHandler'\r\nimport config from '../config/config'\r\nimport Resizer from \"react-image-file-resizer\";\r\n\r\nexport async function uploadImage(payload) {\r\n const data = new FormData()\r\n var compress_image = await resizeFile(payload.file)\r\n data.append('file', compress_image, payload.file.name)\r\n\r\n return axios\r\n .post(config.baseUrl + 'uploads/S3', data, getOptions())\r\n .then((response) => {\r\n return response.data.url\r\n })\r\n .catch((error) => {\r\n console.log('error', error)\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\n\r\nconst resizeFile = (file) =>\r\n new Promise((resolve) => {\r\n Resizer.imageFileResizer(\r\n file,\r\n 1500,\r\n 1500,\r\n \"JPEG\",\r\n 97,\r\n 0,\r\n (uri) => {\r\n resolve(uri);\r\n },\r\n \"blob\"\r\n );\r\n });\r\n\r\n//export function getUrl(key) {\r\n// if (key != null && key.includes('/')) {\r\n// key = key.substr(key.lastIndexOf('/') + 1, key.length - key.lastIndexOf('/'));\r\n// console.log('key', key)\r\n// }\r\n// return axios\r\n// .get(config.baseUrl + 'uploads/S3/url/' + key, getOptions())\r\n// .then((response) => {\r\n// console.log('response', response)\r\n// return response.data\r\n// })\r\n// .catch((error) => {\r\n// console.log('error', error)\r\n// return errorHandler(error)\r\n// })\r\n//}\r\n\r\nfunction getOptions() {\r\n let options = {}\r\n if (localStorage.getItem('token')) {\r\n options.headers = {\r\n Authorization: 'Bearer ' + localStorage.getItem('token')\r\n }\r\n }\r\n return options\r\n}\r\n","import axios from 'axios'\r\nimport { errorHandler } from './errorHandler'\r\nimport config from '../config/config'\r\n\r\nexport async function uploadFile(file) {\r\n const data = new FormData()\r\n data.append('file', file)\r\n\r\n return axios\r\n .post(config.baseUrl + 'uploads/S3', data, getOptions())\r\n .then((response) => {\r\n return response.data.url\r\n })\r\n .catch((error) => {\r\n // console.log('error', error)\r\n return errorHandler(error)\r\n })\r\n}\r\n\r\n\r\nfunction getOptions() {\r\n let options = {}\r\n if (localStorage.getItem('token')) {\r\n options.headers = {\r\n Authorization: 'Bearer ' + localStorage.getItem('token')\r\n }\r\n }\r\n return options\r\n}\r\n","import { authServices, crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nconst $package = require('../../package.json')\r\nconst versaoSistema = $package?.version || '0.0.0'\r\n\r\nexport const authActions = {\r\n login,\r\n isGestor,\r\n isPrefeitura,\r\n isEmpresa,\r\n isMotorista,\r\n isFiscal,\r\n isUsuarioOrgaoPublico,\r\n refresh,\r\n logout\r\n}\r\n\r\nfunction login(username, password) {\r\n return (dispatch) => {\r\n dispatch(request({ username }))\r\n let apiEndpoint = 'authentication/login'\r\n let payload = {\r\n login: username,\r\n senha: password,\r\n admin: true\r\n }\r\n authServices\r\n .post(apiEndpoint, payload) \r\n .then((response) => {\r\n dispatch(success(response.data))\r\n history.push('/dashboard')\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n\r\n function request(user) {\r\n return { type: 'LOGIN_REQUEST', user }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'LOGIN_SUCCESS',\r\n token: user.token,\r\n expires: user.expires,\r\n user: user.usuario\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'LOGIN_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction refresh() {\r\n return (dispatch) => {\r\n const token = localStorage.getItem('token')\r\n\r\n const payload = {\r\n admin: true,\r\n plataforma: navigator?.userAgent,\r\n versaoSistema: versaoSistema\r\n }\r\n\r\n if (token !== null && token !== undefined) {\r\n dispatch(request(token))\r\n let apiEndpoint = 'authentication/refresh'\r\n crudService\r\n .postWithToken(apiEndpoint, payload, token)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(logout())\r\n })\r\n }\r\n }\r\n\r\n function request(token) {\r\n return { type: 'AUTHENTICATION_REFRESH_REQUEST', token }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'AUTHENTICATION_REFRESH_SUCCESS',\r\n user: user.usuario\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'AUTHENTICATION_REFRESH_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction isGestor() {\r\n const isGestor = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 1 ? true : false);\r\n return isGestor;\r\n}\r\n\r\nfunction isMotorista() {\r\n const isMotorista = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 4 ? true : false);\r\n return isMotorista;\r\n}\r\n\r\nfunction isPrefeitura() {\r\n const isPrefeitura = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 2 || JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 6 ? true : false);\r\n return isPrefeitura;\r\n}\r\n\r\nfunction isFiscal() {\r\n const isFiscal = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 5 ? true : false);\r\n return isFiscal;\r\n}\r\n\r\nfunction isEmpresa() {\r\n const isEmpresa = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 3 ? true : false);\r\n return isEmpresa;\r\n}\r\n\r\nfunction isUsuarioOrgaoPublico() {\r\n const isUsuarioOrgaoPublico = (JSON.parse(localStorage.getItem('user'))[\"idTipoUsuario\"] == 6 ? true : false);\r\n return isUsuarioOrgaoPublico;\r\n}\r\n\r\nfunction logout() {\r\n return (dispatch) => {\r\n authServices.logout()\r\n dispatch(logoutUser())\r\n history.push('/login')\r\n }\r\n}\r\nexport function setUserDetails(user) {\r\n return {\r\n type: 'LOGIN_SUCCESS',\r\n auth: user.auth,\r\n token: user.token,\r\n expires: user.expires,\r\n user: user.usuario\r\n }\r\n}\r\nexport function logoutUser() {\r\n return {\r\n type: 'LOGOUT_SUCCESS'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\n\r\nexport const cidadeAction = {\r\n getCidade,\r\n getCidadesSelect,\r\n getCidadeByUf,\r\n getCidadeByIdEstado,\r\n addCidade,\r\n getCidadeById,\r\n onChangeProps,\r\n changeDetailsCidade,\r\n editCidadeInfo,\r\n editCidadesDetails,\r\n createCidade,\r\n deleteCidadeById,\r\n clear,\r\n clearAll\r\n}\r\n\r\nfunction getCidade() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeCidadesList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getCidadesSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeCidadesList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getCidadeByUf(uf) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/select/uf/' + uf\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeCidadesList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getCidadeByIdEstado(idEstado) {\r\n //console.log(\"entrei aqui\", idEstado)\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/select/estado/' + idEstado\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeCidadesList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createCidade(payload) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/'\r\n crudService.post(apiEndpoint, payload).then(() => {\r\n dispatch(createCidadeInfo())\r\n dispatch(clear())\r\n })\r\n }\r\n}\r\n\r\nfunction getCidadeById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editCidadesDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction changeDetailsCidade(cidade) {\r\n return (dispatch) => {\r\n if (cidade) {\r\n dispatch(onChangeDetailsCidade(cidade))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n}\r\n\r\nfunction editCidadeInfo(id, payload) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/' + id\r\n crudService.put(apiEndpoint, payload).then(() => {\r\n dispatch(updatedCidadeInfo())\r\n dispatch(clear())\r\n })\r\n }\r\n}\r\n\r\nfunction deleteCidadeById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'cidades/' + id\r\n crudService.deleteDetail(apiEndpoint).then(() => {\r\n dispatch(deleteCidadesDetails())\r\n dispatch(getCidade())\r\n })\r\n }\r\n}\r\n\r\nexport function addCidade(payload) {\r\n return [{ type: 'ADD_CIDADE', cidade: payload }, clear()]\r\n}\r\n\r\nexport function changeCidadesList(cidade) {\r\n return {\r\n type: 'FETCHED_ALL_CIDADE',\r\n cidade: cidade\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'CIDADE_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'CIDADE_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'CIDADE_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editCidadesDetails(cidade) {\r\n return {\r\n type: 'CIDADE_DETAIL',\r\n id: cidade.id,\r\n nome: cidade.nome,\r\n idEstado: cidade.idEstado,\r\n ibge: cidade.ibge,\r\n estado: cidade.estado\r\n }\r\n}\r\n\r\nexport function updatedCidadeInfo() {\r\n return {\r\n type: 'CIDADE_UPDATED'\r\n }\r\n}\r\n\r\nexport function createCidadeInfo() {\r\n return {\r\n type: 'CIDADE_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteCidadesDetails() {\r\n return {\r\n type: 'DELETED_CIDADE_DETAILS'\r\n }\r\n}\r\n\r\nexport function onChangeDetailsCidade(cidade) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_CIDADE',\r\n id: cidade.id,\r\n nome: cidade.nome,\r\n idEstado: cidade.idEstado,\r\n ibge: cidade.ibge\r\n }\r\n ]\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const tipoUsuarioAction = {\r\n getTiposUsuarioSelect,\r\n clear\r\n}\r\n\r\nfunction getTiposUsuarioSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposUsuarios/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposUsuariosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTiposUsuariosList(tipoUsuario) {\r\n return {\r\n type: 'FETCHED_ALL_TIPO_USUARIO',\r\n tipoUsuario: tipoUsuario\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'TIPO_USUARIO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'TIPO_USUARIO_NOTISLOADING'\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'TIPO_USUARIO_CLEAR'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const dashboardAction = {\r\n getDashboard,\r\n getDashboardGraficoObras,\r\n clear\r\n}\r\n\r\nfunction getDashboard(filterModel) {\r\n return (dispatch) => {\r\n dispatch(request())\r\n let apiEndpoint = 'dashboard' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n })\r\n .catch((error) => {\r\n dispatch(failure(error))\r\n })\r\n }\r\n\r\n function request() {\r\n return {\r\n type: 'FETCHED_DASHBOARD_REQUEST'\r\n }\r\n }\r\n\r\n function success(dashboardResponse) {\r\n return {\r\n type: 'FETCHED_DASHBOARD_SUCCESS',\r\n dashboard: dashboardResponse\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'FETCHED_DASHBOARD_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getDashboardGraficoObras() {\r\n return (dispatch) => {\r\n dispatch(request())\r\n let apiEndpoint = 'dashboard/graficoObras';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n //console.log(\"response\", response)\r\n dispatch(success(response.data.items, response.data.totalRows))\r\n })\r\n .catch((error) => {\r\n dispatch(failure(error))\r\n })\r\n }\r\n function request() {\r\n return {\r\n type: 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_REQUEST'\r\n }\r\n }\r\n\r\n function success(obras, totalObras) {\r\n return {\r\n type: 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_SUCCESS',\r\n obras: obras,\r\n totalObras: totalObras\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_FAILURE', error }\r\n }\r\n\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'DASHBOARD_CLEAR'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\nimport { empresaAction, obraOrcamentoAction } from '_actions'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const convocacaoAction = {\r\n getConvocacao,\r\n addConvocacao,\r\n getConvocacaoById,\r\n onChangeProps,\r\n editConvocacaoInfo,\r\n editConvocacaosDetails,\r\n createConvocacao,\r\n changeDetailsConvocacao,\r\n clear,\r\n clearAll,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nfunction getConvocacao(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'convocacoes' + stringUtils.serialize(filterModel);;\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeConvocacaosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n dispatch(empresaAction.getEmpresa(filterModel))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\nfunction createConvocacao(payload, payloadOrcamento, idOrgao, idObra) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'convocacoes/'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(createConvocacaoInfo())\r\n dispatch(empresaAction.getEmpresaConvocacao({ Page: 0, IdOrgao: idOrgao, IdObra: idObra }))\r\n\r\n //só cria o orçamento se a convocação tiver sido aceita\r\n if (payload.aceita == true) {\r\n dispatch(obraOrcamentoAction.createAndApproveObraOrcamento(payloadOrcamento))\r\n\r\n toast.success('Convocação criada com sucesso!')\r\n } else {\r\n toast.success('Convocação recusada com sucesso!')\r\n }\r\n dispatch(clear())\r\n\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n }\r\n}\r\nfunction getConvocacaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'convocacoes/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editConvocacaosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsConvocacao(convocacao) {\r\n return (dispatch) => {\r\n if (convocacao) {\r\n dispatch(onChangeDetailsConvocacao(convocacao))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsConvocacao(convocacao) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_CONVOCACAO',\r\n id: convocacao.id,\r\n nome: convocacao.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction editConvocacaoInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'convocacoes/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/convocacoes')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar convocacao! 😥')\r\n }\r\n })\r\n .catch(ex => dispatch(notIsLoading()))\r\n }\r\n}\r\n\r\nexport function addConvocacao(payload) {\r\n return [{ type: 'ADD_CONVOCACAO', convocacao: payload }, clear()]\r\n}\r\n\r\nexport function changeConvocacaosList(convocacao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_CONVOCACAO',\r\n convocacao: convocacao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'CONVOCACAO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'CONVOCACAO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'CONVOCACAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editConvocacaosDetails(convocacao) {\r\n return {\r\n type: 'CONVOCACAO_DETAIL',\r\n id: convocacao.id,\r\n data: convocacao.data,\r\n observacoes: convocacao.observacoes,\r\n idEmpresa: convocacao.idEmpresa,\r\n empresa: convocacao.empresa,\r\n idObra: convocacao.idObra,\r\n obra: convocacao.obra,\r\n aceita: convocacao.aceita\r\n }\r\n}\r\n\r\nexport function updatedConvocacaoInfo() {\r\n return {\r\n type: 'CONVOCACAO_UPDATED'\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_CONVOCACAO_FAILURE', error }\r\n}\r\n\r\nexport function createConvocacaoInfo() {\r\n return {\r\n type: 'CONVOCACAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'CONVOCACAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'CONVOCACAO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const empresaAction = {\r\n getEmpresa,\r\n getEmpresaConvocacao,\r\n getEmpresaSelect,\r\n addEmpresa,\r\n getEmpresaById,\r\n onChangeProps,\r\n editEmpresaInfo,\r\n editAprovaCadastroEmpresa,\r\n editRecusaCadastroEmpresa,\r\n editEmpresasDetails,\r\n createEmpresa,\r\n createEmpresaApp,\r\n changeDetailsEmpresa,\r\n deleteEmpresaById,\r\n clear,\r\n clearAll,\r\n clearUsuariosEmpresas,\r\n clearTiposServicos,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getEmpresa(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEmpresasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getEmpresaConvocacao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/convocacoes' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEmpresasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getEmpresaSelect(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresas/select' + (filterModel ? stringUtils.serialize(filterModel) : null);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeEmpresasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createEmpresa(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(createEmpresaInfo())\r\n // toast.success('Empresa criada com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/empresas')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction createEmpresaApp(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/empresaApp'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(createEmpresaInfo())\r\n toast.success('Empresa cadastrada com sucesso!')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/login')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction editAprovaCadastroEmpresa(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/aprova/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/empresas')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar empresa! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar empresa! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editRecusaCadastroEmpresa(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/empresas')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar empresa! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar empresa! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction getEmpresaById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresas/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editEmpresasDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsEmpresa(empresa) {\r\n return (dispatch) => {\r\n if (empresa) {\r\n dispatch(onChangeDetailsEmpresa(empresa))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsEmpresa(empresa) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_EMPRESA',\r\n id: empresa.id,\r\n nome: empresa.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction editEmpresaInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresas/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/empresas')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar empresa! 😥')\r\n }\r\n })\r\n .catch(ex => dispatch(notIsLoading()))\r\n }\r\n}\r\n\r\nfunction deleteEmpresaById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresas/' + id\r\n crudService.deleteDetail(apiEndpoint).then(() => {\r\n dispatch(deleteEmpresasDetails())\r\n dispatch(getEmpresa(filterModel))\r\n history.push('/empresas')\r\n })\r\n }\r\n}\r\n\r\nexport function addEmpresa(payload) {\r\n return [{ type: 'ADD_EMPRESA', empresa: payload }, clear()]\r\n}\r\n\r\nexport function changeEmpresasList(empresa, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_EMPRESA',\r\n empresa: empresa,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'EMPRESA_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'EMPRESA_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'EMPRESA_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editEmpresasDetails(empresa) {\r\n return {\r\n type: 'EMPRESA_DETAIL',\r\n id: empresa.id,\r\n razaoSocial: empresa.razaoSocial,\r\n nomeFantasia: empresa.nomeFantasia,\r\n cnpj: empresa.cnpj,\r\n cpf: empresa.cpf,\r\n telefone: empresa.telefone,\r\n celular: empresa.celular,\r\n email: empresa.email,\r\n endereco: empresa.endereco,\r\n informacoesCobranca: empresa.informacoesCobranca,\r\n inscricaoEstadual: empresa.inscricaoEstadual,\r\n idCidade: empresa.idCidade,\r\n idEstado: empresa.idEstado,\r\n usuariosEmpresas: empresa.usuariosEmpresas,\r\n empresasOrgaos: empresa.empresasOrgaos,\r\n empresasCidades: empresa.empresasCidades,\r\n fornecedor: empresa.fornecedor,\r\n autonomo: empresa.autonomo,\r\n cidade: empresa.cidade,\r\n prestadorServico: empresa.prestadorServico,\r\n projeto: empresa.projeto,\r\n empresasAnexos: empresa.empresasAnexos,\r\n empresasTiposServicos: empresa.empresasTiposServicos,\r\n atendeFimDeSemana: empresa.atendeFimDeSemana,\r\n servicosUrgencia: empresa.servicosUrgencia,\r\n cadastroLiberado: empresa.cadastroLiberado\r\n }\r\n}\r\n\r\nexport function updatedEmpresaInfo() {\r\n return {\r\n type: 'EMPRESA_UPDATED'\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_EMPRESA_FAILURE', error }\r\n}\r\n\r\nexport function createEmpresaInfo() {\r\n return {\r\n type: 'EMPRESA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteEmpresasDetails() {\r\n return {\r\n type: 'DELETED_EMPRESA_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'EMPRESA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'EMPRESA_NOTISLOADING'\r\n }\r\n}\r\n\r\nexport function clearUsuariosEmpresas() {\r\n return {\r\n type: 'EMPRESA_CLEAR_USUARIOS_EMPRESAS'\r\n }\r\n}\r\n\r\nexport function clearTiposServicos() {\r\n return {\r\n type: 'EMPRESA_CLEAR_TIPOS_SERVICOS'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const empresaAnexoAction = {\r\n getEmpresaAnexo,\r\n getEmpresaAnexoSelect,\r\n getEmpresaAnexoById,\r\n onChangeProps,\r\n editEmpresaAnexoInfo,\r\n editEmpresaAnexoAprova,\r\n editEmpresaAnexoRecusa,\r\n createEmpresaAnexo,\r\n deleteEmpresaAnexoById,\r\n clear,\r\n clearDetail\r\n}\r\n\r\n\r\nfunction getEmpresaAnexo(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresasAnexos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEmpresaAnexosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getEmpresaAnexoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresasAnexos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeEmpresaAnexosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\n\r\nfunction editEmpresaAnexoAprova(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empresasAnexos/aprova/' + payload.id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n\r\n let filterModel = {\r\n Page: 0,\r\n Term: '',\r\n IdEmpresa: payload.idEmpresa\r\n };\r\n\r\n dispatch(getEmpresaAnexo(filterModel, true))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_MEDICAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editEmpresaAnexoRecusa(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empresasAnexos/recusa/' + payload.id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n\r\n let filterModel = {\r\n Page: 0,\r\n Term: '',\r\n IdEmpresa: payload.idEmpresa\r\n };\r\n\r\n dispatch(getEmpresaAnexo(filterModel, true))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction createEmpresaAnexo(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empresasAnexos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key,\r\n IdEmpresa: payload.idEmpresa\r\n };\r\n\r\n dispatch(getEmpresaAnexo(filterModel, true));\r\n } else {\r\n toast.error('Oops! Erro ao cadastrar Anexo! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao cadastrar Anexo! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_EMPRESA_ANEXO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_EMPRESA_ANEXO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'EMPRESA_ANEXO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'EMPRESA_ANEXO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_EMPRESA_ANEXO_REQUEST', payload }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_EMPRESA_ANEXO_FAILURE', error }\r\n}\r\n\r\nfunction editEmpresaAnexoInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empresasAnexos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(getEmpresaAnexo(filterModel, true));\r\n\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar anexo da Empresa! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_EMPRESA_ANEXO_REQUEST', payload }\r\n } \r\n\r\n function failure(error) {\r\n return { type: 'EDIT_EMPRESA_ANEXO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getEmpresaAnexoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empresasAnexos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editEmpresaAnexosDetails(response.data))\r\n\r\n let filterModel = {\r\n IdObra: response.data.idEmpresa\r\n };\r\n dispatch(getEmpresaAnexo(filterModel, true));\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteEmpresaAnexoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empresasAnexos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteEmpresaAnexosDetails())\r\n dispatch(notIsLoading())\r\n\r\n let filterModel = {\r\n Situacao: 0\r\n };\r\n\r\n dispatch(getEmpresaAnexo(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeEmpresaAnexosList(empresaAnexo, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_EMPRESA_ANEXO',\r\n empresaAnexo: empresaAnexo,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'EMPRESA_ANEXO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editEmpresaAnexosDetails(empresaAnexo) {\r\n return {\r\n type: 'EMPRESA_ANEXO_DETAIL',\r\n id: empresaAnexo.id,\r\n idTipoAnexo: empresaAnexo.idTipoAnexo,\r\n caminhoAnexo: empresaAnexo.caminhoAnexo,\r\n idEmpresa: empresaAnexo.idEmpresa,\r\n empresa: empresaAnexo.empresa,\r\n excluido: empresaAnexo.excluido,\r\n empresaAnexo: empresaAnexo.empresaAnexo\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'EMPRESA_ANEXO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteEmpresaAnexosDetails() {\r\n return {\r\n type: 'DELETED_EMPRESA_ANEXO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'EMPRESA_ANEXO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'EMPRESA_ANEXO_NOTISLOADING'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { empresaAction } from '_actions'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const empresaOrgaoAction = {\r\n changeDetailsEmpresaOrgao,\r\n getEmpresaOrgao,\r\n getEmpresaOrgaos,\r\n addUsuarioByEmail,\r\n editEmpresaOrgaosDetails,\r\n openModalCadastroEmpresaOrgao,\r\n openModalCadastroTipoEmpresa,\r\n deleteUsuarioById,\r\n clearSelected,\r\n clear,\r\n clearAll\r\n}\r\n\r\nfunction addUsuarioByEmail(payload) {\r\n return (dispatch) => {\r\n dispatch(request({ payload }))\r\n let apiEndpoint = 'usuariosEmpresas/email'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n toast.success('Usuário adicionado com sucesso! 😎')\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n\r\n function request(data) {\r\n return { type: 'EMPRESA_ORGAO_ADD_REQUEST', data }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'EMPRESA_ORGAO_ADD_SUCCESS',\r\n data: data\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EMPRESA_ORGAO_ADD_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction deleteUsuarioById(id) {\r\n return (dispatch) => {\r\n dispatch(request(id))\r\n let apiEndpoint = 'usuariosEstabelecimentos/' + id\r\n crudService\r\n .deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n\r\n function request(id) {\r\n return { type: 'EMPRESA_ORGAO_DELETE_REQUEST', id }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'EMPRESA_ORGAO_DELETE_SUCCESS',\r\n data: data\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EMPRESA_ORGAO_DELETE_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction changeDetailsEmpresaOrgao(empresaOrgao) {\r\n return (dispatch) => {\r\n if (empresaOrgao) {\r\n dispatch(onChangeDetailsEmpresaOrgao(empresaOrgao))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nfunction getEmpresaOrgaos(empresaOrgao) {\r\n return (dispatch) => {\r\n dispatch(changeEmpresaOrgaosList(empresaOrgao))\r\n if (\r\n undefined !== empresaOrgao &&\r\n empresaOrgao.length === 1\r\n ) {\r\n dispatch(editEmpresaOrgaosDetails(empresaOrgao[0]))\r\n }\r\n }\r\n}\r\n\r\nfunction getEmpresaOrgao(empresaOrgao) {\r\n return (dispatch) => {\r\n dispatch(editEmpresaOrgaosDetails(empresaOrgao))\r\n }\r\n}\r\n\r\nexport function addEmpresaOrgao(payload) {\r\n return [\r\n { type: 'ADD_EMPRESA_ORGAO', empresaOrgao: payload },\r\n clear()\r\n ]\r\n}\r\n\r\nexport function changeEmpresaOrgaosList(empresaOrgao) {\r\n return {\r\n type: 'FETCHED_ALL_EMPRESA_ORGAO',\r\n empresaOrgao: empresaOrgao\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'EMPRESA_ORGAO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'EMPRESA_ORGAO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function clearSelected() {\r\n return {\r\n type: 'EMPRESA_ORGAO_CLEAR_SELECTED'\r\n }\r\n}\r\n\r\nexport function openModalCadastroEmpresaOrgao(open) {\r\n return {\r\n type: 'OPEN_MODAL_REQUEST_CADASTRO_EMPRESA_ORGAO',\r\n open: open\r\n }\r\n}\r\n\r\nexport function openModalCadastroTipoEmpresa(open) {\r\n return {\r\n type: 'OPEN_MODAL_REQUEST_CADASTRO_TIPO_EMPRESA',\r\n open: open\r\n }\r\n}\r\n\r\nexport function onChangeDetailsEmpresaOrgao(empresaOrgao) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_EMPRESA_ORGAO',\r\n id: empresaOrgao.id,\r\n idOrgao: empresaOrgao.idOrgao,\r\n idEmpresa: empresaOrgao.idEmpresa,\r\n excluido: empresaOrgao.excluido,\r\n empresa: empresaOrgao.empresa\r\n },\r\n empresaAction.getEmpresaById(\r\n empresaOrgao.idEmpresa\r\n )\r\n ]\r\n}\r\n\r\nexport function editEmpresaOrgaosDetails(empresaOrgao) {\r\n return {\r\n type: 'EMPRESA_ORGAO_DETAIL',\r\n id: empresaOrgao.id,\r\n idOrgao: empresaOrgao.idOrgao,\r\n idEmpresa: empresaOrgao.idEmpresa,\r\n excluido: empresaOrgao.excluido,\r\n empresa: empresaOrgao.empresa\r\n }\r\n}\r\n\r\nexport function updatedEmpresaOrgaoInfo() {\r\n return {\r\n type: 'EMPRESA_ORGAO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createEmpresaOrgaoInfo() {\r\n return {\r\n type: 'EMPRESA_ORGAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\n\r\nexport const estadoAction = {\r\n getEstadoSelect\r\n}\r\nfunction getEstadoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'estados/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstadosList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\nexport function changeEstadosList(estado) {\r\n return {\r\n type: 'FETCHED_ALL_ESTADO',\r\n estado: estado\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const insumoAction = {\r\n getInsumos,\r\n clear,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nfunction getInsumos(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'insumos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data && response.data.items) {\r\n dispatch(changeInsumossList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n } else if (response.data) {\r\n toast.error(response.data);\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n toast.error(err);\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'INSUMO_CLEAR'\r\n }\r\n}\r\n\r\nexport function changeInsumossList(insumo, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_INSUMO',\r\n insumo: insumo,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'INSUMO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'INSUMO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\n\r\nexport const logAction = {\r\n getLog,\r\n getLogByUsuario,\r\n onChangeProps,\r\n changeDetailsLog,\r\n editLogInfo,\r\n editLogsDetails,\r\n clear,\r\n clearAll\r\n}\r\n\r\nfunction getLog() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'logs'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeLogsList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getLogByUsuario(idUsuario) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'logs/' + idUsuario\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeLogsList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction changeDetailsLog(log) {\r\n return (dispatch) => {\r\n if (log) {\r\n dispatch(onChangeDetailsLog(log))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n}\r\n\r\nfunction editLogInfo(id, payload) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'logs/' + id\r\n crudService.put(apiEndpoint, payload).then(() => {\r\n dispatch(updatedLogInfo())\r\n dispatch(clear())\r\n })\r\n }\r\n}\r\n\r\nexport function changeLogsList(log) {\r\n return {\r\n type: 'FETCHED_ALL_LOG',\r\n log: log\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'LOG_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'LOG_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'LOG_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editLogsDetails(log) {\r\n return {\r\n type: 'LOG_DETAIL',\r\n id: log.id,\r\n tipo: log.tipo,\r\n tabela: log.tabela,\r\n chave: log.chave,\r\n id_usuario: log.id_usuario,\r\n dataHora: log.dataHora,\r\n campo: log.campo,\r\n valorAntigo: log.valorAntigo,\r\n valorNovo: log.valorNovo,\r\n usuario: log.usuario\r\n }\r\n}\r\n\r\nexport function updatedLogInfo() {\r\n return {\r\n type: 'LOG_UPDATED'\r\n }\r\n}\r\n\r\nexport function createLogInfo() {\r\n return {\r\n type: 'LOG_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteLogsDetails() {\r\n return {\r\n type: 'DELETED_LOG_DETAILS'\r\n }\r\n}\r\n\r\nexport function onChangeDetailsLog(log) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_LOG',\r\n id: log.id,\r\n tipo: log.tipo,\r\n tabela: log.tabela,\r\n chave: log.chave,\r\n id_usuario: log.id_usuario,\r\n dataHora: log.dataHora,\r\n campo: log.campo,\r\n valorAntigo: log.valorAntigo,\r\n valorNovo: log.valorNovo,\r\n usuario: log.usuario\r\n }\r\n ]\r\n}\r\n","import { crudService } from '../_services'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const manualAction = {\r\n getManual,\r\n getManualById,\r\n onChangeProps,\r\n editManualInfo,\r\n changeDetailsManual,\r\n getManualByTela,\r\n createManual,\r\n deleteManualById,\r\n clear,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getManual(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'manuais' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeManualsList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getManualByTela(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'manuais/telas' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeManualsList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createManual(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'manuais'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n if (response.data.key) {\r\n dispatch(getManualById(response.data.key))\r\n }\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_MANUAL_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_MANUAL_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'MANUAL_CLEAR'\r\n }\r\n}\r\n\r\nfunction editManualInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'manuais/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/manuais')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_MANUAL_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_MANUAL_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getManualById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'manuais/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editManualsDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsManual(manual) {\r\n return (dispatch) => {\r\n if (manual) {\r\n dispatch(onChangeDetailsManual(manual))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsManual(manual) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_MANUAL',\r\n id: manual.id,\r\n nome: manual.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction deleteManualById(id, idOrgao) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'manuais/' + id\r\n crudService.deleteDetail(apiEndpoint).then(() => {\r\n dispatch(deleteManualsDetails())\r\n history.push('/manuais')\r\n dispatch(getManual({ IdOrgao: idOrgao }, true))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\nexport function changeManualsList(manual, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_MANUAL',\r\n manual: manual,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'MANUAL_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editManualsDetails(manual) {\r\n return {\r\n type: 'MANUAL_DETAIL',\r\n id: manual.id,\r\n isLoading: manual.isLoading,\r\n nome: manual.nome,\r\n categoria: manual.categoria,\r\n descricao: manual.descricao,\r\n link: manual.link,\r\n tiposUsuariosManuais: manual.tiposUsuariosManuais,\r\n excluido: manual.excluido\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'MANUAL_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteManualsDetails() {\r\n return {\r\n type: 'DELETED_MANUAL_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'MANUAL_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'MANUAL_NOTISLOADING'\r\n }\r\n}\r\n\r\n\r\n","import { history } from 'utils'\r\nimport { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\nimport { notificacaoFiltroAction } from '../_actions';\r\n\r\nexport const notificacaoAction = {\r\n getNotificacao,\r\n addNotificacao,\r\n getNotificacaoById,\r\n onChangeProps,\r\n editNotificacaoInfo,\r\n editNotificacaosDetails,\r\n duplicateNotificacao,\r\n createNotificacao,\r\n sendNotificacao,\r\n sendNotificacaoTeste,\r\n deleteNotificacaoById,\r\n openModalNotificacaoTestes,\r\n openModalNotificacaoFiltrosItens,\r\n openModalNotificacaoUsuarios,\r\n clear,\r\n clearAll\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: '',\r\n Order: 'dataHora',\r\n Direction: 'desc'\r\n};\r\n\r\nfunction getNotificacao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoes' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeNotificacaosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createNotificacao(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'notificacoes/'\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(createNotificacaoInfo())\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(getNotificacaoById(ret.key))\r\n dispatch(notIsLoading())\r\n history.push('/notificacao/' + ret.key)\r\n } else {\r\n toast.err('Oops! Erro ao cadastrar notificação! 😥')\r\n }\r\n }).catch ((err) => {\r\n // console.log(err.response);\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao cadastrar notificação! 😥')\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction duplicateNotificacao(id, redirect) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoes/duplicar/' + id\r\n crudService.post(apiEndpoint).then((response) => {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(createNotificacaoInfo())\r\n toast.success('Feito! Notificação duplicada com sucesso! 😎')\r\n dispatch(getNotificacao(filterModel))\r\n })\r\n }\r\n}\r\n\r\nfunction sendNotificacao(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoes/enviar/' + id;\r\n crudService.post(apiEndpoint).then((response) => {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(createNotificacaoInfo())\r\n toast.success('Notificação enviada com sucesso! 😎')\r\n dispatch(clear())\r\n history.push('/notificacoes')\r\n })\r\n }\r\n}\r\n\r\nfunction sendNotificacaoTeste(id, selectedClientes) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoes/enviarTeste/' + id;\r\n crudService.post(apiEndpoint, selectedClientes).then((response) => {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(createNotificacaoInfo())\r\n toast.success('Notificação de teste enviada com sucesso! 😎')\r\n dispatch(clear())\r\n history.push('/notificacoes')\r\n })\r\n }\r\n}\r\n\r\nfunction getNotificacaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoes/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editNotificacaosDetails(response.data))\r\n dispatch(notificacaoFiltroAction.getNotificacaoFiltroByNotificacao(id))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction editNotificacaoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n if (redirect) {\r\n dispatch(isLoading())\r\n }\r\n let apiEndpoint = 'notificacoes/' + id\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(updatedNotificacaoInfo())\r\n if (redirect) {\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/notificacoes')\r\n } \r\n }\r\n }).catch((err) => {\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar notificação! 😥')\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction deleteNotificacaoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'notificacoes/' + id\r\n crudService.deleteDetail(apiEndpoint).then(() => {\r\n dispatch(deleteNotificacaosDetails())\r\n dispatch(getNotificacao(filterModel))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function addNotificacao(payload) {\r\n return [{ type: 'ADD_NOTIFICACAO', notificacao: payload }, clear()]\r\n}\r\n\r\nexport function changeNotificacaosList(notificacao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_NOTIFICACAO',\r\n notificacao: notificacao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function openModalNotificacaoFiltrosItens(open) {\r\n return {\r\n type: 'OPEN_MODAL_NOTIFICACAO_FILTROS_ITENS',\r\n open: open\r\n }\r\n}\r\n\r\nexport function openModalNotificacaoTestes(open) {\r\n return {\r\n type: 'OPEN_MODAL_NOTIFICACAO_TESTES',\r\n open: open\r\n }\r\n}\r\n\r\nexport function openModalNotificacaoUsuarios(open) {\r\n return {\r\n type: 'OPEN_MODAL_NOTIFICACAO_USUARIOS',\r\n open: open\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'NOTIFICACAO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'NOTIFICACAO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'NOTIFICACAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editNotificacaosDetails(notificacao) {\r\n return [\r\n { type: 'NOTIFICACAO_DETAIL', notificacao },\r\n ]\r\n}\r\n\r\nexport function updatedNotificacaoInfo() {\r\n return {\r\n type: 'NOTIFICACAO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createNotificacaoInfo() {\r\n return {\r\n type: 'NOTIFICACAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteNotificacaosDetails() {\r\n return {\r\n type: 'DELETED_NOTIFICACAO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'NOTIFICACAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'NOTIFICACAO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const notificacaoFiltroAction = {\r\n getNotificacaoFiltro,\r\n addNotificacaoFiltro,\r\n getNotificacaoFiltroById,\r\n getNotificacaoFiltroByNotificacao,\r\n onChangeProps,\r\n /*editNotificacaoFiltroInfo,*/\r\n editNotificacaoFiltrosDetails,\r\n createNotificacaoFiltro,\r\n deleteNotificacaoFiltroById,\r\n clear,\r\n clearAll,\r\n clearInfo\r\n}\r\n\r\n\r\nfunction getNotificacaoFiltro(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesFiltros' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeNotificacaoFiltrosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createNotificacaoFiltro(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'notificacoesFiltros/'\r\n crudService.post(apiEndpoint, payload).then(() => {\r\n dispatch(createNotificacaoFiltroInfo())\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(getNotificacaoFiltroByNotificacao(payload.idNotificacao))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getNotificacaoFiltroById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesFiltros/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n // console.log('response.data', response.data)\r\n dispatch(editNotificacaoFiltrosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction getNotificacaoFiltroByNotificacao(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesFiltros/notificacao/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n // console.log('response.data', response.data)\r\n dispatch(changeNotificacaoFiltrosList(response.data, 0))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\n//function editNotificacaoFiltroInfo(id, payload, redirect) {\r\n// return (dispatch) => {\r\n// let apiEndpoint = 'notificacoesFiltros/' + id\r\n// crudService.put(apiEndpoint, payload).then(() => {\r\n// dispatch(updatedNotificacaoFiltroInfo())\r\n// dispatch(clear())\r\n// if (redirect) {\r\n// history.push('/notificacoesFiltros')\r\n// }\r\n// })\r\n// }\r\n//}\r\n\r\nfunction deleteNotificacaoFiltroById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesFiltros/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(deleteNotificacaoFiltrosDetails())\r\n dispatch(getNotificacaoFiltroByNotificacao(ret.key))\r\n })\r\n }\r\n}\r\n\r\nexport function addNotificacaoFiltro(payload) {\r\n return [{ type: 'ADD_NOTIFICACAO_FILTRO', notificacaoFiltro: payload }, clear()]\r\n}\r\n\r\nexport function changeNotificacaoFiltrosList(notificacaoFiltro, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_NOTIFICACAO_FILTRO',\r\n notificacaoFiltro: notificacaoFiltro,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function clearInfo() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_CLEAR_INFO'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editNotificacaoFiltrosDetails(notificacaoFiltro) {\r\n return [\r\n { type: 'NOTIFICACAO_FILTRO_DETAIL', notificacaoFiltro },\r\n ]\r\n}\r\n\r\nexport function updatedNotificacaoFiltroInfo() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createNotificacaoFiltroInfo() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteNotificacaoFiltrosDetails() {\r\n return {\r\n type: 'DELETED_NOTIFICACAO_FILTRO_DETAILS'\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'NOTIFICACAO_FILTRO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const notificacaoUsuarioAction = {\r\n getNotificacaoUsuario,\r\n addNotificacaoUsuario,\r\n getNotificacaoUsuarioById,\r\n getNotificacoesByCliente,\r\n onChangeProps,\r\n /*editNotificacaoUsuarioInfo,*/\r\n editNotificacaoUsuariosDetails,\r\n createNotificacaoUsuario,\r\n deleteNotificacaoUsuarioById,\r\n clear,\r\n clearAll,\r\n clearInfo\r\n}\r\n\r\nfunction getNotificacaoUsuario(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'notificacoesUsuarios' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeNotificacaoUsuariosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getNotificacoesByCliente(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesUsuarios/cliente' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeNotificacaoUsuariosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createNotificacaoUsuario(payload) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesUsuarios/'\r\n crudService.post(apiEndpoint, payload).then(() => {\r\n dispatch(createNotificacaoUsuarioInfo())\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n\r\n let filterModel = {\r\n Page: 1,\r\n Limit: 10,\r\n Term: '',\r\n IdNotificacao: payload.idNotificacao\r\n };\r\n dispatch(getNotificacaoUsuario(filterModel, false))\r\n\r\n\r\n })\r\n }\r\n}\r\n\r\nfunction getNotificacaoUsuarioById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesUsuarios/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n // console.log('response.data', response.data)\r\n dispatch(editNotificacaoUsuariosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\n//function editNotificacaoUsuarioInfo(id, payload, redirect) {\r\n// return (dispatch) => {\r\n// let apiEndpoint = 'notificacoesUsuarios/' + id\r\n// crudService.put(apiEndpoint, payload).then(() => {\r\n// dispatch(updatedNotificacaoUsuarioInfo())\r\n// dispatch(clear())\r\n// if (redirect) {\r\n// history.push('/notificacoesUsuarios')\r\n// }\r\n// })\r\n// }\r\n//}\r\n\r\nfunction deleteNotificacaoUsuarioById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'notificacoesUsuarios/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(deleteNotificacaoUsuariosDetails())\r\n\r\n let filterModel = {\r\n Page: 1,\r\n Limit: 10,\r\n Term: '',\r\n IdNotificacao: ret.key\r\n };\r\n dispatch(getNotificacaoUsuario(filterModel, false))\r\n\r\n })\r\n }\r\n}\r\n\r\nexport function addNotificacaoUsuario(payload) {\r\n return [{ type: 'ADD_NOTIFICACAO_USUARIO', notificacaoUsuario: payload }, clear()]\r\n}\r\n\r\nexport function changeNotificacaoUsuariosList(notificacaoUsuario, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_NOTIFICACAO_USUARIO',\r\n notificacaoUsuario: notificacaoUsuario,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function clearInfo() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_CLEAR_INFO'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editNotificacaoUsuariosDetails(notificacaoUsuario) {\r\n return [\r\n { type: 'NOTIFICACAO_USUARIO_DETAIL', notificacaoUsuario },\r\n ]\r\n}\r\n\r\nexport function updatedNotificacaoUsuarioInfo() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createNotificacaoUsuarioInfo() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteNotificacaoUsuariosDetails() {\r\n return {\r\n type: 'DELETED_NOTIFICACAO_USUARIO_DETAILS'\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'NOTIFICACAO_USUARIO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\nimport { obraEtapaItemAction } from '_actions'\r\n\r\nexport const obraAction = {\r\n getObra,\r\n getObraSemEmpenho,\r\n getObraSelect,\r\n getObraSelectTitle,\r\n getGraficoEvolucaoObra,\r\n getObraSelectPublic,\r\n getObraById,\r\n onChangeProps,\r\n changeDetailsObra,\r\n editObraInfo,\r\n editObraCoordenadas,\r\n editObraAprova,\r\n editObraAprovaOrcamento,\r\n editObraFinalizaLancamentoItens,\r\n editObraAlteraStatusEmLancamento,\r\n editObraDevolveParaRevisao,\r\n editObraRecusa,\r\n editObraRecusaOrcamento,\r\n createObra,\r\n putFinalizaObra,\r\n deleteObraById,\r\n clear,\r\n handleModalCronograma,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObra(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObrasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraSemEmpenho(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/empenhos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObrasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraSelect(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obras/select' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeObrasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraSelectTitle(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obras/select/title' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeObrasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getGraficoEvolucaoObra(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'obras/graficoEvolucaoObra/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(editGraficosDetails(response.data));\r\n }\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n}\r\n\r\nexport function editGraficosDetails(graficoEvolucaoObra) {\r\n return {\r\n type: \"GRAFICO_EVOLUCAO_OBRA_DETAIL\",\r\n graficoEvolucaoObra: graficoEvolucaoObra\r\n };\r\n}\r\n\r\nfunction getObraSelectPublic(filterModelPublic) {\r\n return (dispatch) => {\r\n let apiEndpoint = `obras/public${filterModelPublic}`\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObrasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction changeDetailsObra(obra) {\r\n return (dispatch) => {\r\n if (obra) {\r\n dispatch(onChangeDetailsObra(obra))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsObra(obra) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_OBRA',\r\n id: obra.id,\r\n titulo: obra.titulo,\r\n descritivo: obra.descritivo,\r\n dataInicio: obra.dataInicio,\r\n dataTermino: obra.dataTermino\r\n }\r\n ]\r\n}\r\n\r\nfunction createObra(payload, idOrgao, isObra, isProjetoTecnico, isReparo) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obras'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n if (isProjetoTecnico) {\r\n history.push('/projetosTecnicos')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsProjetoTecnico: true }))\r\n } else if (isReparo) {\r\n history.push('/reparosPrevencoes')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsReparoPrevencao: true }))\r\n } else if (isObra) {\r\n history.push('/obras')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: true }))\r\n } else {\r\n history.push('/materiais')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: false }))\r\n }\r\n } else {\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraCoordenadas(idObra, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasCoordenadas/' + idObra\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_OBRA_REQUEST', payload }\r\n }\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction putFinalizaObra(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/finalizar/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_CLEAR'\r\n }\r\n}\r\n\r\nfunction editObraInfo(id, payload, idOrgao, isObra, isProjetoTecnico, isReparo) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obras/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n if (isProjetoTecnico) {\r\n history.push('/projetosTecnicos')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsProjetoTecnico: true }))\r\n } else if (isReparo) {\r\n history.push('/reparosPrevencoes')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsReparoPrevencao: true }))\r\n } else if (isObra) {\r\n history.push('/obras')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: true }))\r\n } else {\r\n history.push('/materiais')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: false }))\r\n }\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraAprova(id, idOrgao, isObra, isProjetoTecnico, isReparo) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/aprova/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n if (isProjetoTecnico) {\r\n history.push('/projetosTecnicos')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsProjetoTecnico: true }))\r\n } else if (isReparo) {\r\n history.push('/reparosPrevencoes')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsReparoPrevencao: true }))\r\n } else if (isObra) {\r\n history.push('/obras')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: true }))\r\n } else {\r\n history.push('/materiais')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: false }))\r\n }\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraRecusa(id, idOrgao, isObra, isProjetoTecnico, isReparo) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n if (isProjetoTecnico) {\r\n history.push('/projetosTecnicos')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsProjetoTecnico: true }))\r\n } else if (isReparo) {\r\n history.push('/reparosPrevencoes')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsReparoPrevencao: true }))\r\n } else if (isObra) {\r\n history.push('/obras')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: true }))\r\n } else {\r\n history.push('/materiais')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: false }))\r\n }\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction editObraAprovaOrcamento(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/aprova/orcamento/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraRecusaOrcamento(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/recusa/orcamento/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraFinalizaLancamentoItens(id, idObra, idObraEtapa) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/finalizaLancamentoItens/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(getObraById(idObra))\r\n\r\n let filterModel = {\r\n Id: idObraEtapa\r\n };\r\n\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraDevolveParaRevisao(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/devolveParaRevisao/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(getObraById(id))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraAlteraStatusEmLancamento(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/alterarStatusEmLancamento/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(getObraById(id))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obras/' + id\r\n\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n const data = response.data;\r\n dispatch(editObrasDetails(data));\r\n })\r\n .catch((error) => {\r\n if (error && error.status === 404) {\r\n history.goBack();\r\n }\r\n });\r\n\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraById(id, idOrgao, payload, isObra, isProjetoTecnico, isReparoPrevencao) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obras/delete/' + id\r\n crudService.put(apiEndpoint, payload).then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n if (isProjetoTecnico) {\r\n history.push('/projetosTecnicos')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsProjetoTecnico: true }))\r\n } else if (isReparoPrevencao) {\r\n history.push('/reparosPrevencoes')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsReparoPrevencao: true }))\r\n } else if (isObra) {\r\n history.push('/obras')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: true }))\r\n } else {\r\n history.push('/materiais')\r\n dispatch(getObra({ IdOrgao: idOrgao, Page: 0, IsObra: false }))\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport function changeObrasList(obra, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA',\r\n obra: obra,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObrasDetails(obra) {\r\n return {\r\n type: 'OBRA_DETAIL',\r\n id: obra.id,\r\n descritivo: obra.descritivo,\r\n titulo: obra.titulo,\r\n idUsuario: obra.idUsuario,\r\n idTipoObra: obra.idTipoObra,\r\n dataInicio: obra.dataInicio,\r\n dataTermino: obra.dataTermino,\r\n idOrgao: obra.idOrgao,\r\n idTabelaInsumo: obra.idTabelaInsumo,\r\n anoTabelaInsumo: obra.anoTabelaInsumo,\r\n mesTabelaInsumo: obra.mesTabelaInsumo,\r\n idEstadoTabelaInsumo: obra.idEstadoTabelaInsumo,\r\n horasRecebimentoOrcamentos: obra.horasRecebimentoOrcamentos,\r\n caminhoImagem: obra.caminhoImagem,\r\n onerado: obra.onerado,\r\n credenciamento: obra.credenciamento,\r\n urgencia: obra.urgencia,\r\n latitude: obra.latitude,\r\n longitude: obra.longitude,\r\n bdi: obra.bdi,\r\n valorReferencia: obra.valorReferencia,\r\n valorReferenciaComBdi: obra.valorReferenciaComBdi,\r\n valorFinal: obra.valorFinal,\r\n orgao: obra.orgao,\r\n idSubOrgao: obra.idSubOrgao,\r\n ultimoEvento: obra.ultimoEvento,\r\n empresa: obra.empresa,\r\n eventos: obra.eventos,\r\n usuario: obra.usuario,\r\n idUsuarioMudancaSituacao: obra.idUsuarioMudancaSituacao,\r\n usuarioMudancaSituacao: obra.usuarioMudancaSituacao,\r\n dataMudancaSituacao: obra.dataMudancaSituacao,\r\n dataAprovacao: obra.dataAprovacao,\r\n veiculo: obra.veiculo,\r\n motivoExclusao: obra.motivoExclusao,\r\n motivoMudancaHorasRecebimentoOrcamentos: obra.motivoMudancaHorasRecebimentoOrcamentos,\r\n tipoObra: obra.tipoObra,\r\n obrasAnexos: obra.obrasAnexos,\r\n obrasEtapas: obra.obrasEtapas,\r\n obrasOrcamentos: obra.obrasOrcamentos,\r\n obrasCoordenadas: obra.obrasCoordenadas,\r\n obrasCobrancas: obra.obrasCobrancas,\r\n tabelaInsumo: obra.tabelaInsumo,\r\n estadoTabelaInsumo: obra.estadoTabelaInsumo,\r\n obrasAvaliacoes: obra.obrasAvaliacoes,\r\n obrasEmpenhos: obra.obrasEmpenhos,\r\n percentualConclusaoObra: obra.percentualConclusaoObra,\r\n percentualObraOrcamentosPagos: obra.percentualObraOrcamentosPagos\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObrasDetails() {\r\n return {\r\n type: 'DELETED_OBRA_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function handleModalCronograma() {\r\n return {\r\n type: 'OBRA_HANDLE_MODAL_CADASTRO'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraAnexoAction = {\r\n getObraAnexo,\r\n getObraAnexoPublic,\r\n getObraAnexoSelect,\r\n getObraAnexoById,\r\n onChangeProps,\r\n editObraAnexoInfo,\r\n createObraAnexo,\r\n deleteObraAnexoById,\r\n clear,\r\n clearDetail\r\n}\r\n\r\n\r\nfunction getObraAnexo(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasAnexos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraAnexosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraAnexoPublic(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obras/public/anexos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraAnexosList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraAnexoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasAnexos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObraAnexosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraAnexo(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasAnexos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(getObraAnexo(filterModel, true));\r\n } else {\r\n toast.error('Oops! Erro ao cadastrar Anexo! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao cadastrar Anexo! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ANEXO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ANEXO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_ANEXO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_ANEXO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction editObraAnexoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasAnexos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(getObraAnexo(filterModel, true));\r\n\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar anexo da Obra! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_OBRA_ANEXO_REQUEST', payload }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'EDIT_OBRA_ANEXO_SUCCESS',\r\n user: user\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ANEXO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getObraAnexoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasAnexos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraAnexosDetails(response.data))\r\n\r\n let filterModel = {\r\n IdObra: response.data.idObra\r\n };\r\n dispatch(getObraAnexo(filterModel, true));\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraAnexoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasAnexos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraAnexosDetails())\r\n dispatch(notIsLoading())\r\n\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(getObraAnexo(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeObraAnexosList(obraAnexo, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_ANEXO',\r\n obraAnexo: obraAnexo,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_ANEXO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraAnexosDetails(obraAnexo) {\r\n return {\r\n type: 'OBRA_ANEXO_DETAIL',\r\n id: obraAnexo.id,\r\n idTipoAnexo: obraAnexo.idTipoAnexo,\r\n caminhoAnexo: obraAnexo.caminhoAnexo,\r\n idObra: obraAnexo.idObra,\r\n obra: obraAnexo.obra,\r\n excluido: obraAnexo.excluido,\r\n obraAnexo: obraAnexo.obraAnexo\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_ANEXO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObraAnexosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_ANEXO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ANEXO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_ANEXO_NOTISLOADING'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\nimport { obraAction } from '_actions'\r\n\r\nexport const empenhoAction = {\r\n getEmpenho,\r\n getEmpenhoById,\r\n onChangeProps,\r\n editEmpenhoInfo,\r\n editEmpenhoRealizaPagamento,\r\n changeDetailsEmpenho,\r\n createEmpenho,\r\n deleteEmpenhoById,\r\n clear,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getEmpenho(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empenhos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEmpenhosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createEmpenho(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empenhos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/empenhos')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_EMPENHO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_EMPENHO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'EMPENHO_CLEAR'\r\n }\r\n}\r\n\r\nfunction editEmpenhoInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'empenhos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/empenhos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_EMPENHO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_EMPENHO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getEmpenhoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'empenhos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editEmpenhosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction editEmpenhoRealizaPagamento(id, idOrgao, idObra, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empenhos/pagar/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(getEmpenho({ IdOrgao: idOrgao }))\r\n if (idObra && idObra != 0) {\r\n dispatch(obraAction.getObraById(idObra))\r\n }\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_EMPENHO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsEmpenho(empenho) {\r\n return (dispatch) => {\r\n if (empenho) {\r\n dispatch(onChangeDetailsEmpenho(empenho))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsEmpenho(empenho) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_EMPENHO',\r\n id: empenho.id,\r\n nome: empenho.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction deleteEmpenhoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'empenhos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteEmpenhosDetails())\r\n history.push('/empenhos')\r\n dispatch(getEmpenho(filterModel, true))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\nexport function changeEmpenhosList(empenho, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_EMPENHO',\r\n empenho: empenho,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'EMPENHO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editEmpenhosDetails(empenho) {\r\n return {\r\n type: 'EMPENHO_DETAIL',\r\n id: empenho.id,\r\n isLoading: empenho.isLoading,\r\n caminhoArquivo: empenho.caminhoArquivo,\r\n caminhoNotaFiscal: empenho.caminhoNotaFiscal,\r\n idOrgao: empenho.idOrgao,\r\n dataCadastro: empenho.dataCadastro,\r\n dataPagamento: empenho.dataPagamento,\r\n orgao: empenho.orgao,\r\n idEmpresa: empenho.idEmpresa,\r\n empresa: empenho.empresa,\r\n obrasEmpenhos: empenho.obrasEmpenhos,\r\n excluido: empenho.excluido\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'EMPENHO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteEmpenhosDetails() {\r\n return {\r\n type: 'DELETED_EMPENHO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'EMPENHO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'EMPENHO_NOTISLOADING'\r\n }\r\n}\r\n\r\n\r\n","import { crudService } from '../_services/'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\nimport { obraAction } from '../../../ClientApp/src/_actions/'\r\n\r\nexport const obraAvaliacaoAction = {\r\n getObraAvaliacao,\r\n getObraAvaliacaoPublic,\r\n getObraAvaliacaoById,\r\n onChangeProps,\r\n editObraAvaliacaoInfo,\r\n createObraAvaliacao,\r\n deleteObraAvaliacaoById,\r\n clear,\r\n clearDetail\r\n}\r\n\r\n\r\nfunction getObraAvaliacao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasAvaliacoes' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraAvaliacaosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraAvaliacaoPublic(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obras/public/anexos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraAvaliacaosList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraAvaliacao(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasAvaliacoes'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(getObraAvaliacao(filterModel, true));\r\n dispatch(obraAction.getObraById(ret.key))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar Avaliacao! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_AVALIACAO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_AVALIACAO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_AVALIACAO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_AVALIACAO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction editObraAvaliacaoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasAvaliacoes/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(getObraAvaliacao(filterModel, true));\r\n\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar anexo da Obra! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_OBRA_AVALIACAO_REQUEST', payload }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'EDIT_OBRA_AVALIACAO_SUCCESS',\r\n user: user\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_AVALIACAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getObraAvaliacaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasAvaliacoes/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraAvaliacaosDetails(response.data))\r\n\r\n let filterModel = {\r\n IdObra: response.data.idObra\r\n };\r\n dispatch(getObraAvaliacao(filterModel, true));\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraAvaliacaoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasAvaliacoes/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraAvaliacaosDetails())\r\n dispatch(notIsLoading())\r\n\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(getObraAvaliacao(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeObraAvaliacaosList(obraAvaliacao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_AVALIACAO',\r\n obraAvaliacao: obraAvaliacao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_AVALIACAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraAvaliacaosDetails(obraAvaliacao) {\r\n return {\r\n type: 'OBRA_AVALIACAO_DETAIL',\r\n id: obraAvaliacao.id,\r\n idEmpresa: obraAvaliacao.idEmpresa,\r\n idUsuario: obraAvaliacao.idUsuario,\r\n nota: obraAvaliacao.nota,\r\n descricao: obraAvaliacao.descricao,\r\n idObra: obraAvaliacao.idObra,\r\n idOrgao: obraAvaliacao.idOrgao,\r\n obra: obraAvaliacao.obra,\r\n excluido: obraAvaliacao.excluido,\r\n obraAvaliacao: obraAvaliacao.obraAvaliacao\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_AVALIACAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObraAvaliacaosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_AVALIACAO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_AVALIACAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_AVALIACAO_NOTISLOADING'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\nimport { obraAction } from '../../src/_actions'\r\n\r\nexport const obraCoordenadaAction = {\r\n getObraCoordenada,\r\n getObraCoordenadaById,\r\n onChangeProps,\r\n createObraCoordenada,\r\n deleteObraCoordenadaById,\r\n clear,\r\n clearDetail\r\n}\r\n\r\n\r\nfunction getObraCoordenada(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasCoordenadas' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraCoordenadasList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraCoordenada(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasCoordenadas'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(getObraCoordenada(filterModel, true));\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_COORDENADA_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_COORDENADA_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_COORDENADA_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_COORDENADA_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction getObraCoordenadaById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasCoordenadas/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraCoordenadasDetails(response.data))\r\n\r\n let filterModel = {\r\n IdObra: response.data.idObra\r\n };\r\n dispatch(getObraCoordenada(filterModel, true));\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraCoordenadaById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasCoordenadas/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraCoordenadasDetails())\r\n dispatch(notIsLoading())\r\n var ret = response.data;\r\n dispatch(obraAction.getObraById(ret.key));\r\n })\r\n }\r\n}\r\nexport function changeObraCoordenadasList(obraCoordenada, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_COORDENADA',\r\n obraCoordenada: obraCoordenada,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_COORDENADA_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraCoordenadasDetails(obraCoordenada) {\r\n return {\r\n type: 'OBRA_COORDENADA_DETAIL',\r\n id: obraCoordenada.id,\r\n indice: obraCoordenada.indice,\r\n idObra: obraCoordenada.idObra,\r\n obra: obraCoordenada.obra,\r\n latitude: obraCoordenada.latitude,\r\n longitude: obraCoordenada.longitude,\r\n endereco: obraCoordenada.endereco,\r\n obraCoordenada: obraCoordenada.obraCoordenada\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_COORDENADA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObraCoordenadasDetails() {\r\n return {\r\n type: 'DELETED_OBRA_COORDENADA_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_COORDENADA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_COORDENADA_NOTISLOADING'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services'\r\nimport { toast } from 'react-toastify'\r\nimport { history, stringUtils } from 'utils'\r\nimport { obraAction } from '_actions'\r\n\r\nexport const obraCobrancaAction = {\r\n getObraCobranca,\r\n getObraCobrancaSelect,\r\n getObraCobrancaById,\r\n onChangeProps,\r\n editObraCobrancaInfo,\r\n createObraCobranca,\r\n deleteObraCobrancaById,\r\n editObraCobrancaPaga,\r\n clear,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraCobranca(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasCobrancas' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObrasCobrancasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction editObraCobrancaPaga(id, idObra) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasCobrancas/paga/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(obraAction.getObraById(idObra))\r\n dispatch(getObraCobranca({ IdObra: idObra }))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_COBRANCA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getObraCobrancaSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasCobrancas/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObrasCobrancasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraCobranca(payload, idOrgao) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasCobrancas'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Cadastro realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n history.push('/obrasCobrancas');\r\n\r\n let filterModel = {\r\n IdOrgao: idOrgao\r\n };\r\n\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel, true));\r\n\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar ObraCobranca! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_COBRANCA_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_COBRANCA_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_COBRANCA_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_COBRANCA_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction editObraCobrancaInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasCobrancas/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel, true));\r\n\r\n } else {\r\n // toast.error('Oops! Erro ao alterar ObraCobranca! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar ObraCobranca! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_COBRANCA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_COBRANCA_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_COBRANCA_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_COBRANCA_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraCobrancaById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasCobrancas/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObrasCobrancasDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props === 'obraCobrancaItem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraCobrancaById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasCobrancas/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObrasCobrancasDetails())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeObrasCobrancasList(obraCobranca, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_COBRANCA',\r\n obraCobranca: obraCobranca,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_COBRANCA_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObrasCobrancasDetails(obraCobranca) {\r\n return {\r\n type: 'OBRA_COBRANCA_DETAIL',\r\n id: obraCobranca.id,\r\n dataCobranca: obraCobranca.dataCobranca,\r\n dataPagamento: obraCobranca.dataPagamento,\r\n idEmpresa: obraCobranca.idEmpresa,\r\n caminhoNota: obraCobranca.caminhoNota,\r\n empresa: obraCobranca.empresa,\r\n obra: obraCobranca.obra,\r\n obrasMedicoesCobrancas: obraCobranca.obrasMedicoesCobrancas,\r\n valor: obraCobranca.valor\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_COBRANCA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObrasCobrancasDetails() {\r\n return {\r\n type: 'DELETED_OBRA_COBRANCA_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_COBRANCA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_COBRANCA_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraDiarioAction = {\r\n getObraDiario,\r\n getObraDiarioById,\r\n onChangeProps,\r\n createObraDiario,\r\n deleteObraDiarioById,\r\n clear,\r\n clearDetail\r\n}\r\n\r\nfunction getObraDiario(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasDiarios' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraDiariosList(response.data.items, response.data.totalRows))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraDiario(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasDiarios'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso!')\r\n\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n let filterModel = {\r\n IdObra: payload.idObra\r\n };\r\n\r\n dispatch(getObraDiario(filterModel, true));\r\n\r\n } else {\r\n let filterModel = {\r\n IdObra: payload.idObra\r\n };\r\n\r\n dispatch(getObraDiario(filterModel, true));\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_DIARIO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_DIARIO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_DIARIO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_DIARIO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction getObraDiarioById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasDiarios/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraDiariosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraDiarioById(id, idObra) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasDiarios/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraDiariosDetails())\r\n dispatch(notIsLoading())\r\n\r\n let filterModel = {\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(getObraDiario(filterModel, true));\r\n })\r\n }\r\n}\r\nexport function changeObraDiariosList(obraDiario, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_DIARIO',\r\n obraDiario: obraDiario,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_DIARIO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraDiariosDetails(obraDiario) {\r\n return {\r\n type: 'OBRA_DIARIO_DETAIL',\r\n id: obraDiario.id,\r\n idObra: obraDiario.idObra,\r\n idEmpresa: obraDiario.idEmpresa,\r\n data: obraDiario.data,\r\n condicaoClimatica: obraDiario.condicaoClimatica,\r\n responsavelTecnico: obraDiario.responsavelTecnico,\r\n obra: obraDiario.obra,\r\n empresa: obraDiario.empresa,\r\n obrasDiariosAnexos: obraDiario.obrasDiariosAnexos,\r\n obrasDiariosEquipes: obraDiario.obrasDiariosEquipes\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_DIARIO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObraDiariosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_DIARIO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_DIARIO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_DIARIO_NOTISLOADING'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\nimport { obraEtapaAction, obraAction } from '_actions'\r\n\r\nexport const obraMedicaoAction = {\r\n getObraMedicao,\r\n getObraMedicaoGraficoGantt,\r\n getObraMedicaoSelect,\r\n getObraMedicaoById,\r\n onChangeProps,\r\n editObraMedicaoInfo,\r\n editObraMedicaoAprova,\r\n editObraMedicaoRecusa,\r\n createObraMedicao,\r\n deleteObraMedicaoById,\r\n clear,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraMedicao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoes' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraMedicaosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraMedicaoGraficoGantt(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoes/gantt' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraMedicaosList(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraMedicaoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasMedicoes/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObraMedicaosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraMedicao(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasMedicoes'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Cadastro realizado com sucesso!')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_MEDICAO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_MEDICAO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_MEDICAO_CLEAR'\r\n }\r\n}\r\n\r\nfunction editObraMedicaoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasMedicoes/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar Medicao! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_MEDICAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraMedicaoAprova(id, idObra, status, motivo, obrasMedicoesAnexos) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoes/aprova/' + id\r\n crudService\r\n .put(apiEndpoint, { motivo: motivo ? motivo : null, obrasMedicoesAnexos: obrasMedicoesAnexos })\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n let filterModel = {\r\n Page: 0,\r\n Term: '',\r\n IdObra: idObra,\r\n Situacao: status\r\n };\r\n\r\n dispatch(getObraMedicao(filterModel, true))\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true))\r\n dispatch(obraAction.getGraficoEvolucaoObra(idObra))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_MEDICAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraMedicaoRecusa(id, idObra, status, motivo) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoes/recusa/' + id\r\n crudService\r\n .put(apiEndpoint, { motivo: motivo ? motivo : null })\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n let filterModel = {\r\n Page: 0,\r\n Term: '',\r\n IdObra: idObra,\r\n Situacao: status\r\n };\r\n\r\n dispatch(getObraMedicao(filterModel, true))\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_MEDICAO_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_MEDICAO_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_MEDICAO_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraMedicaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasMedicoes/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraMedicaosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props == 'obrasMedicoesItens') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraMedicaoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoes/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraMedicaosDetails())\r\n dispatch(notIsLoading())\r\n history.push('/obrasCronogramas')\r\n dispatch(getObraMedicao(filterModel))\r\n })\r\n }\r\n}\r\nexport function changeObraMedicaosList(obraMedicao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_MEDICAO',\r\n obraMedicao: obraMedicao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_MEDICAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraMedicaosDetails(obraMedicao) {\r\n return {\r\n type: 'OBRA_MEDICAO_DETAIL',\r\n id: obraMedicao.id,\r\n data: obraMedicao.data,\r\n idObra: obraMedicao.idObra,\r\n obra: obraMedicao.obra,\r\n idUsuario: obraMedicao.idUsuario,\r\n usuario: obraMedicao.usuario,\r\n excluido: obraMedicao.excluido,\r\n titulo: obraMedicao.titulo,\r\n valor: obraMedicao.valor,\r\n situacao: obraMedicao.situacao,\r\n obrasMedicoesEtapasItens: obraMedicao.obrasMedicoesEtapasItens,\r\n obrasOcorrencias: obraMedicao.obrasOcorrencias,\r\n obrasMedicoesAnexos: obraMedicao.obrasMedicoesAnexos\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_MEDICAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_MEDICAO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nexport function deleteObraMedicaosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_MEDICAO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_MEDICAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_MEDICAO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\n\r\nexport const obraMedicaoEtapaItemAnexoAction = {\r\n getObraMedicaoEtapaItemAnexos,\r\n onChangeProps,\r\n clear,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_CLEAR'\r\n }\r\n}\r\n\r\nfunction getObraMedicaoEtapaItemAnexos(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasMedicoesEtapasItensAnexos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(changeObraMedicoesEtapasItensAnexosList(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function changeObraMedicoesEtapasItensAnexosList(obraMedicaoEtapaItemAnexo) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_MEDICAO_ETAPA_ITEM_ANEXO',\r\n obraMedicaoEtapaItemAnexo: obraMedicaoEtapaItemAnexo,\r\n }\r\n}\r\n\r\nexport function editObraMedicoesEtapaItensAnexosDetails(obraMedicaoEtapaItemAnexo) {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_DETAIL',\r\n id: obraMedicaoEtapaItemAnexo.id,\r\n caminhoArquivo: obraMedicaoEtapaItemAnexo.caminhoArquivo,\r\n idObraMedicaoEtapaItem: obraMedicaoEtapaItemAnexo.idObraMedicaoEtapaItem\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'caminhoImagem' || props == 'obrasMedicoesEtapasItensAnexos') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nexport function changeObraMedicaoEtapaItemAnexosList(obraMedicaoEtapaItemAnexo, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_MEDICAO_ETAPA_ITEM_ANEXO',\r\n obraMedicaoEtapaItemAnexo: obraMedicaoEtapaItemAnexo,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraMedicaoEtapaItemAnexosDetails(obraMedicaoEtapaItemAnexo) {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_DETAIL',\r\n id: obraMedicaoEtapaItemAnexo.id,\r\n caminhoArquivo: obraMedicaoEtapaItemAnexo.caminhoArquivo,\r\n idObraMedicaoEtapaItem: obraMedicaoEtapaItemAnexo.idObraMedicaoEtapaItem\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nexport function deleteObraMedicaoEtapaItemAnexosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraEtapaAction = {\r\n getObraEtapa,\r\n getObraEtapaSelect,\r\n getObraEtapaById,\r\n onChangeProps,\r\n editObraEtapaInfo,\r\n createObraEtapa,\r\n deleteObraEtapaById,\r\n clear,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraEtapa(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasEtapas' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObrasEtapasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getObraEtapaSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasEtapas/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObrasEtapasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraEtapa(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasEtapas'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n\r\n } else {\r\n // toast.error('Oops! Erro ao cadastrar ObraEtapa! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar ObraEtapa! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ETAPA_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ETAPA_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_ETAPA_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_ETAPA_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nfunction editObraEtapaInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasEtapas/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ETAPA_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_ETAPA_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_ETAPA_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_ETAPA_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraEtapaById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasEtapas/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObrasEtapasDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props === 'obraEtapaItem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraEtapaById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasEtapas/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObrasEtapasDetails())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n IdObra: ret.key\r\n };\r\n\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeObrasEtapasList(obraEtapa, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_ETAPA',\r\n obraEtapa: obraEtapa,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_ETAPA_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObrasEtapasDetails(obraEtapa) {\r\n return {\r\n type: 'OBRA_ETAPA_DETAIL',\r\n id: obraEtapa.id,\r\n descritivo: obraEtapa.descritivo,\r\n titulo: obraEtapa.titulo,\r\n periodos: obraEtapa.periodos,\r\n idObra: obraEtapa.idObra,\r\n dataInicio: obraEtapa.dataInicio,\r\n dataTermino: obraEtapa.dataTermino,\r\n obra: obraEtapa.obra,\r\n obrasEtapasItens: obraEtapa.obrasEtapasItens\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_ETAPA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObrasEtapasDetails() {\r\n return {\r\n type: 'DELETED_OBRA_ETAPA_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ETAPA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_ETAPA_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraEtapaItemAction = {\r\n getObraEtapaItem,\r\n getObraEtapaItemSelect,\r\n getObraEtapaItemById,\r\n onChangeProps,\r\n editObraEtapaItemInfo,\r\n createObraEtapaItem,\r\n deleteObraEtapaItemById,\r\n clear,\r\n clearCampos,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraEtapaItem(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasEtapasItens' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObrasEtapasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getObraEtapaItemSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasEtapasItens/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObrasEtapasList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraEtapaItem(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasEtapasItens'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(notIsLoading())\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n Id: ret.key\r\n };\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ETAPA_ITEM_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ETAPA_ITEM_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nexport function clearCampos() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_CLEAR_CAMPOS'\r\n }\r\n}\r\n\r\nfunction editObraEtapaItemInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasEtapasItens/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n Id: ret.key\r\n };\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n\r\n } else {\r\n // toast.error('Oops! Erro ao alterar ObraEtapaItem! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar ObraEtapaItem! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ETAPA_ITEM_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_ETAPA_ITEM_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_ETAPA_ITEM_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_ETAPA_ITEM_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraEtapaItemById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasEtapasItens/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObrasEtapasDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props === 'obraEtapaItem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraEtapaItemById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasEtapasItens/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObrasEtapasDetails())\r\n dispatch(notIsLoading())\r\n\r\n var ret = JSON.parse(response.request.responseText);\r\n let filterModel = {\r\n Id: ret.key\r\n };\r\n\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n\r\n })\r\n }\r\n}\r\nexport function changeObrasEtapasList(obraEtapaItem, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_ETAPA_ITEM',\r\n obraEtapaItem: obraEtapaItem,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObrasEtapasDetails(obraEtapaItem) {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_DETAIL',\r\n id: obraEtapaItem.id,\r\n descritivo: obraEtapaItem.descritivo,\r\n codigo: obraEtapaItem.codigo,\r\n idObraEtapa: obraEtapaItem.idObraEtapa,\r\n idUnidade: obraEtapaItem.idUnidade,\r\n quantidade: obraEtapaItem.quantidade,\r\n idTipoServico: obraEtapaItem.idTipoServico,\r\n tipoServico: obraEtapaItem.tipoServico,\r\n tabelaInsumo: obraEtapaItem.tabelaInsumo,\r\n valorReferencia: obraEtapaItem.valorReferencia,\r\n idTabelaInsumo: obraEtapaItem.idTabelaInsumo,\r\n idEstadoTabelaInsumo: obraEtapaItem.idEstadoTabelaInsumo,\r\n anoTabelaInsumo: obraEtapaItem.anoTabelaInsumo,\r\n mesTabelaInsumo: obraEtapaItem.mesTabelaInsumo,\r\n onerado: obraEtapaItem.onerado,\r\n obraEtapa: obraEtapaItem.obraEtapa\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObrasEtapasDetails() {\r\n return {\r\n type: 'DELETED_OBRA_ETAPA_ITEM_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_ETAPA_ITEM_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraOcorrenciasAction = {\r\n getObraOcorrenciasSistema,\r\n getObraOcorrencias,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nfunction getObraOcorrencias(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOcorrencias' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraOcorrenciasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraOcorrenciasSistema() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOcorrencias/ultimasOcorrenciasSistema';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraOcorrenciasList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function changeObraOcorrenciasList(obraOcorrencias, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_OCORRENCIAS',\r\n obraOcorrencias: obraOcorrencias,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_OCORRENCIAS_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_OCORRENCIAS_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { obraAction } from '_actions'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraOrcamentoAction = {\r\n getObraOrcamento,\r\n getObraOrcamentoSelect,\r\n getObraOrcamentoById,\r\n onChangeProps,\r\n editObraOrcamentoInfo,\r\n editObraOrcamentoAprova,\r\n editObraOrcamentoRecusa,\r\n createObraOrcamento,\r\n createAndApproveObraOrcamento,\r\n deleteObraOrcamentoById,\r\n revert,\r\n clear,\r\n clearDetail,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraOrcamento(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraOrcamentosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraOrcamentoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasOrcamentos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObraOrcamentosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraOrcamento(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasOrcamentos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/obrasOrcamentos')\r\n } else {\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction createAndApproveObraOrcamento(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasOrcamentos/credenciamento'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(obraAction.getObraById(payload.idObra))\r\n toast.success('Feito! Cadastro realizado com sucesso!')\r\n dispatch(clear())\r\n }\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_CLEAR'\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasOrcamentos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar Orçamento! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoAprova(payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentos/aprova';\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n toast.success('Feito! Orçamento aprovado com sucesso!')\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n } else {\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoRecusa(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentos/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_ORCAMENTO_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraOrcamentoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasOrcamentos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraOrcamentosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props == 'obrasOrcamentosItens') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraOrcamentoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraOrcamentosDetails())\r\n dispatch(notIsLoading())\r\n history.push('/obrasOrcamentos')\r\n dispatch(getObraOrcamento(filterModel))\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction revert(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentos/reverterOrcamento/' + id\r\n crudService.put(apiEndpoint).then((response) => {\r\n dispatch(getObraOrcamento(filterModel))\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function changeObraOrcamentosList(obraOrcamento, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_ORCAMENTO',\r\n obraOrcamento: obraOrcamento,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_ORCAMENTO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraOrcamentosDetails(obraOrcamento) {\r\n return {\r\n type: 'OBRA_ORCAMENTO_DETAIL',\r\n id: obraOrcamento.id,\r\n data: obraOrcamento.data,\r\n prazo: obraOrcamento.prazo,\r\n diasPrazo: obraOrcamento.diasPrazo,\r\n valor: obraOrcamento.valor,\r\n statusOrcamento: obraOrcamento.statusOrcamento,\r\n idOrgao: obraOrcamento.idOrgao,\r\n idObra: obraOrcamento.idObra,\r\n obra: obraOrcamento.obra,\r\n idEmpresa: obraOrcamento.idEmpresa,\r\n empresa: obraOrcamento.empresa,\r\n excluido: obraOrcamento.excluido,\r\n observacoes: obraOrcamento.observacoes,\r\n obrasOrcamentosItens: obraOrcamento.obrasOrcamentosItens\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function clearDetail() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_CLEAR_DETAIL'\r\n }\r\n}\r\n\r\nexport function deleteObraOrcamentosDetails() {\r\n return {\r\n type: 'DELETED_OBRA_ORCAMENTO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const obraOrcamentoItemAction = {\r\n getObraOrcamentoItem,\r\n getObraOrcamentoItemObra,\r\n getObraOrcamentoItemSelect,\r\n getObraOrcamentoItemById,\r\n onChangeProps,\r\n editObraOrcamentoItemInfo,\r\n editObraOrcamentoItemAprova,\r\n editObraOrcamentoItemRecusa,\r\n createObraOrcamentoItem,\r\n deleteObraOrcamentoItemById,\r\n clear,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getObraOrcamentoItem(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentosItens' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraOrcamentoItemsList(response.data.items, response.data.totalRows, response.data.totalEmpresas))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraOrcamentoItemObra(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentosItens/obra' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeObraOrcamentoItemsList(response.data, null))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getObraOrcamentoItemSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasOrcamentosItens/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeObraOrcamentoItemsList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createObraOrcamentoItem(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasOrcamentosItens'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso!')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/obrasOrcamentosItens')\r\n } else {\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao cadastrar Obra! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_ITEM_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_OBRA_ORCAMENTO_ITEM_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_CLEAR'\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoItemInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'obrasOrcamentosItens/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_ITEM_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoItemAprova(id, idObra) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentosItens/aprova/' + id\r\n crudService.\r\n putWithOutMessage(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n let filterModel = {\r\n Id: idObra\r\n };\r\n dispatch(getObraOrcamentoItemObra(filterModel))\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar item! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_ITEM_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editObraOrcamentoItemRecusa(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentosItens/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/obras')\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction request(payload) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_ITEM_REQUEST', payload }\r\n}\r\n\r\nfunction success(user) {\r\n return {\r\n type: 'EDIT_OBRA_ORCAMENTO_ITEM_SUCCESS',\r\n user: user\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_OBRA_ORCAMENTO_ITEM_FAILURE', error }\r\n}\r\n\r\n\r\nfunction getObraOrcamentoItemById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'obrasOrcamentosItens/' + id;\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editObraOrcamentoItemsDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem' || props === 'obraEtapaItem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteObraOrcamentoItemById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'obrasOrcamentosItens/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteObraOrcamentoItemsDetails())\r\n dispatch(notIsLoading())\r\n history.push('/obrasOrcamentosItens')\r\n dispatch(getObraOrcamentoItem(filterModel))\r\n })\r\n }\r\n}\r\nexport function changeObraOrcamentoItemsList(obraOrcamentoItem, totalRows, totalEmpresas) {\r\n return {\r\n type: 'FETCHED_ALL_OBRA_ORCAMENTO_ITEM',\r\n obraOrcamentoItem: obraOrcamentoItem,\r\n totalRegistros: totalRows,\r\n totalEmpresas: totalEmpresas\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editObraOrcamentoItemsDetails(obraOrcamentoItem) {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_DETAIL',\r\n id: obraOrcamentoItem.id,\r\n idObraOrcamentoItem: obraOrcamentoItem.idObraOrcamentoItem,\r\n idObraEtapaItem: obraOrcamentoItem.idObraEtapaItem,\r\n valor: obraOrcamentoItem.valor,\r\n excluido: obraOrcamentoItem.excluido,\r\n obraOrcamentoItem: obraOrcamentoItem.obraOrcamentoItem,\r\n obrasEtapasItens: obraOrcamentoItem.obrasEtapasItens,\r\n obrasOrcamentos: obraOrcamentoItem.obrasEtapasItens,\r\n status: obraOrcamentoItem.status,\r\n dataAlteracaoStatus: obraOrcamentoItem.dataAlteracaoStatus,\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteObraOrcamentoItemsDetails() {\r\n return {\r\n type: 'DELETED_OBRA_ORCAMENTO_ITEM_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'OBRA_ORCAMENTO_ITEM_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const orgaoAction = {\r\n getOrgao,\r\n getOrgaoSelect,\r\n getOrgaoSelectPublic,\r\n getOrgaoById,\r\n onChangeProps,\r\n editOrgaoInfo,\r\n editAprovaCadastroOrgao,\r\n editRecusaCadastroOrgao,\r\n changeDetailsOrgao,\r\n createOrgao,\r\n createOrgaoApp,\r\n deleteOrgaoById,\r\n clear,\r\n clearUsuariosOrgaos,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getOrgao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'orgaos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeOrgaosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getOrgaoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'orgaos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeOrgaosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getOrgaoSelectPublic(filterModelPublic) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = `orgaos/select/map${filterModelPublic}`\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeOrgaosList(response.data))\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction createOrgao(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'orgaos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/orgaos')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_ORGAO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction createOrgaoApp(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'orgaos/orgaoApp'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Órgão cadastrado com sucesso!')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/login')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_ORGAO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_ORGAO_FAILURE', error }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'ORGAO_CLEAR'\r\n }\r\n}\r\n\r\nfunction editAprovaCadastroOrgao(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'orgaos/aprova/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/orgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editRecusaCadastroOrgao(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'orgaos/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/orgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction editOrgaoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'orgaos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/orgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_ORGAO_REQUEST', payload }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'EDIT_ORGAO_SUCCESS',\r\n user: user\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getOrgaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'orgaos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editOrgaosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsOrgao(orgao) {\r\n return (dispatch) => {\r\n if (orgao) {\r\n dispatch(onChangeDetailsOrgao(orgao))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsOrgao(orgao) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_ORGAO',\r\n id: orgao.id,\r\n nome: orgao.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction deleteOrgaoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'orgaos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteOrgaosDetails())\r\n history.push('/orgaos')\r\n dispatch(getOrgao(filterModel, true))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\nexport function changeOrgaosList(orgao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_ORGAO',\r\n orgao: orgao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'ORGAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editOrgaosDetails(orgao) {\r\n return {\r\n type: 'ORGAO_DETAIL',\r\n id: orgao.id,\r\n isLoading: orgao.isLoading,\r\n nome: orgao.nome,\r\n celular: orgao.celular,\r\n cnpj: orgao.cnpj,\r\n email: orgao.email,\r\n endereco: orgao.endereco,\r\n telefone: orgao.telefone,\r\n idCidade: orgao.idCidade,\r\n idEstado: orgao.idEstado,\r\n excluido: orgao.excluido,\r\n cidade: orgao.cidade,\r\n cadastroLiberado: orgao.cadastroLiberado,\r\n mapaPublico: orgao.mapaPublico,\r\n naoExigeOrcamentos: orgao.naoExigeOrcamentos,\r\n usuariosOrgaos: orgao.usuariosOrgaos\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'ORGAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteOrgaosDetails() {\r\n return {\r\n type: 'DELETED_ORGAO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'ORGAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'ORGAO_NOTISLOADING'\r\n }\r\n}\r\n\r\nexport function clearUsuariosOrgaos() {\r\n return {\r\n type: 'ORGAO_CLEAR_USUARIOS_ORGAOS'\r\n }\r\n}\r\n\r\n\r\n","import { history } from 'utils'\r\nimport { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\n\r\nexport const parametroAction = {\r\n getAjuda,\r\n getParametro,\r\n addParametro,\r\n getBdi,\r\n getDiario,\r\n getLinksUteis,\r\n getTabelaPadraoObra,\r\n getTermoAceiteEmpresas,\r\n getCalcMat,\r\n getParametroById,\r\n getParametroByChave,\r\n onChangeProps,\r\n onChangePropsHtml,\r\n editParametroInfo,\r\n editParametrosDetails,\r\n createParametro,\r\n deleteParametroById,\r\n clear,\r\n clearAll,\r\n notIsLoading,\r\n isLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 1,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getParametro(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeParametrosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getBdi() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/bdi';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getDiario() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/diario';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getLinksUteis() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/linksUteis';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getTabelaPadraoObra() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/tabelaPadraoObra';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getAjuda() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/ajuda';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getTermoAceiteEmpresas() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/termoAceiteEmpresas';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getCalcMat() {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/calcMat';\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createParametro(payload) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'parametros/'\r\n crudService.post(apiEndpoint, payload).then(() => {\r\n dispatch(createParametroInfo())\r\n dispatch(clear())\r\n history.push('/parametros')\r\n })\r\n }\r\n}\r\n\r\nfunction getParametroById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'parametros/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n // console.log('response.data', response.data)\r\n dispatch(editParametrosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction getParametroByChave(chave) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'parametros/chave/' + chave\r\n crudService.get(apiEndpoint).then((response) => {\r\n // console.log('response.data', response.data)\r\n dispatch(editParametrosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (event.target.type === 'checkbox') {\r\n dispatch(handleOnChangeProps(props, event.target.checked))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction onChangePropsHtml(props, event) {\r\n return (dispatch) => {\r\n dispatch(handleOnChangeProps(props, event))\r\n }\r\n}\r\n\r\nfunction editParametroInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'parametros/' + id\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(updatedParametroInfo())\r\n dispatch(clear())\r\n if (redirect) {\r\n dispatch(notIsLoading())\r\n history.push('/parametros')\r\n }\r\n } else {\r\n toast.err('Oops! Erro ao editar parâmetro! 😥')\r\n }\r\n }).catch((err) => {\r\n // console.log(err.response);\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao editar parâmetro! 😥')\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction deleteParametroById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'parametros/' + id\r\n crudService.deleteDetail(apiEndpoint).then(() => {\r\n dispatch(deleteParametrosDetails())\r\n dispatch(getParametro(filterModel))\r\n })\r\n }\r\n}\r\n\r\nexport function addParametro(payload) {\r\n return [{ type: 'ADD_PARAMETRO', parametro: payload }, clear()]\r\n}\r\n\r\nexport function changeParametrosList(parametro, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_PARAMETRO',\r\n parametro: parametro,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'PARAMETRO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'PARAMETRO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'PARAMETRO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function editParametrosDetails(parametro) {\r\n return [\r\n { type: 'PARAMETRO_DETAIL', parametro },\r\n ]\r\n}\r\n\r\nexport function updatedParametroInfo() {\r\n return {\r\n type: 'PARAMETRO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createParametroInfo() {\r\n return {\r\n type: 'PARAMETRO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function deleteParametrosDetails() {\r\n return {\r\n type: 'DELETED_PARAMETRO_DETAILS'\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'PARAMETRO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'PARAMETRO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services'\r\nimport { stringUtils } from 'utils'\r\nimport { toast } from 'react-toastify'\r\nimport moment from 'moment'\r\n\r\nexport const relatorioAction = {\r\n getRelatorioEmpresaOrcamentoEnviado,\r\n getRelatorioEmpresaOrcamentoEnviadoArquivo,\r\n getRelatorioEmpresaPorOrgao,\r\n getRelatorioEmpresaPorTipoServico,\r\n getRelatorioEmpresaOrgaoArquivo,\r\n getRelatorioEmpresaTipoServicoArquivo,\r\n getRelatorioUsuarios,\r\n getRelatorioUsuariosArquivo,\r\n getRelatorioOrcamentosArquivo,\r\n getRelatorioOcorrenciaObra,\r\n getRelatorioOcorrenciaObraArquivo,\r\n clear,\r\n clearAll,\r\n}\r\n\r\nfunction getRelatorioEmpresaPorTipoServico(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasPorTipoServico/' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(changeRelatorioList(response.data, null))\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.response);\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioEmpresaOrcamentoEnviadoArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasOrcamentosEnviados/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_empresas_orcamentos_enviados' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioEmpresaOrcamentoEnviado(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasOrcamentosEnviados/' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(changeRelatorioList(response.data, null))\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.response);\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioEmpresaPorOrgao(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasPorOrgao/' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(changeRelatorioList(response.data, null))\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.response);\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioUsuarios(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/usuarios/' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(changeRelatorioList(response.data, null))\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.response);\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioOcorrenciaObra(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/ocorrenciasObra' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(changeRelatorioList(response.data, null))\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.response);\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioOcorrenciaObraArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/ocorrenciasObra/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_ocorrencias_obra' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioUsuariosArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/usuarios/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_usuarios_' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioEmpresaTipoServicoArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasTiposServicos/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_empresas_tipos_servicos_' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioEmpresaOrgaoArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/empresasOrgaos/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_empresas_orgaos_' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getRelatorioOrcamentosArquivo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'relatorios/orcamentos/arquivo' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n const BOM = '\\uFEFF';\r\n var FileSaver = require('file-saver');\r\n var blob = new Blob([BOM + response.data], { type: \"text/csv;charset=utf-8\" });\r\n var data = moment(new Date()).format(\"DD/MM/YYYY\")\r\n FileSaver.saveAs(blob, 'relatorio_orcamentos_' + data + '.csv');\r\n toast.success('Download do arquivo realizado com sucesso!')\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n } else {\r\n dispatch(notIsLoading())\r\n dispatch(clear())\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nexport function changeRelatorioList(relatorio, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_RELATORIO',\r\n relatorio: relatorio,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'RELATORIO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'RELATORIO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'RELATORIO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'RELATORIO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'RELATORIO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const subOrgaoAction = {\r\n getSubOrgao,\r\n getSubOrgaoSelect,\r\n getSubOrgaoById,\r\n onChangeProps,\r\n editSubOrgaoInfo,\r\n getSubOrgaoByIdOrgao,\r\n editAprovaCadastroSubOrgao,\r\n editRecusaCadastroSubOrgao,\r\n changeDetailsSubOrgao,\r\n createSubOrgao,\r\n deleteSubOrgaoById,\r\n clear,\r\n isLoading,\r\n notIsLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getSubOrgao(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'subOrgaos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeSubOrgaosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getSubOrgaoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'subOrgaos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeSubOrgaosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction createSubOrgao(payload, user) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'subOrgaos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n history.push('/subOrgaos')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_SUB_ORGAO_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_SUB_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_SUB_ORGAO_FAILURE', error }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'SUB_ORGAO_CLEAR'\r\n }\r\n}\r\n\r\nfunction getSubOrgaoByIdOrgao(idOrgao) {\r\n //console.log(\"entrei aqui\", idEstado)\r\n return (dispatch) => {\r\n let apiEndpoint = 'subOrgaos/select/orgao/' + idOrgao\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeSubOrgaosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction editAprovaCadastroSubOrgao(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'subOrgaos/aprova/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/subOrgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_SUB_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editRecusaCadastroSubOrgao(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'subOrgaos/recusa/' + id\r\n crudService\r\n .put(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/subOrgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar Obra! 😥')\r\n })\r\n }\r\n}\r\n\r\nfunction editSubOrgaoInfo(id, payload, redirect) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'subOrgaos/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n //dispatch(success(payload))\r\n dispatch(notIsLoading())\r\n history.push('/subOrgaos')\r\n } else {\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n //console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.error('Oops! Erro ao alterar órgão! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_SUB_ORGAO_REQUEST', payload }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'EDIT_SUB_ORGAO_SUCCESS',\r\n user: user\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_SUB_ORGAO_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction getSubOrgaoById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'subOrgaos/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editSubOrgaosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\nfunction changeDetailsSubOrgao(subOrgao) {\r\n return (dispatch) => {\r\n if (subOrgao) {\r\n dispatch(onChangeDetailsSubOrgao(subOrgao))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsSubOrgao(subOrgao) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_SUB_ORGAO',\r\n id: subOrgao.id,\r\n nome: subOrgao.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction deleteSubOrgaoById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'subOrgaos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteSubOrgaosDetails())\r\n history.push('/subOrgaos')\r\n dispatch(getSubOrgao(filterModel, true))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\nexport function changeSubOrgaosList(subOrgao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_SUB_ORGAO',\r\n subOrgao: subOrgao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'SUB_ORGAO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editSubOrgaosDetails(subOrgao) {\r\n return {\r\n type: 'SUB_ORGAO_DETAIL',\r\n id: subOrgao.id,\r\n isLoading: subOrgao.isLoading,\r\n nome: subOrgao.nome,\r\n orgao: subOrgao.orgao,\r\n idOrgao: subOrgao.idOrgao,\r\n usuariosSubOrgaos: subOrgao.usuariosSubOrgaos,\r\n excluido: subOrgao.excluido\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'SUB_ORGAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteSubOrgaosDetails() {\r\n return {\r\n type: 'DELETED_SUB_ORGAO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'SUB_ORGAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'SUB_ORGAO_NOTISLOADING'\r\n }\r\n}\r\n\r\n\r\n","import { crudService } from '../_services/'\r\n\r\nexport const tabelaInsumoAction = {\r\n getTabelasInsumosSelect\r\n}\r\n\r\nfunction getTabelasInsumosSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tabelasInsumos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTabelasInsumosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTabelasInsumosList(tabelaInsumo) {\r\n return {\r\n type: 'FETCHED_ALL_TABELA_INSUMO',\r\n tabelaInsumo: tabelaInsumo\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const tabelaInsumoAnoAction = { \r\n getAnosImportadosSelect\r\n}\r\n\r\nfunction getAnosImportadosSelect(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tabelasInsumos/select/ano' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTabelasInsumosListAno(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTabelasInsumosListAno(tabelaInsumoAno) {\r\n return {\r\n type: 'FETCHED_ALL_TABELA_INSUMO_ANO',\r\n tabelaInsumoAno: tabelaInsumoAno\r\n }\r\n}\r\n\r\n\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const tabelaInsumoMesAction = {\r\n getMesesImportadosSelect,\r\n clear\r\n}\r\n\r\nfunction getMesesImportadosSelect(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tabelasInsumos/select/mes' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTabelasInsumosListMes(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTabelasInsumosListMes(tabelaInsumoMes) {\r\n return {\r\n type: 'FETCHED_ALL_TABELA_INSUMO_MES',\r\n tabelaInsumoMes: tabelaInsumoMes\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'MES_CLEAR'\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\n\r\nexport const tipoAnexoAction = {\r\n getTiposAnexosSelect,\r\n getTiposAnexosEmpresaSelect\r\n}\r\n\r\nfunction getTiposAnexosEmpresaSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposAnexos/select/empresa'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposAnexosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getTiposAnexosSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposAnexos/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposAnexosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTiposAnexosList(tipoAnexo) {\r\n return {\r\n type: 'FETCHED_ALL_TIPO_ANEXO',\r\n tipoAnexo: tipoAnexo\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\n\r\nexport const tipoObraAction = {\r\n getTipoObraSelect\r\n}\r\nfunction getTipoObraSelect(isObra, isProjeto, isReparo) {\r\n return (dispatch) => {\r\n let apiEndpoint = `tiposObras/select?isObra=${isObra}&isProjeto=${isProjeto}&isReparo=${isReparo}`\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeTiposObrasList(response.data))\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\nexport function changeTiposObrasList(tipoObra) {\r\n return {\r\n type: 'FETCHED_ALL_TIPO_OBRA',\r\n tipoObra: tipoObra\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const tipoServicoAction = {\r\n getTiposServicoSelect,\r\n getTiposServicoProjetosSelect,\r\n getTiposServico,\r\n changeDetailsTipoServico,\r\n}\r\n\r\nfunction getTiposServicoSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposServico/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposServicosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getTiposServicoProjetosSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposServico/select/projetos'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposServicosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getTiposServico(filterModel) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'tiposServico' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeTiposServicosList(response.data.items))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeTiposServicosList(tipoServico) {\r\n return {\r\n type: 'FETCHED_ALL_TIPO_SERVICO',\r\n tipoServico: tipoServico\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'TIPO_SERVICO_CLEAR'\r\n }\r\n}\r\n\r\nfunction changeDetailsTipoServico(tipoServico) {\r\n return (dispatch) => {\r\n if (tipoServico) {\r\n dispatch(onChangeDetailsTipoServico(tipoServico))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsTipoServico(tipoServico) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_TIPO_SERVICO',\r\n id: tipoServico.id,\r\n nome: tipoServico.nome\r\n }\r\n ]\r\n}\r\n","import { crudService } from '../_services'\r\n\r\nexport const unidadeAction = {\r\n getUnidadeById,\r\n getUnidadesSelect\r\n}\r\n\r\nfunction getUnidadesSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'unidades/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeUnidadesList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\n\r\nfunction getUnidadeById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'unidades/' + id\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeUnidadesList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nexport function changeUnidadesList(unidade) {\r\n return {\r\n type: 'FETCHED_ALL_UNIDADE',\r\n unidade: unidade\r\n }\r\n}\r\n\r\n","import { crudService } from '../_services/'\r\nimport { history } from '../utils'\r\nimport { orgaoAction, empresaAction } from '_actions'\r\nimport { authActions } from '../_actions/'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const usuarioAction = {\r\n getUsuario,\r\n getUsuarioSelect,\r\n getUsuarioOrgaoSelect,\r\n getUsuarioSemOrgaoAindaSelect,\r\n getUsuarioMotoristaByOrgaoSelect,\r\n getUsuarioById,\r\n getUsuarioByTipo,\r\n changeDetailsUsuario,\r\n onChangeProps,\r\n editUsuarioInfo,\r\n editUsuarioEmailInfo,\r\n createUsuario,\r\n createUsuarioOrgao,\r\n createUsuarioEmpresa,\r\n deleteUsuarioById,\r\n emailVerification,\r\n requestEmailVerification,\r\n requestPasswordReset,\r\n passwordReset,\r\n openModalRequestPasswordReset,\r\n setIdUsuarioOrgao,\r\n verifyUsuarioEmail,\r\n clear,\r\n isLoading,\r\n notIsLoading\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction getUsuario(filterModel, showWaiting) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeUsuariosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getUsuarioByTipo(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios/tipos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeUsuariosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getUsuarioSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/select'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeUsuariosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\n\r\nfunction getUsuarioOrgaoSelect(idOrgao) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/select/usuariosOrgao/' + idOrgao\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(changeUsuariosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getUsuarioSemOrgaoAindaSelect() {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/select/orgao'\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeUsuariosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction getUsuarioMotoristaByOrgaoSelect(idOrgao) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/select/orgao/motoristas/' + idOrgao\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n if (response.data) {\r\n // response.data.unshift({ value: '', text: ' SELECIONE ...' })\r\n dispatch(changeUsuariosList(response.data))\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n}\r\n\r\nfunction requestEmailVerification(email) {\r\n let payload = {\r\n email: email\r\n }\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuarios/request-email-verification'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then(() => {\r\n dispatch(success())\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'REQUEST_EMAIL_VERIFICATION_REQUEST', payload }\r\n }\r\n\r\n function success() {\r\n return {\r\n type: 'REQUEST_EMAIL_VERIFICATION_SUCCESS'\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'REQUEST_EMAIL_VERIFICATION_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction createUsuario(payload) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuarios'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n dispatch(setIdUsuarioOrgao(ret.key))\r\n history.push('/usuarios')\r\n } else {\r\n // toast.err('Oops! Erro ao cadastrar usuário! 😥')\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n function request(payload) {\r\n return { type: 'CREATE_USER_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_USER_FAILURE', error }\r\n }\r\n }\r\n}\r\n\r\nfunction createUsuarioOrgao(payload) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n dispatch(orgaoAction.getOrgaoById(payload.usuariosOrgaos[0].idOrgao))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_USER_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_USER_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction createUsuarioEmpresa(payload) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n toast.success('Feito! Cadastro realizado com sucesso! 😎')\r\n var ret = JSON.parse(response.request.responseText);\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n\r\n dispatch(empresaAction.getEmpresaById(payload.usuariosEmpresas[0].idEmpresa))\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log('err', err)\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n // toast.err('Oops! Erro ao cadastrar usuário! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'CREATE_USER_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'CREATE_USER_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction verifyUsuarioEmail(id, idOrgao) {\r\n return (dispatch) => {\r\n dispatch(request(id))\r\n let apiEndpoint = 'usuarios/verificarEmail/admin/' + id\r\n crudService\r\n .post(apiEndpoint)\r\n .then(() => {\r\n toast.success('Feito! E-mail verificado com sucesso! 😎')\r\n\r\n let filterModel = {\r\n IdOrgao: idOrgao,\r\n }\r\n\r\n dispatch(getUsuario(filterModel))\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n}\r\n\r\nfunction request(id) {\r\n return { type: 'EDIT_USUARIO_REQUEST', id }\r\n}\r\n\r\nfunction failure(error) {\r\n return { type: 'EDIT_USUARIO_FAILURE', error }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'USER_CLEAR'\r\n }\r\n}\r\n\r\nfunction changeDetailsUsuario(usuario) {\r\n return (dispatch) => {\r\n if (usuario) {\r\n dispatch(onChangeDetailsUsuario(usuario))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nexport function onChangeDetailsUsuario(usuario) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_USUARIO',\r\n id: usuario.id,\r\n nome: usuario.nome\r\n }\r\n ]\r\n}\r\n\r\nfunction requestPasswordReset(email) {\r\n let payload = {\r\n email: email\r\n }\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(email))\r\n let apiEndpoint = 'usuarios/request-reset-password'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n dispatch(notIsLoading())\r\n if (response && response.request.status === 200) {\r\n toast.success('E-mail de recuperação enviado!')\r\n } else if (response && response.request.status === 404) {\r\n toast.warn('Não existe nenhum usuário com este e-mail')\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(notIsLoading())\r\n dispatch(failure(err))\r\n })\r\n }\r\n function request(payload) {\r\n return { type: 'REQUEST_RESET_PASSWORD_REQUEST', payload }\r\n }\r\n\r\n function success() {\r\n return {\r\n type: 'REQUEST_RESET_PASSWORD_SUCCESS'\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'REQUEST_RESET_PASSWORD_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction setIdUsuarioOrgao(id) {\r\n return {\r\n type: 'USUARIO_ORGAO_SET_ID',\r\n idUsuarioOrgao: id\r\n }\r\n}\r\n\r\nfunction passwordReset(payload, token) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuarios/reset-password'\r\n crudService\r\n .postWithToken(apiEndpoint, payload, token)\r\n .then((response) => {\r\n console.log(\"🚀 ~ .then ~ response:\", response)\r\n if (response && response.request.status === 200) {\r\n dispatch(success(response.data))\r\n toast.success('Senha redefinida com sucesso! 😎')\r\n history.push('/password-reset-success')\r\n } else if (response && response.request.status === 404) {\r\n // toast.success('Não existe nenhum usuário com o e-mail informado!')\r\n } else {\r\n // toast.error('Erro ao recuperar senha do usuário')\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"🚀 ~ return ~ err:\", err)\r\n dispatch(failure(err))\r\n })\r\n }\r\n function request(payload) {\r\n return { type: 'RESET_PASSWORD_REQUEST', payload }\r\n }\r\n\r\n function success() {\r\n return {\r\n type: 'RESET_PASSWORD_SUCCESS'\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'RESET_PASSWORD_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction emailVerification(payload, token) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/email-verification'\r\n crudService\r\n .postWithToken(apiEndpoint, payload, token)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n toast.success('E-mail verificado com sucesso! 😎')\r\n history.push('/')\r\n dispatch(success())\r\n } else if (response && response.request.status === 404) {\r\n toast.success('Não existe nenhum usuário com o e-mail informado!')\r\n } else {\r\n // toast.error('Erro ao verificar e-mail do usuário')\r\n }\r\n })\r\n .catch(() => {\r\n // toast.error('Erro ao verificar e-mail do usuário')\r\n })\r\n }\r\n\r\n function success() {\r\n return {\r\n type: 'VERIFICATION_USER_SUCCESS'\r\n }\r\n }\r\n}\r\n\r\nfunction editUsuarioInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuarios/' + id\r\n crudService\r\n .put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n if (!authActions.isFiscal()) {\r\n history.push('/usuarios')\r\n } else {\r\n history.push('/')\r\n }\r\n } else {\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n toast.error('Oops! Erro ao alterar usuário! 😥')\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'EDIT_USER_REQUEST', payload }\r\n }\r\n\r\n function success(user) {\r\n return {\r\n type: 'EDIT_USER_SUCCESS',\r\n user: user\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'EDIT_USER_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction editUsuarioEmailInfo(id, payload) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios/email/' + id\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(updatedUsuarioEmailInfo())\r\n dispatch(clear())\r\n dispatch(authActions.refresh())\r\n dispatch(notIsLoading())\r\n history.push('/usuarios')\r\n }\r\n }).catch((err) => {\r\n dispatch(notIsLoading())\r\n return err.response;\r\n })\r\n }\r\n}\r\n\r\nexport function updatedUsuarioEmailInfo() {\r\n return {\r\n type: 'USUARIOEMAIL_UPDATED'\r\n }\r\n}\r\n\r\nfunction getUsuarioById(id) {\r\n return (dispatch) => {\r\n let apiEndpoint = 'usuarios/' + id\r\n crudService.get(apiEndpoint).then((response) => {\r\n dispatch(editUsuariosDetails(response.data))\r\n })\r\n }\r\n}\r\n\r\nexport function openModalRequestPasswordReset(open) {\r\n return {\r\n type: 'OPEN_MODAL_REQUEST_PASSWORD_RESET',\r\n open: open\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return (dispatch) => {\r\n if (props === 'imagem') {\r\n dispatch(handleOnChangeProps(props, event))\r\n } else {\r\n dispatch(handleOnChangeProps(props, event.target.value))\r\n }\r\n }\r\n}\r\n\r\nfunction deleteUsuarioById(id, idOrgao) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuarios/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteUsuariosDetails())\r\n dispatch(notIsLoading())\r\n\r\n history.push('/usuarios')\r\n let filterModel = {\r\n IdOrgao: idOrgao,\r\n }\r\n\r\n dispatch(getUsuario(filterModel))\r\n })\r\n }\r\n}\r\n\r\nexport function changeUsuariosList(usuario, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_USUARIO',\r\n usuario: usuario,\r\n totalRegistros: totalRows\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: 'USUARIO_HANDLE_ON_CHANGE',\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editUsuariosDetails(usuario) {\r\n return {\r\n type: 'USUARIO_DETAIL',\r\n id: usuario.id,\r\n isLoading: usuario.isLoading,\r\n email: usuario.email,\r\n nome: usuario.nome,\r\n senha: usuario.senha,\r\n sobrenome: usuario.sobrenome,\r\n idTipoUsuario: usuario.idTipoUsuario,\r\n dataHoraUltimoAcesso: usuario.dataHoraUltimoAcesso,\r\n caminhoCnh: usuario.caminhoCnh,\r\n celular: usuario.celular,\r\n cnh: usuario.cnh,\r\n matricula: usuario.matricula,\r\n telefone: usuario.telefone,\r\n idUsuarioOrgao: usuario.idUsuarioOrgao,\r\n emailVerificado: usuario.emailVerificado\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: 'USUARIO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\nexport function deleteUsuariosDetails() {\r\n return {\r\n type: 'DELETED_USUARIO_DETAILS'\r\n }\r\n}\r\nexport function isLoading() {\r\n return {\r\n type: 'USUARIO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'USUARIO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { orgaoAction, usuarioAction, authActions } from '_actions'\r\nimport { toast } from 'react-toastify'\r\nimport { stringUtils } from 'utils'\r\n\r\nexport const usuarioOrgaoAction = {\r\n changeDetailsUsuarioOrgao,\r\n getUsuarioOrgao,\r\n getUsuarioOrgaos,\r\n addUsuarioByEmail,\r\n createUsuarioOrgao,\r\n editUsuarioOrgaosDetails,\r\n deleteUsuarioById,\r\n clearSelected,\r\n isLoading,\r\n notIsLoading,\r\n clear,\r\n clearAll\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction createUsuarioOrgao(payload) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuariosOrgaos'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(notIsLoading())\r\n dispatch(authActions.refresh())\r\n // dispatch(getUsuariosOrgaos(filterModel))\r\n dispatch(orgaoAction.getOrgaoById(payload.idOrgao))\r\n dispatch(clear())\r\n } else {\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(clear())\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'USUARIO_ORGAO_ADD_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'USUARIO_ORGAO_ADD_FAILURE', error }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'CREATE_USUARIO_ORGAO_SUCCESS',\r\n data: data\r\n }\r\n }\r\n}\r\n\r\nfunction addUsuarioByEmail(payload) {\r\n return (dispatch) => {\r\n dispatch(request({ payload }))\r\n let apiEndpoint = 'usuariosOrgaos/email'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(success(response.data))\r\n toast.success('Usuário adicionado com sucesso! 😎')\r\n })\r\n .catch((err) => {\r\n dispatch(failure(err))\r\n })\r\n }\r\n\r\n function request(data) {\r\n return { type: 'USUARIO_ORGAO_ADD_REQUEST', data }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'USUARIO_ORGAO_ADD_SUCCESS',\r\n data: data\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'USUARIO_ORGAO_ADD_FAILURE', error }\r\n }\r\n}\r\n\r\nfunction deleteUsuarioById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuariosOrgaos/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteUsuarioOrgaoDetails())\r\n dispatch(notIsLoading())\r\n dispatch(usuarioAction.getUsuario(filterModel)) \r\n })\r\n }\r\n\r\n function request(id) {\r\n return { type: 'USUARIO_ORGAO_DELETE_REQUEST', id }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'USUARIO_ORGAO_DELETE_SUCCESS',\r\n data: data\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'USUARIO_ORGAO_DELETE_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function deleteUsuarioOrgaoDetails() {\r\n return {\r\n type: 'DELETED_USUARIO_ORGAO_DETAILS'\r\n }\r\n}\r\n\r\nexport function changeUsuariosOrgaosList(usuarioOrgao, totalRows) {\r\n return {\r\n type: 'FETCHED_ALL_USUARIO_ORGAO',\r\n usuarioOrgao: usuarioOrgao,\r\n totalRegistros: totalRows\r\n }\r\n}\r\n\r\nfunction changeDetailsUsuarioOrgao(usuarioOrgao) {\r\n return (dispatch) => {\r\n if (usuarioOrgao) {\r\n dispatch(onChangeDetailsUsuarioOrgao(usuarioOrgao))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nfunction getUsuariosOrgaos(filterModel) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuariosOrgaos' + stringUtils.serialize(filterModel);\r\n crudService\r\n .get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeUsuariosOrgaosList(response.data.items, response.data.totalRows))\r\n dispatch(notIsLoading())\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n}\r\n\r\nfunction getUsuarioOrgaos(usuarioOrgao) {\r\n return (dispatch) => {\r\n dispatch(changeUsuarioOrgaosList(usuarioOrgao))\r\n if (\r\n undefined !== usuarioOrgao &&\r\n usuarioOrgao.length === 1\r\n ) {\r\n dispatch(editUsuarioOrgaosDetails(usuarioOrgao[0]))\r\n }\r\n }\r\n}\r\n\r\nfunction getUsuarioOrgao(usuarioOrgao) {\r\n return (dispatch) => {\r\n dispatch(editUsuarioOrgaosDetails(usuarioOrgao))\r\n }\r\n}\r\n\r\nexport function addUsuarioOrgao(payload) {\r\n return [\r\n { type: 'ADD_USUARIO_ORGAO', usuarioOrgao: payload },\r\n clear()\r\n ]\r\n}\r\n\r\nexport function changeUsuarioOrgaosList(usuarioOrgao) {\r\n return {\r\n type: 'FETCHED_ALL_USUARIO_ORGAO',\r\n usuarioOrgao: usuarioOrgao\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'USUARIO_ORGAO_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'USUARIO_ORGAO_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function clearSelected() {\r\n return {\r\n type: 'USUARIO_ORGAO_CLEAR_SELECTED'\r\n }\r\n}\r\n\r\n\r\nexport function onChangeDetailsUsuarioOrgao(usuarioOrgao) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_USUARIO_ORGAO',\r\n id: usuarioOrgao.id,\r\n idUsuario: usuarioOrgao.idUsuario,\r\n idOrgao: usuarioOrgao.idOrgao,\r\n excluido: usuarioOrgao.excluido,\r\n orgao: usuarioOrgao.orgao\r\n },\r\n orgaoAction.getOrgaoById(\r\n usuarioOrgao.idOrgao\r\n )\r\n ]\r\n}\r\n\r\nexport function editUsuarioOrgaosDetails(usuarioOrgao) {\r\n return {\r\n type: 'USUARIO_ORGAO_DETAIL',\r\n id: usuarioOrgao.id,\r\n idUsuario: usuarioOrgao.idUsuario,\r\n idOrgao: usuarioOrgao.idOrgao,\r\n excluido: usuarioOrgao.excluido,\r\n orgao: usuarioOrgao.orgao\r\n }\r\n}\r\n\r\nexport function updatedUsuarioOrgaoInfo() {\r\n return {\r\n type: 'USUARIO_ORGAO_UPDATED'\r\n }\r\n}\r\n\r\nexport function createUsuarioOrgaoInfo() {\r\n return {\r\n type: 'USUARIO_ORGAO_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'USUARIO_ORGAO_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'USUARIO_ORGAO_NOTISLOADING'\r\n }\r\n}\r\n","import { crudService } from '../_services/'\r\nimport { empresaAction, usuarioAction } from '_actions'\r\n\r\nexport const usuarioEmpresaAction = {\r\n changeDetailsUsuarioEmpresa,\r\n getUsuarioEmpresa,\r\n getUsuarioEmpresas,\r\n createUsuarioEmpresa,\r\n editUsuarioEmpresasDetails,\r\n deleteUsuarioById,\r\n clearSelected,\r\n clear,\r\n clearAll\r\n}\r\n\r\nlet filterModel = {\r\n Page: 0,\r\n Limit: 10,\r\n Term: ''\r\n};\r\n\r\nfunction createUsuarioEmpresa(payload) {\r\n return (dispatch) => {\r\n dispatch(request(payload))\r\n let apiEndpoint = 'usuariosEmpresas'\r\n crudService\r\n .post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.request != undefined && response.request.status === 200) {\r\n dispatch(success(response.data))\r\n dispatch(notIsLoading())\r\n dispatch(empresaAction.getEmpresaById(payload.idEmpresa))\r\n dispatch(clear())\r\n } else {\r\n dispatch(clear())\r\n dispatch(notIsLoading())\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(clear())\r\n dispatch(failure(err))\r\n dispatch(notIsLoading())\r\n })\r\n }\r\n\r\n function request(payload) {\r\n return { type: 'USUARIO_EMPRESA_ADD_REQUEST', payload }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'USUARIO_EMPRESA_ADD_FAILURE', error }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'CREATE_USUARIO_EMPRESA_SUCCESS',\r\n data: data\r\n }\r\n }\r\n}\r\n\r\nfunction deleteUsuarioById(id) {\r\n return (dispatch) => {\r\n dispatch(isLoading())\r\n let apiEndpoint = 'usuariosEmpresas/' + id\r\n crudService.deleteDetail(apiEndpoint).then((response) => {\r\n dispatch(deleteUsuarioEmpresaDetails())\r\n dispatch(notIsLoading())\r\n dispatch(usuarioAction.getUsuario(filterModel))\r\n })\r\n }\r\n\r\n function request(id) {\r\n return { type: 'USUARIO_EMPRESA_DELETE_REQUEST', id }\r\n }\r\n\r\n function success(data) {\r\n return {\r\n type: 'USUARIO_EMPRESA_DELETE_SUCCESS',\r\n data: data\r\n }\r\n }\r\n\r\n function failure(error) {\r\n return { type: 'USUARIO_EMPRESA_DELETE_FAILURE', error }\r\n }\r\n}\r\n\r\nexport function deleteUsuarioEmpresaDetails() {\r\n return {\r\n type: 'DELETED_USUARIO_EMPRESA_DETAILS'\r\n }\r\n}\r\n\r\nfunction changeDetailsUsuarioEmpresa(usuarioEmpresa) {\r\n return (dispatch) => {\r\n if (usuarioEmpresa) {\r\n dispatch(onChangeDetailsUsuarioEmpresa(usuarioEmpresa))\r\n } else {\r\n clear()\r\n }\r\n }\r\n}\r\n\r\nfunction getUsuarioEmpresas(usuarioEmpresa) {\r\n return (dispatch) => {\r\n dispatch(changeUsuarioEmpresasList(usuarioEmpresa))\r\n if (\r\n undefined !== usuarioEmpresa &&\r\n usuarioEmpresa.length === 1\r\n ) {\r\n dispatch(editUsuarioEmpresasDetails(usuarioEmpresa[0]))\r\n }\r\n }\r\n}\r\n\r\nfunction getUsuarioEmpresa(usuarioEmpresa) {\r\n return (dispatch) => {\r\n dispatch(editUsuarioEmpresasDetails(usuarioEmpresa))\r\n }\r\n}\r\n\r\nexport function addUsuarioEmpresa(payload) {\r\n return [\r\n { type: 'ADD_USUARIO_EMPRESA', usuarioEmpresa: payload },\r\n clear()\r\n ]\r\n}\r\n\r\nexport function changeUsuarioEmpresasList(usuarioEmpresa) {\r\n return {\r\n type: 'FETCHED_ALL_USUARIO_EMPRESA',\r\n usuarioEmpresa: usuarioEmpresa\r\n }\r\n}\r\n\r\nexport function clear() {\r\n return {\r\n type: 'USUARIO_EMPRESA_CLEAR'\r\n }\r\n}\r\n\r\nexport function clearAll() {\r\n return {\r\n type: 'USUARIO_EMPRESA_CLEAR_ALL'\r\n }\r\n}\r\n\r\nexport function clearSelected() {\r\n return {\r\n type: 'USUARIO_EMPRESA_CLEAR_SELECTED'\r\n }\r\n}\r\n\r\n\r\nexport function onChangeDetailsUsuarioEmpresa(usuarioEmpresa) {\r\n return [\r\n {\r\n type: 'CHANGE_DETAILS_USUARIO_EMPRESA',\r\n id: usuarioEmpresa.id,\r\n idUsuario: usuarioEmpresa.idUsuario,\r\n idEmpresa: usuarioEmpresa.idEmpresa,\r\n excluido: usuarioEmpresa.excluido,\r\n empresa: usuarioEmpresa.empresa\r\n },\r\n empresaAction.getEmpresaById(\r\n usuarioEmpresa.idEmpresa\r\n )\r\n ]\r\n}\r\n\r\nexport function editUsuarioEmpresasDetails(usuarioEmpresa) {\r\n return {\r\n type: 'USUARIO_EMPRESA_DETAIL',\r\n id: usuarioEmpresa.id,\r\n idUsuario: usuarioEmpresa.idUsuario,\r\n idEmpresa: usuarioEmpresa.idEmpresa,\r\n excluido: usuarioEmpresa.excluido,\r\n empresa: usuarioEmpresa.empresa\r\n }\r\n}\r\n\r\nexport function updatedUsuarioEmpresaInfo() {\r\n return {\r\n type: 'USUARIO_EMPRESA_UPDATED'\r\n }\r\n}\r\n\r\nexport function createUsuarioEmpresaInfo() {\r\n return {\r\n type: 'USUARIO_EMPRESA_CREATED_SUCCESSFULLY'\r\n }\r\n}\r\n\r\nexport function isLoading() {\r\n return {\r\n type: 'USUARIO_EMPRESA_ISLOADING'\r\n }\r\n}\r\n\r\nexport function notIsLoading() {\r\n return {\r\n type: 'USUARIO_EMPRESA_NOTISLOADING'\r\n }\r\n}\r\n","import {\r\n Button,\r\n Card,\r\n CircularProgress,\r\n DialogContent,\r\n Dialog,\r\n DialogTitle,\r\n Grid,\r\n Typography,\r\n IconButton\r\n} from '@mui/material';\r\nimport { GoogleApiWrapper, Map, Marker } from 'google-maps-react';\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport CleaningServicesIcon from '@mui/icons-material/CleaningServices';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport React, { useEffect, useState } from 'react';\r\nimport { TextValidator } from 'react-material-ui-form-validator';\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport { useDispatch } from 'react-redux';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport { toast } from 'react-toastify';\r\nimport { stringUtils } from '../../utils';\r\nimport { obraAction, obraCoordenadaAction } from '../../_actions';\r\nimport CustomButton from '../CustomButton';\r\nimport { styled } from '@mui/material/styles';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport Paper from '@mui/material/Paper';\r\nimport { editObrasDetails } from '../../_actions/obra.actions';\r\n\r\nconst DialogCustom = styled(Dialog)(() => ({\r\n '& .MuiDialog-paper': {\r\n height: 590,\r\n overflow: 'hidden'\r\n },\r\n}));\r\n\r\nconst CustomDeleteIcon = styled(DeleteIcon)(() => ({\r\n color: '#4f4f4f',\r\n fontSize: 21,\r\n marginLeft: 2\r\n}));\r\n\r\nconst MapContainerCoordenadasModal = ({ toggle, modal, props }) => {\r\n\r\n const { classes, className, obra, google } = props;\r\n const [, forceUpdate] = React.useState(0);\r\n const confirm = useConfirm()\r\n\r\n const dispatch = useDispatch();\r\n\r\n const pinBlue = require('../../img/pinBlue.png');\r\n\r\n const [endereco, setEndereco] = useState('');\r\n\r\n const [mapProps, setMapProps] = useState({});\r\n\r\n useEffect(() => {\r\n if (props.latitude && props.longitude) {\r\n const setMarker = (marker) => {\r\n setMapProps({\r\n region: {\r\n lat: props.latitude,\r\n lng: props.longitude\r\n },\r\n marker: marker,\r\n showInfoWindow: false\r\n });\r\n };\r\n setMarker();\r\n }\r\n // dispatch(editObrasDetails(propsMarker.obra));\r\n }, []);\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const onMarkerClick = (propsMarker, marker) => {\r\n setMapProps({\r\n ...mapProps,\r\n showInfoWindow: false,\r\n selectedPlace: propsMarker,\r\n activeMarker: marker,\r\n });\r\n };\r\n\r\n const getLatitudeLongitude = () => {\r\n\r\n if (endereco) {\r\n const geocoder = new props.google.maps.Geocoder();\r\n\r\n geocoder.geocode({ address: endereco }, (response) => {\r\n if (response?.length) {\r\n let changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: response[0]?.geometry?.location?.lat()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('latitude', changeLatEvent));\r\n\r\n let changeLngEvent = {\r\n type: 'text',\r\n target: {\r\n value: response[0]?.geometry?.location?.lng()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('longitude', changeLngEvent));\r\n } else if (response?.status === 'REQUEST_DENIED') {\r\n toast.error('Ocorreu um problema ao realizar a busca do endereço')\r\n } else {\r\n toast.error('O endereço informado não foi localizado')\r\n }\r\n });\r\n } else {\r\n toast.error('Digite um endereço')\r\n }\r\n }\r\n\r\n const handleAddCoordenada = () => {\r\n\r\n if (endereco) {\r\n if (props.obra.obrasCoordenadas.find(f => f.latitude == props.latitude && f.longitude == props.longitude) == undefined) {\r\n let allCoordenadas = [\r\n ...props.obra.obrasCoordenadas,\r\n {\r\n id: props.id,\r\n indice: props.obra.obrasCoordenadas.length + 1,\r\n idObra: obra.id,\r\n latitude: props.latitude,\r\n longitude: props.longitude,\r\n endereco: endereco\r\n }\r\n ];\r\n\r\n let changeCoordenadaEvent = {\r\n type: 'text',\r\n target: {\r\n value: allCoordenadas\r\n }\r\n };\r\n\r\n changeMapProps();\r\n\r\n dispatch(obraAction.onChangeProps('obrasCoordenadas', changeCoordenadaEvent));\r\n setEndereco('');\r\n } else {\r\n toast.error('Selecione um ponto diferente')\r\n }\r\n } else {\r\n toast.error('Digite um endereço')\r\n }\r\n }\r\n\r\n const handleClean = () => {\r\n setEndereco('');\r\n }\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.obra.obrasCoordenadas])\r\n\r\n const handleSaveCoordenadas = () => {\r\n props.obra.obrasCoordenadas.map((n) => {\r\n dispatch(obraCoordenadaAction.createObraCoordenada(n))\r\n toggle();\r\n });\r\n }\r\n\r\n const handleRemoveOnList = (indice, id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta coordenada?',\r\n description: 'Essa operação desvinculará a localização da obra',\r\n disabled: props.obra.isLoading,\r\n confirmationText: props.obra.isLoading ? 'Excluindo coordenada...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraCoordenadaAction.deleteObraCoordenadaById(id));\r\n })\r\n };\r\n\r\n const changeMapProps = (newProps) => {\r\n setMapProps({\r\n ...mapProps,\r\n ...newProps,\r\n });\r\n };\r\n\r\n const handleMarkerDrag = (map, marker, coordIndex) => {\r\n const geocoder = new props.google.maps.Geocoder();\r\n\r\n // Ensure that map.position is defined before accessing its properties\r\n geocoder.geocode({ location: { lat: marker.latLng.lat(), lng: marker.latLng.lng() } }, (response) => {\r\n if (response?.length) {\r\n //console.log('response', response)\r\n\r\n setEndereco(response[0].formatted_address.toUpperCase());\r\n\r\n // Update the specific coordinate in obrasCoordenadas array\r\n const updatedCoordenadas = props.obra.obrasCoordenadas.map((oc, index) => {\r\n if (index + 1 == coordIndex.label) {\r\n return {\r\n ...oc,\r\n latitude: marker.latLng.lat(),\r\n longitude: marker.latLng.lng(),\r\n };\r\n }\r\n return oc;\r\n });\r\n\r\n // Dispatch the updated coordinates to the store\r\n let changeCoordenadaEvent = {\r\n type: 'text',\r\n target: {\r\n value: updatedCoordenadas,\r\n },\r\n };\r\n dispatch(obraAction.onChangeProps('obrasCoordenadas', changeCoordenadaEvent));\r\n\r\n changeMapProps()\r\n } else {\r\n toast.error('Ocorreu um problema ao utilizar esta localização');\r\n }\r\n });\r\n // Add an else block or handle the case where map.position is not defined\r\n };\r\n\r\n\r\n\r\n function isEditable(e) {\r\n if (e == '2' || e == '3' || e == '4' || e == '5' || e == '6') {\r\n return false\r\n }\r\n else return true\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Coordenadas\r\n \r\n \r\n \r\n handleClose()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setEndereco(event.target.value)}\r\n value={endereco}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n \r\n \r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Adicionando...' : 'Adicionar'}\r\n \r\n \r\n \r\n \r\n \r\n {props.obra.obrasCoordenadas && props.obra.obrasCoordenadas.map((oc) => (\r\n handleMarkerDrag(t, coordIndex, map)}\r\n position={{ lat: oc.latitude, lng: oc.longitude }}\r\n onClick={onMarkerClick}\r\n icon={pinBlue}\r\n />\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Coordenadas já cadastradas para a obra\r\n \r\n \r\n \r\n \r\n {props.obra.obrasCoordenadas && props.obra.obrasCoordenadas != null ?\r\n props.obra.obrasCoordenadas.map(oc => {\r\n return (\r\n \r\n \r\n
\r\n \r\n {oc.indice ? oc.indice : ''}º - \r\n {(oc.endereco ? {oc.endereco} : '')} -  \r\n ({oc.latitude ? oc.latitude.toFixed(4) : null}, \r\n {oc.longitude ? oc.longitude.toFixed(4) : null})\r\n \r\n handleRemoveOnList(oc.indice, oc.id)} style={{ verticalAlign: 'middle' }}>\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n })\r\n :\r\n null\r\n }\r\n
\r\n
\r\n {props.obra.obrasCoordenadas && props.obra.obrasCoordenadas != null && props.obra.obrasCoordenadas.length > 0 ?\r\n <>\r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Salvando...' : 'Salvar todas'}\r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Limpando...' : 'Limpar'}\r\n \r\n \r\n\r\n : null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n};\r\n\r\nexport default GoogleApiWrapper((props) => ({\r\n apiKey: 'AIzaSyC1QwWDv0BApsU0gjwIqEgmns_8RX2s-AU',\r\n}))(MapContainerCoordenadasModal);\r\n\r\n","import { Box, CircularProgress, Grid, Typography } from '@mui/material';\r\nimport { GoogleApiWrapper, Map, Marker } from 'google-maps-react';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { TextValidator } from 'react-material-ui-form-validator';\r\nimport { useDispatch } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\nimport { stringUtils } from '../../utils';\r\nimport { obraAction } from '../../_actions';\r\nimport CustomButton from '../CustomButton';\r\nimport AddLocationAltOutlinedIcon from '@mui/icons-material/AddLocationAltOutlined';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport MapContainerCoordenadasModal from '../../components/Maps/MapContainerCoordenadasModal'\r\n\r\nconst MapContainer = (props) => {\r\n\r\n const { classes, obra, obraCoordenada, isEditable } = props;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [endereco, setEndereco] = useState('');\r\n const [exibeBotaoPontosAdicionais, setExibeBotaoPontosAdicionais] = useState(false);\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n useEffect(() => {\r\n //quando não houver localização setada, pega a do usuário \r\n if (!props.latitude && !props.longitude) {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n position => {\r\n var changeLatUser = {\r\n type: 'select',\r\n target: {\r\n value: position.coords.latitude\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('latitude', changeLatUser))\r\n\r\n var changeLongUser = {\r\n type: 'select',\r\n target: {\r\n value: position.coords.longitude\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('longitude', changeLongUser))\r\n },\r\n error => {\r\n console.error('Error ao obter a localização do usuário:', error);\r\n }\r\n );\r\n } else {\r\n console.error('Geolocation não é suportada por esse navegador.');\r\n }\r\n } else\r\n if (props && props.latitude && props.longitude) {\r\n displayMarkers();\r\n }\r\n\r\n }, [])\r\n\r\n const handleOpenModalPontosAdicionais = () => {\r\n setExibeBotaoPontosAdicionais(false);\r\n toggle();\r\n }\r\n\r\n const getLatitudeLongitude = () => {\r\n\r\n if (endereco) {\r\n const geocoder = new props.google.maps.Geocoder();\r\n\r\n geocoder.geocode({ address: endereco }, (response) => {\r\n if (response?.length) {\r\n let changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: response[0]?.geometry?.location?.lat()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('latitude', changeLatEvent));\r\n\r\n let changeLngEvent = {\r\n type: 'text',\r\n target: {\r\n value: response[0]?.geometry?.location?.lng()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('longitude', changeLngEvent));\r\n\r\n let changeEnderecoEvent = {\r\n type: 'text',\r\n target: {\r\n value: endereco\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('endereco', changeEnderecoEvent));\r\n\r\n } else if (response?.status === 'REQUEST_DENIED') {\r\n toast.error('Ocorreu um problema ao realizar a busca do endereço')\r\n } else {\r\n toast.error('O endereço informado não foi localizado')\r\n }\r\n });\r\n } else {\r\n toast.error('Digite um endereço')\r\n }\r\n }\r\n\r\n const handleMarkerDrag = (map) => {\r\n const geocoder = new props.google.maps.Geocoder();\r\n\r\n geocoder.geocode({ location: { lat: map.position.lat(), lng: map.position.lng() } }, (response) => {\r\n\r\n if (response?.length) {\r\n setEndereco(response[0].formatted_address.toUpperCase())\r\n let changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: map.position.lat()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('latitude', changeLatEvent));\r\n\r\n let changeLngEvent = {\r\n type: 'text',\r\n target: {\r\n value: map.position.lng()\r\n }\r\n };\r\n dispatch(obraAction.onChangeProps('longitude', changeLngEvent));\r\n } else {\r\n toast.error('Ocorreu um problema ao utliziar esta localização')\r\n }\r\n })\r\n\r\n };\r\n\r\n const displayMarkers = () => {\r\n return (\r\n handleMarkerDrag(map)}\r\n tracksViewChanges\r\n />\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Coordenadas\r\n \r\n \r\n \r\n \r\n setEndereco(event.target.value)}\r\n value={endereco}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n \r\n \r\n {!modal && props.obra.latitude != null && props.obra.longitude != null &&\r\n \r\n }\r\n >\r\n Incluir pontos adicionais\r\n \r\n \r\n }\r\n \r\n \r\n {displayMarkers()}\r\n \r\n\r\n {\r\n (modal ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default GoogleApiWrapper((props) => ({\r\n apiKey: 'AIzaSyC1QwWDv0BApsU0gjwIqEgmns_8RX2s-AU',\r\n}))(MapContainer);\r\n\r\n","import { Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { GoogleApiWrapper, InfoWindow, Map, Marker } from 'google-maps-react';\r\nimport moment from 'moment/moment';\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport logo from \"../../img/raiar.png\";\r\nimport { editObrasDetails } from '../../_actions/obra.actions';\r\n\r\nconst pinRed = require('../../img/pinRed.png');\r\nconst pinBlue = require('../../img/pinBlue.png');\r\n\r\nconst MapPublic = (props) => {\r\n const dispatch = useDispatch();\r\n const mapRef = useRef(null);\r\n\r\n const [mapProps, setMapProps] = useState({\r\n region: { lat: -30.02366731707499, lng: -51.22179761534211 },\r\n zoom: 15,\r\n marker: null,\r\n obra: null,\r\n showInfoWindow: false\r\n });\r\n\r\n // Atualiza o centro com base na coordenada da primeira obra do órgão selecionado\r\n useEffect(() => {\r\n if (props.obras?.length > 0) {\r\n // Encontre uma obra do órgão selecionado\r\n const obraSelecionada = props.obras.find(obra => obra.latitude && obra.longitude);\r\n\r\n if (obraSelecionada) {\r\n setMapProps((prev) => ({\r\n ...prev,\r\n region: { lat: obraSelecionada.latitude, lng: obraSelecionada.longitude },\r\n zoom: 15\r\n }));\r\n\r\n if (mapRef.current && props.google) {\r\n const mapInstance = mapRef.current.map;\r\n mapInstance.panTo({ lat: obraSelecionada.latitude, lng: obraSelecionada.longitude });\r\n mapInstance.setZoom(15);\r\n }\r\n }\r\n }\r\n }, [props.obras, props.google]);\r\n\r\n const onMarkerClick = (propsMarker, marker) => {\r\n setMapProps({\r\n region: propsMarker.position,\r\n marker: marker,\r\n obra: propsMarker.obra,\r\n showInfoWindow: true,\r\n zoom: 15\r\n });\r\n\r\n dispatch(editObrasDetails(propsMarker.obra));\r\n };\r\n\r\n const onCloseInfoWindow = () => {\r\n setMapProps((prev) => ({\r\n ...prev,\r\n showInfoWindow: false\r\n }));\r\n };\r\n\r\n return (\r\n \r\n {props?.obras.length > 0 && props.obras.map((obra) => {\r\n if (obra.latitude && obra.longitude) {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n {mapProps.showInfoWindow && (\r\n \r\n \r\n \r\n \r\n {mapProps.obra.titulo}\r\n {mapProps.obra.descritivo}\r\n \r\n Ínicio: {moment(mapProps.obra.dataInicio).format('DD/MM/YYYY')}\r\n {mapProps.obra.dataTermino ? Término: {moment(mapProps.obra.dataTermino).format('DD/MM/YYYY')} : null}\r\n \r\n {mapProps.obra?.valorReferencia ? Valor de referência: R${mapProps.obra?.valorReferencia?.toLocaleString('pt-br', { minimumFractionDigits: 2 })} : null}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GoogleApiWrapper((props) => ({\r\n apiKey: 'AIzaSyC1QwWDv0BApsU0gjwIqEgmns_8RX2s-AU',\r\n}))(MapPublic);\r\n\r\n","import React, { useState } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport {\r\n Button,\r\n Chip,\r\n Collapse,\r\n Divider,\r\n Drawer,\r\n FormControlLabel,\r\n Radio,\r\n RadioGroup,\r\n Slider,\r\n TextField,\r\n Typography\r\n} from '@mui/material'\r\nimport { ToggleButton, ToggleButtonGroup } from '@mui/lab'\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess'\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutlined'\r\nimport AddIcon from '@mui/icons-material/Add'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n drawer: {\r\n width: 420,\r\n maxWidth: '100%'\r\n },\r\n header: {\r\n padding: theme.spacing(2, 1),\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n },\r\n buttonIcon: {\r\n marginRight: theme.spacing(1)\r\n },\r\n content: {\r\n padding: theme.spacing(0, 3),\r\n flexGrow: 1\r\n },\r\n contentSection: {\r\n padding: theme.spacing(2, 0)\r\n },\r\n contentSectionHeader: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n cursor: 'pointer'\r\n },\r\n contentSectionContent: {},\r\n formGroup: {\r\n padding: theme.spacing(2, 0)\r\n },\r\n fieldGroup: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n field: {\r\n marginTop: 0,\r\n marginBottom: 0\r\n },\r\n flexGrow: {\r\n flexGrow: 1\r\n },\r\n addButton: {\r\n marginLeft: theme.spacing(1)\r\n },\r\n tags: {\r\n marginTop: theme.spacing(1)\r\n },\r\n minAmount: {\r\n marginRight: theme.spacing(3)\r\n },\r\n maxAmount: {\r\n marginLeft: theme.spacing(3)\r\n },\r\n radioGroup: {},\r\n actions: {\r\n padding: theme.spacing(3),\r\n '& > * + *': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n}))\r\n\r\nconst Filter = (props) => {\r\n const { open, onClose, onFilter, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const initialValues = {\r\n paymentStatus: '',\r\n tag: '',\r\n tags: ['Full-Time'],\r\n amount: [1, 7],\r\n projectStatus: 'ended',\r\n customerName: '',\r\n customerType: 'freelancer',\r\n customerEmail: '',\r\n customerPhone: '',\r\n customerAge: ''\r\n }\r\n\r\n const [expandProject, setExpandProject] = useState(true)\r\n const [expandCustomer, setExpandCustomer] = useState(false)\r\n const [values, setValues] = useState({ ...initialValues })\r\n\r\n const handleClear = () => {\r\n setValues({ ...initialValues })\r\n }\r\n\r\n const handleFieldChange = (event, field, value) => {\r\n event.persist && event.persist()\r\n setValues((values) => ({\r\n ...values,\r\n [field]: value\r\n }))\r\n }\r\n\r\n const handleTagAdd = () => {\r\n setValues((values) => {\r\n const newValues = { ...values }\r\n\r\n if (newValues.tag && !newValues.tags.includes(newValues.tag)) {\r\n newValues.tags = [...newValues.tags]\r\n newValues.tags.push(newValues.tag)\r\n }\r\n\r\n newValues.tag = ''\r\n\r\n return newValues\r\n })\r\n }\r\n\r\n const handleTagDelete = (tag) => {\r\n setValues((values) => {\r\n const newValues = { ...values }\r\n\r\n newValues.tags = newValues.tags.filter((t) => t !== tag)\r\n\r\n return newValues\r\n })\r\n }\r\n\r\n const handleToggleProject = () => {\r\n setExpandProject((expandProject) => !expandProject)\r\n }\r\n\r\n const handleToggleCustomer = () => {\r\n setExpandCustomer((expandCustomer) => !expandCustomer)\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault()\r\n onFilter && onFilter(values)\r\n }\r\n\r\n const paymentStatusOptions = ['Pending', 'Canceled', 'Completed', 'Rejected']\r\n const customerAgeOption = ['18 - 30', '30 - 45', '50 - 60', '60+']\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Project\r\n {expandProject ? : }\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'paymentStatus',\r\n event.target.value\r\n )\r\n }\r\n select\r\n // eslint-disable-next-line react/jsx-sort-props\r\n SelectProps={{ native: true }}\r\n value={values.paymentStatus}\r\n variant=\"outlined\"\r\n >\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n handleFieldChange(event, 'tag', event.target.value)\r\n }\r\n value={values.tag}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n Add\r\n \r\n
\r\n
\r\n {values.tags.map((tag) => (\r\n }\r\n key={tag}\r\n label={tag}\r\n onDelete={() => handleTagDelete(tag)}\r\n />\r\n ))}\r\n
\r\n
\r\n
\r\n \r\n Project amount\r\n \r\n
\r\n \r\n ${values.amount[0]}K\r\n \r\n \r\n handleFieldChange(event, 'amount', value)\r\n }\r\n value={values.amount}\r\n valueLabelDisplay=\"auto\"\r\n />\r\n \r\n ${values.amount[1]}K\r\n \r\n
\r\n
\r\n
\r\n \r\n Project status\r\n \r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'projectStatus',\r\n event.target.value\r\n )\r\n }\r\n value={values.projectStatus}\r\n >\r\n }\r\n label=\"Ended\"\r\n value=\"ended\"\r\n />\r\n }\r\n label=\"On-Going\"\r\n value=\"onGoing\"\r\n />\r\n }\r\n label=\"In Review\"\r\n value=\"inReview\"\r\n />\r\n }\r\n label=\"Competed\"\r\n value=\"completed\"\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Customer\r\n {expandCustomer ? : }\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'customerName',\r\n event.target.value\r\n )\r\n }\r\n value={values.customerName}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n \r\n value && handleFieldChange(event, 'customerType', value)\r\n }\r\n size=\"small\"\r\n value={values.customerType}\r\n variant=\"outlined\"\r\n >\r\n \r\n Project owner\r\n \r\n Freelancer\r\n \r\n
\r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'customerEmail',\r\n event.target.value\r\n )\r\n }\r\n value={values.customerEmail}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'customerPhone',\r\n event.target.value\r\n )\r\n }\r\n value={values.customerPhone}\r\n variant=\"outlined\"\r\n />\r\n
\r\n
\r\n \r\n handleFieldChange(\r\n event,\r\n 'customerAge',\r\n event.target.value\r\n )\r\n }\r\n select\r\n // eslint-disable-next-line react/jsx-sort-props\r\n SelectProps={{ native: true }}\r\n value={values.customerAge}\r\n variant=\"outlined\"\r\n >\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nFilter.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n onFilter: PropTypes.func,\r\n open: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default Filter\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Paper, Button, Input } from '@mui/material'\r\nimport SearchIcon from '@mui/icons-material/Search'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n search: {\r\n flexGrow: 1,\r\n height: 42,\r\n padding: theme.spacing(0, 2),\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n searchIcon: {\r\n marginRight: theme.spacing(2),\r\n color: theme.palette.icon\r\n },\r\n searchInput: {\r\n flexGrow: 1\r\n },\r\n searchButton: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst Search = (props) => {\r\n const { onSearch, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Search\r\n \r\n
\r\n )\r\n}\r\n\r\nSearch.propTypes = {\r\n className: PropTypes.string,\r\n onSearch: PropTypes.func\r\n}\r\n\r\nexport default Search\r\n","import React, { useState } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Grid, Button } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\n\r\nimport { Search, Filter } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexWrap: 'wrap'\r\n },\r\n search: {\r\n flexGrow: 1,\r\n maxWidth: 480,\r\n flexBasis: 480\r\n },\r\n filterButton: {\r\n marginLeft: 'auto'\r\n },\r\n filterIcon: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}))\r\n\r\nconst SearchBar = (props) => {\r\n const { onFilter, onSearch, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const [openFilter, setOpenFilter] = useState(false)\r\n\r\n const handleFilterOpen = () => {\r\n setOpenFilter(true)\r\n }\r\n\r\n const handleFilterClose = () => {\r\n setOpenFilter(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Show filters\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nSearchBar.propTypes = {\r\n className: PropTypes.string,\r\n onFilter: PropTypes.func,\r\n onSearch: PropTypes.func\r\n}\r\n\r\nexport default SearchBar\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography } from '@mui/material'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}))\r\n\r\nconst Header = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n {props.subtitle}\r\n \r\n \r\n {props.title}\r\n \r\n
\r\n )\r\n}\r\n\r\nHeader.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n title: PropTypes.string.isRequired\r\n}\r\n\r\nexport default Header\r\n","import React from 'react'\r\nimport cx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport Card from '@mui/material/Card'\r\nimport Button from '@mui/material/Button'\r\nimport { Column, Item } from '@mui-treasury/components/flex'\r\nimport { Info, InfoTitle, InfoSubtitle } from '@mui-treasury/components/info'\r\nimport { useSoftRiseShadowStyles } from '@mui-treasury/styles/shadow/softRise'\r\nimport { Hidden } from '@mui/material'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n position: 'relative',\r\n borderRadius: 16,\r\n padding: 12,\r\n backgroundColor: '#f8f7ef',\r\n minWidth: 300\r\n },\r\n learnMore: {\r\n backgroundColor: '#fed42c !important',\r\n color: '#575754',\r\n borderRadius: 20,\r\n minWidth: 120,\r\n minHeight: 42,\r\n textTransform: 'initial',\r\n fontSize: '0.875rem',\r\n fontWeight: 700,\r\n letterSpacing: 0\r\n },\r\n img: {\r\n position: 'absolute',\r\n width: '10%',\r\n bottom: '40%',\r\n right: '25%',\r\n display: 'block'\r\n },\r\n img2: {\r\n position: 'absolute',\r\n width: '20%',\r\n bottom: 0,\r\n right: 0,\r\n display: 'block'\r\n },\r\n shell: {\r\n position: 'absolute',\r\n bottom: 0,\r\n right: 0,\r\n transform: 'translate(70%, 50%)',\r\n borderRadius: '50%',\r\n backgroundColor: 'rgba(167, 153, 71, 0.12)',\r\n padding: '40%',\r\n '&:before': {\r\n position: 'absolute',\r\n borderRadius: '50%',\r\n content: '\"\"',\r\n display: 'block',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: '-16%',\r\n backgroundColor: 'rgba(167, 149, 71, 0.08)'\r\n }\r\n }\r\n}))\r\n\r\nconst useOfferInfoStyles = makeStyles(() => {\r\n return {\r\n title: {\r\n color: '#545454',\r\n fontSize: '1.125rem',\r\n fontWeight: 700\r\n },\r\n subtitle: {\r\n color: '#7e7e7e',\r\n fontSize: '0.875rem',\r\n fontWeight: 500\r\n }\r\n }\r\n})\r\n\r\nexport const PickbusBanner = React.memo(function OfferCard() {\r\n const styles = useStyles()\r\n const shadowStyles = useSoftRiseShadowStyles()\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n Que tal disponibilizar um transporte para seu evento?\r\n \r\n \r\n A ferramenta que veio para facilitar e agilizar a organização de\r\n transportes fretados!\r\n \r\n \r\n \r\n \r\n Conheça o Pickbus\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )\r\n})\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Tooltip } from '@mui/material'\r\nimport HelpOutlineRoundedIcon from '@mui/icons-material/HelpOutlineRounded'\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n paddingLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n fontSize: 14,\r\n '&:hover': {\r\n color: theme.palette.primary.main,\r\n cursor: 'help'\r\n }\r\n }\r\n}))\r\n\r\nconst HelperToolTip = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nHelperToolTip.propTypes = {\r\n children: PropTypes.node.isRequired\r\n}\r\n\r\nexport default HelperToolTip\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Chip,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableHead,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n Tooltip,\r\n Typography\r\n} from '@mui/material'\r\nimport {\r\n authActions,\r\n manualAction\r\n} from '../../_actions'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nconst HelpModal = ({ modal, toggle, props, tela }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const { manual, isLoading } = useSelector(\r\n (state) => state.manual)\r\n\r\n useEffect(() => {\r\n dispatch(manualAction.clear());\r\n\r\n let filterModel = {\r\n Id: tela\r\n }\r\n dispatch(manualAction.getManualByTela(filterModel))\r\n }, [])\r\n\r\n const { user } = useSelector(\r\n (state) => state.authentication)\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Manuais disponíveis para esta tela'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Manual\r\n {authActions.isGestor() && Tipo(s) de usuário(s)}\r\n Link\r\n \r\n \r\n \r\n {isLoading ? (\r\n // Exibir skeletons enquanto o carregamento estiver ativo\r\n Array.from(new Array(3)).map((_, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {authActions.isGestor() && (\r\n \r\n \r\n \r\n )}\r\n \r\n ))\r\n ) : (\r\n // Renderizar os dados quando não estiver carregando\r\n manual && manual.length > 0 ? (\r\n manual.map((n) => {\r\n // Verifique a condição antes de retornar o JSX\r\n if (authActions.isGestor() || (n.tiposUsuariosManuais && n.tiposUsuariosManuais.length > 0 && n.tiposUsuariosManuais.find((u) => u.idTipoUsuario == user?.idTipoUsuario))) {\r\n return (\r\n \r\n \r\n {n.nome ? n.nome.toUpperCase() : ''}\r\n \r\n {authActions.isGestor() && (\r\n \r\n <>\r\n \r\n {n.tiposUsuariosManuais?.map((t) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n {n.link ? (\r\n window.open(n.link, '_blank')}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : ''}\r\n \r\n \r\n );\r\n }\r\n // Retorne null se a condição não for satisfeita\r\n return null;\r\n })\r\n ) : manual && manual.length > 0 && (\r\n manual.map((n) => n.tiposUsuariosManuais.length == 0) && (\r\n \r\n \r\n Nenhum manual localizado\r\n \r\n \r\n )))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default HelpModal;\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n },\r\n icon: {\r\n width: '18px',\r\n height: '18px',\r\n position: 'relative',\r\n top: '3px'\r\n }\r\n}))\r\n\r\nconst Footer = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nFooter.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default Footer\r\n","import React, { useEffect } from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Avatar, Chip, Typography } from '@mui/material'\r\nimport { NavLink as RouterLink } from 'react-router-dom'\r\nimport getInitials from 'utils/getInitials'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n minHeight: 'fit-content',\r\n paddingTop: 10,\r\n paddingBottom: 10\r\n },\r\n}))\r\n\r\nconst Profile = (props) => {\r\n const { user, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n {' '}\r\n {getInitials(user.nome)}\r\n \r\n \r\n {user.nome}\r\n \r\n \r\n {user.email}\r\n \r\n \r\n {user?.idTipoUsuario === 3 ? user?.usuariosEmpresas[0].empresa.nomeFantasia : user?.tipoUsuario?.nome}\r\n }\r\n />\r\n
\r\n )\r\n}\r\n\r\nProfile.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default Profile\r\n","import { connect } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\n\r\nconst check = (rule, permissaoTipoUsuario, permissaoUsuario) => {\r\n var todasPermissoes = permissaoTipoUsuario.concat(permissaoUsuario)\r\n const allowed = todasPermissoes.some(\r\n (item) => item.permissao.nome === rule && item.permitido\r\n )\r\n return allowed\r\n}\r\n\r\nconst AccessControl = (props) =>\r\n check(props.rule, props.permissaoTipoUsuario, props.permissaoUsuario)\r\n ? props.yes()\r\n : props.no()\r\n\r\nAccessControl.defaultProps = {\r\n yes: () => null,\r\n no: () => null\r\n}\r\n\r\nAccessControl.propTypes = {\r\n rule: PropTypes.string.isRequired\r\n}\r\n\r\nconst mapStateToProps = (state, index) => {\r\n return {\r\n key:\"access\" + index,\r\n permissaoTipoUsuario:\r\n state.authentication.user.tipoUsuario !== undefined &&\r\n state.authentication.user.tipoUsuario.permissoesTiposUsuarios,\r\n permissaoUsuario:\r\n state.authentication.user.permissoesUsuarios !== undefined &&\r\n state.authentication.user.permissoesUsuarios\r\n }\r\n}\r\nconst connectedAccessControlPage = connect(mapStateToProps)(AccessControl)\r\nexport { connectedAccessControlPage as AccessControl }\r\n","import React, { forwardRef } from 'react'\r\nimport { NavLink as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n List,\r\n ListItem,\r\n Button,\r\n Tooltip,\r\n Divider\r\n} from '@mui/material'\r\nimport { AccessControl } from '../../../../../../components/Utils/AccessControl'\r\nimport { history } from 'utils'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n icon: {\r\n color: '#37474f',\r\n width: 24,\r\n height: 24,\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: theme.spacing(2)\r\n },\r\n active: {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& $icon': {\r\n color: theme.palette.primary.main\r\n }\r\n },\r\n tooltipText: {\r\n textAlign: 'center'\r\n },\r\n divider: {\r\n margin: theme.spacing(1, 0)\r\n }\r\n}))\r\n\r\nconst ListItemStyled = styled(ListItem)(({ theme }) => ({\r\n display: 'flex',\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n color: '#37474f',\r\n}));\r\n\r\nconst CustomButton = styled(Button)(({ theme }) => ({\r\n color: '#37474f',\r\n padding: '8px 5px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n fontWeight: theme.typography.fontWeightMedium\r\n}));\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n
\r\n \r\n
\r\n))\r\n\r\nconst SidebarNav = (props) => {\r\n const { pages, className, ...rest } = props\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n {pages.map((page, index) => (\r\n \r\n {page.rule !== undefined ? (\r\n (\r\n \r\n

Função bloqueada 🤔

\r\n

Clique para completar seu cadastro!

\r\n \r\n }\r\n arrow\r\n onClick={() =>\r\n page.disabled &&\r\n history.push(`/estabelecimento/`)\r\n }\r\n disableFocusListener={!page.disabled}\r\n disableHoverListener={!page.disabled}\r\n disableTouchListener={!page.disabled}\r\n >\r\n {page.clicked == true ? (\r\n \r\n \r\n
{page.icon}
\r\n {page.title}\r\n \r\n \r\n ) : (\r\n \r\n {page.clickedSub == true ?\r\n \r\n
{page.icon}
\r\n {page.title}\r\n \r\n :\r\n \r\n\r\n
{page.icon}
\r\n {page.title}\r\n \r\n }\r\n \r\n )}\r\n \r\n )}\r\n />\r\n ) : (\r\n \r\n

Função bloqueada 🤔

\r\n

Clique para completar seu cadastro!

\r\n \r\n }\r\n arrow\r\n onClick={() =>\r\n page.disabled &&\r\n history.push(`/estabelecimento/`)\r\n }\r\n disableFocusListener={!page.disabled}\r\n disableHoverListener={!page.disabled}\r\n disableTouchListener={!page.disabled}\r\n >\r\n \r\n \r\n
{page.icon}
\r\n {page.title}\r\n \r\n \r\n \r\n )}\r\n {page.divider && }\r\n
\r\n ))}\r\n
\r\n )\r\n}\r\n\r\nSidebarNav.propTypes = {\r\n className: PropTypes.string,\r\n pages: PropTypes.array.isRequired\r\n}\r\n\r\nexport default SidebarNav\r\n","import React, { useState, useEffect } from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { version } from '../../../../../package.json'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport 'react-perfect-scrollbar/dist/css/styles.css'\r\nimport { Collapse, Divider, Drawer, List, ListItem, Typography } from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport ArchitectureOutlinedIcon from '@mui/icons-material/ArchitectureOutlined';\r\nimport ApprovalOutlinedIcon from '@mui/icons-material/ApprovalOutlined';\r\nimport BuildIcon from '@mui/icons-material/Build';\r\nimport DesignServicesOutlinedIcon from '@mui/icons-material/DesignServicesOutlined';\r\nimport GroupsIcon from '@mui/icons-material/Groups';\r\nimport AttachMoneyIcon from '@mui/icons-material/AttachMoney';\r\nimport CalculateIcon from '@mui/icons-material/Calculate';\r\nimport CreditCardIcon from '@mui/icons-material/CreditCard';\r\nimport AddCircleIcon from '@mui/icons-material/AddCircle';\r\nimport HelpOutlineOutlinedIcon from '@mui/icons-material/HelpOutlineOutlined';\r\nimport ShoppingCartIcon from '@mui/icons-material/ShoppingCart';\r\nimport ConstructionIcon from '@mui/icons-material/Construction';\r\nimport PercentIcon from '@mui/icons-material/Percent';\r\nimport BusinessIcon from '@mui/icons-material/Business';\r\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\r\nimport TimelineIcon from '@mui/icons-material/Timeline';\r\nimport CorporateFareIcon from '@mui/icons-material/CorporateFare';\r\nimport SummarizeOutlinedIcon from '@mui/icons-material/SummarizeOutlined';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\nimport ContentPasteGoIcon from '@mui/icons-material/ContentPasteGo';\r\nimport LocationCityIcon from '@mui/icons-material/LocationCity';\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp'\r\nimport HomeIcon from '@mui/icons-material/Home';\r\nimport NotificationsIcon from '@mui/icons-material/Notifications';\r\nimport PeopleIcon from '@mui/icons-material/People';\r\nimport SettingsIcon from '@mui/icons-material/Settings';\r\nimport WorkOutlineIcon from '@mui/icons-material/WorkOutline';\r\nimport PublicIcon from '@mui/icons-material/Public';\r\nimport { authActions } from '../../../../_actions'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { Profile, SidebarNav } from './components'\r\n\r\nconst styles = (theme) => ({\r\n drawer: {\r\n width: 240,\r\n [theme.breakpoints.up('lg')]: {\r\n marginTop: 64\r\n }\r\n },\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2)\r\n },\r\n divider: {\r\n margin: theme.spacing(1, 0),\r\n color: '#1C5585'\r\n }\r\n})\r\n\r\nconst Sidebar = ({ staticContext, ...props }) => {\r\n\r\n const { open, variant, onClose, className, ...rest } = props\r\n const dispatch = useDispatch()\r\n const { user } = props\r\n const [openMenuLinks, setOpenMenuLinks] = useState(false);\r\n const [openMenuCadastros, setOpenMenuCadastros] = useState(false);\r\n const [openMenuOrcamentos, setOpenMenuOrcamentos] = useState(false);\r\n const [openMenuRelatorios, setOpenMenuRelatorios] = useState(false);\r\n const [isClickedOptionSubmenu, setIsClickedOptionSubMenu] = useState(false);\r\n\r\n const isEmpresaProjeto = user.usuariosEmpresas && user.usuariosEmpresas[0]?.empresa?.projeto;\r\n const isEmpresaFornecedorMateriais = user.usuariosEmpresas && user.usuariosEmpresas[0]?.empresa?.fornecedor;\r\n const isPrestador = user.usuariosEmpresas && user.usuariosEmpresas[0]?.empresa?.prestadorServico;\r\n\r\n const logout = () => {\r\n dispatch(authActions.logout())\r\n }\r\n\r\n const { classes } = props\r\n\r\n const isDisabled = useSelector((state) => {\r\n return false\r\n })\r\n\r\n const handleClickCadastros = () => {\r\n setOpenMenuCadastros(!openMenuCadastros);\r\n };\r\n\r\n const handleClickOrcamentos = () => {\r\n setOpenMenuOrcamentos(!openMenuOrcamentos);\r\n };\r\n\r\n const handleClickLinks = () => {\r\n setOpenMenuLinks(!openMenuLinks);\r\n };\r\n\r\n const handleClickRelatorios = () => {\r\n setOpenMenuRelatorios(!openMenuRelatorios);\r\n };\r\n\r\n const pages = [\r\n {\r\n title: 'Home',\r\n href: '/',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n title: 'Cadastros',\r\n clicked: openMenuCadastros,\r\n href: '#',\r\n rule: 'dashboard',\r\n icon: ,\r\n onClick: () => {\r\n handleClickCadastros()\r\n }\r\n }\r\n ]\r\n\r\n const pagesFiscal = [\r\n {\r\n title: 'Home',\r\n href: '/',\r\n icon: \r\n }\r\n ]\r\n\r\n const pageAjuda = [\r\n {\r\n title: 'Ajuda',\r\n href: '/manuais',\r\n //por hora, só está disponível para 3 nívels de usuários\r\n rule: 'manuais.list',\r\n icon: \r\n }\r\n ]\r\n\r\n const pagesLinks = [\r\n {\r\n disabled: isDisabled,\r\n title: 'Links',\r\n clicked: openMenuLinks,\r\n href: '#',\r\n rule: 'dashboard',\r\n icon: ,\r\n onClick: () => {\r\n handleClickLinks()\r\n }\r\n }\r\n ]\r\n\r\n const pagesRelatorios = [\r\n {\r\n disabled: isDisabled,\r\n title: 'Relatórios',\r\n clicked: openMenuRelatorios,\r\n href: '#',\r\n rule: 'dashboard',\r\n icon: ,\r\n onClick: () => {\r\n handleClickRelatorios()\r\n }\r\n }\r\n ]\r\n\r\n const pagesOrcamentos = [\r\n {\r\n disabled: isDisabled,\r\n title: 'Propostas',\r\n clicked: openMenuOrcamentos,\r\n href: '#',\r\n rule: 'obrasOrcamentos.list',\r\n icon: ,\r\n onClick: () => {\r\n handleClickOrcamentos()\r\n }\r\n }\r\n ]\r\n\r\n const pagesPadrao = [\r\n {\r\n title: 'Obras',\r\n href: '/obras',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n },\r\n {\r\n title: 'Materiais',\r\n href: '/materiais',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n },\r\n {\r\n title: 'Projetos Técnicos',\r\n href: '/projetosTecnicos',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n },\r\n {\r\n title: 'Reparos/Prevenções',\r\n href: '/reparosPrevencoes',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n }\r\n ];\r\n\r\n let pagesObra = [];\r\n\r\n // Verifica se o usuário é um gestor\r\n if (authActions.isGestor() || authActions.isPrefeitura() || authActions.isFiscal()) {\r\n pagesObra = pagesPadrao; // Exibe todas as opções\r\n } else {\r\n // Adiciona \"Projetos Técnicos\" para empresa de projeto\r\n if (isEmpresaProjeto) {\r\n pagesObra.push({\r\n title: 'Projetos Técnicos',\r\n href: '/projetosTecnicos',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n });\r\n }\r\n\r\n // Adiciona \"Materiais\" para fornecedor de materiais\r\n if (isEmpresaFornecedorMateriais) {\r\n pagesObra.push({\r\n title: 'Materiais',\r\n href: '/materiais',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n });\r\n }\r\n\r\n // Adiciona as páginas padrão para outros tipos de empresa\r\n if ((!isEmpresaProjeto && !isEmpresaFornecedorMateriais) || isPrestador) {\r\n pagesObra.push(\r\n {\r\n title: 'Obras',\r\n href: '/obras',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n },\r\n {\r\n title: 'Reparos/Prevenções',\r\n href: '/reparosPrevencoes',\r\n icon: ,\r\n rule: 'obras.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true);\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n }\r\n );\r\n }\r\n }\r\n\r\n const pagesEmpenhos = [\r\n {\r\n title: 'Empenhos',\r\n href: '/empenhos',\r\n icon: ,\r\n rule: 'empenhos.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n }\r\n ]\r\n\r\n const pagesObraMedicao = [\r\n {\r\n title: 'Medições',\r\n href: '/obrasCronogramas',\r\n icon: ,\r\n rule: 'obrasMedicoes.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n }\r\n ]\r\n\r\n const pagesObraCobrancas = [\r\n {\r\n title: 'Cobranças',\r\n href: '/obrasCobrancas',\r\n icon: ,\r\n rule: 'obrasCobrancas.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu\r\n }\r\n ]\r\n\r\n const pagesSubOrcamentos = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Obras Aguardando Propostas',\r\n href: '/obrasAguardandoOrcamento',\r\n rule: 'obrasOrcamentos.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Propostas Enviadas',\r\n href: '/obrasOrcamentos',\r\n rule: 'obrasOrcamentos.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n ]\r\n\r\n const pagesSubLinks = [\r\n\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'BDI',\r\n href: '/bdi',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'CalcMat',\r\n href: '/calcMat',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Diário',\r\n href: '/diario',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Gov.Br',\r\n href: '/links-uteis',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n }\r\n ]\r\n\r\n const pagesSubRelatorios = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas por Órgão',\r\n href: '/relatorioEmpresasPorOrgao',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas por Tipo de Serviço',\r\n href: '/relatorioEmpresasPorTipoServico',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Ocorrências de Obras',\r\n href: '/relatorioOcorrenciasObra',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Propostas Enviadas por Empresa',\r\n href: '/relatorioEmpresasOrcamentosEnviados',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Usuários',\r\n href: '/relatorioUsuarios',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n }\r\n ]\r\n\r\n const pagesSubRelatoriosPrefeitura = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas por Órgão',\r\n href: '/relatorioEmpresasPorOrgao',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas por Tipo de Serviço',\r\n href: '/relatorioEmpresasPorTipoServico',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Ocorrências de Obras',\r\n href: '/relatorioOcorrenciasObra',\r\n rule: 'dashboard',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n ]\r\n\r\n const pagesSair = [\r\n {\r\n title: 'Sair',\r\n href: '/login',\r\n icon: ,\r\n onClick: () => {\r\n logout()\r\n }\r\n }\r\n ]\r\n\r\n const pagesCadastrosItensGestor = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas',\r\n href: '/empresas',\r\n rule: 'empresas.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n title: 'Notificações',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n href: '/notificacoes',\r\n rule: 'notificacoes',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Órgãos',\r\n href: '/orgaos',\r\n rule: 'orgaos.list',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Parâmetros',\r\n href: '/parametros',\r\n rule: 'parametros.list',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Sub Órgãos',\r\n href: '/subOrgaos',\r\n rule: 'subOrgaos.list',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Usuários',\r\n href: '/usuarios',\r\n rule: 'usuarios.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n }\r\n ]\r\n\r\n const pagesCadastrosItensEmpresa = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas',\r\n href: '/empresas',\r\n rule: 'empresas.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Usuários',\r\n href: '/usuarios',\r\n rule: 'usuarios.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n }\r\n ]\r\n\r\n const pagesCadastrosItensPrefeitura = [\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Empresas',\r\n href: '/empresas',\r\n rule: 'empresas.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Órgãos',\r\n href: '/orgaos',\r\n rule: 'orgaos.list',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Sub Órgãos',\r\n href: '/subOrgaos',\r\n rule: 'subOrgaos.list',\r\n icon: \r\n },\r\n {\r\n disabled: isDisabled,\r\n clickedSub: isClickedOptionSubmenu,\r\n title: 'Usuários',\r\n href: '/usuarios',\r\n rule: 'usuarios.list',\r\n onClick: () => {\r\n setIsClickedOptionSubMenu(true)\r\n },\r\n icon: \r\n }\r\n ]\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {!authActions.isFiscal() && }\r\n {!authActions.isFiscal() ? : }\r\n {authActions.isGestor() &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n {authActions.isEmpresa() &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n {authActions.isPrefeitura() &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n {(authActions.isPrefeitura() || authActions.isGestor() || authActions.isEmpresa() || authActions.isFiscal()) &&\r\n <>\r\n \r\n \r\n \r\n }\r\n {(authActions.isPrefeitura() || authActions.isGestor()) &&\r\n <>\r\n \r\n \r\n \r\n }\r\n {(authActions.isFiscal()) && <>\r\n \r\n \r\n \r\n }\r\n {(authActions.isEmpresa() || authActions.isGestor()) &&\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n }\r\n {(authActions.isGestor() && !authActions.isUsuarioOrgaoPublico()) && //liberado para admin e prefeitura\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n }\r\n {(authActions.isPrefeitura()) && //liberado para admin e prefeitura\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {!authActions.isFiscal() && !authActions.isUsuarioOrgaoPublico() ?\r\n <>\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n Versão do sistema: {version}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nSidebar.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool.isRequired,\r\n variant: PropTypes.string.isRequired\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n user: state.authentication.user\r\n }\r\n}\r\nconst connectedSidebarPage = withRouter(\r\n //connect(mapStateToProps, null, null, {\r\n // pure: false\r\n //})(withStyles(styles)(Sidebar))\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Sidebar))\r\n)\r\nexport { connectedSidebarPage as Sidebar }\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect } from 'react'\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Dialog,\r\n Hidden,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Typography,\r\n IconButton,\r\n Tooltip,\r\n TextField\r\n} from '@mui/material'\r\nimport { makeStyles } from '@mui/styles'\r\nimport PropTypes from 'prop-types'\r\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { usuarioOrgaoAction, authActions } from '_actions'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 250\r\n },\r\n showPrefeitura: {\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n}))\r\n\r\nconst SelectOrgao = (props) => {\r\n const classes = useStyles()\r\n const [open, setOpen] = React.useState(false)\r\n const [disabled, setDisabled] = React.useState(false)\r\n const { usuarioOrgao, orgao, idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n var options = usuarioOrgao.map(u => ({ id: u.orgao?.id, nome: u.orgao?.nome?.toUpperCase() }));\r\n\r\n const [value, setValue] = React.useState(null);\r\n const [inputValue, setInputValue] = React.useState('');\r\n\r\n const hasOrgaoSelected = useSelector((state) => {\r\n if (\r\n state.usuarioOrgao.idOrgao === '' ||\r\n state.usuarioOrgao.idOrgao === undefined\r\n ) {\r\n return false\r\n }\r\n return true\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n setInitialUsuarioOrgao()\r\n }, [usuarioOrgao])\r\n\r\n useEffect(() => {\r\n }, [idOrgao])\r\n\r\n useEffect(() => {\r\n setValue(idOrgao)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n handleChangeAutoComplete(value)\r\n }\r\n }, [value])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n if (obj != null && obj.id > 0) {\r\n let selectedUsuarioOrgao = usuarioOrgao.filter(\r\n (item) => item.idOrgao === obj.id\r\n )\r\n dispatch(\r\n usuarioOrgaoAction.changeDetailsUsuarioOrgao(\r\n selectedUsuarioOrgao[0]\r\n )\r\n )\r\n } else {\r\n }\r\n setOpen(false)\r\n }\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true)\r\n setDisabled(false)\r\n }\r\n\r\n const setInitialUsuarioOrgao = () => {\r\n if (\r\n usuarioOrgao.length === 0 ||\r\n usuarioOrgao === undefined\r\n ) {\r\n return null\r\n } else if (\r\n undefined !== usuarioOrgao &&\r\n usuarioOrgao.length === 1\r\n ) {\r\n dispatch(\r\n usuarioOrgaoAction.changeDetailsUsuarioOrgao(\r\n usuarioOrgao[0]\r\n )\r\n )\r\n } else if (!hasOrgaoSelected) {\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n setDisabled(false)\r\n }\r\n\r\n const handleClear = () => {\r\n dispatch(\r\n usuarioOrgaoAction.clearSelected()\r\n )\r\n setOpen(false)\r\n setDisabled(false)\r\n }\r\n\r\n const returnContent = () => {\r\n return (\r\n
\r\n {authActions.isPrefeitura() || authActions.isMotorista() || authActions.isFiscal() ?\r\n <>\r\n \r\n \r\n Órgão vinculado:\r\n \r\n {' '}\r\n {usuarioOrgao.length > 0 && usuarioOrgao[0] != null ? usuarioOrgao[0].orgao.nome : ''}\r\n \r\n \r\n \r\n \r\n : authActions.isGestor() ?\r\n <>\r\n \r\n \r\n Órgão selecionado:\r\n \r\n {' '}\r\n {(hasOrgaoSelected ? orgao.nome : 'TODOS')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n Meus órgãos\r\n \r\n \r\n \r\n
\r\n {\r\n setValue(newValue);\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n defaultValue={null}\r\n getOptionLabel={option => option.nome ? option.nome : ''}\r\n renderInput={(params) => }\r\n style={{ width: \"300px\", marginTop: 5 }}\r\n fullWidth\r\n />\r\n \r\n
\r\n \r\n \r\n TODOS\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n \r\n : authActions.isEmpresa() &&\r\n null\r\n }\r\n
\r\n )\r\n }\r\n\r\n return (\r\n
\r\n {returnContent()}\r\n
\r\n )\r\n}\r\n\r\nSelectOrgao.propTypes = {\r\n className: PropTypes.string\r\n}\r\nexport default SelectOrgao\r\n","import React, { useState } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport PropTypes from 'prop-types'\r\nimport NotificationsNoneOutlinedIcon from '@mui/icons-material/NotificationsNoneOutlined';\r\nimport {\r\n Badge,\r\n AppBar,\r\n Fade,\r\n Toolbar,\r\n Hidden,\r\n IconButton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n TableFooter\r\n} from '@mui/material'\r\nimport { formatRelativeTime } from 'utils';\r\nimport { withStyles } from '@mui/styles'\r\nimport MenuIcon from '@mui/icons-material/Menu'\r\nimport InputIcon from '@mui/icons-material/Input'\r\nimport { authActions, obraAction, obraOcorrenciasAction } from '../../../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { styled } from '@mui/material/styles';\r\nimport { SelectOrgao } from './components'\r\nimport logo from '../../../../img/raiarWhite.png'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n boxShadow: 'none'\r\n },\r\n topBar: {\r\n color: 'inherit',\r\n textDecoration: 'inherit',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n})\r\n\r\nconst SpanStyled = styled('span')({\r\n borderRadius: 8,\r\n paddingTop: 2,\r\n paddingBottom: 1,\r\n paddingRight: 3,\r\n paddingLeft: 3,\r\n color: '#fff',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n marginRight: 3\r\n});\r\n\r\nconst ButtonStyled = styled('button')({\r\n paddingLeft: 4,\r\n paddingTop: 2,\r\n paddingBottom: 2,\r\n paddingRight: 4,\r\n fontSize: 10,\r\n border: 'none',\r\n cursor: 'pointer',\r\n backgroundColor: 'transparent',\r\n color: '#000'\r\n});\r\n\r\nconst ButtonStyledCenter = styled('button')({\r\n padding: '10px 20px',\r\n fontSize: '14px',\r\n border: 'none',\r\n cursor: 'pointer',\r\n backgroundColor: '#013A80', // Cor principal do aplicativo\r\n color: '#fff', // Contraste com o fundo\r\n borderRadius: '8px', // Bordas arredondadas\r\n boxShadow: '0px 4px 6px rgba(0, 0, 0, 0.1)', // Sombra para dar destaque\r\n display: 'block',\r\n margin: '20px auto', // Centraliza o botão\r\n transition: 'background-color 0.3s ease',\r\n\r\n '&:hover': {\r\n backgroundColor: '#0250B0', // Cor de fundo ao passar o mouse\r\n },\r\n});\r\n\r\nconst TableStyled = styled(Table)(() => ({\r\n marginBottom: 8,\r\n border: 'none'\r\n}));\r\n\r\nconst ToolTipFormatted = styled(({ className, ...props }) => (\r\n \r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: '#f5f5f9',\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n maxWidth: 550,\r\n fontSize: 9,\r\n border: '1.2px solid #000',\r\n },\r\n}));\r\n\r\nconst Topbar = ({ staticContext, theme, ...props }) => {\r\n const { className, onSidebarOpen, ...rest } = props\r\n const { classes } = props\r\n const [open, setOpen] = useState(false);\r\n\r\n const dispatch = useDispatch()\r\n\r\n const logout = () => {\r\n dispatch(authActions.logout())\r\n }\r\n\r\n const { obraOcorrencias } = useSelector(\r\n (state) => state?.obraOcorrencias\r\n );\r\n\r\n const handleOpenLastsEvents = () => {\r\n dispatch(obraOcorrenciasAction.getObraOcorrenciasSistema());\r\n setOpen(!open);\r\n };\r\n\r\n const handleNavigation = (event, idObra) => {\r\n event.preventDefault();\r\n if (idObra) {\r\n window.open(`/obra/${idObra}`, '_blank'); //abre em uma nova aba\r\n dispatch(obraAction.getObraById(idObra));\r\n dispatch(obraOcorrenciasAction.getObraOcorrenciasSistema());\r\n }\r\n };\r\n\r\n const renderTooltip = () => {\r\n return (\r\n setOpen(false)}\r\n leaveTouchDelay\r\n leaveDelay={2000}\r\n onMouseClick={() => setOpen(true)}\r\n placement=\"bottom-end\"\r\n TransitionComponent={Fade}\r\n title={\r\n obraOcorrencias && obraOcorrencias.length > 0 ? (\r\n <>\r\n {obraOcorrencias.map((o, index) => (\r\n \r\n \r\n \r\n {index === 0 && (\r\n \r\n \r\n \r\n ÚLTIMOS EVENTOS\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {o.data ? formatRelativeTime(o.data) : '-'} - {o.descricao && o.descricao != \"\" ? o.descricao?.length >= 120 ? (o.descricao?.substring(0, 120)?.toUpperCase() + '...') : o.descricao.toUpperCase() : '-'}\r\n \r\n \r\n #OBRA {o.idObra}\r\n \r\n {o.empresa && (\r\n \r\n {o.empresa?.razaoSocial?.toUpperCase()}\r\n \r\n )}\r\n {o.orgao && (\r\n \r\n {o.orgao?.nome?.toUpperCase()}\r\n \r\n )}\r\n {o.usuario && (\r\n \r\n {o.usuario?.nome?.toUpperCase()}\r\n \r\n )}\r\n {o.obra?.obrasOrcamentos && o.descricao?.includes('Orçamento aprovado') && o.obra?.obrasOrcamentos[0].status === '1' && (\r\n \r\n R${' '}{o?.obra?.obrasOrcamentos[0]?.valor?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n \r\n )}\r\n {o.obra?.obrasCobrancas && o.descricao?.includes('Nova cobrança') && (\r\n \r\n R${' '}{o?.obra?.obrasCobrancas[0]?.valor?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n \r\n )}\r\n \r\n \r\n handleNavigation(e, o.idObra)} size=\"small\">\r\n VER MAIS\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n window.open(`/relatorioOcorrenciasObra`, '_blank')} size=\"small\">\r\n VER TODAS AS OCORRÊNCIAS\r\n \r\n \r\n ) : (\r\n \r\n Não há registros para exibir\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {(authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) &&\r\n renderTooltip()\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {(authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) &&\r\n renderTooltip()\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n onSidebarOpen: PropTypes.func,\r\n type: PropTypes.string\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst TopbarPage = withRouter(\r\n //connect(mapStateToProps, null, null, {\r\n // pure: false\r\n //})(withStyles(styles)(Topbar))\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Topbar))\r\n)\r\nexport default TopbarPage\r\n","import React, { useState } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles, useTheme } from '@mui/styles'\r\nimport { useMediaQuery } from '@mui/material'\r\n\r\nimport { Sidebar, Topbar } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: 56,\r\n height: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n paddingTop: 64\r\n }\r\n },\r\n shiftContent: {\r\n paddingLeft: 240\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}))\r\n\r\nconst Main = (props) => {\r\n const { children, type } = props\r\n\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\r\n defaultMatches: true\r\n })\r\n\r\n const [openSidebar, setOpenSidebar] = useState(false)\r\n\r\n const handleSidebarOpen = () => {\r\n setOpenSidebar(true)\r\n }\r\n\r\n const handleSidebarClose = () => {\r\n setOpenSidebar(false)\r\n }\r\n\r\n const shouldOpenSidebar = isDesktop ? true : openSidebar\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nMain.propTypes = {\r\n children: PropTypes.node,\r\n type: PropTypes.string\r\n}\r\n\r\nexport default Main\r\n","import React from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { AppBar, Toolbar } from '@mui/material'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n boxShadow: 'none'\r\n }\r\n}))\r\n\r\nconst Topbar = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default Topbar\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\n\r\nimport { Topbar } from './components'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n paddingTop: 64,\r\n height: '100%'\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}))\r\n\r\nconst Minimal = (props) => {\r\n const { children } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n
{children}
\r\n
\r\n )\r\n}\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string\r\n}\r\n\r\nexport default Minimal\r\n","import React from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography, Button, useTheme, useMediaQuery } from '@mui/material'\r\n\r\nimport { Page } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n paddingTop: '10vh',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignContent: 'center'\r\n },\r\n imageContainer: {\r\n marginTop: theme.spacing(6),\r\n display: 'flex',\r\n justifyContent: 'center'\r\n },\r\n image: {\r\n maxWidth: '100%',\r\n width: 560,\r\n maxHeight: 300,\r\n height: 'auto'\r\n },\r\n buttonContainer: {\r\n marginTop: theme.spacing(6),\r\n display: 'flex',\r\n justifyContent: 'center'\r\n }\r\n}))\r\n\r\nconst Error404 = () => {\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const mobileDevice = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return (\r\n \r\n \r\n 404: A página que você está procurando não está aqui\r\n \r\n \r\n Você tentou alguma rota sombria ou veio aqui por engano. Seja qual for,\r\n tente usar a navegação\r\n \r\n
\r\n {/*\r\n \r\n */}\r\n
\r\n
\r\n \r\n Voltar para home\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Error404\r\n","export default () => {\r\n var today = new Date()\r\n var curHr = today.getHours()\r\n\r\n if (curHr < 12) {\r\n return 'Bom dia 🌞'\r\n } else if (curHr < 18) {\r\n return 'Boa tarde ✌'\r\n } else {\r\n return 'Boa noite 🌜'\r\n }\r\n}\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography, Grid, Button, Hidden } from '@mui/material'\r\nimport BarChartIcon from '@mui/icons-material/BarChart'\r\nimport messageTime from 'utils/stringTimeHello'\r\nimport { history } from 'utils'\r\nimport Lottie from 'react-lottie';\r\nimport animationData from './rocket.json';\r\n\r\nconst defaultOptions = {\r\n loop: true,\r\n autoplay: true,\r\n animationData: animationData,\r\n rendererSettings: {\r\n preserveAspectRatio: \"xMidYMid slice\"\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n summaryButton: {\r\n backgroundColor: theme.palette.white\r\n },\r\n barChartIcon: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}))\r\n\r\nconst Header = (props) => {\r\n const { className, ...rest } = props\r\n const user = useSelector((state) => state.authentication.user)\r\n const isDisabled = useSelector((state) => {\r\n //if (\r\n // state.usuarioLoja.usuarioLoja.length <= 0\r\n //) {\r\n // return true\r\n //}\r\n return false\r\n })\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Página inicial\r\n \r\n \r\n {messageTime()}, {user.nome.split(' ').slice(0, -1).join(' ')}\r\n \r\n \r\n Confira a performance da loja nos últimos dias\r\n \r\n history.push('/dashboard')}\r\n >\r\n \r\n Ver dashboard\r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nHeader.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default Header\r\n","import React, { useEffect } from 'react'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Page } from 'components'\r\nimport { Typography } from '@mui/material'\r\nimport {\r\n Header\r\n} from './components'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(3),\r\n [theme.breakpoints.up('lg')]: {\r\n paddingTop: theme.spacing(0)\r\n }\r\n },\r\n statistics: {\r\n [theme.breakpoints.down('md')]: {\r\n marginTop: theme.spacing(3)\r\n }\r\n },\r\n notifications: {\r\n marginTop: theme.spacing(3),\r\n [theme.breakpoints.down('md')]: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(3)\r\n }\r\n },\r\n summary: {\r\n marginTop: theme.spacing(3)\r\n },\r\n titleCard: {\r\n fontWeight: 500,\r\n flex: 1,\r\n fontSize: 16,\r\n marginTop: 30,\r\n marginLeft: 10\r\n }\r\n}))\r\n\r\nconst Home = () => {\r\n const classes = useStyles()\r\n const dispatch = useDispatch()\r\n \r\n return (\r\n \r\n
\r\n \r\n FIDELIDADE\r\n \r\n \r\n PEDIDOS DE COMPRA\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Home\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardAnexosPendentes = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const totalAnexosPendentes = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.totalAnexosPendentes : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {totalAnexosPendentes ? totalAnexosPendentes : 0}\r\n \r\n \r\n \r\n \r\n Anexos pendentes de aprovação\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardAnexosPendentes.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardAnexosPendentes\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport MiscellaneousServicesIcon from '@mui/icons-material/MiscellaneousServices';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardObra = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const obrasPendentes = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.obrasPendentes : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {obrasPendentes ? obrasPendentes : 0}\r\n \r\n \r\n \r\n \r\n Obras pendentes de aprovação\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardObra.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardObra\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport ScheduleSendIcon from '@mui/icons-material/ScheduleSend'\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from '../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardObrasAindaNaoReceberamOrcamento = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const obrasAindaSemOrcamento = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.obrasAindaSemOrcamento : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {obrasAindaSemOrcamento ? obrasAindaSemOrcamento : 0}\r\n \r\n \r\n \r\n \r\n Obras ainda sem propostas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardObrasAindaNaoReceberamOrcamento.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardObrasAindaNaoReceberamOrcamento\r\n","import React from 'react';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\nimport { Chip } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n },\r\n backgroundColor: '#015192'\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CardHorasRecebimentoOrcamentos = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const horasRecebimentoOrcamentos = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.horasRecebimentoOrcamentos : undefined))\r\n\r\n return (\r\n }\r\n sx={{\r\n fontSize: 15,\r\n borderColor: '#015192',\r\n '& .MuiSvgIcon-root': {\r\n color: '#FFF'\r\n },\r\n backgroundColor: '#015192',\r\n color: '#FFF', \r\n }}\r\n variant=\"outlined\"\r\n label={horasRecebimentoOrcamentos ? horasRecebimentoOrcamentos + ' horas para o recebimento de orçamentos' : ''}\r\n />\r\n\r\n );\r\n}\r\n\r\nCardHorasRecebimentoOrcamentos.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardHorasRecebimentoOrcamentos\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport { useSelector } from 'react-redux'\r\nimport { Avatar, Typography, CardContent, Grid, Icon } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from '../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardInfosValues = (props) => {\r\n const { className, text, icon, indicator, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const valor = useSelector((state) => state.dashboard?.dashboard?.[indicator]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n R$ {valor ? valor.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '0,00'}\r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {icon}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardInfosValues.propTypes = {\r\n text: PropTypes.string,\r\n icon: PropTypes.elementType,\r\n indicator: PropTypes.string.isRequired\r\n}\r\n\r\nexport default CardInfosValues\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport PeopleIcon from '@mui/icons-material/People';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 10,\r\n marginRight: 10,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardUsuarios = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const totalUsuarios = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.totalUsuarios : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {totalUsuarios ? totalUsuarios : 0}\r\n \r\n \r\n \r\n \r\n Total de usuários cadastrados\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardUsuarios.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardUsuarios\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport MonetizationOnOutlinedIcon from '@mui/icons-material/MonetizationOnOutlined';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35\r\n },\r\n})\r\n\r\nconst CardOrcamentosEnviados = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const orcamentosEnviados = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.orcamentosEnviados : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {orcamentosEnviados ? orcamentosEnviados : 0}\r\n \r\n \r\n \r\n \r\n Propostas enviadas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardOrcamentosEnviados.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardOrcamentosEnviados\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport EngineeringOutlinedIcon from '@mui/icons-material/EngineeringOutlined';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 10,\r\n marginRight: 10,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35\r\n },\r\n})\r\n\r\nconst CardObrasRecebendoOrcamentos = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const obrasRecebendoOrcamento = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.obrasRecebendoOrcamento : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {obrasRecebendoOrcamento ? obrasRecebendoOrcamento : 0}\r\n \r\n \r\n \r\n \r\n Obras recebendo propostas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardObrasRecebendoOrcamentos.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardObrasRecebendoOrcamentos\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport BusinessIcon from '@mui/icons-material/Business';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardEmpresas = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const totalEmpresas = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.totalEmpresas : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {totalEmpresas ? totalEmpresas : 0}\r\n \r\n \r\n \r\n \r\n Total de empresas cadastradas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardEmpresas.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardEmpresas\r\n","import React from 'react';\r\nimport clsx from 'clsx'\r\nimport Card from '@mui/material/Card';\r\nimport PendingActionsIcon from '@mui/icons-material/PendingActions';\r\nimport { Avatar, Typography, CardContent, Grid } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { useSelector } from 'react-redux'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { styled } from '@mui/material/styles';\r\nimport theme from './../../../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 6,\r\n marginRight: 6,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CustomAvatar = styled(Avatar)({\r\n height: 45,\r\n width: 45,\r\n backgroundColor: '#1C5585',\r\n [theme.breakpoints.down('md')]: {\r\n height: 35,\r\n width: 35,\r\n display: 'flex'\r\n },\r\n})\r\n\r\nconst CardMedicoesPendentes = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const totalMedicoesPendentes = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.totalMedicoesPendentes : undefined))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {totalMedicoesPendentes ? totalMedicoesPendentes : 0}\r\n \r\n \r\n \r\n \r\n Medições pendentes de aprovação\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCardMedicoesPendentes.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardMedicoesPendentes\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { Pie } from 'react-chartjs-2'\r\nimport { makeStyles } from '@mui/styles'\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Divider,\r\n Typography\r\n} from '@mui/material'\r\nimport { options } from './options'\r\nimport palette from 'theme/palette'\r\nimport { useSelector } from 'react-redux'\r\nimport { dashboardAction } from '../../../../_actions'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n chartContainer: {\r\n height: 400,\r\n position: 'relative'\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}))\r\n\r\nconst GraficoObrasStatusChartCard = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const { className, ...rest } = props\r\n const graficoObras = useSelector((state) => state.dashboard ? state.dashboard.dashboard.graficoObras : undefined)\r\n const { isLoading } = useSelector((state) => state.dashboard)\r\n const classes = useStyles()\r\n\r\n useEffect(() => {\r\n // dispatch(dashboardAction.getDashboardGraficoObras());\r\n\r\n //console.log(\"graficoObras\", graficoObras)\r\n // console.log(\"props.graficoObras\", props.graficoObras)\r\n }, []);\r\n\r\n const generateData = () => {\r\n if (graficoObras) {\r\n const data = {\r\n labels: graficoObras.options, //labels\r\n datasets: [\r\n {\r\n label: 'Obras criadas',\r\n data: graficoObras.series[0], //dados\r\n backgroundColor: [\r\n '#9E9E9E',\r\n '#673AB7',\r\n '#2196F3',\r\n '#FF5722',\r\n '#4CAF50',\r\n '#FF9800'\r\n ],\r\n borderColor: [\r\n '#9E9E9E',\r\n '#673AB7',\r\n '#2196F3',\r\n '#FF5722',\r\n '#4CAF50',\r\n '#FF9800'\r\n ],\r\n borderWidth: 2\r\n },\r\n ],\r\n }\r\n return data\r\n } else {\r\n return []\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n Obras Por Status\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGraficoObrasStatusChartCard.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default GraficoObrasStatusChartCard\r\n","import palette from 'theme/palette'\r\n\r\nexport const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n legend: { display: false },\r\n cornerRadius: 5,\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n borderWidth: 1,\r\n borderColor: palette.divider,\r\n backgroundColor: palette.white,\r\n titleFontColor: palette.text.primary,\r\n bodyFontColor: palette.text.secondary,\r\n footerFontColor: palette.text.secondary,\r\n callbacks: {\r\n label: function (tooltipItems, data) {\r\n var dataset = data.datasets[tooltipItems.datasetIndex]\r\n if (dataset.yAxisID === 'A') {\r\n return `${dataset.label}: R$ ${tooltipItems.yLabel.toLocaleString('pt-br', { minimumFractionDigits: 2 })}`\r\n } else {\r\n return `${dataset.label}: ${tooltipItems.yLabel}`\r\n }\r\n }\r\n }\r\n },\r\n layout: { padding: 0 },\r\n scales: {\r\n dataset: [\r\n {\r\n barThickness: 35, //largura das barras\r\n maxBarThickness: 37,\r\n barPercentage: 0.5,\r\n categoryPercentage: 0.5,\r\n ticks: {\r\n fontColor: palette.text.secondary\r\n },\r\n gridLines: {\r\n display: false,\r\n drawBorder: false\r\n }\r\n }\r\n ],\r\n yAxes: [\r\n {\r\n id: 'A',\r\n ticks: {\r\n fontColor: palette.text.secondary,\r\n beginAtZero: true,\r\n min: 0,\r\n stepSize: 1\r\n },\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: palette.divider,\r\n drawBorder: false,\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n zeroLineColor: palette.divider\r\n }\r\n },\r\n {\r\n id: 'B',\r\n ticks: {\r\n fontColor: palette.text.secondary,\r\n beginAtZero: true,\r\n min: 0,\r\n stepSize: 1\r\n },\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: palette.divider,\r\n drawBorder: false,\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n zeroLineColor: palette.divider\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { Bar } from 'react-chartjs-2'\r\nimport { makeStyles } from '@mui/styles'\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Divider,\r\n Typography\r\n} from '@mui/material'\r\nimport { options } from './options'\r\nimport palette from 'theme/palette'\r\nimport { useSelector } from 'react-redux'\r\nimport { dashboardAction } from '../../../../_actions'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n chartContainer: {\r\n height: 400,\r\n position: 'relative'\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}))\r\n\r\nconst GraficoObrasPorMesChartCard = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const { className, ...rest } = props\r\n const graficoObrasPorMes = useSelector((state) => state.dashboard ? state.dashboard.dashboard.graficoObrasPorMes : undefined)\r\n const { isLoading } = useSelector((state) => state.dashboard)\r\n const classes = useStyles()\r\n\r\n useEffect(() => {\r\n // dispatch(dashboardAction.getDashboardGraficoObras()); \r\n }, []);\r\n\r\n const generateData = () => {\r\n if (graficoObrasPorMes) {\r\n const data = {\r\n labels: graficoObrasPorMes.options,\r\n datasets: [\r\n {\r\n label: 'Valor total',\r\n yAxisID: 'A',\r\n backgroundColor: '#000',\r\n data: graficoObrasPorMes.series[0]\r\n },\r\n {\r\n label: 'Quantidade',\r\n yAxisID: 'B',\r\n backgroundColor: '#1C5585',\r\n data: graficoObrasPorMes.series[1]\r\n } \r\n ]\r\n }\r\n return data\r\n } else {\r\n return []\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Obras Por Mês\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGraficoObrasPorMesChartCard.propTypes = {\r\n className: PropTypes.string\r\n}\r\n\r\nexport default GraficoObrasPorMesChartCard\r\n","import React from 'react';\r\nimport Typography from '@mui/material/Typography'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faStar } from '@fortawesome/free-solid-svg-icons'\r\n\r\n\r\nconst Stars = ({ avaliacoes, mediaNota }) => {\r\n const fullStars = Math.floor(mediaNota);\r\n const decimalPart = mediaNota - fullStars;\r\n\r\n const starArray = Array.from({ length: 5 });\r\n\r\n return (\r\n <>\r\n {avaliacoes > 0 ? (\r\n <>\r\n {starArray.map((_, index) => {\r\n if (index < fullStars) {\r\n // Full star\r\n return (\r\n \r\n );\r\n } else if (index === fullStars && decimalPart > 0) {\r\n // Partial star\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n // Empty star\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n \r\n {avaliacoes > 0 && avaliacoes != 1 ? ` (${avaliacoes} avaliações)` : avaliacoes == 1 ? `` : ''}\r\n \r\n \r\n ) : (\r\n <>\r\n {starArray.map((_, index) => (\r\n \r\n ))}\r\n (Sem Avaliações)\r\n \r\n )}\r\n \r\n );\r\n\r\n};\r\n\r\nexport default Stars;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport { obraAction } from '../../../../_actions'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport ConstructionIcon from '@mui/icons-material/Construction';\r\nimport {\r\n Avatar,\r\n Button,\r\n Fade,\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TablePagination,\r\n Typography\r\n} from '@mui/material';\r\nimport PropTypes from 'prop-types'\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { AccessControl } from '../../../../components/Utils/AccessControl'\r\nimport { STATUS_SERVICO, history } from '../../../../utils'\r\nimport { useDebounce } from 'use-debounce';\r\nimport Stars from '../../../../components/Stars/Stars';\r\n\r\nconst ToolTipFormatted = styled(({ className, ...props }) => (\r\n \r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: '#f5f5f9',\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n maxWidth: 550,\r\n fontSize: 9,\r\n border: '1.2px solid #90b0cb',\r\n },\r\n}));\r\n\r\nconst GridStyled = styled(Grid)(() => ({\r\n marginBottom: 8,\r\n padding: 2\r\n}));\r\n\r\nconst SpanStyled = styled('span')({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignContent: 'center'\r\n});\r\n\r\nconst AvatarStyled = styled(Avatar)(() => ({\r\n width: 93,\r\n height: 93,\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n}));\r\n\r\nconst ButtonStyled = styled(Button)(() => ({\r\n paddingLeft: 5,\r\n paddingTop: 2,\r\n paddingBottom: 2,\r\n paddingRight: 5,\r\n backgroundColor: '#1C5585',\r\n color: '#FFF',\r\n '&:hover': {\r\n backgroundColor: '#000',\r\n transition: '0.2s'\r\n },\r\n}));\r\n\r\nconst CardListaObraInteresse = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { user } = useSelector(\r\n (state) => state.authentication)\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const { obra, totalRegistros, isLoading } = useSelector(\r\n (state) => state.obra\r\n )\r\n\r\n const retornaStatusObra = (ultimoEvento) => {\r\n if (ultimoEvento == STATUS_SERVICO.LANCAMENTO) {\r\n return \r\n EM LANÇAMENTO\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.PENDENTE) {\r\n return \r\n PENDENTE\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS) {\r\n return \r\n RECEBENDO PROPOSTAS\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO) {\r\n return \r\n EM EXECUÇÃO\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.RECUSADO) {\r\n return \r\n RECUSADA\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.CONCLUIDO) {\r\n return \r\n CONCLUÍDA\r\n \r\n } else if (ultimoEvento == STATUS_SERVICO.AVALIADO) {\r\n return \r\n AVALIADA\r\n \r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Status: STATUS_SERVICO.RECEBENDO_ORCAMENTOS\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n <>\r\n Obras de Interesse\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n TÍTULO\r\n TIPO DE OBRA\r\n ÓRGÃO\r\n NOTA\r\n \r\n \r\n \r\n \r\n {obra && obra.length > 0 ? obra.map((o) => (\r\n \r\n \r\n
\r\n {o.urgencia ? (\r\n \r\n OBRA URGENTE\r\n \r\n ) : null}\r\n \r\n \r\n Detalhes da Obra\r\n \r\n \r\n \r\n {o.caminhoImagem ?\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n Título: {o.titulo?.toUpperCase()}\r\n Descritivo: {o.descritivo?.toUpperCase()}\r\n Status: {retornaStatusObra(o.ultimoEvento)}\r\n BDI: {o.bdi ? o.bdi + '%' : 'SEM BDI'}\r\n Valor referência: R$ {o.valorReferenciaComBdi ? o.valorReferenciaComBdi.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '0,00'}\r\n \r\n \r\n \r\n history.push(`/obra/` + o.id)} size=\"small\">Ver mais\r\n \r\n \r\n }\r\n >\r\n {o.titulo ? `#${o.id} ` + o.titulo.toUpperCase() : ''}\r\n \r\n
\r\n
\r\n {o.tipoObra?.nome?.toUpperCase()}\r\n {o.orgao?.nome?.toUpperCase()}\r\n {}\r\n (\r\n \r\n history.push(`/obra/${o.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n )) :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )}\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n \r\n );\r\n}\r\n\r\nCardListaObraInteresse.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string\r\n}\r\n\r\nexport default CardListaObraInteresse\r\n","import React, { useLayoutEffect, useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n IconButton,\r\n Typography,\r\n Grid,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport messageTime from 'utils/stringTimeHello'\r\nimport { Page } from 'components'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { authActions, dashboardAction } from '../../_actions'\r\nimport CardAnexosPendentes from '../Dashboard/components/CardAnexosPendentes'\r\nimport CardObra from '../Dashboard/components/CardObra'\r\nimport { history } from './../../utils'\r\nimport CardObrasAindaNaoReceberamOrcamento from '../Dashboard/components/CardObrasAindaNaoReceberamOrcamento'\r\nimport CardHorasRecebimentoOrcamentos from '../Dashboard/components/CardHorasRecebimentoOrcamentos'\r\nimport CardInfosValues from './components/CardInfosValues'\r\nimport background from \"../../img/background.png\";\r\nimport { CardMedicoesPendentes, CardObrasRecebendoOrcamentos, CardOrcamentosEnviados } from './components'\r\nimport CardListaObraInteresse from './components/CardListaObraInteresse'\r\nimport MonetizationOnIcon from '@mui/icons-material/MonetizationOn';\r\nimport { LocalAtmOutlined, PriceCheck } from '@mui/icons-material';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n backgroundRepeat: 'repeat'\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n textAlign: 'center'\r\n },\r\n gridCards: {\r\n //alignItems: 'center',\r\n justifyContent: 'center',\r\n flexDirection: 'row',\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.down('md')]: {\r\n padding: theme.spacing(1)\r\n }\r\n },\r\n});\r\n\r\nconst Dashboard = (props) => {\r\n\r\n const { className, classes, ...rest } = props\r\n const { match: { params } } = props;\r\n const dispatch = useDispatch();\r\n const [pendentes, setPendentes] = useState(true);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const user = useSelector((state) => state.authentication.user)\r\n\r\n useLayoutEffect(() => {\r\n dispatch(authActions.refresh())\r\n\r\n }, [])\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n let filterModel = {\r\n IdOrgao: idOrgao\r\n }\r\n dispatch(dashboardAction.getDashboard(filterModel));\r\n\r\n }, [idOrgao])\r\n\r\n useEffect(() => {\r\n let filterModel = {\r\n IdOrgao: idOrgao\r\n }\r\n dispatch(dashboardAction.getDashboard(filterModel));\r\n\r\n }, [])\r\n\r\n const handleClickOpenObrasPendentes = () => {\r\n history.push(`/obras`, pendentes)\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {messageTime()}, {user ? user.nome : ''}\r\n \r\n {authActions.isGestor() ?\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n
\r\n

\r\n \r\n {'Seja bem-vindo'}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!authActions.isFiscal() && !authActions.isEmpresa()) &&\r\n \r\n handleClickOpenObrasPendentes()} pendentes={pendentes} style={{ cursor: 'pointer' }} />\r\n \r\n }\r\n {(authActions.isGestor() || authActions.isEmpresa()) &&\r\n \r\n {authActions.isGestor() ?\r\n history.push(`/empresasAnexos`)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n :\r\n history.push(`/obrasOrcamentos`)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n }\r\n \r\n }\r\n \r\n {(authActions.isGestor() || authActions.isFiscal()) ?\r\n history.push(`/obrasCronogramas`)}\r\n style={{ cursor: 'pointer' }} />\r\n :\r\n history.push(`/obrasAguardandoOrcamento`)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n }\r\n \r\n {authActions.isGestor() &&\r\n \r\n history.push(`/obrasAguardandoOrcamento`)}\r\n style={{ cursor: 'pointer' }} />\r\n \r\n }\r\n {(authActions.isGestor() || authActions.isPrefeitura()) &&\r\n <>\r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n {authActions.isEmpresa() &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/**/}\r\n \r\n
\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n \r\n )\r\n}\r\nDashboard.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedDashboardPage = withRouter(\r\n //connect(mapStateToProps, null, null, {\r\n // pure: false\r\n //})(withStyles(styles)(Dashboard))\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Dashboard))\r\n)\r\nexport { connectedDashboardPage as Dashboard }\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Grid, Typography, Button, IconButton, Tooltip } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { history } from '../utils'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../components';\r\nimport clsx from 'clsx'\r\nimport { AccessControl } from '../components/Utils/AccessControl'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}))\r\n\r\nconst TitleContent = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles()\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n console.log('props', props)\r\n }, [props])\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.subTitle}\r\n \r\n
\r\n \r\n {props.title}\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n (\r\n \r\n \r\n history.push(`${props.href}`)}\r\n >\r\n NOVO\r\n \r\n \r\n \r\n )}\r\n />\r\n

\r\n {props.length !== undefined && props.length !== 0 ? (\r\n \r\n \r\n Total de dados encontrados: {props.length}\r\n \r\n \r\n ) : (\r\n \r\n {'Nenhum dado encontrado.'}\r\n \r\n )}\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n )\r\n}\r\n\r\nTitleContent.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n subTitle: PropTypes.string,\r\n rule: PropTypes.string,\r\n telaManual: PropTypes.string.isRequired\r\n}\r\nexport default TitleContent\r\n","import React from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography, Button, useTheme, useMediaQuery } from '@mui/material'\r\nimport BlockIcon from '@mui/icons-material/Block';\r\nimport { Page } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n paddingTop: '10vh',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignContent: 'center'\r\n },\r\n imageContainer: {\r\n marginTop: theme.spacing(6),\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n alignContent: 'center',\r\n Content: 'center'\r\n },\r\n image: {\r\n maxWidth: '100%',\r\n width: 560,\r\n maxHeight: 300,\r\n height: 'auto'\r\n },\r\n buttonContainer: {\r\n marginTop: theme.spacing(6),\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }\r\n}))\r\n\r\nconst AccessDenied = () => {\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const mobileDevice = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return (\r\n \r\n \r\n 403: O acesso a essa página foi negado.\r\n \r\n \r\n Você não tem autorização para acessar essa página\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Voltar para home\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AccessDenied\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, empresaAction } from '../../_actions'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TablePagination,\r\n Tooltip,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport Stars from '../../components/Stars/Stars';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Empresa = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { empresa } = props.empresa\r\n const { totalRegistros } = props.empresa\r\n const { isLoading } = props.empresa\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('razaosocial');\r\n const [direction] = useState('asc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao\r\n };\r\n\r\n dispatch(empresaAction.getEmpresa(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.empresa.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta Empresa?',\r\n description: ,\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Excluindo empresa...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAction.deleteEmpresaById(id))\r\n })\r\n }\r\n\r\n function ConfirmationText() {\r\n return (\r\n <>\r\n Essa operação é irreversível. Todos os usuários vinculados a ela serão inativados.\r\n \r\n );\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== empresa && empresa.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Razão Social\r\n Status\r\n Nota Média\r\n Ações\r\n \r\n \r\n \r\n {undefined !== empresa && empresa.length\r\n ? empresa.map((n) => {\r\n return (\r\n \r\n \r\n {n.razaoSocial ? n.razaoSocial.toUpperCase() : ''}\r\n {n.nota ? : ''}\r\n \r\n \r\n {n.cadastroLiberado == true ? 'CADASTRO LIBERADO' :\r\n n.cadastroLiberado == false ? 'CADASTRO RECUSADO' :\r\n n.cadastroLiberado == null && 'PENDENTE'}\r\n \r\n \r\n \r\n \r\n \r\n {authActions.isPrefeitura() ?\r\n (\r\n \r\n history.push(`/empresa/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n : null}\r\n (\r\n \r\n history.push(`/empresa/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )}\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nEmpresa.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n empresa: state.empresa\r\n }\r\n}\r\nconst connectedEmpresaPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Empresa))\r\n)\r\nexport { connectedEmpresaPage as Empresa }\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport moment from 'moment'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n MenuItem,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { usuarioAction } from '../../_actions'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { phoneMask, stringUtils } from '../../utils'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\n\r\nexport const UsuarioEditModal = ({ modal, toggle, props, idempresa }) => {\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const formRef = React.createRef(null);\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className, empresa, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const isLoading = useSelector(\r\n (state) => state.usuarioEmpresa.isLoading\r\n )\r\n\r\n useEffect(() => {\r\n }, [props.empresa.isLoading, isLoading])\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(usuarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payloadUsuario = {\r\n nome: props.usuario.nome,\r\n senha: props.usuario.senha,\r\n sobrenome: props.usuario.sobrenome,\r\n email: props.usuario.email.toLowerCase(),\r\n idTipoUsuario: 3, \r\n celular: props.usuario.celular && props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n matricula: props.usuario.matricula,\r\n telefone: props.usuario.telefone && props.usuario.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n usuariosEmpresas: [\r\n {\r\n id: 0,\r\n idUsuario: 0,\r\n idEmpresa: idempresa\r\n }\r\n ]\r\n }\r\n\r\n if (payloadUsuario) {\r\n dispatch(usuarioAction.createUsuarioEmpresa(payloadUsuario))\r\n dispatch(usuarioAction.clear())\r\n toggle();\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Usuário'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tipo Usuário\r\n \r\n EMPRESA\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(props.usuario && props.usuario.dataHoraUltimoAcesso ?\r\n \r\n \r\n \r\n :\r\n null\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.usuario.isLoading && }\r\n >\r\n {props.usuario.isLoading ? 'Salvando usuário...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom';\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport Typography from '@mui/material/Typography'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { styled } from '@mui/material/styles';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n Autocomplete,\r\n Badge,\r\n Box,\r\n Button,\r\n Chip,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n FormControlLabel,\r\n Grid,\r\n MenuItem,\r\n IconButton,\r\n Switch,\r\n Tab,\r\n Tabs,\r\n Tooltip,\r\n TextField\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTrashAlt, faUserPlus, faPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n authActions,\r\n empresaAction,\r\n usuarioAction,\r\n orgaoAction,\r\n cidadeAction,\r\n estadoAction,\r\n usuarioEmpresaAction,\r\n tipoServicoAction,\r\n empresaOrgaoAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, cpfMask, cnpjMask, stringUtils, phoneMask, validateCNPJ, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { Page } from 'components'\r\nimport { isEmpty } from 'lodash'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport { UsuarioEditModal } from './usuarioEditModal.component';\r\nimport { EmpresaAnexoEdit } from '../';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst ButtonAdd = styled(Button)({\r\n backgroundColor: '#F2D647',\r\n marginLeft: 7,\r\n marginRight: 7,\r\n marginBottom: 3,\r\n '&:hover': {\r\n backgroundColor: '#F2D647',\r\n borderColor: '#F2D647',\r\n },\r\n})\r\n\r\nconst BadgeShowNames = styled(Badge)({\r\n fontSize: 15,\r\n paddingLeft: 7,\r\n paddingRight: 7,\r\n color: '#000',\r\n})\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.number.isRequired,\r\n value: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst SwitchBlue = styled(Switch)(({ theme }) => ({\r\n '& .MuiSwitch-switchBase': {\r\n '&.Mui-checked': {\r\n color: '#1C5585',\r\n }\r\n }\r\n}));\r\n\r\nconst EmpresaEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, empresa, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const confirm = useConfirm()\r\n\r\n const location = useLocation();\r\n const isAnexo = location.state;\r\n\r\n const [idOrgao, setIdOrgao] = useState(0);\r\n const [textOrgao, setTextOrgao] = useState('');\r\n\r\n const [idCidade, setIdCidade] = useState(0);\r\n const [textCidade, setTextCidade] = useState('');\r\n\r\n const [value, setValue] = React.useState(null);\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const [valueOrgao, setValueOrgao] = React.useState(null);\r\n const [openOrgao, setOpenOrgao] = React.useState(false)\r\n\r\n const [valueEstado, setValueEstado] = React.useState(null);\r\n const [inputValueEstado, setInputValueEstado] = React.useState('');\r\n\r\n const [valueCidade, setValueCidade] = React.useState(null);\r\n const [inputValueCidade, setInputValueCidade] = React.useState('');\r\n\r\n const [modalUsuario, setModalUsuario] = useState(false);\r\n const toggleUsuario = () => setModalUsuario(!modalUsuario);\r\n\r\n const [selectedTiposServicos, setSelectedTiposServicos] = useState([]);\r\n const [selectedEmpresaOrgaos, setSelectedEmpresaOrgaos] = useState([]);\r\n\r\n const tiposServico = useSelector((state) => state.tipoServico.tipoServico)\r\n const empresasOrgaos = useSelector((state) => state.orgao.orgao)\r\n\r\n const { cidade } = useSelector(\r\n (state) => state.cidade\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const estados = useSelector((state) => state.estado.estado)\r\n\r\n const options = cidade.map(u => ({ id: u.value, nome: u.text }));\r\n const optionsEstados = estados.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [tabValue, setTabValue] = useState(0);\r\n\r\n const handleChangeTab = (event, newValue) => {\r\n setTabValue(newValue);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n dispatch(empresaAction.clear())\r\n dispatch(empresaAction.clearUsuariosEmpresas())\r\n dispatch(empresaAction.clearTiposServicos())\r\n\r\n dispatch(orgaoAction.getOrgaoSelect())\r\n dispatch(estadoAction.getEstadoSelect())\r\n\r\n dispatch(empresaOrgaoAction.getEmpresaOrgaos())\r\n\r\n if (params.id) {\r\n dispatch(empresaAction.getEmpresaById(params.id))\r\n setSelectedEmpresaOrgaos(props.empresa.empresasOrgaos)\r\n if (props.empresa && props.empresa.empresasTiposServicos) {\r\n setSelectedTiposServicos(props.empresa.empresasTiposServicos);\r\n }\r\n } else {\r\n dispatch(empresaAction.clear())\r\n dispatch(empresaAction.clearUsuariosEmpresas())\r\n }\r\n\r\n if (isAnexo) {\r\n setTabValue(1);\r\n }\r\n\r\n if (props.empresa.idEstado != undefined && props.empresa.idEstado !== 0 && props.empresa.idEstado !== '') {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.empresa.idEstado))\r\n }\r\n\r\n const interval = setInterval(() => {\r\n setReady(true)\r\n }, 1500);\r\n return () => clearInterval(interval);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.empresa.projeto) {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: true }))\r\n } else {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: false }))\r\n }\r\n }, [props.empresa?.projeto, props.empresa?.autonomo, props.empresa?.prestadorServico, props.empresa?.fornecedor])\r\n\r\n const handleOpenModal = () => {\r\n dispatch(usuarioAction.clear())\r\n dispatch(usuarioEmpresaAction.clear())\r\n toggleUsuario();\r\n }\r\n\r\n useEffect(() => {\r\n if (props.empresa.idCidade != 0 && params.id != undefined) {\r\n setValue(props.empresa.cidade)\r\n }\r\n }, [props.empresa.idCidade])\r\n\r\n useEffect(() => {\r\n if (props.empresa.idEstado) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.empresa.idEstado))\r\n }\r\n }, [props.empresa.idEstado])\r\n\r\n const isTipoServicoSelected = (id) => {\r\n if (id !== undefined) {\r\n const empresasTiposServicos = Array.isArray(props.empresa?.empresasTiposServicos) ? props.empresa.empresasTiposServicos : [];\r\n const selectedTipos = Array.isArray(selectedTiposServicos) ? selectedTiposServicos : [];\r\n\r\n return empresasTiposServicos.some((n) => n.idTipoServico === id) || selectedTipos.some((n) => n.idTipoServico === id);\r\n }\r\n return false;\r\n }\r\n\r\n const isEmpresaOrgaosSelected = (id) => {\r\n if (id != undefined) {\r\n return (props.empresa?.empresasOrgaos?.some((o) => o.idOrgao == id) || selectedEmpresaOrgaos?.some((o) => o.id == id))\r\n }\r\n }\r\n\r\n function handleChangeTipoServico(id) {\r\n setSelectedTiposServicos((prevSelected) => {\r\n const validPrevSelected = Array.isArray(prevSelected) ? prevSelected : [];\r\n\r\n // Verifica se o item já está selecionado\r\n const isSelected = validPrevSelected.some((n) => n.idTipoServico === id);\r\n\r\n if (isSelected) {\r\n // Remove o item se ele já estiver selecionado\r\n return validPrevSelected.filter((n) => n.idTipoServico !== id);\r\n } else {\r\n // Adiciona o novo item se ele ainda não estiver no array\r\n const newSelected = {\r\n id: 0,\r\n idTipoServico: id,\r\n idEmpresa: props.empresa.id,\r\n };\r\n return [...validPrevSelected, newSelected];\r\n }\r\n });\r\n }\r\n\r\n function handleChangeEmpresaOrgaos(id) {\r\n const isSelected = selectedEmpresaOrgaos?.some((o) => o.idOrgao == id)\r\n if (isSelected) {\r\n const newSelected = selectedEmpresaOrgaos?.filter((o) => o.idOrgao != id)\r\n setSelectedEmpresaOrgaos(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idOrgao: id,\r\n idEmpresa: props.empresa.id\r\n }\r\n setSelectedEmpresaOrgaos([...selectedEmpresaOrgaos, newSelecteds])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (valueEstado && valueEstado.id) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(valueEstado.id))\r\n }\r\n }, [valueEstado?.id])\r\n\r\n useEffect(() => {\r\n props.empresa.empresasTiposServicos = selectedTiposServicos;\r\n forceUpdate(n => !n);\r\n }, [selectedTiposServicos])\r\n\r\n useEffect(() => {\r\n props.empresa.empresasOrgaos = selectedEmpresaOrgaos;\r\n forceUpdate(n => !n);\r\n }, [selectedEmpresaOrgaos])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.empresasTiposServicos])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.empresasOrgaos])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n handleChangeAutoComplete(value)\r\n }\r\n }, [value])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n if (obj != null) {\r\n let selected = cidade.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n cidadeAction.changeDetailsCidade(\r\n selected[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpen(false)\r\n }\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n setIdOrgao(obj.id);\r\n setTextOrgao(obj.nome);\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n const handleChangeAutoCompleteCidade = (obj) => {\r\n if (obj != null) {\r\n setIdCidade(obj.id);\r\n setTextCidade(obj.nome);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (valueCidade) {\r\n handleChangeAutoCompleteCidade(valueCidade)\r\n }\r\n }, [valueCidade])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.empresasOrgaos])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.usuariosEmpresas])\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.empresa.isLoading])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(empresaAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleAddCidadeOnList = () => {\r\n if (!valueCidade || valueCidade == 0) {\r\n toast.error('Selecione uma cidade!')\r\n return\r\n }\r\n\r\n if (props.empresa.empresasCidades.filter(ts => ts.idCidade == parseInt(idCidade)).length > 0) {\r\n toast.error('Erro ao adicionar! Esta cidade já existe!')\r\n }\r\n else {\r\n props.empresa.empresasCidades.push({\r\n 'idCidade': idCidade,\r\n 'idEmpresa': props.empresa.id,\r\n 'cidade': {\r\n 'nome': textCidade\r\n }\r\n });\r\n setIdCidade(0);\r\n setValueCidade(null);\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n razaoSocial: props.empresa.razaoSocial,\r\n nomeFantasia: props.empresa.nomeFantasia,\r\n cpf: props.empresa.cpf ? props.empresa.cpf.split('.').join('').replace(/[-/.]/g, '') : '',\r\n cnpj: props.empresa.cnpj ? props.empresa.cnpj.split('.').join('').replace(/[-/.]/g, '') : '',\r\n celular: props.empresa.celular ? props.empresa.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : '',\r\n email: props.empresa.email ? props.empresa.email.toLowerCase() : '',\r\n telefone: props.empresa.telefone ? props.empresa.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : '',\r\n endereco: props.empresa.endereco,\r\n informacoesCobranca: props.empresa.informacoesCobranca,\r\n inscricaoEstadual: props.empresa.inscricaoEstadual,\r\n idCidade: value ? value.id : props.empresa.idCidade,\r\n idEstado: props.empresa.idEstado,\r\n usuariosEmpresas: props.empresa.usuariosEmpresas,\r\n empresasOrgaos: props.empresa.empresasOrgaos,\r\n empresasCidades: props.empresa.empresasCidades,\r\n fornecedor: props.empresa.fornecedor,\r\n autonomo: props.empresa.autonomo,\r\n prestadorServico: props.empresa.prestadorServico,\r\n projeto: props.empresa.projeto,\r\n atendeFimDeSemana: props.empresa.atendeFimDeSemana,\r\n servicosUrgencia: props.empresa.servicosUrgencia,\r\n empresasTiposServicos: props.empresa.empresasTiposServicos\r\n }\r\n\r\n if (props.empresa.empresasTiposServicos.length > 0) {\r\n if (params.id) {\r\n dispatch(empresaAction.editEmpresaInfo(params.id, payload, true))\r\n } else {\r\n dispatch(empresaAction.createEmpresa(payload))\r\n }\r\n } else {\r\n toast.error('Selecione ao menos um tipo de serviço');\r\n }\r\n };\r\n\r\n const handleAprovaCadastroEmpresa = () => {\r\n confirm({\r\n title: 'Você deseja liberar o acesso ao sistema para esta Empresa?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Aprovando...' : 'Sim, aprovar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAction.editAprovaCadastroEmpresa(params.id))\r\n })\r\n }\r\n\r\n const handleRecusaCadastroEmpresa = () => {\r\n confirm({\r\n title: 'Você deseja recusar o acesso ao sistema para esta Empresa?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Recusando...' : 'Sim, recusar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAction.editRecusaCadastroEmpresa(params.id))\r\n })\r\n }\r\n\r\n const handleRemoveOnList = id => {\r\n confirm({\r\n title: 'Você deseja excluir este usuário?',\r\n description: 'Essa operação desvinculará o usuário desta empresa',\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Excluindo usuário...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n props.empresa.usuariosEmpresas = props.empresa.usuariosEmpresas.filter(ts => ts.idUsuario != parseInt(id));\r\n dispatch(usuarioEmpresaAction.deleteUsuarioById(id, true))\r\n forceUpdate(n => !n);\r\n })\r\n\r\n };\r\n\r\n const handleRemoveCidadeOnList = id => {\r\n confirm({\r\n title: 'Você deseja excluir esta cidade?',\r\n description: 'Essa operação desvinculará a cidade desta empresa',\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Excluindo cidade...' : 'Sim, excluir!',\r\n }).then(() => {\r\n props.empresa.empresasCidades = props.empresa.empresasCidades.filter(ts => ts.idCidade != parseInt(id));\r\n forceUpdate(n => !n);\r\n })\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Empresa'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Empresa'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.empresa.autonomo != true &&\r\n \r\n \r\n \r\n }\r\n {props.empresa.autonomo == true &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n {!isEmpty(estados) &&\r\n undefined !== estados &&\r\n estados.length &&\r\n estados.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n setValue(newValue);\r\n }}\r\n disabled={authActions.isPrefeitura()}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={value}\r\n getOptionLabel={option => option.nome || ''}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Fornecedor\"\r\n />\r\n \r\n }\r\n label=\"Prestador de Serviço\"\r\n />\r\n \r\n }\r\n label=\"Autônomo\"\r\n />\r\n \r\n }\r\n label=\"Projeto\"\r\n />\r\n \r\n }\r\n label=\"Atende em Finais de Semana\"\r\n />\r\n \r\n }\r\n label=\"Realiza Serviços de Urgência\"\r\n />\r\n \r\n \r\n \r\n \r\n Tipos de serviços oferecidos pela empresa *\r\n \r\n \r\n \r\n {tiposServico && tiposServico != undefined && tiposServico.length > 0 &&\r\n tiposServico.map((n, index) => (\r\n handleChangeTipoServico(n.id)}\r\n variant={isTipoServicoSelected(n.id) ? \"filled\" : \"outlined\"} style={{ backgroundColor: isTipoServicoSelected(n.id) && '#015192', color: isTipoServicoSelected(n.id) ? '#FFFFFF' : '#000000', margin: 5 }} />\r\n ))\r\n }\r\n \r\n \r\n \r\n Órgãos de interesse *\r\n \r\n \r\n \r\n {empresasOrgaos && empresasOrgaos != undefined && empresasOrgaos.length > 0 &&\r\n empresasOrgaos.map((o, index) => (\r\n handleChangeEmpresaOrgaos(o.value)}\r\n variant={isEmpresaOrgaosSelected(o.value) ? \"filled\" : \"outlined\"} style={{ backgroundColor: isEmpresaOrgaosSelected(o.value) && '#015192', color: isEmpresaOrgaosSelected(o.value) ? '#FFFFFF' : '#000000', margin: 5 }} />\r\n ))\r\n }\r\n \r\n \r\n \r\n Cidades de Interesse\r\n \r\n \r\n \r\n {\r\n setValueEstado(newValueEstado);\r\n }}\r\n inputValue={inputValueEstado}\r\n onInputChange={(event, newInputValueEstado) => {\r\n setInputValueEstado(newInputValueEstado);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsEstados}\r\n defaultValue={null}\r\n getOptionLabel={option => option?.nome}\r\n renderInput={(params) => }\r\n />\r\n \r\n \r\n {\r\n setValueCidade(newValueCidade);\r\n }}\r\n inputValue={inputValueCidade}\r\n onInputChange={(event, newInputValueCidade) => {\r\n setInputValueCidade(newInputValueCidade);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueCidade}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n {!authActions.isPrefeitura() ?\r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n {\r\n (props.empresa.empresasCidades != null && props.empresa.empresasCidades.length > 0 ?\r\n props.empresa.empresasCidades.map(n => {\r\n return (\r\n (n.id !== '' && n.idCidade ?\r\n }\r\n onDelete={() => handleRemoveCidadeOnList(n.idCidade)}\r\n />\r\n : null)\r\n );\r\n })\r\n : null)\r\n }\r\n \r\n \r\n {params.id && !authActions.isPrefeitura() ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cadastrar e vincular usuário a empresa\r\n \r\n \r\n (\r\n \r\n \r\n \r\n )}\r\n no={() => }\r\n />\r\n \r\n \r\n {\r\n (props.empresa.usuariosEmpresas != null && props.empresa.usuariosEmpresas.length > 0 ?\r\n props.empresa.usuariosEmpresas.map(n => {\r\n return (\r\n (n.id !== '' && n.excluido != true ?\r\n \r\n \r\n \r\n \r\n {(n.usuario ? n.usuario.nome.toUpperCase() : n.idUsuario)}\r\n \r\n \r\n {(n.usuario ? n.usuario.email : '')}\r\n \r\n \r\n {(n.usuario ? n.usuario.idTipoUsuario == 1 ? 'ADMINISTRADOR' : n.usuario.idTipoUsuario == 2 ? 'GESTOR ÓRGÃO PÚBLICO' : n.usuario.idTipoUsuario == 3 ? 'PRESTADOR DE SERVIÇO' : n.usuario.idTipoUsuario == 4 ? 'MOTORISTA' : n.usuario.idTipoUsuario == 5 ? 'FISCAL' : '' : '')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null)\r\n );\r\n })\r\n : null)\r\n }\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/empresas')}\r\n >\r\n {authActions.isPrefeitura() ? 'Voltar' : 'Cancelar'}\r\n \r\n {empresa.id && authActions.isGestor() ?\r\n <>\r\n }\r\n endIcon={props.empresa.isLoading && }\r\n >\r\n {props.empresa.cadastroLiberado == false ? 'Acesso recusado' : props.empresa.isLoading ? 'Recusando acesso...' : 'Recusar acesso'}\r\n \r\n }\r\n endIcon={props.empresa.isLoading && }\r\n >\r\n {props.empresa.cadastroLiberado == true ? 'Acesso liberado' : props.empresa.isLoading ? 'Liberando acesso...' : 'Liberar acesso'}\r\n \r\n \r\n : null}\r\n {!authActions.isPrefeitura() ?\r\n }\r\n endIcon={props.empresa.isLoading && }\r\n >\r\n {params.id ? (props.empresa.isLoading ? 'Atualizando empresa...' : 'Atualizar') : (props.empresa.isLoading ? 'Salvando empresa...' : 'Salvar')}\r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n (modalUsuario ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nEmpresaEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedEmpresaEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpresaEdit))\r\n)\r\nexport { connectedEmpresaEditPage as EmpresaEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport moment from 'moment'\r\nimport CheckCircleIcon from '@mui/icons-material/CheckCircle';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport WatchLaterIcon from '@mui/icons-material/WatchLater';\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport PropTypes from 'prop-types'\r\nimport PhotoIcon from '@mui/icons-material/Photo';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { withStyles } from '@mui/styles'\r\nimport TableViewIcon from '@mui/icons-material/TableView';\r\nimport Typography from '@mui/material/Typography'\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { toast } from 'react-toastify'\r\nimport AlertIcon from '@mui/icons-material/Warning';\r\nimport { uploadFile } from '_services'\r\nimport {\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n MenuItem,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n TablePagination,\r\n Tooltip,\r\n Skeleton,\r\n Input\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n SelectValidator,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\nimport {\r\n empresaAnexoAction,\r\n tipoAnexoAction\r\n} from '../../_actions'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { isEmpty } from 'lodash'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst EmpresaAnexoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n const { classes, idEmpresa, ...rest } = props\r\n const { match: { params } } = props;\r\n const { totalRegistros } = props.empresaAnexo\r\n const { isLoading } = props.empresa\r\n const formRef = React.createRef(null);\r\n const [key, setKey] = useState(1);\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const [open, setOpen] = useState(false)\r\n const [file, setFile] = useState(undefined)\r\n\r\n const { empresaAnexo } = useSelector(\r\n (state) => state.empresaAnexo)\r\n\r\n const { tipoAnexo } = useSelector(\r\n (state) => state.tipoAnexo)\r\n\r\n useEffect(() => {\r\n dispatch(empresaAnexoAction.clear())\r\n\r\n dispatch(tipoAnexoAction.getTiposAnexosEmpresaSelect())\r\n\r\n }, []);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdEmpresa: (idEmpresa && idEmpresa != '' && idEmpresa)\r\n };\r\n\r\n dispatch(empresaAnexoAction.getEmpresaAnexo(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idEmpresa]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n dispatch(empresaAnexoAction.getEmpresaAnexoById(id))\r\n }\r\n\r\n const handleClean = () => {\r\n dispatch(empresaAnexoAction.clearDetail())\r\n setKey(0);\r\n }\r\n\r\n const handleDelete = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este anexo?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.empresaAnexo.isLoading,\r\n confirmationText: props.empresaAnexo.isLoading ? 'Excluindo anexo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAnexoAction.deleteEmpresaAnexoById(id))\r\n })\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(empresaAnexoAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleAprovaAnexo = (n) => {\r\n confirm({\r\n title: 'Você deseja aprovar este anexo?',\r\n description: 'A situação será alterada para \"Aprovado\"',\r\n disabled: props.empresaAnexo.isLoading,\r\n confirmationText: props.empresaAnexo.isLoading ? 'Aprovando anexo...' : 'Sim, aprovar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAnexoAction.editEmpresaAnexoAprova(n));\r\n })\r\n }\r\n\r\n const handleReprovaAnexo = (n) => {\r\n confirm({\r\n title: 'Você deseja reprovar esta anexo?',\r\n description: 'A situação será alterada para \"Recusado\"',\r\n disabled: props.empresaAnexo.isLoading,\r\n confirmationText: props.empresaAnexo.isLoading ? 'Recusando anexo...' : 'Sim, recusar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAnexoAction.editEmpresaAnexoRecusa(n));\r\n })\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n if (props.empresaAnexo.idTipoAnexo == 0 || props.empresaAnexo.idTipoAnexo == null) {\r\n toast.error('Informe o Tipo de Anexo!')\r\n }\r\n else if (props.empresaAnexo.caminhoAnexo == '' || props.empresaAnexo.caminhoAnexo == null) {\r\n toast.error('Informe o Arquivo do Anexo!')\r\n } else {\r\n let payload = {\r\n id: props.empresaAnexo.id,\r\n idEmpresa: parseInt(idEmpresa),\r\n idTipoAnexo: props.empresaAnexo.idTipoAnexo,\r\n dataValidade: moment(props.empresaAnexo.dataValidade).toISOString(),\r\n caminhoAnexo: props.empresaAnexo.caminhoAnexo\r\n }\r\n\r\n if (props.empresaAnexo.id) {\r\n dispatch(empresaAnexoAction.editEmpresaAnexoInfo(props.empresaAnexo.id, payload, true))\r\n } else {\r\n dispatch(empresaAnexoAction.createEmpresaAnexo(payload))\r\n }\r\n }\r\n\r\n };\r\n\r\n const handleOpenFile = (link) => {\r\n window.open(link);\r\n }\r\n\r\n const handleChangeFile = (e) => {\r\n setFile(e.target.files[0])\r\n }\r\n\r\n useEffect(() => {\r\n if (file && file != undefined && file != null) {\r\n setOpen(true)\r\n upload()\r\n }\r\n }, [file])\r\n\r\n const upload = () => {\r\n uploadFile(file)\r\n .then((response) => {\r\n setTimeout(function () {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(empresaAnexoAction.onChangeProps('caminhoAnexo', event2))\r\n\r\n setOpen(false)\r\n\r\n }, 1000);\r\n\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Anexo'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Anexo'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (props.empresaAnexo.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n\r\n //{isEditable(props.empresa.ultimoEvento) == true ?\r\n //permitir enviar anexos de NOTAS mesmo depois de já aprovado o orçamento\r\n\r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleChangeFile(e)}\r\n type=\"file\"\r\n placeHolder=\"Escolher arquivo *\"\r\n formControl\r\n key={key}\r\n required\r\n margin=\"dense\"\r\n />\r\n \r\n \r\n \r\n \r\n Tipo Anexo *\r\n \r\n {!isEmpty(tipoAnexo) &&\r\n undefined !== tipoAnexo &&\r\n tipoAnexo.length &&\r\n tipoAnexo.map((row) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.empresaAnexo.isLoading || open && }\r\n >\r\n {props.empresaAnexo.id ? (props.empresaAnexo.isLoading ? 'Atualizando Anexo...' : 'Atualizar') : (props.empresaAnexo.isLoading ? 'Salvando Anexo...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Tipo de Anexo\r\n Anexo\r\n Validade\r\n Ações\r\n \r\n \r\n \r\n {undefined !== empresaAnexo && empresaAnexo.length\r\n ? empresaAnexo.map((n) => {\r\n\r\n const pathArray = n.caminhoAnexo.split('/');\r\n const nomeArquivo = pathArray[pathArray.length - 1];\r\n\r\n return (\r\n \r\n \r\n {n.id ? n.id : ''}\r\n \r\n \r\n {n.tipoAnexo ? n.tipoAnexo.nome : ''}\r\n \r\n \r\n
\r\n
{n.situacao == 1 ? : n.situacao == 2 ? : }
 \r\n {n.caminhoAnexo ? n.caminhoAnexo.includes('pdf') ?\r\n \r\n
handleOpenFile(n.caminhoAnexo)}>{nomeArquivo} \r\n
\r\n
\r\n : (n.caminhoAnexo.includes('.jpg') || n.caminhoAnexo.includes('.jpeg') || n.caminhoAnexo.includes('.png') || n.caminhoAnexo.includes('.svg') || n.caminhoAnexo.includes('webp')) ?\r\n
handleOpenFile(n.caminhoAnexo)}>{nomeArquivo}
\r\n : n.caminhoAnexo.includes('.txt') ?\r\n
handleOpenFile(n.caminhoAnexo)}>{nomeArquivo}
\r\n : (n.caminhoAnexo.includes('.xls') || n.caminhoAnexo.includes('.xlsx') || n.caminhoAnexo.includes('.csv')) ?\r\n
handleOpenFile(n.caminhoAnexo)}>{nomeArquivo}
\r\n : n.caminhoAnexo : ''}\r\n
\r\n
\r\n \r\n
\r\n {n.dataValidade && new Date(n.dataValidade) < new Date() ? (\r\n \r\n ) : null}\r\n {n.dataValidade ? moment(n.dataValidade).format(\"DD/MM/yyyy\") : ''}\r\n
\r\n
\r\n \r\n {/* (*/}\r\n {/* handleEdit(n.id)}*/}\r\n {/* size=\"small\"*/}\r\n {/* >*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* )}*/}\r\n {/*/>*/}\r\n (\r\n handleDelete(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n handleAprovaAnexo(n)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleReprovaAnexo(n)}\r\n size=\"small\"\r\n disabled={n.situacao == 2}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nEmpresaAnexoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedEmpresaEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpresaAnexoEdit))\r\n)\r\nexport { connectedEmpresaEditPage as EmpresaAnexoEdit }\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Grid,\r\n TextField,\r\n Typography\r\n} from '@mui/material'\r\nimport { usuarioAction } from '_actions'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nconst ModalRequestPasswordReset = (props) => {\r\n\r\n const [email, setEmail] = useState()\r\n const dispatch = useDispatch()\r\n const [finishedTimeout, setFinishedTimeout] = useState(false);\r\n const { openModalRequestPasswordReset, isLoading } = useSelector(\r\n (state) => state.usuario\r\n )\r\n\r\n useEffect(() => {\r\n const id = setTimeout(() => {\r\n setFinishedTimeout(true);\r\n }, 5000);\r\n\r\n return () => clearTimeout(id);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.currentEmail != undefined) {\r\n setEmail(props.currentEmail)\r\n }\r\n }, [props])\r\n\r\n const handleChange = (event) => {\r\n setEmail(event.target.value.toLowerCase())\r\n }\r\n const handleClose = () => {\r\n dispatch(usuarioAction.openModalRequestPasswordReset(false))\r\n }\r\n const handleSubmit = (event) => {\r\n event.preventDefault()\r\n dispatch(usuarioAction.requestPasswordReset(email))\r\n { finishedTimeout && setEmail('') }\r\n }\r\n return (\r\n \r\n \r\n Recuperação de senha perdida\r\n \r\n
\r\n \r\n \r\n \r\n Informe o endereço de e-mail utilizado no cadastro para recuperar\r\n a senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n {isLoading\r\n ? 'Enviando email...'\r\n : 'Enviar e-mail de recuperação de senha'}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ModalRequestPasswordReset\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Box,\r\n ButtonBase,\r\n Dialog,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport { styled } from '@mui/material/styles';\r\nimport { history } from '../../utils'\r\nimport { empresaOrgaoAction } from '_actions'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport empresa from './../../img/empresa.jpg'\r\nimport cidade from './../../img/cidade.jpg'\r\n\r\nconst heightModalL = 270;\r\nconst heightModalM = 200;\r\nconst heightModalS = 250;\r\n\r\nconst ImageButton = styled(ButtonBase)(({ theme }) => ({\r\n position: 'relative',\r\n height: heightModalL,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalM,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalS,\r\n },\r\n '&:hover, &.Mui-focusVisible': {\r\n zIndex: 1,\r\n '& .MuiImageBackdrop-root': {\r\n opacity: 0.15,\r\n },\r\n '& .MuiImageMarked-root': {\r\n opacity: 0,\r\n }\r\n },\r\n}));\r\n\r\nconst GridCustom = styled(Grid)(({ theme }) => ({\r\n margin: '0 10px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: heightModalL - 20,\r\n justifyContent: 'center',\r\n '&:hover, &.Mui-focusVisible': {\r\n border: '2px solid currentColor',\r\n borderRadius: 7\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalM - 20,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalS - 20,\r\n },\r\n}));\r\n\r\n\r\nconst ImageSrc = styled('span')({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center 40%',\r\n});\r\n\r\nconst Image = styled('span')(({ theme }) => ({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.common.white,\r\n}));\r\n\r\nconst ImageBackdrop = styled('span')(({ theme }) => ({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n backgroundColor: theme.palette.common.black,\r\n opacity: 0.4,\r\n transition: theme.transitions.create('opacity'),\r\n}));\r\n\r\nconst ModalChooseEmpresaOrgao = (props) => {\r\n\r\n const [email, setEmail] = useState()\r\n const dispatch = useDispatch()\r\n const [finishedTimeout, setFinishedTimeout] = useState(false);\r\n const { openModalCadastroEmpresaOrgao, isLoading } = useSelector(\r\n (state) => state.empresaOrgao\r\n )\r\n\r\n useEffect(() => {\r\n const id = setTimeout(() => {\r\n setFinishedTimeout(true);\r\n }, 5000);\r\n\r\n return () => clearTimeout(id);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.currentEmail != undefined) {\r\n setEmail(props.currentEmail)\r\n }\r\n }, [props])\r\n\r\n const handleOpenModalTipoEmpresa = () => {\r\n dispatch(empresaOrgaoAction.openModalCadastroTipoEmpresa(true));\r\n handleClose();\r\n }\r\n\r\n const handleOpenModalOrgaoCadastro = () => {\r\n history.push(`/orgaoCadastro/`)\r\n handleClose();\r\n }\r\n\r\n const handleClose = () => {\r\n dispatch(empresaOrgaoAction.openModalCadastroEmpresaOrgao(false))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU EMPRESA / AUTÔNOMO\r\n \r\n \r\n Clique aqui para se cadastrar e receber informações sobre obras de seu interesse\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU GESTOR DE ÓRGÃO PÚBLICO\r\n \r\n \r\n Clique aqui para poder cadastrar obras do seu órgão\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ModalChooseEmpresaOrgao\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Box,\r\n ButtonBase,\r\n Dialog,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport { styled } from '@mui/material/styles';\r\nimport { history } from '../../utils'\r\nimport { empresaOrgaoAction } from '_actions'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport autonomo from './../../img/autonomo.jpg'\r\nimport prestador from './../../img/prestador.jpg'\r\nimport fornecedor from './../../img/fornecedor.jpg'\r\n\r\nconst heightModalL = 270;\r\nconst heightModalM = 200;\r\nconst heightModalS = 250;\r\n\r\nconst ImageButton = styled(ButtonBase)(({ theme }) => ({\r\n position: 'relative',\r\n height: heightModalL,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalM,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalS,\r\n },\r\n '&:hover, &.Mui-focusVisible': {\r\n zIndex: 1,\r\n '& .MuiImageBackdrop-root': {\r\n opacity: 0.15,\r\n },\r\n '& .MuiImageMarked-root': {\r\n opacity: 0,\r\n }\r\n },\r\n}));\r\n\r\nconst GridCustom = styled(Grid)(({ theme }) => ({\r\n margin: '0 10px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: heightModalL - 20,\r\n justifyContent: 'center',\r\n '&:hover, &.Mui-focusVisible': {\r\n border: '2px solid currentColor',\r\n borderRadius: 7\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalM - 20,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important', // Overrides inline-style\r\n height: heightModalS - 20,\r\n },\r\n}));\r\n\r\n\r\nconst ImageSrc = styled('span')({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center 40%',\r\n});\r\n\r\nconst Image = styled('span')(({ theme }) => ({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.common.white,\r\n}));\r\n\r\nconst ImageBackdrop = styled('span')(({ theme }) => ({\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n backgroundColor: theme.palette.common.black,\r\n opacity: 0.4,\r\n transition: theme.transitions.create('opacity'),\r\n}));\r\n\r\nconst ModalChooseTipoEmpresa = (props) => {\r\n\r\n const [email, setEmail] = useState()\r\n const dispatch = useDispatch()\r\n const [finishedTimeout, setFinishedTimeout] = useState(false);\r\n const { openModalCadastroTipoEmpresa, isLoading } = useSelector(\r\n (state) => state.empresaOrgao\r\n )\r\n\r\n useEffect(() => {\r\n const id = setTimeout(() => {\r\n setFinishedTimeout(true);\r\n }, 5000);\r\n\r\n return () => clearTimeout(id);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.currentEmail != undefined) {\r\n setEmail(props.currentEmail)\r\n }\r\n }, [props])\r\n\r\n const handleOpenModalEmpresaCadastro = (type) => {\r\n history.push(`/empresaCadastro?type=${type}`)\r\n handleClose();\r\n }\r\n\r\n const handleClose = () => {\r\n dispatch(empresaOrgaoAction.openModalCadastroTipoEmpresa(false))\r\n }\r\n\r\n return (\r\n \r\n \r\n handleOpenModalEmpresaCadastro('autonomo')}\r\n style={{\r\n width: '25%'\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU PROFISSIONAL AUTÔNOMO\r\n \r\n \r\n \r\n \r\n\r\n handleOpenModalEmpresaCadastro('prestador')}\r\n style={{\r\n width: '25%'\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU PRESTADOR DE SERVIÇOS\r\n \r\n \r\n \r\n \r\n\r\n handleOpenModalEmpresaCadastro('fornecedor')}\r\n style={{\r\n width: '25%'\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU FORNECEDOR DE MATERIAIS\r\n \r\n \r\n \r\n \r\n\r\n handleOpenModalEmpresaCadastro('engenheiro')}\r\n style={{\r\n width: '25%'\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n `calc(${theme.spacing(1)} + 6px)`,\r\n }}\r\n >\r\n SOU ENGENHEIRO / ARQUITETO / ORÇAMENTISTA\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ModalChooseTipoEmpresa\r\n","import React, { Component } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n CircularProgress,\r\n FormControlLabel,\r\n Paper,\r\n Grid,\r\n Button,\r\n Box,\r\n Typography,\r\n Checkbox,\r\n Link\r\n} from '@mui/material'\r\nimport { connect } from 'react-redux'\r\nimport AddCircleOutlineRoundedIcon from '@mui/icons-material/AddCircleOutlineRounded';\r\nimport PersonPinCircleOutlinedIcon from '@mui/icons-material/PersonPinCircleOutlined';\r\nimport { authActions, usuarioAction, empresaOrgaoAction } from '../../_actions'\r\nimport packageInfo from '../../../package.json';\r\nimport { history, stringUtils } from '../../utils'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator'\r\nimport LockOpenIcon from '@mui/icons-material/LockOpen'\r\nimport ModalRequestPasswordReset from './ModalRequestPasswordReset'\r\nimport background from \"../../img/login_mini.jpg\";\r\nimport logo from \"../../img/raiar.png\";\r\nimport ModalChooseEmpresaOrgao from './ModalChooseEmpresaOrgao';\r\nimport ModalChooseTipoEmpresa from './ModalChooseTipoEmpresa';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n height: '100vh',\r\n width: 'auto!important',\r\n margin: '-8px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundImage: `url(${background})`,\r\n backgroundSize: 'auto',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\r\n },\r\n paper: {\r\n margin: theme.spacing(4, 4),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1)\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2)\r\n }\r\n})\r\n\r\nfunction Copyright() {\r\n return (\r\n <>\r\n \r\n {'Desenvolvido por © '}\r\n \r\n FortalezaTec\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n \r\n Versão do sistema: {packageInfo.version}\r\n \r\n \r\n )\r\n}\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n email: '',\r\n senha: '',\r\n showPassword: false,\r\n submitted: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (localStorage.getItem('auth')) {\r\n history.push('/dashboard')\r\n }\r\n }\r\n handleChange = (prop) => (event) => {\r\n if (prop === 'email') {\r\n this.setState({ [prop]: event.target.value.toLowerCase() })\r\n } else {\r\n this.setState({ [prop]: event.target.value })\r\n }\r\n }\r\n\r\n handleChangeBox = (name) => (event) => {\r\n this.setState({ ...this.state, [name]: event.target.checked })\r\n }\r\n\r\n handleSubmit = (event) => {\r\n event.preventDefault()\r\n const { email, senha } = this.state\r\n const { dispatch } = this.props\r\n\r\n if (email && senha) {\r\n dispatch(authActions.login(email, senha))\r\n }\r\n }\r\n\r\n handleClickopenModalRequestPasswordReset = () => {\r\n const { dispatch } = this.props\r\n dispatch(usuarioAction.openModalRequestPasswordReset(true))\r\n }\r\n\r\n handleClickopenModalCadastroEmpresaOrgao = () => {\r\n const { dispatch } = this.props\r\n dispatch(empresaOrgaoAction.openModalCadastroEmpresaOrgao(true))\r\n }\r\n\r\n render() {\r\n const { loggingIn } = this.props\r\n const { classes } = this.props\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Mostrar senha\"\r\n />\r\n \r\n }\r\n endIcon={loggingIn && }\r\n >\r\n {loggingIn ? 'Validando informações... ' : 'Entrar'}\r\n \r\n \r\n \r\n \r\n \r\n {'Esqueceu a senha?'}\r\n \r\n \r\n \r\n }\r\n >\r\n {'Quero me cadastrar'}\r\n \r\n }\r\n >\r\n {'Acesso ao mapa público de obras'}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n}\r\nLogin.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nconst handleOpenPublicMap = () => {\r\n history.push(`/mapa-publico/`);\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const { loggingIn } = state.authentication\r\n return {\r\n loggingIn\r\n }\r\n}\r\nconst connectedLoginPage = withRouter(\r\n //connect(mapStateToProps, null, null, {\r\n // pure: false\r\n //})(withStyles(styles)(Login))\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Login))\r\n)\r\nexport { connectedLoginPage as Login }\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { usuarioAction } from '../../_actions'\r\n\r\nconst EmailVerification = (props) => {\r\n const dispatch = useDispatch()\r\n const refreshed = useSelector((state) => state.authentication.refreshed)\r\n const loggedIn = useSelector((state) => state.authentication.loggedIn)\r\n\r\n const verificaEmail = () => {\r\n const query = new URLSearchParams(props.location.search)\r\n var email = query.toString().substr(6, query.toString().indexOf('&', 0) - 6)\r\n email = decodeURIComponent(email)\r\n var token = query\r\n .toString()\r\n .substr(\r\n query.toString().indexOf('token=', 0) + 6,\r\n query.toString().length - query.toString().indexOf('token=', 0) - 6\r\n )\r\n\r\n let payload = {\r\n login: decodeURIComponent(email),\r\n senha: 'senha'\r\n }\r\n dispatch(usuarioAction.emailVerification(payload, token))\r\n }\r\n\r\n useEffect(() => {\r\n //console.log('loggedIn', loggedIn)\r\n if (loggedIn) {\r\n if (refreshed) {\r\n verificaEmail()\r\n }\r\n }\r\n }, [refreshed])\r\n\r\n useEffect(() => {\r\n if (!loggedIn) {\r\n verificaEmail()\r\n }\r\n }, [])\r\n\r\n return <>\r\n}\r\nexport default EmailVerification\r\n","import React, { Component } from 'react'\r\nimport CssBaseline from '@mui/material/CssBaseline'\r\nimport PropTypes from 'prop-types'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport {\r\n Button,\r\n Checkbox,\r\n Container,\r\n CircularProgress,\r\n FormControlLabel,\r\n Grid,\r\n Paper,\r\n Typography,\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { usuarioAction } from '../../_actions'\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator'\r\n\r\nconst styles = (theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9)\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3)\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n color: '#1C5585'\r\n }\r\n})\r\n\r\nclass PasswordReset extends Component {\r\n state = {\r\n email: '',\r\n token: '',\r\n password: '',\r\n repeatPassword: ''\r\n }\r\n\r\n componentDidMount() {\r\n const query = new URLSearchParams(this.props.location.search)\r\n var email = query.toString().substr(6, query.toString().indexOf('&', 0) - 6)\r\n this.setState({ email: decodeURIComponent(email) })\r\n\r\n var token = query\r\n .toString()\r\n .substr(\r\n query.toString().indexOf('token=', 0) + 6,\r\n query.toString().length - query.toString().indexOf('token=', 0) - 6\r\n )\r\n this.setState({ token: token })\r\n\r\n ValidatorForm.addValidationRule('isPasswordMatch', (value) => {\r\n if (value !== this.state.password) {\r\n return false\r\n }\r\n return true\r\n })\r\n }\r\n\r\n handleChangePassword = (prop) => (event) => {\r\n this.setState({ [prop]: event.target.value })\r\n }\r\n\r\n handleChangeRepeatPassword = (prop) => (event) => {\r\n this.setState({ [prop]: event.target.value })\r\n }\r\n\r\n handleChangeBox = (name) => (event) => {\r\n this.setState({ ...this.state, [name]: event.target.checked })\r\n }\r\n\r\n handleSubmit = (event) => {\r\n event.preventDefault()\r\n const { dispatch } = this.props\r\n let payload = {\r\n login: this.state.email,\r\n senha: this.state.password\r\n }\r\n dispatch(usuarioAction.passwordReset(payload, this.state.token))\r\n }\r\n\r\n render() {\r\n const { loading } = this.props.usuario\r\n const { classes } = this.props\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Informe e confirme a nova senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Exibir senhas\"\r\n />\r\n \r\n \r\n }\r\n >\r\n {loading ? 'Enviando informações...' : 'Alterar'}\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\nPasswordReset.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return state\r\n}\r\nconst connectedPasswordResetPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(PasswordReset))\r\n)\r\nexport { connectedPasswordResetPage as PasswordReset }\r\n","import React, { Component } from 'react'\r\nimport Button from '@mui/material/Button'\r\nimport CssBaseline from '@mui/material/CssBaseline'\r\nimport PropTypes from 'prop-types'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport Paper from '@mui/material/Paper'\r\nimport Grid from '@mui/material/Grid'\r\nimport Typography from '@mui/material/Typography'\r\nimport Container from '@mui/material/Container'\r\nimport { withStyles } from '@mui/styles'\r\nimport { history } from 'utils'\r\nimport { CircularProgress } from '@mui/material'\r\n\r\nconst styles = (theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9)\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3)\r\n },\r\n submit: {\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1)\r\n }\r\n})\r\n\r\nclass PasswordResetSuccess extends Component {\r\n\r\n handleOpenWeb = () => {\r\n history.push('/');\r\n }\r\n\r\n render() {\r\n const { loading } = this.props.usuario\r\n const { classes } = this.props\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n Senha redefinida com sucesso. Escolha a forma de login.\r\n \r\n \r\n \r\n }\r\n onClick={this.handleOpenWeb}\r\n >\r\n {loading ? 'Carregando...' : 'Login Administrador (Web)'}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\nPasswordResetSuccess.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return state\r\n}\r\nconst connectedPasswordResetSuccessPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(PasswordResetSuccess))\r\n)\r\nexport { connectedPasswordResetSuccessPage as PasswordResetSuccess }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport Typography from '@mui/material/Typography'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { faPlus, faTrashAlt } from '@fortawesome/free-solid-svg-icons'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Card,\r\n Chip,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n FormControlLabel,\r\n Grid,\r\n MenuItem,\r\n Switch,\r\n TextField\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n empresaAction,\r\n orgaoAction,\r\n cidadeAction,\r\n estadoAction,\r\n parametroAction,\r\n usuarioAction,\r\n tipoServicoAction,\r\n empresaOrgaoAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, cnpjMask, stringUtils, phoneMask, cpfMask } from '../../utils'\r\nimport { Page } from 'components'\r\nimport { isEmpty } from 'lodash'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport logo from '../../img/raiarBlue.png'\r\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom.min'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst CustomGrid = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'left'\r\n },\r\n}));\r\n\r\nconst SwitchBlue = styled(Switch)(({ theme }) => ({\r\n '& .MuiSwitch-switchBase': {\r\n '&.Mui-checked': {\r\n color: '#1C5585',\r\n }\r\n }\r\n}));\r\n\r\nconst CustomTypography = styled(Typography)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: -10,\r\n marginBottom: -8,\r\n paddingTop: -10,\r\n paddingBottom: -8,\r\n paddingRight: 3,\r\n marginRight: 3,\r\n paddingLeft: 3,\r\n marginLeft: 3\r\n },\r\n}));\r\n\r\nconst EmpresaUsuarioEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, empresa, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const location = useLocation()\r\n const isAutonomo = location?.search?.includes('type=autonomo') || props.empresa?.autonomo\r\n const isPrestador = location?.search?.includes('type=prestador') || props.empresa?.prestadorServico\r\n const isFornecedor = location?.search?.includes('type=fornecedor') || props.empresa?.fornecedor\r\n const isEngenheiro = location?.search?.includes('type=engenheiro') || props.empresa?.engenheiro\r\n const confirm = useConfirm()\r\n\r\n const [aceiteTermos, setAceiteTermos] = useState(false);\r\n const [idOrgao, setIdOrgao] = useState(0);\r\n const [textOrgao, setTextOrgao] = useState('');\r\n\r\n const [idCidade, setIdCidade] = useState(0);\r\n const [textCidade, setTextCidade] = useState('');\r\n\r\n const [valueEstado, setValueEstado] = React.useState(null);\r\n const [inputValueEstado, setInputValueEstado] = React.useState('');\r\n\r\n const [modalConfirm, setModalConfirm] = useState(false);\r\n const [value, setValue] = React.useState(null);\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [open, setOpen] = React.useState(false)\r\n const [openOrgao, setOpenOrgao] = React.useState(false)\r\n\r\n const [selectedTiposServicos, setSelectedTiposServicos] = useState([]);\r\n const [selectedEmpresaOrgaos, setSelectedEmpresaOrgaos] = useState([]);\r\n\r\n const [valueOrgao, setValueOrgao] = React.useState(null);\r\n\r\n const [valueCidade, setValueCidade] = React.useState(null);\r\n const [inputValueCidade, setInputValueCidade] = React.useState('');\r\n\r\n const { cidade } = useSelector(\r\n (state) => state.cidade\r\n )\r\n\r\n const estados = useSelector((state) => state.estado.estado)\r\n\r\n const optionsEstados = estados.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const tiposServico = useSelector((state) => state.tipoServico.tipoServico)\r\n const empresasOrgaos = useSelector((state) => state.orgao.orgao)\r\n\r\n const options = cidade.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n useEffect(() => {\r\n\r\n dispatch(orgaoAction.getOrgaoSelect())\r\n dispatch(empresaAction.clearUsuariosEmpresas())\r\n dispatch(estadoAction.getEstadoSelect())\r\n\r\n if (isEngenheiro) {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: true }))\r\n } else {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: false }))\r\n }\r\n\r\n dispatch(empresaOrgaoAction.getEmpresaOrgaos())\r\n\r\n dispatch(parametroAction.getTermoAceiteEmpresas())\r\n\r\n if (params.id) {\r\n dispatch(empresaAction.getEmpresaById(params.id))\r\n setSelectedEmpresaOrgaos(props.empresa.empresasOrgaos)\r\n } else {\r\n dispatch(empresaAction.clear())\r\n dispatch(usuarioAction.clear())\r\n dispatch(empresaAction.clearUsuariosEmpresas())\r\n }\r\n\r\n if (props.empresa.idEstado != undefined && props.empresa.idEstado !== 0 && props.empresa.idEstado !== '') {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.empresa.idEstado))\r\n }\r\n\r\n const interval = setInterval(() => {\r\n setReady(true)\r\n }, 1500);\r\n return () => clearInterval(interval);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.empresa.idCidade != 0 && params.id != undefined) {\r\n setValue(props.empresa.cidade)\r\n }\r\n }, [props.empresa.idCidade])\r\n\r\n useEffect(() => {\r\n if (valueEstado && valueEstado.id) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(valueEstado.id))\r\n }\r\n }, [valueEstado?.id])\r\n\r\n function handleChangeTipoServico(id) {\r\n const isSelected = selectedTiposServicos?.some((n) => n.idTipoServico == id)\r\n if (isSelected) {\r\n const newSelected = selectedTiposServicos?.filter((n) => n.idTipoServico != id)\r\n setSelectedTiposServicos(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idTipoServico: id,\r\n idEmpresa: props.empresa.id\r\n }\r\n setSelectedTiposServicos([...selectedTiposServicos, newSelecteds])\r\n }\r\n }\r\n\r\n const handleAddCidadeOnList = () => {\r\n if (!valueCidade || valueCidade == 0) {\r\n toast.error('Selecione uma cidade!')\r\n return\r\n }\r\n\r\n if (props.empresa.empresasCidades.filter(ts => ts.idCidade == parseInt(idCidade)).length > 0) {\r\n toast.error('Erro ao adicionar! Esta cidade já existe!')\r\n }\r\n else {\r\n props.empresa.empresasCidades.push({\r\n 'idCidade': idCidade,\r\n 'idEmpresa': props.empresa.id,\r\n 'cidade': {\r\n 'nome': textCidade\r\n }\r\n });\r\n setIdCidade(0);\r\n setValueCidade(null);\r\n }\r\n }\r\n\r\n function handleChangeEmpresaOrgaos(id) {\r\n const isSelected = selectedEmpresaOrgaos?.some((o) => o.idOrgao == id)\r\n if (isSelected) {\r\n const newSelected = selectedEmpresaOrgaos?.filter((o) => o.idOrgao != id)\r\n setSelectedEmpresaOrgaos(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idOrgao: id,\r\n idEmpresa: props.empresa.id\r\n }\r\n setSelectedEmpresaOrgaos([...selectedEmpresaOrgaos, newSelecteds])\r\n }\r\n }\r\n\r\n const isTipoServicoSelected = (id) => {\r\n if (id != undefined) {\r\n return (props.empresa?.empresasTiposServicos?.some((n) => n.idTipoServico == id) || selectedTiposServicos?.some((n) => n.idTipoServico == id))\r\n }\r\n }\r\n\r\n const isEmpresaOrgaosSelected = (id) => {\r\n if (id != undefined) {\r\n return (props.empresa?.empresasOrgaos?.some((o) => o.idOrgao == id) || selectedEmpresaOrgaos?.some((o) => o.id == id))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (props.empresa.idEstado) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.empresa.idEstado))\r\n }\r\n }, [props.empresa.idEstado])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n handleChangeAutoComplete(value)\r\n }\r\n }, [value])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n if (obj != null) {\r\n let selected = cidade.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n cidadeAction.changeDetailsCidade(\r\n selected[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpen(false)\r\n }\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n setIdOrgao(obj.id);\r\n setTextOrgao(obj.nome);\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.usuariosEmpresas])\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.empresa.isLoading])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(empresaAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleChangeUsuario = (prop) => (event) => {\r\n dispatch(usuarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n props.empresa.empresasTiposServicos = selectedTiposServicos;\r\n forceUpdate(n => !n);\r\n }, [selectedTiposServicos])\r\n\r\n useEffect(() => {\r\n props.empresa.empresasOrgaos = selectedEmpresaOrgaos;\r\n forceUpdate(n => !n);\r\n }, [selectedEmpresaOrgaos])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.empresasTiposServicos])\r\n\r\n useEffect(() => {\r\n if (isEngenheiro) {\r\n setSelectedTiposServicos([{ idTipoServico: tiposServico[0]?.id, nome: tiposServico[0]?.nome }]);\r\n }\r\n }, [isEngenheiro, tiposServico])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.empresa.empresasOrgaos])\r\n\r\n const handleChangeAutoCompleteCidade = (obj) => {\r\n if (obj != null) {\r\n setIdCidade(obj.id);\r\n setTextCidade(obj.nome);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (valueCidade) {\r\n handleChangeAutoCompleteCidade(valueCidade)\r\n }\r\n }, [valueCidade])\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n razaoSocial: isAutonomo ? `${props.usuario.nome} ${props.usuario.sobrenome}` : props.empresa.razaoSocial,\r\n nomeFantasia: isAutonomo ? `${props.usuario.nome} ${props.usuario.sobrenome}` : props.empresa.nomeFantasia,\r\n cnpj: props.empresa.cnpj ? props.empresa.cnpj.split('.').join('').replace(/[-/.]/g, '') : null,\r\n cpf: props.empresa.cpf ? props.empresa.cpf.split('.').join('').replace(/[-/.]/g, '') : null,\r\n celular: isAutonomo ? props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : props.empresa.celular ? props.empresa.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : '',\r\n email: isAutonomo ? props.usuario.email.toLowerCase() : props.empresa.email ? props.empresa.email.toLowerCase() : '',\r\n telefone: isAutonomo ? props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : props.empresa.telefone ? props.empresa.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', '') : '',\r\n endereco: props.empresa.endereco,\r\n inscricaoEstadual: props.empresa.inscricaoEstadual,\r\n idCidade: value ? value.id : props.empresa.idCidade,\r\n idEstado: props.empresa.idEstado,\r\n usuariosEmpresas: props.empresa.usuariosEmpresas,\r\n empresasOrgaos: props.empresa.empresasOrgaos,\r\n empresasCidades: props.empresa.empresasCidades,\r\n fornecedor: isFornecedor,\r\n autonomo: isAutonomo,\r\n projeto: isEngenheiro,\r\n prestadorServico: isPrestador,\r\n atendeFimDeSemana: props.empresa.atendeFimDeSemana,\r\n servicosUrgencia: props.empresa.servicosUrgencia,\r\n empresasTiposServicos: selectedTiposServicos,\r\n usuariosEmpresas: [\r\n {\r\n id: 0,\r\n idUsuario: 0,\r\n idEmpresa: 0,\r\n usuario:\r\n {\r\n nome: props.usuario.nome,\r\n senha: props.usuario.senha,\r\n sobrenome: props.usuario.sobrenome,\r\n email: props.usuario.email.toLowerCase(),\r\n idTipoUsuario: 3,\r\n celular: props.usuario.celular && props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n matricula: props.usuario.matricula,\r\n telefone: props.usuario.telefone && props.usuario.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n }\r\n }\r\n ]\r\n }\r\n\r\n if (isEngenheiro || props.empresa.empresasTiposServicos.length > 0) {\r\n dispatch(empresaAction.createEmpresaApp(payload))\r\n } else {\r\n toast.error('Selecione ao menos um tipo de serviço')\r\n }\r\n };\r\n\r\n const handleModalConfirm = (event) => {\r\n\r\n setModalConfirm(true);\r\n\r\n }\r\n\r\n const handleRemoveCidadeOnList = id => {\r\n confirm({\r\n title: 'Você deseja excluir esta cidade?',\r\n description: 'Essa operação desvinculará a cidade desta empresa',\r\n disabled: props.empresa.isLoading,\r\n confirmationText: props.empresa.isLoading ? 'Excluindo cidade...' : 'Sim, excluir!',\r\n }).then(() => {\r\n props.empresa.empresasCidades = props.empresa.empresasCidades.filter(ts => ts.idCidade != parseInt(id));\r\n forceUpdate(n => !n);\r\n })\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {isAutonomo ? 'Cadastro de Profissional Autônomo' : isEngenheiro ? 'Cadastro de Engenheiro/Arquiteto/Orçamentista' : 'Cadastro de Prestador de Serviços'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n handleModalConfirm(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n {!isAutonomo &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {isAutonomo &&\r\n \r\n \r\n \r\n }\r\n {!isAutonomo &&\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n {!isAutonomo &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Estado\r\n \r\n {!isEmpty(estados) &&\r\n undefined !== estados &&\r\n estados.length &&\r\n estados.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n setValue(newValue);\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={value}\r\n getOptionLabel={option => option.nome || ''}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {(isPrestador || isFornecedor) &&\r\n <>\r\n \r\n }\r\n label=\"Fornecedor\"\r\n />\r\n \r\n }\r\n label=\"Prestador de Serviço\"\r\n />\r\n \r\n }\r\n \r\n }\r\n label=\"Atende em Finais de Semana\"\r\n />\r\n \r\n }\r\n label=\"Realiza Serviços de Urgência\"\r\n />\r\n \r\n \r\n <>\r\n \r\n \r\n Tipos de serviços oferecidos pela empresa *\r\n \r\n \r\n \r\n {tiposServico && tiposServico != undefined && tiposServico.length > 0 &&\r\n tiposServico.map((n, index) => (\r\n handleChangeTipoServico(n.id)}\r\n variant={isTipoServicoSelected(n.id) ? \"filled\" : \"outlined\"} style={{ backgroundColor: isTipoServicoSelected(n.id) && '#015192', color: isTipoServicoSelected(n.id) ? '#FFFFFF' : '#000000', margin: 5 }} />\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n Órgãos de interesse *\r\n \r\n \r\n \r\n {empresasOrgaos && empresasOrgaos != undefined && empresasOrgaos.length > 0 &&\r\n empresasOrgaos.map((o, index) => (\r\n handleChangeEmpresaOrgaos(o.value)}\r\n variant={isEmpresaOrgaosSelected(o.value) ? \"filled\" : \"outlined\"} style={{ backgroundColor: isEmpresaOrgaosSelected(o.value) && '#015192', color: isEmpresaOrgaosSelected(o.value) ? '#FFFFFF' : '#000000', margin: 5 }} />\r\n ))\r\n }\r\n \r\n \r\n \r\n Cidades de Interesse\r\n \r\n \r\n \r\n {\r\n setValueEstado(newValueEstado);\r\n }}\r\n inputValue={inputValueEstado}\r\n onInputChange={(event, newInputValueEstado) => {\r\n setInputValueEstado(newInputValueEstado);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsEstados}\r\n defaultValue={null}\r\n getOptionLabel={option => option?.nome}\r\n renderInput={(params) => }\r\n />\r\n \r\n \r\n {\r\n setValueCidade(newValueCidade);\r\n }}\r\n inputValue={inputValueCidade}\r\n onInputChange={(event, newInputValueCidade) => {\r\n setInputValueCidade(newInputValueCidade);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueCidade}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n (props.empresa.empresasCidades != null && props.empresa.empresasCidades.length > 0 ?\r\n props.empresa.empresasCidades.map(n => {\r\n return (\r\n (n.id !== '' && n.idCidade ?\r\n }\r\n onDelete={() => handleRemoveCidadeOnList(n.idCidade)}\r\n />\r\n : null)\r\n );\r\n })\r\n : null)\r\n }\r\n \r\n \r\n \r\n {!isAutonomo &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n {!isAutonomo &&\r\n <>\r\n Cadastro de Usuário}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isAutonomo &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/login')}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.empresa.isLoading && }\r\n >\r\n {props.empresa.isLoading ? 'Salvando empresa...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modalConfirm ?\r\n setModalConfirm(false)}\r\n >\r\n \r\n \r\n \r\n \r\n CONFIRMAÇÃO DE ACEITE DOS TERMOS DE USO\r\n \r\n \r\n setModalConfirm(false)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Ao se cadastrar, você confirma que está de acordo com o Termo a seguir:\r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.parametro.valor ?\r\n \r\n \r\n : 'Sem contrato'\r\n }\r\n \r\n \r\n \r\n setAceiteTermos(!aceiteTermos)}\r\n />\r\n }\r\n label=\"Eu li e aceito os termos presentes no Contrato listado acima\"\r\n />\r\n \r\n {aceiteTermos &&\r\n handleSubmit(event)}\r\n variant=\"contained\"\r\n dark={true}\r\n startIcon={}\r\n endIcon={props.empresa.isLoading && }\r\n >\r\n {params.id ? (props.empresa.isLoading ? 'Salvando...' : 'Salvar') : (props.empresa.isLoading ? 'Salvando...' : 'Salvar')}\r\n \r\n }\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedEmpresaUsuarioEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpresaUsuarioEdit))\r\n)\r\nexport { connectedEmpresaUsuarioEditPage as EmpresaUsuarioEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport { withStyles } from '@mui/styles'\r\nimport Typography from '@mui/material/Typography'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n Autocomplete,\r\n Badge,\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Grid,\r\n MenuItem,\r\n Switch,\r\n TextField,\r\n FormControlLabel\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n orgaoAction,\r\n cidadeAction,\r\n estadoAction,\r\n usuarioAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, cnpjMask, stringUtils, phoneMask } from '../../utils'\r\nimport { Page } from 'components'\r\nimport { isEmpty } from 'lodash'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport logo from '../../img/raiarBlue.png'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst SwitchBlue = styled(Switch)(({ theme }) => ({\r\n '& .MuiSwitch-switchBase': {\r\n '&.Mui-checked': {\r\n color: '#1C5585',\r\n }\r\n }\r\n}));\r\n\r\nconst OrgaoUsuarioEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, orgao, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const confirm = useConfirm()\r\n\r\n const [idOrgao, setIdOrgao] = useState(0);\r\n const [textOrgao, setTextOrgao] = useState('');\r\n\r\n const [value, setValue] = React.useState(null);\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [open, setOpen] = React.useState(false)\r\n const [openOrgao, setOpenOrgao] = React.useState(false)\r\n\r\n const [valueOrgao, setValueOrgao] = React.useState(null);\r\n\r\n const { cidade } = useSelector(\r\n (state) => state.cidade\r\n )\r\n\r\n const estados = useSelector((state) => state.estado.estado)\r\n\r\n const options = cidade.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n useEffect(() => {\r\n\r\n dispatch(orgaoAction.clearUsuariosOrgaos())\r\n dispatch(estadoAction.getEstadoSelect())\r\n\r\n if (params.id) {\r\n dispatch(orgaoAction.getOrgaoById(params.id))\r\n } else {\r\n dispatch(orgaoAction.clear())\r\n dispatch(usuarioAction.clear())\r\n dispatch(orgaoAction.clearUsuariosOrgaos())\r\n }\r\n\r\n if (props.orgao.idEstado != undefined && props.orgao.idEstado !== 0 && props.orgao.idEstado !== '') {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.orgao.idEstado))\r\n }\r\n\r\n const interval = setInterval(() => {\r\n setReady(true)\r\n }, 1500);\r\n return () => clearInterval(interval);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.orgao.idCidade != 0 && params.id != undefined) {\r\n setValue(props.orgao.cidade)\r\n }\r\n }, [props.orgao.idCidade])\r\n\r\n useEffect(() => {\r\n if (props.orgao.idEstado) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.orgao.idEstado))\r\n }\r\n }, [props.orgao.idEstado])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n handleChangeAutoComplete(value)\r\n }\r\n }, [value])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n if (obj != null) {\r\n let selected = cidade.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n cidadeAction.changeDetailsCidade(\r\n selected[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpen(false)\r\n }\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n setIdOrgao(obj.id);\r\n setTextOrgao(obj.nome);\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.orgao.orgaosOrgaos])\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.orgao.usuariosOrgaos])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(orgaoAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleChangeUsuario = (prop) => (event) => {\r\n dispatch(usuarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n nome: props.orgao.nome,\r\n idCidade: value ? value.id : 0,\r\n idEstado: props.orgao.idEstado,\r\n celular: props.orgao.celular && props.orgao.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n cnpj: props.orgao.cnpj && props.orgao.cnpj.split('.').join('').replace(/[-/.]/g, ''),\r\n email: props.orgao.email ? props.orgao.email.toLowerCase() : '',\r\n endereco: props.orgao.endereco,\r\n telefone: props.orgao.telefone && props.orgao.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n mapaPublico: props.orgao.mapaPublico,\r\n usuariosOrgaos: [\r\n {\r\n id: 0,\r\n idUsuario: 0,\r\n idOrgao: 0,\r\n usuario:\r\n {\r\n nome: props.usuario.nome,\r\n senha: props.usuario.senha,\r\n sobrenome: props.usuario.sobrenome,\r\n email: props.usuario.email.toLowerCase(),\r\n idTipoUsuario: 2,\r\n celular: props.usuario.celular && props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n matricula: props.usuario.matricula,\r\n telefone: props.usuario.telefone && props.usuario.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n }\r\n }\r\n ]\r\n }\r\n\r\n dispatch(orgaoAction.createOrgaoApp(payload))\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Cadastro de Órgão Público'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Estado *\r\n \r\n {!isEmpty(estados) &&\r\n undefined !== estados &&\r\n estados.length &&\r\n estados.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n setValue(newValue);\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={value}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Permite a visualização pública da obra?\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Dados de Contato do Órgão\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cadastro de Usuário}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/login')}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.orgao.isLoading && }\r\n >\r\n {props.orgao.isLoading ? 'Salvando orgao...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedOrgaoUsuarioEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(OrgaoUsuarioEdit))\r\n)\r\nexport { connectedOrgaoUsuarioEditPage as OrgaoUsuarioEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport {\r\n Avatar,\r\n Grid,\r\n Link,\r\n CircularProgress,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Input,\r\n Button,\r\n Skeleton,\r\n TablePagination,\r\n MenuItem,\r\n IconButton,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { insumoAction, obraEtapaItemAction } from '../../_actions'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { history } from 'utils'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { isEmpty } from 'lodash'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { stringUtils } from '../../utils'\r\n\r\nconst styles = {\r\n //position: 'absolute',\r\n //top: '50%',\r\n //left: '50%',\r\n //transform: 'translate(-50%, -50%)',\r\n bgcolor: 'background.paper',\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n p: 4\r\n};\r\n\r\nexport const InsumoModal = ({ modal, toggle, props, ano, mes, uf, tipoTabela, onerado }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, ...rest } = props\r\n\r\n const { totalRegistros } = props.insumo\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n //const { idLoja } = useSelector(\r\n // (state) => state.usuarioLoja\r\n //)\r\n const isLoadingInsumoModal = useSelector(\r\n (state) => state.insumo.isLoading\r\n )\r\n\r\n const { tipoServico } = useSelector(\r\n (state) => state.tipoServico)\r\n\r\n const { unidade } = useSelector(\r\n (state) => state.unidade)\r\n\r\n const [nomeClasse, setNomeClasse] = useState('');\r\n const [nomeUnidade, setNomeUnidade] = useState('');\r\n\r\n useEffect(() => {\r\n dispatch(insumoAction.clear());\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term.toUpperCase(),\r\n Order: order,\r\n Direction: direction,\r\n Ano: ano,\r\n Mes: mes,\r\n Uf: uf,\r\n TipoTabela: tipoTabela,\r\n NomeClasse: nomeClasse ? stringUtils.removeDiacritics(nomeClasse) : '',\r\n NomeUnidade: nomeUnidade\r\n };\r\n\r\n dispatch(insumoAction.getInsumos(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction, nomeClasse, nomeUnidade, ano, mes, uf);\r\n\r\n }, [page, limit, debounceTerm, order, direction, nomeClasse, nomeUnidade, ano, mes, uf]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.empresa.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeUnidade = prop => event => {\r\n setNomeUnidade(event.target.value);\r\n };\r\n\r\n const handleChangeClasse = prop => event => {\r\n setNomeClasse(event.target.value);\r\n };\r\n\r\n const handleClick = (insumo) => {\r\n\r\n var event1 = {\r\n type: 'text',\r\n target: {\r\n value: insumo.codigo\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('codigo', event1))\r\n\r\n var event2 = {\r\n type: 'text',\r\n target: {\r\n value: insumo.nome\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('descritivo', event2))\r\n\r\n var filteredUnidades = props.unidade.unidade.filter(obj => obj.text == insumo.unidade.nome);\r\n if (filteredUnidades.length > 0) {\r\n\r\n var event3 = {\r\n type: 'selectValidator',\r\n target: {\r\n value: filteredUnidades[0].value\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('idUnidade', event3))\r\n\r\n }\r\n\r\n var filteredTiposServicos = props.tipoServico.tipoServico.filter(obj => stringUtils.removeDiacritics(obj.nome) == stringUtils.removeDiacritics(insumo.classe.nome));\r\n if (filteredTiposServicos.length > 0) {\r\n\r\n var event4 = {\r\n type: 'selectValidator',\r\n target: {\r\n value: filteredTiposServicos[0].id\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('idTipoServico', event4))\r\n\r\n }\r\n\r\n var event5 = {\r\n type: 'text',\r\n target: {\r\n value: (onerado ? insumo.valorOnerado : insumo.valorNaoOnerado)\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('valorReferencia', event5))\r\n\r\n toggle();\r\n }\r\n\r\n const handleClose = () => {\r\n toggle();\r\n history.push('/pedidosCompras');\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n INSUMOS\r\n \r\n \r\n (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tipo de Serviço\r\n \r\n {!isEmpty(tipoServico) &&\r\n undefined !== tipoServico &&\r\n tipoServico.length &&\r\n tipoServico.map((row) => (\r\n \r\n {row.nome}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n Unidade\r\n \r\n {!isEmpty(unidade) &&\r\n undefined !== unidade &&\r\n unidade.length &&\r\n unidade.map((row) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Nome\r\n Classe\r\n Unidade\r\n Valor\r\n Ações\r\n \r\n \r\n {isLoadingInsumoModal ?\r\n \r\n {Array.apply(null, { length: 10 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n :\r\n \r\n {props.insumo != null && props.insumo != undefined && props.insumo.insumo != null && props.insumo.insumo != undefined ?\r\n props.insumo.insumo.map((n) => {\r\n return (\r\n \r\n \r\n {n.codigo}\r\n \r\n \r\n {n.nome}\r\n \r\n \r\n {(n.classe ? n.classe.nome : '')}\r\n \r\n \r\n {(n.unidade ? n.unidade.nome : '')}\r\n \r\n \r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format((onerado ? n.valorOnerado : n.valorNaoOnerado))}\r\n \r\n \r\n\r\n handleClick(n)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n \r\n Nenhum registro encontrado para o período selecionado\r\n \r\n \r\n }\r\n \r\n }\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n \r\n
\r\n \r\n {/**/}\r\n {/* */}\r\n {/*{({ style }) => (*/}\r\n <>\r\n \r\n {/* (*/}\r\n {/* */}\r\n {/* */}\r\n {/* }*/}\r\n {/* endIcon={props.insumo.isLoading && }*/}\r\n {/* onClick={(event) => handleDownloadFile(event, props.insumo.id)}*/}\r\n {/* >*/}\r\n {/* {(props.insumo.isLoading ? 'Baixando...' : 'Baixar')}*/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* )}*/}\r\n {/*/>*/}\r\n \r\n \r\n {/*)}*/}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n )\r\n}\r\n","import {\r\n Chip,\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TablePagination,\r\n TableRow,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { Page } from 'components'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport PropTypes from 'prop-types'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { useDebounce } from 'use-debounce'\r\nimport { authActions, manualAction } from '../../_actions'\r\nimport TitleContent from '../TitleContent'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Manual = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { manual } = props.manual\r\n const { totalRegistros } = props.manual\r\n const { isLoading } = props.manual\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('nome');\r\n const [direction] = useState('asc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction\r\n };\r\n\r\n dispatch(manualAction.getManual(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.manual.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este Manual?',\r\n description: 'Essa operação é irreversível',\r\n confirmationText: 'Sim, excluir!',\r\n disabled: props.manual.isLoading,\r\n confirmationText: props.manual.isLoading ? 'Excluindo manual...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(manualAction.deleteManualById(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n {undefined !== manual && manual.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n O administrador do sistema terá acesso a todos manuais\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Nome\r\n {authActions.isGestor() ? Tipo(s) de Usuário(s) com Acesso : null}\r\n Descrição\r\n {authActions.isGestor() ? 'Ações' : 'Ação'}\r\n \r\n \r\n \r\n {undefined !== manual && manual.length\r\n ? manual.map((n) => {\r\n return (\r\n \r\n \r\n {n.nome ? n.nome.toUpperCase() : ''}\r\n \r\n {authActions.isGestor() ?\r\n \r\n <>\r\n \r\n {n.tiposUsuariosManuais?.map((t) => (\r\n \r\n ))}\r\n \r\n \r\n : null}\r\n \r\n {n.descricao ? n.descricao.toUpperCase() : ''}\r\n \r\n \r\n {n.link ? \r\n window.open(n.link, '_blank')\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n (\r\n \r\n history.push(`/manual/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map(() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {authActions.isGestor()\r\n &&\r\n <>\r\n \r\n \r\n \r\n }\r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n}\r\nManual.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n manual: state.manual\r\n }\r\n}\r\nconst connectedManualPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Manual))\r\n)\r\nexport { connectedManualPage as Manual }\r\n\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Chip,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n Typography,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n} from 'react-material-ui-form-validator'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n manualAction,\r\n tipoUsuarioAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { MANUAIS_CATEGORIAS, TIPO_USUARIO, history, stringUtils } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst CustomCardActions = styled(CardActions)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'block',\r\n textAlign: 'center'\r\n },\r\n}));\r\n\r\nconst CustomGridButtonsAction = styled(Grid)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlign: 'right',\r\n justifyContent: 'right',\r\n [theme.breakpoints.down('sm')]: {\r\n paddingTop: 3,\r\n display: 'block',\r\n textAlign: 'center'\r\n },\r\n}));\r\n\r\nconst ManualEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, orgao, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const [selectedTiposUsuarios, setSelectedTiposUsuarios] = useState([]);\r\n\r\n const [valueCategoria, setValueCategoria] = useState(null);\r\n const [inputValueCategoria, setInputValueCategoria] = useState('');\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n\r\n const options = Object.keys(MANUAIS_CATEGORIAS)\r\n .map(key => ({\r\n id: MANUAIS_CATEGORIAS[key],\r\n nome: key.replace(/_/g, ' ').toUpperCase()\r\n }))\r\n .sort((a, b) => a.nome.localeCompare(b.nome)); // ordena em ordem alfabética as opções\r\n\r\n useEffect(() => {\r\n\r\n if (params.id) {\r\n dispatch(manualAction.getManualById(params.id))\r\n dispatch(tipoUsuarioAction.getTiposUsuarioSelect())\r\n\r\n if (props.manual && props.manual.tiposUsuariosManuais && props.manual.tiposUsuariosManuais.length > 0) {\r\n setSelectedTiposUsuarios(props.manual.tiposUsuariosManuais)\r\n }\r\n\r\n } else {\r\n dispatch(manualAction.clear())\r\n dispatch(tipoUsuarioAction.clear())\r\n }\r\n\r\n }, []);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n if (params.id != undefined && props.manual.categoria != 0) {\r\n setValueCategoria({\r\n 'id': options?.find(m => m.id == props.manual.categoria)?.id,\r\n 'nome': options?.find(m => m.id == props.manual.categoria)?.nome\r\n })\r\n }\r\n }, [props.manual.categoria])\r\n\r\n const tiposUsuarios = useSelector((state) => state.tipoUsuario.tipoUsuario)\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(manualAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n if (valueCategoria) {\r\n handleChangeAutoComplete(valueCategoria)\r\n }\r\n }, [valueCategoria])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n if (obj != null) {\r\n let selected = options.filter(\r\n (item) => item.id == obj.id\r\n )\r\n\r\n dispatch(manualAction.changeDetailsManual(selected[0]))\r\n\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n nome: props.manual.nome,\r\n descricao: props.manual.descricao,\r\n categoria: valueCategoria.id,\r\n link: props.manual.link,\r\n tiposUsuariosManuais: selectedTiposUsuarios\r\n }\r\n\r\n if (params.id) {\r\n if (props.manual.tiposUsuariosManuais.length > 0) {\r\n dispatch(manualAction.editManualInfo(params.id, payload, true))\r\n } else {\r\n toast.error('Selecione ao menos um tipo de usuário para visualizar o manual')\r\n }\r\n } else {\r\n dispatch(manualAction.createManual(payload))\r\n }\r\n\r\n };\r\n\r\n function handleChangeTipoUsuario(id) {\r\n const isSelected = selectedTiposUsuarios?.some((n) => n.idTipoUsuario == id)\r\n if (isSelected) {\r\n const newSelected = selectedTiposUsuarios?.filter((n) => n.idTipoUsuario != id)\r\n setSelectedTiposUsuarios(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idTipoUsuario: id,\r\n idManual: props.manual.id\r\n }\r\n setSelectedTiposUsuarios([...selectedTiposUsuarios, newSelecteds])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n props.manual.tiposUsuariosManuais = selectedTiposUsuarios;\r\n forceUpdate(n => !n);\r\n }, [selectedTiposUsuarios])\r\n\r\n\r\n const isTipoUsuarioSelected = (id) => {\r\n if (id != undefined) {\r\n return (props.manual?.tiposUsuariosManuais?.some((n) => n.idTipoUsuario == id) || selectedTiposUsuarios?.some((n) => n.idTipoUsuario == id))\r\n }\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Manual'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Manual'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValueCategoria(newValueCategoria);\r\n }}\r\n inputValue={inputValueCategoria}\r\n onInputChange={(event, newInputValueCategoria) => {\r\n setInputValueCategoria(newInputValueCategoria);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueCategoria}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n {params.id &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Tipos de usuários que terão acesso ao manual *\r\n \r\n \r\n \r\n {tiposUsuarios && tiposUsuarios != undefined && tiposUsuarios.length > 0 &&\r\n tiposUsuarios.map((n) => (\r\n //O ADMIN JÁ TERÁ ACESSO A TUDO, ENTÃO NÃO VAI PRECISAR SELECIONAR ELE\r\n n.value != TIPO_USUARIO.ADMIN ?\r\n handleChangeTipoUsuario(n.value)}\r\n variant={isTipoUsuarioSelected(n.value) ? \"filled\" : \"outlined\"} style={{ backgroundColor: isTipoUsuarioSelected(n.value) && '#F2D647', color: isTipoUsuarioSelected(n.value) && '#000000', margin: 5 }} />\r\n : null))\r\n }\r\n \r\n \r\n }\r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/manuais')}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.manual.isLoading && }\r\n >\r\n {params.id ? (props.manual.isLoading ? 'Atualizando manual...' : 'Atualizar') : (props.manual.isLoading ? 'Salvando manual...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nManualEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedManualEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ManualEdit))\r\n)\r\nexport { connectedManualEditPage as ManualEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { notificacaoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Checkbox,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n Tooltip,\r\n Input,\r\n Grid,\r\n FormControlLabel,\r\n TablePagination\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { MANUAIS_CATEGORIAS, history } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport moment from 'moment'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Notificacao = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { notificacao } = props.notificacao\r\n const { totalRegistros } = props.notificacao\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('dataHora');\r\n const [direction] = useState('desc');\r\n const [automatic, setAutomatic] = useState(false);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Automatica: automatic\r\n };\r\n\r\n dispatch(notificacaoAction.getNotificacao(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, automatic]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.notificacao.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta notificação?',\r\n description: 'Essa operação é irreversível',\r\n confirmationText: 'Sim, excluir!',\r\n disabled: props.notificacao.isLoading,\r\n confirmationText: props.notificacao.isLoading ? 'Excluindo notificação...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(notificacaoAction.deleteNotificacaoById(id))\r\n })\r\n }\r\n\r\n const handleDuplicate = (id) => {\r\n confirm({\r\n title: 'Você deseja duplicar esta notificação?',\r\n description: 'Essa operação é irreversível',\r\n confirmationText: 'Sim, duplicar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(notificacaoAction.duplicateNotificacao(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== notificacao && notificacao.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setAutomatic(event.target.checked)}\r\n value=\"showNotificationAutomatic\"\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Exibir também as notificações automáticas\"\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data/Hora\r\n Data/Hora Envio\r\n Título\r\n Ações\r\n \r\n \r\n \r\n {undefined !== notificacao && notificacao.length\r\n ? notificacao.map((n) => {\r\n return (\r\n \r\n \r\n {moment(n.dataHora).format(\"DD/MM/YYYY HH:mm\")}\r\n \r\n \r\n {(n.dataHoraEnvio ? moment(n.dataHoraEnvio).format(\"DD/MM/YYYY HH:mm\") : '')}\r\n \r\n \r\n {n.titulo}\r\n \r\n \r\n (\r\n handleDuplicate(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n history.push(`/notificacao/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n\r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )}\r\n no={() => }\r\n />\r\n\r\n
\r\n )\r\n}\r\nNotificacao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n notificacao: state.notificacao\r\n }\r\n}\r\nconst connectedNotificacaoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Notificacao))\r\n)\r\nexport { connectedNotificacaoPage as Notificacao }\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TablePagination,\r\n MenuItem,\r\n Input,\r\n Skeleton\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { notificacaoAction, notificacaoFiltroAction, usuarioAction } from '_actions'\r\nimport { useDispatch, useSelector, connect } from 'react-redux'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlign: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 300,\r\n width: 500,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ModalNotificacaoFiltrosItens = (props) => {\r\n\r\n const [selectedItems, setSelectedItems] = useState([])\r\n const [idTipoUsuario, setIdTipoUsuario] = useState(0);\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const formRef = React.createRef(null);\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order, setOrder] = useState('nome');\r\n const [direction, setDirection] = useState('asc');\r\n\r\n const { openModalNotificacaoFiltrosItens, isLoading } = useSelector(\r\n (state) => state.notificacao\r\n )\r\n\r\n const { usuario } = useSelector(\r\n (state) => state.usuario\r\n )\r\n\r\n const isLoadingTipoUsuario = useSelector(\r\n (state) => state.tipoUsuario.isLoading\r\n )\r\n\r\n const totalRegistrosUsuarios = useSelector(\r\n (state) => state.tipoUsuario.totalRegistros\r\n )\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Id: idTipoUsuario\r\n };\r\n\r\n if (props.notificacaoFiltro.filtro == 'usuariosAdmin') {\r\n setIdTipoUsuario(1);\r\n } else if (props.notificacaoFiltro.filtro == 'usuariosGestorOrgaoPublico') {\r\n setIdTipoUsuario(2);\r\n } else if (props.notificacaoFiltro.filtro == 'usuariosEmpresa') {\r\n setIdTipoUsuario(3);\r\n } else if (props.notificacaoFiltro.filtro == 'usuariosSistema') {\r\n setIdTipoUsuario(4);\r\n } else {\r\n dispatch(usuarioAction.clear())\r\n }\r\n\r\n if (idTipoUsuario != 0) {\r\n dispatch(usuarioAction.getUsuarioByTipo(filterModel));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [idTipoUsuario])\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n setSelectedItems([])\r\n }, [props.notificacaoFiltro.filtro]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistrosUsuarios]);\r\n\r\n useEffect(() => {\r\n setSelectedItems([])\r\n }, [openModalNotificacaoFiltrosItens]);\r\n\r\n const handleClose = () => {\r\n dispatch(notificacaoAction.openModalNotificacaoFiltrosItens(false))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault()\r\n let payload = {\r\n id: 0,\r\n idNotificacao: props.notificacao.id,\r\n filtro: props.notificacaoFiltro.filtro,\r\n notificacoesFiltrosItens: selectedItems ? selectedItems : []\r\n }\r\n\r\n dispatch(notificacaoFiltroAction.createNotificacaoFiltro(payload))\r\n dispatch(notificacaoAction.openModalNotificacaoFiltrosItens(false))\r\n\r\n }\r\n\r\n const handleClick = (id) => {\r\n const isSelected = selectedItems.some((n) => n.chave == id)\r\n if (isSelected) {\r\n const newSelected = selectedItems.filter((n) => n.chave !== id)\r\n setSelectedItems(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idNotificaoFiltro: 0,\r\n chave: id\r\n }\r\n setSelectedItems([...selectedItems, newSelecteds])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [selectedItems])\r\n\r\n const isItemSelected = (id) => {\r\n return selectedItems.some((n) => n.chave == id)\r\n }\r\n\r\n const handleChangeNotificacaoFiltro = (prop) => (event) => {\r\n dispatch(notificacaoFiltroAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n Seleção de itens para o filtro\r\n \r\n
\r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n \r\n }\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n id=\"filtro\"\r\n >\r\n Usuários administradores cadastrados no sistema\r\n Usuários gestores de órgão público cadastrados no sistema\r\n Usuários de empresas cadastrados no sistema\r\n Usuários do tipo sistema cadastrados no sistema\r\n \r\n \r\n {props.notificacaoFiltro.filtro !== 'usuariosCadastradosApp' ?\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n Ações\r\n \r\n \r\n \r\n {(props.notificacaoFiltro.filtro == 'usuariosAdmin' || props.notificacaoFiltro.filtro == 'usuariosGestorOrgaoPublico' || props.notificacaoFiltro.filtro == 'usuariosEmpresa' || props.notificacaoFiltro.filtro == 'usuariosSistema') ?\r\n (undefined !== usuario && usuario.length\r\n ? usuario.map((n) => {\r\n return (\r\n \r\n \r\n {n.nome ? n.nome.toUpperCase() : ''} {n.sobrenome ? n.sobrenome.toUpperCase() : ''}\r\n \r\n \r\n handleClick(n.id)}\r\n sx={{\r\n color: '#1C5585',\r\n '&.Mui-checked': {\r\n color: '#1C5585',\r\n }\r\n }}\r\n checked={isItemSelected(n.id)}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n isLoadingTipoUsuario ?\r\n Array.apply(null, { length: 10 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n :\r\n \r\n Nenhum registro encontrado\r\n \r\n )\r\n )\r\n : null}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n : null}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n {isLoading\r\n ? 'Salvando...'\r\n : 'Salvar'}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nModalNotificacaoFiltrosItens.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedModalNotificacaoFiltrosItensPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ModalNotificacaoFiltrosItens))\r\n)\r\nexport { connectedModalNotificacaoFiltrosItensPage as ModalNotificacaoFiltrosItens }\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TablePagination,\r\n Input,\r\n Skeleton\r\n} from '@mui/material'\r\nimport { notificacaoAction } from '_actions'\r\nimport { useDispatch, useSelector, connect } from 'react-redux'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\nimport { notificacaoUsuarioAction } from '../../_actions'\r\nimport { useDebounce } from 'use-debounce';\r\nimport moment from 'moment'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlign: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 300,\r\n width: 500,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ModalNotificacaoUsuarios = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order, setOrder] = useState('nome');\r\n const [direction, setDirection] = useState('asc');\r\n\r\n const { notificacaoUsuario, totalRegistros, isLoading } = useSelector(\r\n (state) => state.notificacaoUsuario\r\n )\r\n\r\n const { openModalNotificacaoUsuarios, loading } = useSelector(\r\n (state) => state.notificacao\r\n )\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdNotificacao: props.notificacao.id\r\n };\r\n\r\n dispatch(notificacaoUsuarioAction.getNotificacaoUsuario(filterModel, true));\r\n\r\n };\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, []);\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [openModalNotificacaoUsuarios])\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n useEffect(() => {\r\n }, [notificacaoUsuario]);\r\n\r\n const handleClose = () => {\r\n dispatch(notificacaoAction.openModalNotificacaoUsuarios(false))\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n Listagem de usuários que receberão a notificação\r\n \r\n \r\n \r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n E-mail\r\n Abertura\r\n \r\n \r\n \r\n {(undefined !== notificacaoUsuario && notificacaoUsuario.length\r\n ? notificacaoUsuario.map((n) => {\r\n return (\r\n \r\n \r\n {n.usuario ? (n.usuario.nome ? n.usuario.nome : '') : ''}\r\n \r\n \r\n {n.usuario ? (n.usuario.email ? n.usuario.email : '') : ''}\r\n \r\n \r\n {(n.dataHoraAbertura ? moment(n.dataHoraAbertura).format(\"DD/MM/YYYY HH:mm\") : '')}\r\n \r\n \r\n )\r\n })\r\n :\r\n\r\n (\r\n isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n :\r\n \r\n Nenhum registro encontrado\r\n \r\n )\r\n\r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nModalNotificacaoUsuarios.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedModalNotificacaoUsuariosPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ModalNotificacaoUsuarios))\r\n)\r\nexport { connectedModalNotificacaoUsuariosPage as ModalNotificacaoUsuarios }\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n Paper,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TablePagination,\r\n Input\r\n} from '@mui/material'\r\nimport { notificacaoAction, notificacaoUsuarioAction } from '_actions'\r\nimport { useDispatch, useSelector, connect } from 'react-redux'\r\nimport { withStyles } from '@mui/styles'\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport { withRouter } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlign: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 300,\r\n width: 500,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ModalNotificacaoTestes = (props, { idTipoUsuario }) => {\r\n\r\n const dispatch = useDispatch()\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order, setOrder] = useState('nome');\r\n const [direction, setDirection] = useState('asc');\r\n const [selectedUsuarios, setSelectedUsuarios] = useState([]);\r\n\r\n const { notificacaoUsuario, totalRegistros, isLoading } = useSelector(\r\n (state) => state.notificacaoUsuario\r\n )\r\n\r\n const { openModalNotificacaoTestes } = useSelector(\r\n (state) => state.notificacao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n dispatch(notificacaoAction.openModalNotificacaoTestes(false))\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n }, [notificacaoUsuario]);\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdNotificacao: props.notificacao.id\r\n };\r\n\r\n dispatch(notificacaoUsuarioAction.getNotificacaoUsuario(filterModel, true));\r\n\r\n };\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, []);\r\n\r\n useEffect(() => {\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [openModalNotificacaoTestes])\r\n\r\n const handleClose = () => {\r\n dispatch(notificacaoAction.openModalNotificacaoTestes(false))\r\n }\r\n\r\n const handleClick = (id) => {\r\n const isSelected = selectedUsuarios.some((n) => n.idUsuario == id)\r\n if (isSelected) {\r\n const newSelected = selectedUsuarios.filter((n) => n.idUsuario !== id)\r\n setSelectedUsuarios(newSelected)\r\n } else {\r\n let newSelecteds = {\r\n id: 0,\r\n idNotificaoTeste: 0,\r\n idUsuario: id\r\n }\r\n setSelectedUsuarios([...selectedUsuarios, newSelecteds])\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setSelectedUsuarios([])\r\n }, [openModalNotificacaoTestes]);\r\n\r\n const isItemSelected = (id) => {\r\n return selectedUsuarios.some((n) => n.idUsuario == id)\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleSend = (event) => {\r\n if (props.notificacao.id) {\r\n dispatch(notificacaoAction.sendNotificacaoTeste(props.notificacao.id, selectedUsuarios.map((n) => {\r\n return n.idUsuario\r\n })))\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Selecione os usuários que receberão a notificação de teste\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n E-mail\r\n \r\n \r\n \r\n \r\n {(undefined !== notificacaoUsuario && notificacaoUsuario.length\r\n ? notificacaoUsuario.map((n) => {\r\n return (\r\n \r\n \r\n {n.usuario ? (n.usuario.nome ? n.usuario.nome : '') : ''}\r\n \r\n \r\n {n.usuario ? (n.usuario.email ? n.usuario.email : '') : ''}\r\n \r\n \r\n handleClick(n.idUsuario)}\r\n color=\"primary\"\r\n checked={isItemSelected(n.idUsuario)}\r\n />\r\n \r\n \r\n )\r\n })\r\n : null)\r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleSend()}\r\n type=\"submit\"\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n startIcon={}\r\n endIcon={isLoading && }\r\n >\r\n {isLoading\r\n ? 'Enviando...'\r\n : 'Enviar'}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nModalNotificacaoTestes.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedModalNotificacaoTestesPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ModalNotificacaoTestes))\r\n)\r\nexport { connectedModalNotificacaoTestesPage as ModalNotificacaoTestes }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { withStyles } from '@mui/styles'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport {\r\n Backdrop,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n Input,\r\n LinearProgress,\r\n MenuItem,\r\n Typography,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n TableContainer,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n SelectValidator,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { notificacaoAction, notificacaoFiltroAction } from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { Page, ImageUploader } from 'components'\r\nimport { uploadImage } from '_services'\r\nimport { errorsUploadImage } from 'utils'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport PersonIcon from '@mui/icons-material/Person';\r\nimport getInitials from 'utils/getInitials'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport { ModalNotificacaoFiltrosItens } from './modalNotificacaoFiltrosItens'\r\nimport { ModalNotificacaoUsuarios } from './modalNotificacaoUsuarios'\r\nimport moment from 'moment'\r\nimport { ModalNotificacaoTestes } from './modalNotificacaoTestes'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlign: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst NotificacaoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, notificacao, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n\r\n const [images, setImages] = useState([])\r\n const [imagem, setImagem] = useState('')\r\n const [open, setOpen] = useState(false)\r\n const confirm = useConfirm()\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { notificacaoUsuario } = useSelector(\r\n (state) => state.notificacaoUsuario\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n dispatch(notificacaoAction.clear())\r\n\r\n if (params.id) {\r\n dispatch(notificacaoAction.getNotificacaoById(params.id))\r\n\r\n } else {\r\n dispatch(notificacaoAction.clear())\r\n setImagem(null)\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (params.id) {\r\n dispatch(notificacaoAction.getNotificacaoById(params.id))\r\n } else {\r\n dispatch(notificacaoAction.clear())\r\n setImagem(null)\r\n }\r\n\r\n }, [props.notificacaoFiltro.notificacaoFiltro && props.notificacaoFiltro.notificacaoFiltro.length])\r\n\r\n const removeImage = () => {\r\n confirm({\r\n title: 'Deseja remover a imagem?',\r\n description: '',\r\n confirmationText: 'Sim, quero remover!',\r\n cancellationText: 'Não'\r\n }).then(() => {\r\n let payload = {\r\n ...notificacao,\r\n caminhoImagem: null\r\n }\r\n dispatch(\r\n notificacaoAction.editNotificacaoInfo(notificacao.id, payload, false)\r\n )\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: null\r\n }\r\n };\r\n dispatch(notificacaoAction.onChangeProps('caminhoImagem', event2))\r\n setImagem(null)\r\n })\r\n }\r\n\r\n const handleClickOpenModalNotificacaoTestes = () => {\r\n dispatch(notificacaoAction.openModalNotificacaoTestes(true));\r\n }\r\n\r\n const onChangeImage = (imageList) => {\r\n // data for submit\r\n setOpen(true)\r\n setImages(imageList)\r\n uploadImage(imageList[0])\r\n .then((response) => {\r\n\r\n let payload = {\r\n ...notificacao,\r\n caminhoImagem: response.toString()\r\n }\r\n\r\n if (notificacao.id !== 0) {\r\n dispatch(\r\n notificacaoAction.editNotificacaoInfo(notificacao.id, payload, false)\r\n )\r\n }\r\n\r\n setTimeout(function () {\r\n\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(notificacaoAction.onChangeProps('caminhoImagem', event2))\r\n\r\n setImagem(response)\r\n setOpen(false)\r\n\r\n }, 1000);\r\n\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.notificacao.isLoading])\r\n\r\n useEffect(() => {\r\n setImagem(notificacao.caminhoImagem)\r\n }, [notificacao.caminhoImagem, open]);\r\n\r\n useEffect(() => {\r\n // forceUpdate(n => !n);\r\n }, [open, imagem]);\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(notificacaoAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n dataHora: moment(props.notificacao.dataHora).toISOString(),\r\n titulo: props.notificacao.titulo,\r\n descricao: props.notificacao.descricao,\r\n caminhoImagem: props.notificacao.caminhoImagem,\r\n acao: props.notificacao.acao,\r\n chave: props.notificacao.chave\r\n }\r\n\r\n if (params.id) {\r\n dispatch(notificacaoAction.editNotificacaoInfo(params.id, payload, true))\r\n } else {\r\n dispatch(notificacaoAction.createNotificacao(payload))\r\n }\r\n\r\n };\r\n\r\n const handleSubmitNotificacaoTeste = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n dataHora: props.notificacao.dataHora,\r\n titulo: props.notificacao.titulo,\r\n descricao: props.notificacao.descricao,\r\n caminhoImagem: props.notificacao.caminhoImagem,\r\n acao: props.notificacao.acao,\r\n chave: props.notificacao.chave\r\n }\r\n\r\n if (params.id) {\r\n dispatch(notificacaoAction.editNotificacaoInfo(params.id, payload, true))\r\n } else {\r\n dispatch(notificacaoAction.createNotificacao(payload))\r\n }\r\n\r\n };\r\n\r\n const handleSend = (event) => {\r\n\r\n if (props.notificacao.id) {\r\n dispatch(notificacaoAction.sendNotificacao(props.notificacao.id))\r\n }\r\n\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta notificação?',\r\n description: 'Essa operação é irreversível',\r\n confirmationText: 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(notificacaoFiltroAction.deleteNotificacaoFiltroById(id))\r\n })\r\n }\r\n\r\n const handleClickOpenModalNotificacaoFiltrosItens = () => {\r\n dispatch(notificacaoFiltroAction.clearInfo())\r\n dispatch(notificacaoAction.openModalNotificacaoFiltrosItens(true))\r\n }\r\n\r\n const handleClickOpenModalNotificacaoUsuarios = () => {\r\n dispatch(notificacaoAction.openModalNotificacaoUsuarios(true))\r\n }\r\n\r\n function switchFiltro(val) {\r\n var answer = \"\";\r\n switch (val) {\r\n case \"usuariosAdmin\":\r\n answer = \"Usuários administradores cadastrados no sistema\";\r\n break;\r\n case \"usuariosGestorOrgaoPublico\":\r\n answer = \"Usuários gestores de órgão público cadastrados no sistema\";\r\n break;\r\n case \"usuariosEmpresa\":\r\n answer = \"Usuários de empresas cadastrados no sistema\";\r\n break;\r\n case \"usuariosSistema\":\r\n answer = \"Usuários do tipo sistema cadastrados no sistema\";\r\n break;\r\n default:\r\n answer = \"\";\r\n }\r\n return answer;\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Notificação'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Notificação'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando imagem...\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(props.notificacao.id !== 0 && props.notificacao.dataHora != null ?\r\n \r\n \r\n \r\n :\r\n null\r\n )}\r\n {(props.notificacao.id !== 0 && props.notificacao.dataHoraEnvio != null ?\r\n \r\n \r\n \r\n :\r\n null\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n id=\"acao\"\r\n >\r\n Conteúdo da Notificação\r\n Tela inicial\r\n Abrir link externo\r\n \r\n \r\n {props.notificacao.acao == 'OpenLink' ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/Notificacoes')}\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.notificacao.isLoading && }\r\n >\r\n {params.id ? (props.notificacao.isLoading ? 'Atualizando notificação...' : 'Atualizar') : (props.notificacao.isLoading ? 'Salvando notificação...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(props.notificacao.id !== 0 ?\r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n {'Filtro de Usuários'}\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n handleClickOpenModalNotificacaoFiltrosItens()}>Novo \r\n \r\n \r\n {(props.notificacao.dataHoraEnvio != null ?\r\n <>\r\n \r\n Taxa de Abertura {(props.notificacao ? props.notificacao.taxaAbertura : 0)}% de {(props.notificacao ? props.notificacao.totalNotificacoesUsuarios : 0)}\r\n \r\n \r\n \r\n :\r\n \r\n Usuários que receberão a notificação: {(props.notificacao ? props.notificacao.totalNotificacoesUsuarios : 0)}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {undefined !== props.notificacaoFiltro.notificacaoFiltro && props.notificacaoFiltro.notificacaoFiltro.length\r\n ? props.notificacaoFiltro.notificacaoFiltro.map((n) => {\r\n return (\r\n \r\n \r\n {switchFiltro(n.filtro)}\r\n \r\n \r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClickOpenModalNotificacaoFiltrosItens()}\r\n size=\"small\"\r\n disabled={props.notificacaoFiltro.isLoading}\r\n startIcon={}\r\n endIcon={props.notificacaoFiltro.isLoading && }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n handleClickOpenModalNotificacaoUsuarios()}\r\n disabled={undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0 && props.notificacao.totalNotificacoesUsuarios == 0}\r\n disabled={props.notificacaoFiltro.isLoading || undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0 && props.notificacao.totalNotificacoesUsuarios == 0}\r\n startIcon={}\r\n endIcon={props.notificacaoFiltro.isLoading && }\r\n >\r\n Ver lista de Usuários\r\n \r\n handleClickOpenModalNotificacaoTestes()}\r\n disabled={undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0 || props.notificacao.id == 0}\r\n disabled={props.notificacaoFiltro.isLoading || undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0}\r\n startIcon={}\r\n endIcon={props.notificacaoFiltro.isLoading && }\r\n >\r\n Testar envio\r\n \r\n handleSend()}\r\n disabled={undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0}\r\n disabled={props.notificacaoFiltro.isLoading || undefined === props.notificacaoFiltro.notificacaoFiltro || props.notificacaoFiltro.notificacaoFiltro.length === 0}\r\n startIcon={}\r\n endIcon={props.notificacaoFiltro.isLoading && }\r\n >\r\n Enviar\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n :\r\n null\r\n )}\r\n
\r\n \r\n \r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nNotificacaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedNotificacaoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(NotificacaoEdit))\r\n)\r\nexport { connectedNotificacaoEditPage as NotificacaoEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { orgaoAction, authActions } from '../../_actions'\r\nimport moment from 'moment'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n FormControl,\r\n FormLabel,\r\n Typography,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n Tooltip,\r\n Skeleton,\r\n Input,\r\n Grid,\r\n TablePagination\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Orgao = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { orgao } = props.orgao\r\n const { isLoading } = props.orgao\r\n const { totalRegistros } = props.orgao\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('nome');\r\n const [direction] = useState('asc');\r\n const [status, setStatus] = useState('');\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const buttons = [\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n\r\n useEffect(() => {\r\n setStatus('')\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: status\r\n };\r\n\r\n dispatch(orgaoAction.getOrgao(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: status\r\n };\r\n dispatch(orgaoAction.getOrgao(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [status])\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.orgao.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este órgão?',\r\n description: ,\r\n disabled: props.orgao.isLoading,\r\n confirmationText: props.orgao.isLoading ? 'Excluindo órgão...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(orgaoAction.deleteOrgaoById(id))\r\n })\r\n }\r\n\r\n function ConfirmationText() {\r\n return (\r\n <>\r\n Essa operação é irreversível. Todos os usuários vinculados a ele serão inativados.\r\n \r\n );\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== orgao && orgao.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {authActions.isGestor() &&\r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n *': {\r\n m: 1,\r\n },\r\n }}\r\n >\r\n \r\n {buttons}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Nome\r\n Último Acesso\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {undefined !== orgao && orgao.length\r\n ? orgao.map((n) => {\r\n return (\r\n \r\n \r\n {n.orgao ? n.orgao.nome ? n.orgao.nome.toUpperCase() : '' : ''}\r\n \r\n \r\n {n.ultimoAcesso && n.ultimoAcesso != null ? moment(n.ultimoAcesso).format(\"DD/MM/YYYY HH:mm\") : 'NUNCA'}\r\n \r\n \r\n {n.orgao ? (n.orgao.cadastroLiberado == true ? 'CADASTRO LIBERADO' :\r\n n.orgao.cadastroLiberado == false ? 'CADASTRO RECUSADO' :\r\n n.orgao.cadastroLiberado == null && 'PENDENTE') : ''}\r\n \r\n \r\n (\r\n \r\n history.push(`/orgao/${n.orgao.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClick(n.orgao.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nOrgao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n orgao: state.orgao\r\n }\r\n}\r\nconst connectedOrgaoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Orgao))\r\n)\r\nexport { connectedOrgaoPage as Orgao }\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport moment from 'moment'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n MenuItem,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { usuarioAction } from '../../_actions'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { phoneMask, history, stringUtils } from '../../utils'\r\nimport { useConfirm } from 'material-ui-confirm'\r\n\r\nexport const UsuarioEditModal = ({ modal, toggle, props, idorgao }) => {\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const formRef = React.createRef(null);\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className, orgao, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const isLoading = useSelector(\r\n (state) => state.usuarioOrgao.isLoading\r\n )\r\n\r\n useEffect(() => {\r\n }, [props.orgao.isLoading, isLoading])\r\n\r\n const handleClose = () => {\r\n dispatch(usuarioAction.clear())\r\n toggle();\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(usuarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payloadUsuario = {\r\n nome: props.usuario.nome,\r\n senha: props.usuario.senha,\r\n sobrenome: props.usuario.sobrenome,\r\n email: props.usuario.email.toLowerCase(),\r\n idTipoUsuario: props.usuario.idTipoUsuario,\r\n celular: props.usuario.celular && props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n matricula: props.usuario.matricula,\r\n telefone: props.usuario.telefone && props.usuario.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n usuariosOrgaos: [\r\n {\r\n id: 0,\r\n idUsuario: 0,\r\n idOrgao: idorgao\r\n }\r\n ]\r\n }\r\n\r\n if (payloadUsuario) {\r\n dispatch(usuarioAction.createUsuarioOrgao(payloadUsuario))\r\n dispatch(usuarioAction.clear())\r\n toggle();\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Usuário'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tipo Usuário\r\n \r\n FISCAL\r\n GESTOR ÓRGÃO PÚBLICO\r\n USUÁRIO ÓRGÃO PÚBLICO\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(props.usuario && props.usuario.dataHoraUltimoAcesso ?\r\n \r\n \r\n \r\n :\r\n null\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.usuario.isLoading && }\r\n >\r\n {props.usuario.isLoading ? 'Salvando usuário...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport Typography from '@mui/material/Typography';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTrashAlt, faUserPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport { isEmpty } from 'lodash'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Button,\r\n Grid,\r\n IconButton,\r\n Switch,\r\n TextField,\r\n Tooltip,\r\n MenuItem,\r\n FormControlLabel\r\n} from '@mui/material'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n authActions,\r\n orgaoAction,\r\n cidadeAction,\r\n estadoAction,\r\n usuarioAction,\r\n usuarioOrgaoAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { history, cnpjMask, stringUtils, phoneMask, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport { UsuarioEditModal } from './usuarioEditModal.component';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst SwitchBlue = styled(Switch)(({ theme }) => ({\r\n '& .MuiSwitch-switchBase': {\r\n '&.Mui-checked': {\r\n color: '#1C5585',\r\n }\r\n }\r\n}));\r\n\r\nconst OrgaoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, orgao, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const confirm = useConfirm()\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [value, setValue] = React.useState(null);\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const [modalUsuario, setModalUsuario] = useState(false);\r\n const toggleUsuario = () => setModalUsuario(!modalUsuario);\r\n\r\n const { cidade } = useSelector(\r\n (state) => state.cidade\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const estados = useSelector((state) => state.estado.estado)\r\n\r\n const options = cidade.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n useEffect(() => {\r\n\r\n dispatch(orgaoAction.clear())\r\n dispatch(estadoAction.getEstadoSelect())\r\n\r\n if (params.id) {\r\n dispatch(orgaoAction.getOrgaoById(params.id))\r\n } else {\r\n dispatch(orgaoAction.clear())\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.orgao.idCidade != 0 && params.id != undefined) {\r\n setValue(props.orgao.cidade)\r\n }\r\n }, [props.orgao.idCidade])\r\n\r\n const handleAprovaCadastroOrgao = () => {\r\n confirm({\r\n title: 'Você deseja liberar o acesso ao sistema para este Órgão?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.orgao.isLoading,\r\n confirmationText: props.orgao.isLoading ? 'Aprovando...' : 'Sim, aprovar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(orgaoAction.editAprovaCadastroOrgao(params.id))\r\n })\r\n }\r\n\r\n const handleRecusaCadastroOrgao = () => {\r\n confirm({\r\n title: 'Você deseja recusar o acesso ao sistema para este Órgão?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.orgao.isLoading,\r\n confirmationText: props.orgao.isLoading ? 'Recusando...' : 'Sim, recusar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(orgaoAction.editRecusaCadastroOrgao(params.id))\r\n })\r\n }\r\n\r\n const handleRemoveOnList = id => {\r\n confirm({\r\n title: 'Você deseja excluir este usuário?',\r\n description: 'Essa operação desvinculará o usuário deste órgao',\r\n disabled: props.orgao.isLoading,\r\n confirmationText: props.orgao.isLoading ? 'Excluindo usuário...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n props.orgao.usuariosOrgaos = props.orgao.usuariosOrgaos.filter(ts => ts.idUsuario != parseInt(id));\r\n forceUpdate(n => !n);\r\n })\r\n };\r\n\r\n const handleOpenModal = () => {\r\n toggleUsuario();\r\n dispatch(usuarioAction.clear())\r\n }\r\n\r\n useEffect(() => {\r\n if (props.orgao.idEstado) {\r\n dispatch(cidadeAction.getCidadeByIdEstado(props.orgao.idEstado))\r\n }\r\n }, [props.orgao.idEstado])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n handleChangeAutoComplete(value)\r\n }\r\n }, [value])\r\n\r\n const handleChangeAutoComplete = (obj) => {\r\n\r\n if (obj != null) {\r\n let selectedCidade = cidade.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n cidadeAction.changeDetailsCidade(\r\n selectedCidade[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpen(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.orgao.isLoading])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(orgaoAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n forceUpdate(n => !n);\r\n }, [props.orgao.usuariosOrgaos])\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n nome: props.orgao.nome,\r\n idCidade: value ? value.id : 0,\r\n idEstado: props.orgao.idEstado,\r\n celular: props.orgao.celular && props.orgao.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n cnpj: props.orgao.cnpj && props.orgao.cnpj.split('.').join('').replace(/[-/.]/g, ''),\r\n email: props.orgao.email ? props.orgao.email.toLowerCase() : '',\r\n endereco: props.orgao.endereco,\r\n telefone: props.orgao.telefone && props.orgao.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n usuariosOrgaos: props.orgao.usuariosOrgaos,\r\n naoExigeOrcamentos: props.orgao.naoExigeOrcamentos,\r\n mapaPublico: props.orgao.mapaPublico\r\n }\r\n\r\n\r\n if (params.id) {\r\n dispatch(orgaoAction.editOrgaoInfo(params.id, payload, true))\r\n } else {\r\n dispatch(orgaoAction.createOrgao(payload))\r\n }\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Órgão'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Órgão'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Estado *\r\n \r\n {!isEmpty(estados) &&\r\n undefined !== estados &&\r\n estados.length &&\r\n estados.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n setValue(newValue);\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={value}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Permite a visualização pública da obra?\"\r\n />\r\n \r\n }\r\n label=\"Não exige que as obras recebam propostas\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Dados de contato\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {params.id &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cadastrar e vincular usuário ao órgão\r\n \r\n \r\n (\r\n \r\n handleOpenModal()}>Cadastrar usuário \r\n \r\n \r\n )}\r\n no={() => }\r\n />\r\n \r\n \r\n {\r\n (props.orgao.usuariosOrgaos != null && props.orgao.usuariosOrgaos.length > 0 ?\r\n props.orgao.usuariosOrgaos.map(n => {\r\n return (\r\n (n.id !== '' && n.excluido != true ?\r\n (\r\n \r\n \r\n \r\n \r\n {(n.usuario ? n.usuario.nome.toUpperCase() : n.idUsuario)}\r\n \r\n \r\n {(n.usuario ? n.usuario.email : '')}\r\n \r\n \r\n {(n.usuario ? n.usuario.idTipoUsuario == 1 ? 'ADMINISTRADOR' : n.usuario.idTipoUsuario == 2 ? 'GESTOR ÓRGÃO PÚBLICO' : n.usuario.idTipoUsuario == 3 ? 'PRESTADOR DE SERVIÇO' : n.usuario.idTipoUsuario == 4 ? 'MOTORISTA' : n.usuario.idTipoUsuario == 5 ? 'FISCAL' : n.usuario.idTipoUsuario == 6 ? 'USUÁRIO ÓRGÃO PÚBLICO' : '' : '')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n no={() => (\r\n \r\n \r\n \r\n \r\n {(n.usuario ? n.usuario.nome.toUpperCase() : n.idUsuario)}\r\n \r\n \r\n {(n.usuario ? n.usuario.email : '')}\r\n \r\n \r\n {(n.usuario ? n.usuario.idTipoUsuario == 1 ? 'ADMINISTRADOR' : n.usuario.idTipoUsuario == 2 ? 'GESTOR ÓRGÃO PÚBLICO' : n.usuario.idTipoUsuario == 3 ? 'PRESTADOR DE SERVIÇO' : n.usuario.idTipoUsuario == 4 ? 'MOTORISTA' : n.usuario.idTipoUsuario == 5 ? 'FISCAL' : '' : '')}\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n : null)\r\n );\r\n })\r\n : null)\r\n }\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n history.push('/Orgaos')}\r\n >\r\n Cancelar\r\n \r\n {orgao.id && authActions.isGestor() ?\r\n <>\r\n }\r\n endIcon={props.orgao.isLoading && }\r\n >\r\n {props.orgao.cadastroLiberado == false ? 'Acesso recusado' : props.orgao.isLoading ? 'Recusando acesso...' : 'Recusar acesso'}\r\n \r\n }\r\n endIcon={props.orgao.isLoading && }\r\n >\r\n {props.orgao.cadastroLiberado == true ? 'Acesso liberado' : props.orgao.isLoading ? 'Liberando acesso...' : 'Liberar acesso'}\r\n \r\n \r\n : null}\r\n }\r\n endIcon={props.orgao.isLoading && }\r\n >\r\n {params.id ? (props.orgao.isLoading ? 'Atualizando órgão...' : 'Atualizar') : (props.orgao.isLoading ? 'Salvando órgão...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n (modalUsuario ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nOrgaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedOrgaoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(OrgaoEdit))\r\n)\r\nexport { connectedOrgaoEditPage as OrgaoEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { styled } from '@mui/material/styles';\r\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport TimeIcon from '@mui/icons-material/AccessTime';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\nimport { history, getNomeUltimoEvento, getCor, MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { ObraMotivoModal } from '../../views/Obras'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst DivStyled = styled('div')(() => ({\r\n marginLeft: 2,\r\n backgroundColor: '#B0BEC5',\r\n borderRadius: 8,\r\n padding: 3,\r\n color: '#212121',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 4\r\n}));\r\n\r\nconst Obra = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { obra } = props.obra\r\n const { totalRegistros } = props.obra\r\n const { isLoading } = props.obra\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [firstTimeAcessPage, setFirstTimeAcessPage] = useState(false);\r\n const [credenciada, setCredenciada] = useState(false);\r\n\r\n const [idObra, setIdObra] = useState(0);\r\n\r\n const [modalMotivo, setModalMotivo] = useState(false);\r\n const toggleModalMotivo = () => setModalMotivo(!modalMotivo);\r\n\r\n const location = useLocation();\r\n const pendentes = location.state;\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraAction.clear())\r\n\r\n if (pendentes) {\r\n setStatus('1');\r\n setFirstTimeAcessPage(true);\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: 1,\r\n IsObra: true,\r\n Credenciada: credenciada\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n }\r\n\r\n setTimeout(() => {\r\n setFirstTimeAcessPage(false);\r\n }, 1000);\r\n\r\n }, [direction, dispatch, idOrgao, limit, order, page, pendentes, term, credenciada])\r\n\r\n //verifica se a empresa do usuário logado é a vencedora para a obra, dentro dos orçamentos\r\n function isWinner(obra) {\r\n const idEmpresa = authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0]?.idEmpresa : 0\r\n\r\n return obra.obrasOrcamentos?.some(orcamento => orcamento.idEmpresa === idEmpresa && orcamento.status === 1);\r\n }\r\n\r\n const handleOpenModalMotivo = (id) => {\r\n setIdObra(id)\r\n toggleModalMotivo();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n let filterModel = null;\r\n\r\n if (authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Status: pendentes ? 1 : firstTimeAcessPage ? '' : (credenciada && status == 10) ? 2 : status,\r\n Credenciada: credenciada,\r\n IsObra: true\r\n };\r\n\r\n } else {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Credenciada: credenciada,\r\n IsObra: true\r\n };\r\n }\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao, firstTimeAcessPage, pendentes, status, dispatch, credenciada]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n\r\n if (event.target.value == '10') {\r\n setCredenciada(true)\r\n } else {\r\n setCredenciada(false);\r\n }\r\n\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {obra && undefined !== obra && obra.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) &&\r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={Em lançamento} />\r\n\r\n } label={Pendente} />\r\n\r\n } label={Recebendo propostas} />\r\n\r\n } label={Credenciadas} />\r\n\r\n } label={Em execução} />\r\n\r\n } label={Recusada/Excluída} />\r\n\r\n } label={Concluída} />\r\n\r\n } label={Avaliada} />\r\n\r\n } label={Deserta} />\r\n\r\n } label={Sem sucesso} />\r\n\r\n } label={Todas} />\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data Início\r\n Tipo\r\n Título\r\n Órgão\r\n Valor Referência\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {obra && undefined !== obra && obra.length\r\n ? obra.map((n) => {\r\n return (\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.tipoObra ? n.tipoObra.nome : ''}\r\n \r\n \r\n
\r\n {n.urgencia ? (\r\n \r\n OBRA URGENTE\r\n \r\n ) : null}\r\n {n.titulo ? `#${n.id} ` + n.titulo.toUpperCase() : ''}\r\n
\r\n {authActions.isEmpresa() && isWinner(n) ? Você é a empresa vencedora desta obra : null}\r\n
\r\n \r\n {n.orgao ? n.orgao.nome.toUpperCase() : ''}\r\n \r\n \r\n {n.ultimoEvento != null ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi) : '--,--'}\r\n \r\n \r\n
\r\n
\r\n \r\n {getNomeUltimoEvento(n.ultimoEvento, n, true)}\r\n {n.obrasEmpenhos && n.obrasEmpenhos.length > 0 &&\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {getNomeUltimoEvento(n.ultimoEvento, n, true) == 'EM EXECUÇÃO' ?\r\n \r\n
\r\n \r\n {n.percentualConclusaoObra}%\r\n
\r\n
\r\n : null\r\n }\r\n {n.totalObraMedicoesPendentes > 0 &&\r\n \r\n \r\n \r\n {n.totalObraMedicoesPendentes}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n (\r\n \r\n history.push(`/obra/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n {n.ultimoEvento != STATUS_SERVICO.RECUSADO ?\r\n (\r\n handleOpenModalMotivo(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n : null}\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n {\r\n (modalMotivo ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n )\r\n}\r\nObra.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedObraPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Obra))\r\n)\r\nexport { connectedObraPage as Obra }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { styled } from '@mui/material/styles';\r\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport TimeIcon from '@mui/icons-material/AccessTime';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\nimport { history, getNomeUltimoEvento, getCor, MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { ObraMotivoModal } from '../../views/Obras'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst DivStyled = styled('div')(() => ({\r\n marginLeft: 2,\r\n backgroundColor: '#B0BEC5',\r\n borderRadius: 8,\r\n padding: 3,\r\n color: '#212121',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 4\r\n}));\r\n\r\nconst ObraMateriais = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obra } = props.obra\r\n const { totalRegistros } = props.obra\r\n const { isLoading } = props.obra\r\n const [idObra, setIdObra] = useState(0);\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [firstTimeAcessPage, setFirstTimeAcessPage] = useState(false);\r\n const [credenciada, setCredenciada] = useState(false);\r\n\r\n const location = useLocation();\r\n const pendentes = location.state;\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const [modalMotivo, setModalMotivo] = useState(false);\r\n const toggleModalMotivo = () => setModalMotivo(!modalMotivo);\r\n\r\n const handleOpenModalMotivo = (id) => {\r\n setIdObra(id)\r\n toggleModalMotivo();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraAction.clear())\r\n\r\n if (pendentes) {\r\n setStatus('1');\r\n setFirstTimeAcessPage(true);\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: 1,\r\n IsObra: false,\r\n Credenciada: credenciada\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n }\r\n\r\n setTimeout(() => {\r\n setFirstTimeAcessPage(false);\r\n }, 1000);\r\n\r\n }, [direction, dispatch, idOrgao, limit, order, page, pendentes, term, credenciada])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n let filterModel = null;\r\n\r\n if (authActions.isGestor() || authActions.isPrefeitura()) {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Status: pendentes ? 1 : firstTimeAcessPage ? '' : (credenciada && status == 10) ? 2 : status,\r\n Credenciada: credenciada,\r\n IsObra: false\r\n };\r\n\r\n } else {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Credenciada: credenciada,\r\n IsObra: false\r\n };\r\n }\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao, firstTimeAcessPage, pendentes, status, dispatch, credenciada]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n\r\n if (event.target.value == '10') {\r\n setCredenciada(true)\r\n } else {\r\n setCredenciada(false);\r\n }\r\n\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {obra && undefined !== obra && obra.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura()) &&\r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={Em lançamento} />\r\n\r\n } label={Pendente} />\r\n\r\n } label={Recebendo propostas} />\r\n\r\n } label={Credenciadas} />\r\n\r\n } label={Em execução} />\r\n\r\n } label={Recusada} />\r\n\r\n } label={Concluída} />\r\n\r\n } label={Avaliada} />\r\n\r\n } label={Deserta} />\r\n\r\n } label={Sem sucesso} />\r\n\r\n } label={Todas} />\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data Início\r\n Tipo\r\n Título\r\n Órgão\r\n Valor Referência\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {obra && undefined !== obra && obra.length\r\n ? obra.map((n) => {\r\n return (\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.tipoObra ? n.tipoObra.nome : ''}\r\n \r\n \r\n
\r\n {n.urgencia ? (\r\n \r\n OBRA URGENTE\r\n \r\n ) : null}\r\n {n.titulo ? `#${n.id} ` + n.titulo.toUpperCase() : ''}\r\n
\r\n
\r\n \r\n {n.orgao ? n.orgao.nome.toUpperCase() : ''}\r\n \r\n \r\n {n.ultimoEvento != STATUS_SERVICO.LANCAMENTO ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi) : '--,--'}\r\n \r\n \r\n
\r\n
\r\n \r\n {getNomeUltimoEvento(n.ultimoEvento, n, true)}\r\n {n.obrasEmpenhos && n.obrasEmpenhos.length > 0 &&\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {getNomeUltimoEvento(n.ultimoEvento, n, true) == 'EM EXECUÇÃO' ?\r\n \r\n
\r\n \r\n {n.percentualConclusaoObra}%\r\n
\r\n
\r\n : null\r\n }\r\n {n.totalObraMedicoesPendentes > 0 &&\r\n \r\n \r\n \r\n {n.totalObraMedicoesPendentes}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n (\r\n \r\n history.push(`/obra/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleOpenModalMotivo(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n {\r\n (modalMotivo ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n )\r\n}\r\nObraMateriais.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n obra: state.obra\r\n }\r\n}\r\nconst connectedObraPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraMateriais))\r\n)\r\nexport { connectedObraPage as ObraMateriais }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { styled } from '@mui/material/styles';\r\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport TimeIcon from '@mui/icons-material/AccessTime';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\nimport { history, getNomeUltimoEvento, getCor, MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { ObraMotivoModal } from '.'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst DivStyled = styled('div')(() => ({\r\n marginLeft: 2,\r\n backgroundColor: '#B0BEC5',\r\n borderRadius: 8,\r\n padding: 3,\r\n color: '#212121',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 4\r\n}));\r\n\r\nconst ObraProjetoTecnico = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obra } = props.obra\r\n const { totalRegistros } = props.obra\r\n const { isLoading } = props.obra\r\n const [idObra, setIdObra] = useState(0);\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [firstTimeAcessPage, setFirstTimeAcessPage] = useState(false);\r\n const [credenciada, setCredenciada] = useState(false);\r\n\r\n const location = useLocation();\r\n const pendentes = location.state;\r\n\r\n const [modalMotivo, setModalMotivo] = useState(false);\r\n const toggleModalMotivo = () => setModalMotivo(!modalMotivo);\r\n\r\n const handleOpenModalMotivo = (id) => {\r\n setIdObra(id)\r\n toggleModalMotivo();\r\n }\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraAction.clear())\r\n\r\n if (pendentes) {\r\n setStatus('1');\r\n setFirstTimeAcessPage(true);\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: 1,\r\n IsProjetoTecnico: true,\r\n Credenciada: credenciada\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n }\r\n\r\n setTimeout(() => {\r\n setFirstTimeAcessPage(false);\r\n }, 1000);\r\n\r\n }, [direction, dispatch, idOrgao, limit, order, page, pendentes, term, credenciada])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n let filterModel = null;\r\n\r\n if (authActions.isGestor() || authActions.isPrefeitura()) {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Status: pendentes ? 1 : firstTimeAcessPage ? '' : (credenciada && status == 10) ? 2 : status,\r\n Credenciada: credenciada,\r\n IsProjetoTecnico: true\r\n };\r\n\r\n } else {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Credenciada: credenciada,\r\n IsProjetoTecnico: true\r\n };\r\n }\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao, firstTimeAcessPage, pendentes, status, dispatch, credenciada]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n\r\n if (event.target.value == '10') {\r\n setCredenciada(true)\r\n } else {\r\n setCredenciada(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {obra && undefined !== obra && obra.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura()) &&\r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={Em lançamento} />\r\n\r\n } label={Pendente} />\r\n\r\n } label={Recebendo propostas} />\r\n\r\n } label={Credenciadas} />\r\n\r\n } label={Em execução} />\r\n\r\n } label={Recusada} />\r\n\r\n } label={Concluída} />\r\n\r\n } label={Avaliada} />\r\n\r\n } label={Deserta} />\r\n\r\n } label={Sem sucesso} />\r\n\r\n } label={Todas} />\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data Início\r\n Tipo\r\n Título\r\n Órgão\r\n Valor Referência\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {obra && undefined !== obra && obra.length\r\n ? obra.map((n) => {\r\n return (\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.tipoObra ? n.tipoObra.nome : ''}\r\n \r\n \r\n
\r\n {n.urgencia ? (\r\n \r\n URGENTE\r\n \r\n ) : null}\r\n {n.titulo ? `#${n.id} ` + n.titulo.toUpperCase() : ''}\r\n
\r\n
\r\n \r\n {n.orgao ? n.orgao.nome.toUpperCase() : ''}\r\n \r\n \r\n {n.ultimoEvento != STATUS_SERVICO.LANCAMENTO ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi) : '--,--'}\r\n \r\n \r\n
\r\n
\r\n \r\n {getNomeUltimoEvento(n.ultimoEvento, n, true)}\r\n {n.obrasEmpenhos && n.obrasEmpenhos.length > 0 &&\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {getNomeUltimoEvento(n.ultimoEvento, n, true) == 'EM EXECUÇÃO' ?\r\n \r\n
\r\n \r\n {n.percentualConclusaoObra}%\r\n
\r\n
\r\n : null\r\n }\r\n {n.totalObraMedicoesPendentes > 0 &&\r\n \r\n \r\n \r\n {n.totalObraMedicoesPendentes}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n (\r\n \r\n history.push(`/obra/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleOpenModalMotivo(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n {\r\n (modalMotivo ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n )\r\n}\r\nObraProjetoTecnico.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n obra: state.obra\r\n }\r\n}\r\nconst connectedObraPage = withRouter(\r\n connect(mapStateToProps, null, null, {\r\n pure: false\r\n })(withStyles(styles)(ObraProjetoTecnico))\r\n)\r\nexport { connectedObraPage as ObraProjetoTecnico }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { styled } from '@mui/material/styles';\r\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport TimeIcon from '@mui/icons-material/AccessTime';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\nimport { history, getNomeUltimoEvento, getCor, MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { ObraMotivoModal } from '../../views/Obras'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst DivStyled = styled('div')(() => ({\r\n marginLeft: 2,\r\n backgroundColor: '#B0BEC5',\r\n borderRadius: 8,\r\n padding: 3,\r\n color: '#212121',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 4\r\n}));\r\n\r\nconst ObraReparoPrevencao = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { obra } = props.obra\r\n const { totalRegistros } = props.obra\r\n const { isLoading } = props.obra\r\n const [idObra, setIdObra] = useState(0);\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [firstTimeAcessPage, setFirstTimeAcessPage] = useState(false);\r\n const [credenciada, setCredenciada] = useState(false);\r\n\r\n const location = useLocation();\r\n const pendentes = location.state;\r\n\r\n const [modalMotivo, setModalMotivo] = useState(false);\r\n const toggleModalMotivo = () => setModalMotivo(!modalMotivo);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const handleOpenModalMotivo = (id) => {\r\n setIdObra(id)\r\n toggleModalMotivo();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraAction.clear())\r\n\r\n if (pendentes) {\r\n setStatus('1');\r\n setFirstTimeAcessPage(true);\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: 1,\r\n IsReparoPrevencao: true,\r\n Credenciada: credenciada\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n }\r\n\r\n setTimeout(() => {\r\n setFirstTimeAcessPage(false);\r\n }, 1000);\r\n\r\n }, [direction, dispatch, idOrgao, limit, order, page, pendentes, term, credenciada])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n let filterModel = null;\r\n\r\n if (authActions.isGestor() || authActions.isPrefeitura()) {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Status: pendentes ? 1 : firstTimeAcessPage ? '' : (credenciada && status == 10) ? 2 : status,\r\n Credenciada: credenciada,\r\n IsReparoPrevencao: true\r\n };\r\n\r\n } else {\r\n filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IsReparoPrevencao: true,\r\n Credenciada: credenciada\r\n };\r\n }\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao, firstTimeAcessPage, pendentes, status, dispatch, credenciada]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n\r\n if (event.target.value == '10') {\r\n setCredenciada(true)\r\n } else {\r\n setCredenciada(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {obra && undefined !== obra && obra.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura()) &&\r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={Em lançamento} />\r\n\r\n } label={Pendente} />\r\n\r\n } label={Recebendo propostas} />\r\n\r\n } label={Credenciadas} />\r\n\r\n } label={Em execução} />\r\n\r\n } label={Recusada} />\r\n\r\n } label={Concluída} />\r\n\r\n } label={Avaliada} />\r\n\r\n } label={Deserta} />\r\n\r\n } label={Sem sucesso} />\r\n\r\n } label={Todas} />\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data Início\r\n Tipo\r\n Título\r\n Órgão\r\n Valor Referência\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {obra && undefined !== obra && obra.length\r\n ? obra.map((n) => {\r\n return (\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.tipoObra ? n.tipoObra.nome : ''}\r\n \r\n \r\n
\r\n {n.urgencia ? (\r\n \r\n URGENTE\r\n \r\n ) : null}\r\n {n.titulo ? `#${n.id} ` + n.titulo.toUpperCase() : ''}\r\n
\r\n
\r\n \r\n {n.orgao ? n.orgao.nome.toUpperCase() : ''}\r\n \r\n \r\n {n.ultimoEvento != STATUS_SERVICO.LANCAMENTO ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi) : '--,--'}\r\n \r\n \r\n
\r\n
\r\n \r\n {getNomeUltimoEvento(n.ultimoEvento, n, true)}\r\n {n.obrasEmpenhos && n.obrasEmpenhos.length > 0 &&\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {getNomeUltimoEvento(n.ultimoEvento, n, true) == 'EM EXECUÇÃO' ?\r\n \r\n
\r\n \r\n {n.percentualConclusaoObra}%\r\n
\r\n
\r\n : null\r\n }\r\n {n.totalObraMedicoesPendentes > 0 &&\r\n \r\n \r\n \r\n {n.totalObraMedicoesPendentes}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n (\r\n \r\n history.push(`/obra/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleOpenModalMotivo(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n {\r\n (modalMotivo ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n )\r\n}\r\nObraReparoPrevencao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n obra: state.obra\r\n }\r\n}\r\nconst connectedObraPage = withRouter(\r\n connect(mapStateToProps, null, null, {\r\n pure: false\r\n })(withStyles(styles)(ObraReparoPrevencao))\r\n)\r\nexport { connectedObraPage as ObraReparoPrevencao }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport {\r\n Chip,\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst ObraAguardandoOrcamento = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obra } = props.obra\r\n const { totalRegistros } = props.obra\r\n const { isLoading } = props.obra\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao,\r\n Status: 2,\r\n RecebePropostas: true\r\n };\r\n\r\n dispatch(obraAction.getObra(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n IdOrgao: idOrgao,\r\n Direction: direction,\r\n Status: 2,\r\n RecebePropostas: true\r\n };\r\n dispatch(obraAction.getObra(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [status])\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.obra.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== obra && obra.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Data Início\r\n Data Término\r\n Título\r\n Órgão\r\n Valor Referência\r\n Ação\r\n \r\n \r\n \r\n {undefined !== obra && obra.length\r\n ? obra.map((n) => {\r\n return (\r\n \r\n \r\n {n.id ? n.id : ''}\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.dataTermino ? moment(n.dataTermino).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.titulo ? n.titulo.toUpperCase() : ''}\r\n \r\n \r\n {n.orgao ? n.orgao.nome.toUpperCase() : ''}\r\n \r\n \r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi)}\r\n \r\n \r\n \r\n authActions.isEmpresa() ?\r\n (\r\n 0 ? \"Ver proposta\" : \"Enviar proposta\"}\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/obraOrcamento/${n.obrasOrcamentos.length > 0 ? n.obrasOrcamentos[0].id : ''}`, n.id)\r\n }\r\n size=\"small\"\r\n >\r\n 0 ? \"Ver proposta\" : \"Enviar proposta\"}>\r\n \r\n {n.obrasOrcamentos.length > 0 ? : }\r\n \r\n \r\n \r\n )\r\n :\r\n (\r\n history.push(`/obraOrcamento/`, n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nObraAguardandoOrcamento.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n obra: state.obra\r\n }\r\n}\r\nconst connectedObraAguardandoOrcamentoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraAguardandoOrcamento))\r\n)\r\nexport { connectedObraAguardandoOrcamentoPage as ObraAguardandoOrcamento }\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { obraAvaliacaoAction } from '../../_actions';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst StarRating = ({ ratingClear, props }) => {\r\n const [rating, setRating] = useState(0);\r\n const [hover, setHover] = useState(0);\r\n const dispatch = useDispatch();\r\n\r\n const setRatingProps = (index) => {\r\n setRating(index);\r\n\r\n let changeNotaEvent = {\r\n type: 'text',\r\n target: {\r\n value: index\r\n }\r\n };\r\n\r\n dispatch(obraAvaliacaoAction.onChangeProps('nota', changeNotaEvent));\r\n }\r\n\r\n useEffect(() => {\r\n if (ratingClear == true) {\r\n setRating(0)\r\n setHover(0)\r\n\r\n let changeNotaEvent = {\r\n type: 'text',\r\n target: {\r\n value: 0\r\n }\r\n };\r\n\r\n dispatch(obraAvaliacaoAction.onChangeProps('nota', changeNotaEvent));\r\n }\r\n }, [ratingClear])\r\n\r\n\r\n useEffect(() => {\r\n if (props.obraAvaliacao.nota != 0) {\r\n setRating(props.obraAvaliacao.nota)\r\n setHover(props.obraAvaliacao.nota)\r\n }\r\n\r\n console.log('props.obraAvaliacao.nota', props.obraAvaliacao.nota)\r\n }, [props.obraAvaliacao.nota])\r\n\r\n return (\r\n
\r\n {[...Array(5)].map((star, index) => {\r\n index += 1;\r\n return (\r\n setRatingProps(index)}\r\n onMouseEnter={() => setHover(index)}\r\n onMouseLeave={() => setHover(rating)}\r\n >\r\n \r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default StarRating;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport PropTypes from 'prop-types'\r\nimport { stringUtils } from '../../utils'\r\nimport { withStyles } from '@mui/styles'\r\nimport { toast } from 'react-toastify'\r\nimport { crudService } from '_services'\r\nimport Stars from '../../components/Stars/Stars';\r\nimport {\r\n Avatar,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n FormLabel,\r\n Grid,\r\n IconButton,\r\n MenuItem,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n TablePagination,\r\n Typography,\r\n Tooltip,\r\n Skeleton,\r\n Input\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n obraAvaliacaoAction,\r\n} from '../../_actions'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport StarRating from \"../../components/Stars/StarRating\";\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport CustomButton from '../../components/CustomButton'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nfunction isEditable(e) {\r\n if (e == '2' || e == '3' || e == '4' || e == '5' || e == '6') {\r\n return false\r\n }\r\n else return true\r\n}\r\n\r\nconst ObraAvaliacaoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n const { classes, idObra, ...rest } = props\r\n const { match: { params } } = props;\r\n const { totalRegistros } = props.obraAvaliacao\r\n const { isLoading } = props.obra\r\n const formRef = React.createRef(null);\r\n const [key, setKey] = useState(1);\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const [open, setOpen] = useState(false)\r\n const [ratingClear, setRatingClear] = useState(false);\r\n const [imagem, setImagem] = useState('')\r\n const [file, setFile] = useState(undefined)\r\n\r\n const [empresas, setEmpresas] = useState([]);\r\n const { obraAvaliacao } = useSelector(\r\n (state) => state.obraAvaliacao)\r\n\r\n const { tipoAnexo } = useSelector(\r\n (state) => state.tipoAnexo)\r\n\r\n useEffect(() => {\r\n dispatch(obraAvaliacaoAction.clear())\r\n\r\n if (props.authentication.user.idTipoUsuario == 3) {\r\n setEmpresas([{ ...props.authentication.user.usuariosEmpresas[0], selected: true }]);\r\n } else {\r\n crudService\r\n .get(`obrasOrcamentosItens/itensAprovados/${idObra}`)\r\n .then(response => setEmpresas(response.data?.map(r => { return { ...r, selected: false } })));\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: (idObra && idObra != '' && idObra)\r\n };\r\n\r\n dispatch(obraAvaliacaoAction.getObraAvaliacao(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idObra]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n dispatch(obraAvaliacaoAction.getObraAvaliacaoById(id))\r\n }\r\n\r\n const handleClean = () => {\r\n dispatch(obraAvaliacaoAction.clear())\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: (idObra && idObra != '' && idObra)\r\n };\r\n\r\n dispatch(obraAvaliacaoAction.getObraAvaliacao(filterModel, true));\r\n\r\n let changeNotaEvent = {\r\n type: 'text',\r\n target: {\r\n value: 0\r\n }\r\n };\r\n\r\n dispatch(obraAvaliacaoAction.onChangeProps('nota', changeNotaEvent));\r\n setRatingClear(true);\r\n\r\n props.obraAvaliacao.nota = 0\r\n\r\n console.log('propssssssssss Nota', props.obraAvaliacao.nota)\r\n setKey(0);\r\n }\r\n\r\n const handleDelete = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este anexo?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obraAvaliacao.isLoading,\r\n confirmationText: props.obraAvaliacao.isLoading ? 'Excluindo anexo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraAvaliacaoAction.deleteObraAvaliacaoById(id))\r\n })\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraAvaliacaoAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n if (props.obraAvaliacao.descricao == '' || props.obraAvaliacao.descricao == null) {\r\n toast.error('Informe uma Descrição para a avaliação!')\r\n }\r\n else if (props.obraAvaliacao.idEmpresa == '' || props.obraAvaliacao.idEmpresa == null) {\r\n toast.error('Informe uma Empresa para a avaliação!')\r\n } else if (props.obraAvaliacao.nota == '' || props.obraAvaliacao.nota == null || props.obraAvaliacao.nota == 0) {\r\n toast.error('Informe uma Nota para a avaliação!')\r\n } else {\r\n let payload = {\r\n id: props.obraAvaliacao.id,\r\n idObra: parseInt(idObra),\r\n idEmpresa: props.obraAvaliacao.idEmpresa,\r\n idOrgao: props.obra.idOrgao,\r\n nota: props.obraAvaliacao.nota,\r\n descricao: props.obraAvaliacao.descricao,\r\n }\r\n\r\n if (props.obraAvaliacao.id) {\r\n dispatch(obraAvaliacaoAction.editObraAvaliacaoInfo(props.obraAvaliacao.id, payload, true))\r\n setRatingClear(true);\r\n } else {\r\n dispatch(obraAvaliacaoAction.createObraAvaliacao(payload))\r\n setRatingClear(true);\r\n }\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Avaliação'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Avaliação'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (props.obraAvaliacao.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n\r\n //{isEditable(props.obra.ultimoEvento) == true ?\r\n //permitir enviar anexos de NOTAS mesmo depois de já aprovado o orçamento\r\n\r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Empresa *\r\n \r\n {empresas?.map((row, index) => (\r\n \r\n {row.empresa}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n Dê uma Nota de 1 a 5 pelo serviço prestado *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraAvaliacao.isLoading || open && }\r\n >\r\n {props.obraAvaliacao.id ? (props.obraAvaliacao.isLoading ? 'Atualizando Avaliação...' : 'Atualizar') : (props.obraAvaliacao.isLoading ? 'Salvando Avaliação...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Empresa\r\n Descrição\r\n Nota\r\n Ações\r\n \r\n \r\n \r\n {undefined !== obraAvaliacao && obraAvaliacao.length\r\n ? obraAvaliacao.map((n) => {\r\n return (\r\n \r\n \r\n {n.empresa ? n.empresa.nomeFantasia : ''}\r\n \r\n \r\n {n.descricao ? n.descricao : ''}\r\n \r\n \r\n {n.nota ? : ''}\r\n \r\n \r\n (\r\n handleEdit(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleDelete(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n />\r\n\r\n
\r\n\r\n )\r\n}\r\n\r\nObraAvaliacaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraAvaliacaoEdit))\r\n)\r\nexport { connectedObraEditPage as ObraAvaliacaoEdit }\r\n","import React, { useEffect, useMemo } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Typography,\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { parametroAction } from '../../_actions'\r\n\r\nexport const ObraAjudaModal = ({ modal, toggle, props }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const { parametro } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.getAjuda());\r\n }, []);\r\n\r\n const formattedParametro = useMemo(() => {\r\n return { __html: parametro.valor };\r\n }, [parametro.valor]);\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Ajuda'}\r\n }\r\n />\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport PropTypes from 'prop-types'\r\nimport PhotoIcon from '@mui/icons-material/Photo';\r\nimport { withStyles } from '@mui/styles'\r\nimport TableViewIcon from '@mui/icons-material/TableView';\r\nimport Typography from '@mui/material/Typography'\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { toast } from 'react-toastify'\r\nimport { uploadFile } from '_services'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\nimport {\r\n Avatar,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Button,\r\n Grid,\r\n IconButton,\r\n MenuItem,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n TablePagination,\r\n Tooltip,\r\n Skeleton,\r\n Input\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n obraAnexoAction,\r\n tipoAnexoAction\r\n} from '../../_actions'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { isEmpty } from 'lodash'\r\nimport CustomButton from '../../components/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nfunction isEditable(e) {\r\n if (e == '2' || e == '3' || e == '4' || e == '5' || e == '6') {\r\n return false\r\n }\r\n else return true\r\n}\r\n\r\nconst ObraAnexoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n const { classes, idObra, ...rest } = props\r\n const { match: { params } } = props;\r\n const { totalRegistros } = props.obraAnexo\r\n const { isLoading } = props.obra\r\n const formRef = React.createRef(null);\r\n const [key, setKey] = useState(1);\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const [open, setOpen] = useState(false)\r\n const [imagem, setImagem] = useState('')\r\n const [file, setFile] = useState(undefined)\r\n\r\n const { obraAnexo } = useSelector(\r\n (state) => state.obraAnexo)\r\n\r\n const { tipoAnexo } = useSelector(\r\n (state) => state.tipoAnexo)\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(obraAnexoAction.clear())\r\n\r\n dispatch(tipoAnexoAction.getTiposAnexosSelect())\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: (idObra && idObra != '' && idObra)\r\n };\r\n\r\n dispatch(obraAnexoAction.getObraAnexo(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idObra]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n dispatch(obraAnexoAction.getObraAnexoById(id))\r\n }\r\n\r\n const handleClean = () => {\r\n dispatch(obraAnexoAction.clearDetail())\r\n setKey(0);\r\n }\r\n\r\n const handleDelete = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este anexo?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obraAnexo.isLoading,\r\n confirmationText: props.obraAnexo.isLoading ? 'Excluindo anexo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraAnexoAction.deleteObraAnexoById(id))\r\n })\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraAnexoAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n if (props.obraAnexo.idTipoAnexo == 0 || props.obraAnexo.idTipoAnexo == null) {\r\n toast.error('Informe o Tipo de Anexo!')\r\n }\r\n else if (props.obraAnexo.caminhoAnexo == '' || props.obraAnexo.caminhoAnexo == null) {\r\n toast.error('Informe o Arquivo do Anexo!')\r\n } else {\r\n let payload = {\r\n id: props.obraAnexo.id,\r\n idObra: parseInt(idObra),\r\n idTipoAnexo: props.obraAnexo.idTipoAnexo,\r\n caminhoAnexo: props.obraAnexo.caminhoAnexo\r\n }\r\n\r\n if (props.obraAnexo.id) {\r\n dispatch(obraAnexoAction.editObraAnexoInfo(props.obraAnexo.id, payload, true))\r\n } else {\r\n dispatch(obraAnexoAction.createObraAnexo(payload))\r\n }\r\n }\r\n\r\n };\r\n\r\n const handleOpenFile = (link) => {\r\n window.open(link);\r\n }\r\n\r\n const handleChangeFile = (e) => {\r\n setFile(e.target.files[0])\r\n }\r\n\r\n useEffect(() => {\r\n if (file && file != undefined && file != null) {\r\n setOpen(true)\r\n upload()\r\n }\r\n }, [file])\r\n\r\n const upload = () => {\r\n uploadFile(file)\r\n .then((response) => {\r\n setTimeout(function () {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(obraAnexoAction.onChangeProps('caminhoAnexo', event2))\r\n\r\n setOpen(false)\r\n\r\n }, 1000);\r\n\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Anexo'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Anexo'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (props.obraAnexo.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n\r\n //{isEditable(props.obra.ultimoEvento) == true ?\r\n //permitir enviar anexos de NOTAS mesmo depois de já aprovado o orçamento\r\n\r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleChangeFile(e)}\r\n type=\"file\"\r\n placeHolder=\"Escolher arquivo *\"\r\n formControl\r\n key={key}\r\n required\r\n margin=\"dense\"\r\n />\r\n \r\n \r\n \r\n \r\n Tipo Anexo *\r\n \r\n {!isEmpty(tipoAnexo) &&\r\n undefined !== tipoAnexo &&\r\n tipoAnexo.length &&\r\n tipoAnexo.map((row) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraAnexo.isLoading || open && }\r\n >\r\n {props.obraAnexo.id ? (props.obraAnexo.isLoading ? 'Atualizando ObraAnexo...' : 'Atualizar') : (props.obraAnexo.isLoading ? 'Salvando ObraAnexo...' : 'Salvar')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Tipo de Anexo\r\n Anexo\r\n Ações\r\n \r\n \r\n \r\n {undefined !== obraAnexo && obraAnexo.length\r\n ? obraAnexo.map((n) => {\r\n\r\n const pathArray = n.caminhoAnexo.split('/');\r\n const nomeArquivo = pathArray[pathArray.length - 1];\r\n\r\n return (\r\n \r\n \r\n {n.id ? n.id : ''}\r\n \r\n \r\n {n.tipoAnexo ? n.tipoAnexo.nome : ''}\r\n \r\n \r\n {n.caminhoAnexo && typeof n.caminhoAnexo === 'string' ? (\r\n n.caminhoAnexo.toLowerCase().includes('pdf') ? (\r\n \r\n handleOpenFile(n.caminhoAnexo)}\r\n >\r\n {nomeArquivo} \r\n \r\n \r\n ) : (\r\n (n.caminhoAnexo.toLowerCase().includes('.jpg') ||\r\n n.caminhoAnexo.toLowerCase().includes('.jpeg') ||\r\n n.caminhoAnexo.toLowerCase().includes('.png') ||\r\n n.caminhoAnexo.toLowerCase().includes('.svg') ||\r\n n.caminhoAnexo.toLowerCase().includes('webp')) ? (\r\n \r\n handleOpenFile(n.caminhoAnexo)}\r\n >\r\n {nomeArquivo} \r\n \r\n \r\n ) : n.caminhoAnexo.toLowerCase().includes('.txt') ? (\r\n \r\n handleOpenFile(n.caminhoAnexo)}\r\n >\r\n {nomeArquivo} \r\n \r\n \r\n ) : (\r\n (n.caminhoAnexo.toLowerCase().includes('.xls') ||\r\n n.caminhoAnexo.toLowerCase().includes('.xlsx') ||\r\n n.caminhoAnexo.toLowerCase().includes('.csv') ||\r\n n.caminhoAnexo.toLowerCase().includes('.doc') ||\r\n n.caminhoAnexo.toLowerCase().includes('.docx') ||\r\n n.caminhoAnexo.toLowerCase().includes('.dwg') ||\r\n n.caminhoAnexo.toLowerCase().includes('.rte') ||\r\n n.caminhoAnexo.toLowerCase().includes('.rvt') ||\r\n n.caminhoAnexo.toLowerCase().includes('.ifc') ||\r\n n.caminhoAnexo.toLowerCase().includes('.pln')) && (\r\n \r\n handleOpenFile(n.caminhoAnexo)}\r\n >\r\n {nomeArquivo} \r\n \r\n \r\n )\r\n )\r\n )\r\n ) : null}\r\n \r\n \r\n (\r\n handleEdit(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleDelete(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nObraAnexoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraAnexoEdit))\r\n)\r\nexport { connectedObraEditPage as ObraAnexoEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport AddPhotoAlternateIcon from \"@mui/icons-material/AddPhotoAlternate\";\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { toast } from 'react-toastify'\r\nimport { Page, MapContainerCoordenadasModal } from 'components/Maps'\r\nimport {\r\n Backdrop,\r\n Box,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Fab,\r\n Grid,\r\n Input,\r\n InputAdornment,\r\n ImageList,\r\n ImageListItem,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n authActions,\r\n obraAction,\r\n obraEtapaItemAction,\r\n obraMedicaoAction,\r\n unidadeAction\r\n} from '../../_actions'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { uploadImage } from '_services'\r\nimport { stringUtils } from '../../utils'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport CustomButton from '../../components/CustomButton';\r\n\r\nconst CustomInput = styled(Input)(() => ({\r\n display: \"none\"\r\n}));\r\n\r\nconst CustomDeleteIcon = styled(DeleteIcon)(() => ({\r\n color: '#4f4f4f',\r\n marginTop: 47,\r\n fontSize: 21,\r\n '&:hover': {\r\n cursor: 'pointer'\r\n },\r\n}));\r\n\r\nexport const ObraCoordenadasModal = ({ modal, toggle, props, obra, idObra }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const [imagesUploaded, setImagesUploaded] = useState([]);\r\n\r\n const [descricao, setDescricao] = useState('');\r\n const [quantidade, setQuantidade] = useState('');\r\n const [percentualValor, setPercentualValor] = useState('');\r\n const [open, setOpen] = useState(false);\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className, obraCoordenada, obraOcorrenciaAnexo, ...rest } = props\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleSubmit = () => {\r\n\r\n const payload = {\r\n }\r\n\r\n if (payload) {\r\n dispatch(obraMedicaoAction.createObraMedicao(payload))\r\n toggle();\r\n\r\n } else {\r\n toast.error('Selecione pelo menos uma imagem para a medição antes de salvar')\r\n }\r\n }\r\n\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Coordenada'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport {\r\n convocacaoAction\r\n} from '../../_actions'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../utils'\r\n\r\nexport const ObraConvocacaoObservacaoModal = ({ modal, toggle, props, idEmpresa, aceitar, idObra, idOrgao }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const [observacoes, setObservacoes] = useState('');\r\n const [diasPrazo, setDiasPrazo] = useState();\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleSubmit = () => {\r\n let payload = {\r\n idEmpresa: idEmpresa,\r\n idObra: idObra,\r\n observacoes: observacoes,\r\n aceita: aceitar\r\n }\r\n\r\n let payloadOrcamento = {\r\n idEmpresa: idEmpresa,\r\n idObra: idObra,\r\n diasPrazo: diasPrazo,\r\n observacoes: observacoes\r\n }\r\n\r\n dispatch(convocacaoAction.createConvocacao(payload, payloadOrcamento, idOrgao, idObra))\r\n toggle();\r\n }\r\n function InsertText() {\r\n return (\r\n \r\n Convocar empresa para realizar o serviço\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n setObservacoes(event.target.value)}\r\n value={observacoes || ''}\r\n variant=\"outlined\"\r\n />\r\n \r\n {aceitar == true ?\r\n \r\n setDiasPrazo(e.target.value)}\r\n margin=\"normal\"\r\n value={diasPrazo}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n min: 0\r\n }}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.convocacao.isLoading && }\r\n >\r\n {props.convocacao.isLoading ? 'Salvando convocação...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport moment from 'moment'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport { phoneMask } from '../../utils'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableBody,\r\n TableContainer,\r\n TableRow,\r\n TableHead,\r\n TableCell,\r\n TablePagination,\r\n Typography\r\n} from '@mui/material'\r\nimport {\r\n empresaAction\r\n} from '../../_actions'\r\nimport { ObraConvocacaoObservacaoModal } from './obraConvocacaoObservacaoModal.component'\r\n\r\nexport const ObraConvocacaoModal = ({ modal, toggle, props, idObra, idOrgao }) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n\r\n const { classes, className, obraEtapa, ...rest } = props\r\n const { match: { params } } = props;\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [idEmpresa, setIdEmpresa] = useState('');\r\n const [aceitar, setAceitar] = useState(false);\r\n\r\n const [modalConvocacao, setModalConvocacao] = useState(false);\r\n const toggleModalConvocacao = () => setModalConvocacao(!modalConvocacao);\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const { empresa } = useSelector((state) => state.empresa)\r\n const { totalRegistros } = props.empresa\r\n const { isLoading } = props.empresa\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n IdOrgao: idOrgao,\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(empresaAction.getEmpresaConvocacao(filterModel))\r\n }, [page, limit])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleOpenModalObservacoes = (idEmpresa, aprovar) => {\r\n setIdEmpresa(idEmpresa)\r\n setAceitar(aprovar)\r\n toggleModalConvocacao();\r\n }\r\n\r\n const handleChangeStatusConvocacao = (idEmpresa, aprovar) => {\r\n confirm({\r\n title: `Você deseja ${aprovar ? `aceitar` : `recusar`} esta convocação?`,\r\n content: 'Esta operação é irreversível',\r\n confirmationText: aprovar ? 'Sim, aceitar!' : 'Sim, recusar!',\r\n cancellationText: 'Não!',\r\n allowOutsideClick: false,\r\n }).then(() => {\r\n handleOpenModalObservacoes(idEmpresa, aprovar);\r\n });\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n Convocar empresa\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Razão Social\r\n E-mail\r\n Telefone\r\n Última Convocação\r\n Ações\r\n \r\n \r\n \r\n {empresa && undefined !== empresa && empresa.length\r\n ? empresa.map((n, index) => {\r\n return (\r\n \r\n \r\n {n.razaoSocial ? n.razaoSocial : ''}\r\n \r\n \r\n {n.email ? n.email : ''}\r\n \r\n \r\n {n.telefone ? phoneMask(n.telefone) : ''}\r\n \r\n \r\n {n.convocacoes && n.convocacoes.length > 0 ? moment(n.convocacoes[0].data).format(\"DD/MM/yyyy HH:mm\") : '-'}\r\n \r\n \r\n {/* somente exibe na primeira linha*/}\r\n {index == 0 && page == 0 ?\r\n <>\r\n (\r\n handleChangeStatusConvocacao(n.id, true)}\r\n disabled={props.obra.isLoading}\r\n startIcon={}\r\n endIcon={props.obra.isLoading && }\r\n >\r\n Aceitar\r\n \r\n )}\r\n />\r\n (\r\n handleChangeStatusConvocacao(n.id, false)}\r\n disabled={props.obra.isLoading}\r\n startIcon={}\r\n endIcon={props.obra.isLoading && }\r\n >\r\n Recusar\r\n \r\n )}\r\n />\r\n \r\n : null\r\n }\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n
\r\n
\r\n\r\n {\r\n (modalConvocacao ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { usuarioAction } from '../../../_actions'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../../utils'\r\nimport CustomButton from '../../../components/CustomButton/CustomButton'\r\n\r\nexport const UsuarioResponsavelAddModal = ({ modal, toggle, props, setResponsibleRegistereds }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, empresa, ...rest } = props\r\n const { match: { params } } = props;\r\n const [nome, setNome] = useState('');\r\n const [cargo, setCargo] = useState('');\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleAddResponsavel = () => {\r\n setResponsibleRegistereds((prevItems) => [\r\n ...prevItems,\r\n { usuario: nome, cargo: cargo }\r\n ]);\r\n\r\n toggle();\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Responsável'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n setNome(e.target.value)}\r\n value={nome || ''}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n \r\n \r\n setCargo(e.target.value)}\r\n value={cargo || ''}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.usuario.isLoading && }\r\n >\r\n {props.usuario.isLoading ? 'Salvando responsável...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport moment from 'moment'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport { stringUtils, OBRA_DIARIO_CONDICAO_CLIMATICA } from '../../../utils'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faUserPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport { uploadFile } from '_services'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\nimport {\r\n Backdrop,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Fab,\r\n Grid,\r\n Input,\r\n MenuItem,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n obraDiarioAction\r\n} from '../../../_actions'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { UsuarioResponsavelAddModal } from './usuarioResponsavelAddModal.component';\r\n\r\nconst CustomInput = styled(\"input\")`\r\n display: none;\r\n`;\r\n\r\nconst CustomTypography = styled(Typography)(() => ({\r\n marginTop: 4,\r\n alignItems: 'center',\r\n color: '#666666',\r\n marginRight: 20,\r\n fontSize: 11\r\n}));\r\n\r\nconst CustomDeleteIcon = styled(DeleteIcon)(() => ({\r\n color: '#4f4f4f',\r\n marginTop: 47,\r\n fontSize: 21,\r\n '&:hover': {\r\n cursor: 'pointer'\r\n },\r\n}));\r\n\r\nexport const ObraDiarioAddModal = ({ modal, toggle, props, idObra }) => {\r\n\r\n const dispatch = useDispatch()\r\n const currentDate = moment().format(\"yyyy-MM-DD\");\r\n const confirm = useConfirm()\r\n\r\n const [filesUploaded, setFilesUploaded] = useState([]);\r\n const [responsibleRegistereds, setResponsibleRegistereds] = useState([]);\r\n const [openFile, setOpenFile] = useState(false);\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n\r\n const [modalAddUsuario, setModalAddUsuario] = useState(false);\r\n const toggleModalAddUsuario = () => setModalAddUsuario(!modalAddUsuario);\r\n\r\n const user = useSelector((state) => state.authentication.user)\r\n\r\n useEffect(() => {\r\n dispatch(obraDiarioAction.clear());\r\n }, [])\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraDiarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleOpenModalAddUsuario = () => {\r\n toggleModalAddUsuario();\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n Enviar Diário de Obra\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n //se não for informado data, pega a data atual\r\n data: props.obraDiario.data ? moment(props.obraDiario.data).toISOString() : currentDate,\r\n condicaoClimatica: props.obraDiario.condicaoClimatica,\r\n idObra: parseInt(idObra),\r\n //pega a empresa do usuário logado\r\n idEmpresa: user?.usuariosEmpresas[0].idEmpresa,\r\n observacoes: props.obraDiario.observacoes,\r\n responsavelTecnico: props.obraDiario.responsavelTecnico,\r\n obrasDiariosAnexos: filesUploaded,\r\n obrasDiariosEquipes: responsibleRegistereds\r\n }\r\n\r\n dispatch(obraDiarioAction.createObraDiario(payload))\r\n toggle();\r\n };\r\n\r\n useEffect(() => {\r\n console.log('responsibleRegistereds', responsibleRegistereds)\r\n }, [responsibleRegistereds])\r\n\r\n const handleUploadClickFiles = (event) => {\r\n const files = Array.from(event.target.files); // Transformando em array para iteração\r\n\r\n setOpenFile(true);\r\n\r\n // Array para armazenar as promessas de upload\r\n const uploadPromises = files.map((file) =>\r\n uploadFile(file)\r\n .then((response) => {\r\n return { caminhoAnexo: response.toString() };\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n return null;\r\n })\r\n );\r\n\r\n // Esperar que todos os uploads sejam concluídos\r\n Promise.all(uploadPromises)\r\n .then((uploadedFiles) => {\r\n // Filtrar arquivos que tiveram sucesso no upload (não são null)\r\n const successfulUploads = uploadedFiles.filter((file) => file !== null);\r\n setFilesUploaded([...filesUploaded, ...successfulUploads]);\r\n setOpenFile(false);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n setOpenFile(false);\r\n });\r\n };\r\n\r\n const handleRemoveOnListFile = caminhoAnexo => {\r\n confirm({\r\n title: 'Você deseja excluir este arquivo?',\r\n description: 'Essa operação removerá o arquivo deste diário de obra',\r\n disabled: props.obraDiario.isLoading,\r\n confirmationText: props.obraDiario.isLoading ? 'Excluindo arquivo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setFilesUploaded(filesUploaded.filter(ts => ts.caminhoAnexo != caminhoAnexo));\r\n })\r\n };\r\n\r\n const handleRemoveOnListUser = nome => {\r\n confirm({\r\n title: 'Você deseja excluir este responsável?',\r\n description: 'Essa operação removerá o responsável deste diário de obra',\r\n disabled: props.obraDiario.isLoading,\r\n confirmationText: props.obraDiario.isLoading ? 'Excluindo responsável...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setResponsibleRegistereds(responsibleRegistereds.filter(ts => ts.nome != nome));\r\n })\r\n };\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Condição Climática\r\n \r\n CHUVA\r\n NUBLADO\r\n SOL\r\n \r\n \r\n \r\n \r\n \r\n \r\n {responsibleRegistereds && responsibleRegistereds.length > 0 &&\r\n \r\n \r\n \r\n \r\n Responsável(is)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n Cargo\r\n \r\n \r\n Ação\r\n \r\n \r\n \r\n {responsibleRegistereds.map((item) => (\r\n \r\n \r\n \r\n {item.usuario}\r\n \r\n \r\n {item.cargo}\r\n \r\n \r\n handleRemoveOnListUser(item.nome)} />\r\n \r\n \r\n \r\n ))}\r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n theme.zIndex.drawer + 1 }} open={openFile}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo(s)...\r\n \r\n \r\n \r\n \r\n \r\n Enviar arquivos\r\n \r\n handleUploadClickFiles(e)}\r\n />\r\n \r\n \r\n \r\n {filesUploaded && filesUploaded.length > 0 &&\r\n \r\n \r\n \r\n \r\n Anexo(s)\r\n \r\n \r\n  \r\n \r\n \r\n Ação\r\n \r\n \r\n \r\n {filesUploaded.map((item) => (\r\n \r\n \r\n \r\n {item.caminhoAnexo}\r\n \r\n \r\n handleRemoveOnListFile(item.caminhoAnexo)} />\r\n \r\n \r\n \r\n ))}\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n \r\n }\r\n endIcon={props.obraDiario.isLoading && }\r\n >\r\n {props.obraDiario.isLoading ? 'Salvando diário...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n {\r\n (modalAddUsuario ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport {\r\n Button,\r\n Card,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Typography\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nexport const ObraDiarioModalEquipe = ({ modal, toggle, props, equipe }) => {\r\n\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n EQUIPE\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n Cargo\r\n \r\n \r\n \r\n {equipe && equipe.length > 0 && equipe.map((item) => (\r\n \r\n \r\n \r\n {item.usuario}\r\n \r\n \r\n {item.cargo}\r\n \r\n \r\n \r\n ))}\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport {\r\n Button,\r\n Card,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n Typography\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nexport const ObraDiarioModalAnexo = ({ modal, toggle, props, anexos }) => {\r\n\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleOpenImagem = (link) => {\r\n window.open(link);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ANEXOS\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {undefined !== anexos && anexos.length\r\n ? anexos.map((n) => {\r\n return (\r\n n.caminhoAnexo.endsWith('png') || n.caminhoAnexo.endsWith('jpg') || n.caminhoAnexo.endsWith('jpeg') || n.caminhoAnexo.endsWith('webp') ?\r\n \r\n \r\n handleOpenImagem(n.caminhoAnexo)}\r\n alt={n.caminhoAnexo}\r\n loading=\"lazy\"\r\n />\r\n \r\n \r\n :\r\n \r\n \r\n handleOpenImagem(n.caminhoAnexo)}>{n.caminhoAnexo}\r\n \r\n \r\n )\r\n }) : \r\n \r\n Nenhum anexo para ser exibido\r\n \r\n \r\n }\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment'\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { AccessControl } from '../../../components/Utils/AccessControl'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport {\r\n CardHeader,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TableContainer,\r\n TablePagination,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { OBRA_DIARIO_CONDICAO_CLIMATICA, MANUAIS_CATEGORIAS, STATUS_SERVICO, history } from '../../../utils'\r\nimport { authActions, obraDiarioAction } from '../../../_actions';\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { withStyles } from '@mui/styles'\r\nimport { ObraDiarioAddModal } from './obraDiarioAddModal.component'\r\nimport { ObraDiarioModalEquipe } from './obraDiarioModalEquipe.component'\r\nimport { ObraDiarioModalAnexo } from './obraDiarioModalAnexo.component'\r\nimport CustomButton from '../../../components/CustomButton/CustomButton'\r\nimport { useDebounce } from 'use-debounce';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../../components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faFile, faFilePdf, faUsers } from '@fortawesome/free-solid-svg-icons';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ObraDiarioEdit = ({ props, idObra }) => {\r\n\r\n const { totalRegistros } = props.obraDiario\r\n const isLoadingObraDiario = props.obraDiario.isLoading\r\n const confirm = useConfirm()\r\n\r\n const [anexos, setAnexos] = useState([]);\r\n const [equipe, setEquipe] = useState([]);\r\n\r\n const { obraDiario } = props.obraDiario\r\n\r\n const [modalDiario, setModalDiario] = useState(false);\r\n\r\n const toggleModalDiario = () => setModalDiario(!modalDiario);\r\n const { match: { params } } = props;\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const [modalAnexos, setModalAnexos] = useState(false);\r\n const toggleModalAnexos = () => setModalAnexos(!modalAnexos);\r\n\r\n const [modalEquipe, setModalEquipe] = useState(false);\r\n const toggleModalEquipe = () => setModalEquipe(!modalEquipe);\r\n\r\n const handleOpenModalAnexos = (n) => {\r\n setAnexos(n.obrasDiariosAnexos);\r\n toggleModalAnexos();\r\n }\r\n\r\n const handleOpenModalEquipe = (n) => {\r\n setEquipe(n.obrasDiariosEquipes);\r\n toggleModalEquipe();\r\n }\r\n\r\n const dispatch = useDispatch()\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(5);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('asc');\r\n\r\n const handleOpenModalDiario = () => {\r\n toggleModalDiario();\r\n }\r\n\r\n const handleDeleteDiario = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este diário de obra?',\r\n description: 'Essa operação é irreversível',\r\n confirmationText: 'Sim, excluir!',\r\n disabled: props.obraDiario.isLoading,\r\n confirmationText: props.obraDiario.isLoading ? 'Excluindo diário...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraDiarioAction.deleteObraDiarioById(id, idObra))\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n IdObra: idObra,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction\r\n };\r\n\r\n dispatch(obraDiarioAction.getObraDiario(filterModel))\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleOpenPdf = (obraDiario) => {\r\n history.push(\"/obraDiarioPrintPdf\", { obraDiario: obraDiario });\r\n };\r\n\r\n function isWinner(obra) {\r\n const idEmpresa = authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0]?.idEmpresa : 0\r\n\r\n return obra.obrasOrcamentos?.some(orcamento => orcamento.idEmpresa === idEmpresa && orcamento.status === 1);\r\n }\r\n\r\n function TitleText() {\r\n return (\r\n \r\n {'Diário de Obra'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* SÓ PODE ENVIAR SE É EMPRESA, E SE A OBRA ESTIVER EM EXECUÇÃO*/}\r\n {authActions.isEmpresa() &&\r\n //se a empresa for a vencedora do orçamento também\r\n isWinner(props.obra) &&\r\n props.obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO\r\n ?\r\n \r\n }\r\n >\r\n Cadastrar novo diário\r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n DATA\r\n \r\n \r\n CONDIÇÃO CLIMÁTICA\r\n \r\n \r\n RESPONSÁVEL TÉCNICO\r\n \r\n \r\n OBSERVAÇÕES\r\n \r\n \r\n AÇÕES\r\n \r\n \r\n \r\n \r\n {undefined !== obraDiario && obraDiario.length\r\n ? obraDiario.map((n) => {\r\n return (\r\n \r\n \r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.condicaoClimatica ? n.condicaoClimatica == OBRA_DIARIO_CONDICAO_CLIMATICA.SOL ? 'SOL' : OBRA_DIARIO_CONDICAO_CLIMATICA.CHUVA ? 'CHUVA' :\r\n OBRA_DIARIO_CONDICAO_CLIMATICA.NUBLADO ? 'NUBLADO' : '' : ''}\r\n \r\n \r\n {n.responsavelTecnico ? n.responsavelTecnico.toUpperCase() : ''}\r\n \r\n \r\n {n.observacoes ? n.observacoes.toUpperCase() : ''}\r\n \r\n \r\n (\r\n handleDeleteDiario(n.id)}\r\n size=\"small\"\r\n disabled={authActions.isEmpresa() && !isWinner(props.obra)}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n handleOpenPdf(n)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n handleOpenModalAnexos(n)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n handleOpenModalEquipe(n)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoadingObraDiario ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n
\r\n {\r\n (modalDiario ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalAnexos ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalEquipe ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nObraDiarioEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraDiarioEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraDiarioEdit))\r\n)\r\nexport { connectedObraDiarioEditPage as ObraDiarioEdit }\r\n\r\nexport default ObraDiarioEdit;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { authActions, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport { GoogleApiWrapper } from 'google-maps-react';\r\nimport moment from 'moment'\r\nimport WarningAmberOutlinedIcon from '@mui/icons-material/WarningAmberOutlined';\r\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\r\nimport {\r\n Box,\r\n Grid,\r\n Paper,\r\n Typography,\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 5,\r\n [`&.${linearProgressClasses.colorPrimary}`]: {\r\n backgroundColor: theme.palette.grey[theme.palette.mode === 'light' ? 200 : 800],\r\n },\r\n [`& .${linearProgressClasses.bar}`]: {\r\n borderRadius: 5,\r\n backgroundColor: '#015192'\r\n },\r\n}));\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst CustomGrid = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'left'\r\n },\r\n}));\r\n\r\nconst CustomGrid2 = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: 4\r\n },\r\n}));\r\n\r\nconst CustomTypography = styled(Typography)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: -10,\r\n marginBottom: -8,\r\n paddingTop: -10,\r\n paddingBottom: -8,\r\n paddingRight: 3,\r\n marginRight: 3,\r\n paddingLeft: 3,\r\n marginLeft: 3\r\n },\r\n}));\r\n\r\nconst ObraSummaryCard = (props) => {\r\n\r\n const { match: { params } } = props;\r\n const { idObra, isOrcamento, latitude, longitude, obraCarregada } = props\r\n const dispatch = useDispatch()\r\n const [endereco, setEndereco] = useState('');\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraAction.clear());\r\n\r\n //obraCarregada = se precisa buscar obra de novo, ou já está carregada\r\n if (idObra && obraCarregada != true) {\r\n dispatch(obraAction.getObraById(idObra))\r\n }\r\n }, [])\r\n\r\n const empenhos = useSelector((state) => state.obra?.obrasEmpenhos)\r\n\r\n const verifyObraHasEmpenho = () => {\r\n return empenhos?.some(ts => ts.idObra == parseInt(idObra) && ts.excluido != true);\r\n }\r\n\r\n useEffect(() => {\r\n if (props.google && latitude && longitude) {\r\n const geocoder = new props.google.maps.Geocoder();\r\n geocoder.geocode(\r\n { location: { lat: latitude, lng: longitude } },\r\n (results, status) => {\r\n if (status === 'OK' && results[0]) {\r\n // Verifica se o endereço contém um Plus Code\r\n const formattedAddress = results[0].formatted_address;\r\n if (formattedAddress.includes('+')) {\r\n // Se o endereço contém um Plus Code, você pode definir o endereço como não informado ou um texto alternativo\r\n setEndereco('Endereço não disponível.');\r\n } else {\r\n setEndereco(formattedAddress);\r\n }\r\n } else {\r\n console.error('Geocode error: ', status);\r\n }\r\n }\r\n );\r\n }\r\n }, [props.google, latitude, longitude]);\r\n\r\n //verifica se a empresa do usuário logado é a vencedora para a obra, dentro dos orçamentos\r\n function isWinner(obra) {\r\n const idEmpresa = authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0]?.idEmpresa : 0\r\n\r\n return obra.obrasOrcamentos?.some(orcamento => orcamento.idEmpresa === idEmpresa && orcamento.status === 1);\r\n }\r\n\r\n return (\r\n \r\n {idObra &&\r\n \r\n \r\n \r\n {\r\n (authActions.isEmpresa() && !isOrcamento && props.obra.id != 0) ?\r\n isWinner(props.obra) ?\r\n \r\n VOCÊ É A EMPRESA VENCEDORA DESTA OBRA\r\n \r\n :\r\n \r\n VOCÊ NÃO É A EMPRESA VENCEDORA DESTA OBRA\r\n \r\n :\r\n null\r\n }\r\n\r\n\r\n \r\n \r\n RESUMO DA OBRA\r\n \r\n \r\n USUÁRIO DE CRIAÇÃO: {props.obra.usuario?.nome?.toUpperCase()}\r\n \r\n \r\n DATA DE INÍCIO: {props.obra.dataInicio ? moment(props.obra.dataInicio).format(\"DD/MM/yyyy\") : ''}\r\n \r\n \r\n PREVISÃO DE CONCLUSÃO: {props.obra.dataTermino ? moment(props.obra.dataTermino).format(\"DD/MM/yyyy\") : ''}\r\n \r\n \r\n \r\n \r\n TÍTULO: \r\n \r\n \r\n #{props.obra?.id} {props.obra?.titulo}\r\n \r\n \r\n VALOR MÁXIMO DA OBRA: \r\n {props.obra.valorReferenciaComBdi ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(props.obra.valorReferenciaComBdi) : 'R$ --,--'}\r\n \r\n \r\n \r\n \r\n DESCRITIVO: \r\n \r\n \r\n {props.obra?.descritivo}\r\n \r\n \r\n BDI: \r\n {props.obra.bdi ? props.obra.bdi + '%' : 'SEM BDI'}\r\n \r\n \r\n \r\n \r\n ÓRGÃO: \r\n \r\n \r\n {props.obra.orgao?.nome?.toUpperCase()}\r\n \r\n \r\n Possui empenho: \r\n {verifyObraHasEmpenho() ? 'SIM' : 'NÃO'}\r\n \r\n \r\n {props.obra.usuarioMudancaSituacao &&\r\n \r\n \r\n USUÁRIO DE APROVAÇÃO: \r\n \r\n \r\n {props.obra.usuarioMudancaSituacao.nome?.toUpperCase()}\r\n \r\n \r\n }\r\n {props.obra.dataMudancaSituacao &&\r\n \r\n \r\n DATA DA APROVAÇÃO: \r\n \r\n \r\n {moment(props.obra.dataMudancaSituacao).format(\"DD/MM/yyyy HH:mm:ss\")}\r\n \r\n \r\n }\r\n \r\n \r\n CONCLUSÃO: \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${props.obra.percentualConclusaoObra != 0 ? props.obra.percentualConclusaoObra : 0}%`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ENDEREÇO: \r\n \r\n \r\n {endereco && endereco != '' ? endereco : 'Não informado'}\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nObraSummaryCard.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n idObra: PropTypes.number.isRequired,\r\n isOrcamento: PropTypes.bool,\r\n latitude: PropTypes.number,\r\n longitude: PropTypes.number\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraSummaryCard = withRouter(\r\n connect(mapStateToProps)(withStyles(styles)(ObraSummaryCard))\r\n);\r\n\r\n// para conseguir obter o endereço, através da API, é necessária a chave\r\nexport default GoogleApiWrapper({\r\n apiKey: 'AIzaSyC1QwWDv0BApsU0gjwIqEgmns_8RX2s-AU',\r\n})(connectedObraSummaryCard);\r\n","import React from 'react';\r\nimport { Button, Dialog, Typography } from '@mui/material';\r\nimport Carousel from 'react-material-ui-carousel';\r\nimport { Box } from '@mui/system';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nconst CarouselImage = ({ images, openCarousel, handleClose }) => {\r\n return (\r\n \r\n \r\n \r\n {images?.length > 0\r\n ? images.map((image, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n Sem imagens para mostrar\r\n \r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default CarouselImage;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport {\r\n CardHeader,\r\n Grid,\r\n IconButton,\r\n MenuItem,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport { obraOcorrenciasAction } from '../../_actions/obraOcorrencias.actions';\r\nimport { SelectValidator, ValidatorForm } from 'react-material-ui-form-validator'\r\nimport { Box } from '@material-ui/core';\r\nimport toLongDate from '../../utils/toLongDate';\r\nimport moment from 'moment';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { crudService } from '../../_services';\r\nimport CarouselImage from '../../components/Carousel/CarouselImage';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ObraOcorrenciasList = ({ props, idObra, classes }) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const formChat = useRef();\r\n\r\n const [empresas, setEmpresas] = useState([]);\r\n const [carouselVisible, setCarouselVisible] = useState(false);\r\n const [images, setImages] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.authentication.user.idTipoUsuario == 3) {\r\n setEmpresas([{ ...props.authentication.user.usuariosEmpresas[0], selected: true }]);\r\n } else {\r\n crudService\r\n .get(`obrasOrcamentosItens/itensAprovados/${idObra}`)\r\n .then(response => setEmpresas(response.data?.map(r => { return { ...r, selected: false } })));\r\n }\r\n }, [])\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n const selectedEmpresa = empresas.find(e => e.selected);\r\n\r\n if (selectedEmpresa) {\r\n let filterModel = {\r\n IdObra: idObra,\r\n IdEmpresa: selectedEmpresa.idEmpresa\r\n };\r\n\r\n dispatch(obraOcorrenciasAction.getObraOcorrencias(filterModel))\r\n }\r\n }, [empresas]);\r\n\r\n function TitleText() {\r\n return (\r\n \r\n {'Ocorrências'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n {carouselVisible && setCarouselVisible(false)} />}\r\n\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {props.authentication.user.idTipoUsuario != 3 &&\r\n \r\n console.log(event)}\r\n >\r\n \r\n e.selected)}\r\n onChange={(event) => setEmpresas(empresas.map(e => {\r\n if (e.idEmpresa === event.target.value) {\r\n return { ...e, selected: true }\r\n } else {\r\n return { ...e, selected: false }\r\n }\r\n }))}\r\n margin=\"normal\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n >\r\n \r\n Empresa\r\n \r\n {empresas?.map((row, index) => (\r\n \r\n {row.empresa}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n {props.obraOcorrencias?.obraOcorrencias?.length > 0 && empresas?.some(e => e.selected) &&\r\n props.obraOcorrencias.obraOcorrencias.map((ocorrencia, index, ocorrencias) => {\r\n const rightSide = (ocorrencia.origem === 'E' && props.authentication.user.idTipoUsuario == 3) || (ocorrencia.origem === 'O' && (props.authentication.user.idTipoUsuario == 2 || props.authentication.user.idTipoUsuario == 1));\r\n return (\r\n <>\r\n {(toLongDate(ocorrencia.data) !== toLongDate(ocorrencias[index - 1]?.data) || !index) &&\r\n \r\n \r\n {toLongDate(ocorrencia.data)}\r\n \r\n \r\n }\r\n\r\n \r\n \r\n {ocorrencia.usuario.nome}\r\n {ocorrencia.descricao}\r\n {ocorrencia.obrasOcorrenciasAnexos.length > 0 &&\r\n \r\n {ocorrencia.obrasOcorrenciasAnexos.map((item) =>\r\n {\r\n setImages(ocorrencia.obrasOcorrenciasAnexos.map(a => { return { caminhoAnexo: a.caminhoArquivo } }));\r\n setCarouselVisible(true);\r\n }}\r\n width=\"60px\"\r\n height=\"60px\"\r\n src={item.caminhoArquivo}\r\n style={{ borderRadius: '10px', objectFit: 'cover', marginRight: '10px', marginTop: '10px' }}\r\n alt=\"Imagem de uma ocorrência\"\r\n loading=\"lazy\"\r\n />\r\n )}\r\n \r\n }\r\n {moment(ocorrencia.data).format(\"HH:MM\")}\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n {props.obraOcorrencias?.obraOcorrencias?.length == 0 && empresas?.some(e => e.selected) && Sem ocorrências até o momento}\r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nObraOcorrenciasList.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraOcorrenciasListPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraOcorrenciasList))\r\n)\r\nexport { connectedObraOcorrenciasListPage as ObraOcorrenciasList }\r\n\r\nexport default ObraOcorrenciasList;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom';\r\nimport moment from 'moment'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport EditNoteIcon from '@mui/icons-material/EditNote';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport getInitials from 'utils/getInitials'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport Typography from '@mui/material/Typography'\r\nimport Box from '@mui/material/Box';\r\nimport {\r\n Autocomplete,\r\n Backdrop,\r\n Card,\r\n CardHeader,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n FormControlLabel,\r\n IconButton,\r\n InputAdornment,\r\n Grid,\r\n MenuItem,\r\n Switch,\r\n TableRow,\r\n Tab,\r\n Tabs,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n authActions,\r\n obraAction,\r\n obraEtapaAction,\r\n parametroAction,\r\n orgaoAction,\r\n obraOrcamentoItemAction,\r\n obraMedicaoAction,\r\n tipoObraAction,\r\n subOrgaoAction\r\n} from '../../_actions'\r\nimport { toast } from 'react-toastify'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { uploadImage } from '_services'\r\nimport { STATUS_SERVICO, TIPO_OBRA, errorsUploadImage } from 'utils'\r\nimport { getNomeUltimoEvento } from 'utils'\r\nimport { styled } from '@mui/material/styles';\r\nimport { history, stringUtils, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { Page, MapContainer, ImageUploader } from 'components'\r\nimport { isEmpty } from 'lodash'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport {\r\n ObraAjudaModal,\r\n ObraAnexoEdit,\r\n ObraConvocacaoModal,\r\n ObraEtapaEdit,\r\n ObraEtapaItemEdit,\r\n ObraFinanceiroEdit,\r\n ObraMedicaoEdit,\r\n ObraMotivoAlteracaoHorasRecebimentoOrcamentosModal,\r\n ObraOrcamentoItemEdit,\r\n} from '../'\r\nimport ObraDiarioEdit from './ObrasDiarios/obraDiarioEdit.component'\r\nimport ObraSummaryCard from './obraSummaryCard.component'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport ObraOcorrenciasList from './obraOcorrenciasList.component';\r\nimport { ObraAvaliacaoEdit } from './obraAvaliacaoEdit.component';\r\nimport { HelpModal } from '../../components';\r\nimport WorkOutlineRoundedIcon from '@mui/icons-material/WorkOutlineRounded';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.down('sm')]: {\r\n paddingLeft: theme.spacing(0),\r\n paddingRight: theme.spacing(0),\r\n paddingTop: theme.spacing(1)\r\n }\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nfunction isEditable(e) {\r\n if (e == '1' || e == '2' || e == '3' || e == '4' || e == '5' || e == '6' || e == '8' || e == '9') {\r\n return false\r\n }\r\n else return true\r\n}\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n {\r\n (modal ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalObraConvocacao ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalAlteracaoHorasRecebimentoOrcamentos ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nObraEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraEdit))\r\n)\r\nexport { connectedObraEditPage as ObraEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport moment from 'moment'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport Typography from '@mui/material/Typography'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport {\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Button,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n TablePagination,\r\n Tooltip,\r\n Skeleton,\r\n Input\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n obraEtapaAction\r\n} from '../../_actions'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { stringUtils, MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ObraEtapaEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n //vem por padrão 15 dias, como estava anteriormente\r\n const [duracaoEtapa, setDuracaoEtapa] = useState(15);\r\n\r\n const { classes, idObra, ...rest } = props\r\n const { totalRegistros } = props.obraEtapa\r\n const { isLoading } = props.obra\r\n const formRef = React.createRef(null);\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { obraEtapa } = useSelector(\r\n (state) => state.obraEtapa)\r\n\r\n useEffect(() => {\r\n dispatch(obraEtapaAction.clear())\r\n\r\n if (!props.obraEtapa.id && !props.obraEtapa.dataInicio && props.obra.dataInicio) {\r\n const fakeEvent = {\r\n type: 'text',\r\n target: {\r\n value: props.obra.dataInicio\r\n }\r\n }\r\n\r\n dispatch(obraEtapaAction.onChangeProps('dataInicio', fakeEvent))\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n if (idObra) {\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n }\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idObra]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [props.obra.isLoading])\r\n\r\n useEffect(() => {\r\n if (props.obraEtapa.dataInicio && duracaoEtapa) {\r\n const newDataTermino = moment(props.obraEtapa.dataInicio).add(duracaoEtapa, 'days').toISOString()\r\n\r\n if (props.obraEtapa.dataTermino != newDataTermino) {\r\n const fakeEvent = {\r\n type: 'text',\r\n target: {\r\n value: newDataTermino\r\n }\r\n }\r\n dispatch(obraEtapaAction.onChangeProps('dataTermino', fakeEvent))\r\n }\r\n }\r\n }, [duracaoEtapa, props.obraEtapa?.dataInicio])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n dispatch(obraEtapaAction.getObraEtapaById(id))\r\n }\r\n\r\n useEffect(() => {\r\n if (props.obraEtapa && props.obraEtapa.dataInicio && props.obraEtapa.dataTermino) {\r\n const duracao = props.obra.id\r\n ? moment(props.obraEtapa.dataTermino).diff(props.obraEtapa.dataInicio, 'days')\r\n : 15;\r\n setDuracaoEtapa(duracao);\r\n }\r\n }, [props.obraEtapa.id]);\r\n\r\n const handleClean = () => {\r\n dispatch(obraEtapaAction.clearDetail())\r\n setDuracaoEtapa(15);\r\n }\r\n\r\n const handleDelete = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta Obra?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obra.isLoading,\r\n confirmationText: props.obra.isLoading ? 'Excluindo Obra...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraEtapaAction.deleteObraEtapaById(id))\r\n })\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraEtapaAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: props.obraEtapa.id,\r\n dataInicio: moment(props.obraEtapa.dataInicio).toISOString(),\r\n dataTermino: props.obraEtapa.dataTermino != 'Invalid date' ? props.obraEtapa.dataTermino : moment(props.obraEtapa.dataInicio).add(duracaoEtapa, 'days').toISOString(),\r\n idObra: parseInt(idObra),\r\n descritivo: props.obraEtapa.descritivo,\r\n titulo: props.obraEtapa.titulo,\r\n periodos: props.obraEtapa.periodos\r\n }\r\n\r\n if (props.obraEtapa.id) {\r\n dispatch(obraEtapaAction.editObraEtapaInfo(props.obraEtapa.id, payload, true))\r\n } else {\r\n dispatch(obraEtapaAction.createObraEtapa(payload))\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO ? 'Novo Agrupamento' : 'Agrupamentos'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Agrupamento'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (props.obraEtapa.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n\r\n \r\n {props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO &&\r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setDuracaoEtapa(e.target.value)}\r\n value={duracaoEtapa}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n Separe os períodos de cobrança da obra com ponto e vírgula (;).\r\n Lembrando que a soma dos perídos precisa totalizar 100%\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraEtapa.isLoading && }\r\n >\r\n {props.obraEtapa.id ? (props.obraEtapa.isLoading ? 'Atualizando Grupo...' : 'Atualizar') : (props.obraEtapa.isLoading ? 'Salvando Grupo...' : 'Salvar')}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Data Início\r\n Duração\r\n Título\r\n Financeiro\r\n Valor Referência + BDI\r\n {(props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO) && Ações}\r\n \r\n \r\n \r\n {undefined !== obraEtapa && obraEtapa.length\r\n ? obraEtapa.map((n) => {\r\n return (\r\n \r\n \r\n {n.id ? n.id : ''}\r\n \r\n \r\n {n.dataInicio ? moment(n.dataInicio).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {(n.dataTermino && n.dataInicio) ? moment(n.dataTermino).diff(n.dataInicio, 'days') : ''}\r\n \r\n \r\n {n.titulo ? n.titulo.toUpperCase() : ''}\r\n \r\n \r\n {n.periodos?.length ? `${n.periodos.split(';').length} ${n.periodos.split(';').length > 1 ? 'periodos' : 'periodo'} (${n.periodos.split(';').map(p => p + '%')})` : '-'}\r\n \r\n \r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi)}\r\n \r\n {(props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO) &&\r\n \r\n (\r\n handleEdit(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleDelete(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n }\r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nObraEtapaEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraEtapaEdit))\r\n)\r\nexport { connectedObraEditPage as ObraEtapaEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport ChecklistRtlIcon from '@mui/icons-material/ChecklistRtl';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport PropTypes from 'prop-types'\r\nimport { styled } from '@mui/material/styles';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { withStyles } from '@mui/styles'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport Typography from '@mui/material/Typography'\r\nimport KeyboardReturnIcon from '@mui/icons-material/KeyboardReturn';\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n InputAdornment,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableContainer,\r\n TablePagination,\r\n Tooltip,\r\n Skeleton,\r\n Input,\r\n MenuItem\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n estadoAction,\r\n obraEtapaItemAction,\r\n obraEtapaAction,\r\n obraAction,\r\n tabelaInsumoAction,\r\n tabelaInsumoMesAction,\r\n tabelaInsumoAnoAction,\r\n tipoServicoAction,\r\n unidadeAction,\r\n authActions\r\n} from '../../_actions'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { stringUtils, MANUAIS_CATEGORIAS, STATUS_SERVICO, TIPO_OBRA } from '../../utils'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { isEmpty } from 'lodash'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport { InsumoModal } from '../Insumos/insumoModal.component';\r\nimport { toast } from 'react-toastify'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst CustomGrid = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'left'\r\n },\r\n}));\r\n\r\nconst CustomTypography = styled(Typography)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: -10,\r\n marginBottom: -8,\r\n paddingTop: -10,\r\n paddingBottom: -8,\r\n paddingRight: 3,\r\n marginRight: 3,\r\n paddingLeft: 3,\r\n marginLeft: 3\r\n },\r\n}));\r\n\r\nconst ObraEtapaItemEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n const { classes, idObra, ...rest } = props\r\n const { totalRegistros } = props.obraEtapa\r\n const { isLoading } = props.obra\r\n const isObra = props.obra.tipoObra.obra;\r\n\r\n const formRef = React.createRef(null);\r\n const { match: { params } } = props;\r\n const [modalConfirm, setModalConfirm] = useState(false);\r\n\r\n const [itensObra, setItensObra] = useState([]);\r\n\r\n const [disabledEdicao, setDisabledEdicao] = useState(false);\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const d = new Date();\r\n let year = d.getFullYear();\r\n let month = d.getMonth();\r\n\r\n const [idObraEtapa, setIdObraEtapa] = useState(0);\r\n\r\n const { obraEtapa } = useSelector(\r\n (state) => state.obraEtapa)\r\n\r\n const { obraEtapaItem } = useSelector(\r\n (state) => state.obraEtapaItem)\r\n\r\n const { bdi, valorReferenciaComBdi } = useSelector(\r\n (state) => state.obra\r\n )\r\n\r\n const orgaoSelecionado = useSelector(\r\n (state) => state.usuarioOrgao?.orgao\r\n )\r\n\r\n const { tipoServico } = useSelector(\r\n (state) => state.tipoServico)\r\n\r\n const { unidade } = useSelector(\r\n (state) => state.unidade)\r\n\r\n const { estado } = useSelector(\r\n (state) => state.estado)\r\n\r\n const { tabelaInsumo } = useSelector(\r\n (state) => state.tabelaInsumo)\r\n\r\n const estados = useSelector((state) => state.estado.estado)\r\n\r\n const { tabelaInsumoAno } = useSelector(\r\n (state) => state.tabelaInsumoAno)\r\n\r\n const { tabelaInsumoMes } = useSelector(\r\n (state) => state.tabelaInsumoMes)\r\n\r\n const [modal, setModal] = useState(false);\r\n const [modalId, setModalId] = useState(0);\r\n const toggle = () => setModal(!modal);\r\n const toggleConfirm = () => setModalConfirm(!modalConfirm);\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraEtapaItemAction.clear()); \r\n dispatch(unidadeAction.getUnidadesSelect());\r\n dispatch(estadoAction.getEstadoSelect());\r\n dispatch(tabelaInsumoAction.getTabelasInsumosSelect())\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.obra.tipoObra.id == TIPO_OBRA.PLANO_TRABALHO || props.obra.tipoObra.id == TIPO_OBRA.PROJETO_TECNICO) {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: true }))\r\n } else {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: false }))\r\n }\r\n\r\n }, [props.obra?.tipoObra?.id])\r\n\r\n useEffect(() => {\r\n if (orgaoSelecionado && orgaoSelecionado.estado) {\r\n const fakeEvent = {\r\n type: 'text',\r\n target: {\r\n value: orgaoSelecionado.estado.id\r\n }\r\n }\r\n dispatch(obraEtapaItemAction.onChangeProps('idEstadoTabelaInsumo', fakeEvent))\r\n }\r\n }, [orgaoSelecionado])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n if (idObra) {\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n }\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idObra]);\r\n\r\n function isEditable(e) {\r\n if (e == '1' || e == '2' || e == '3' || e == '4' || e == '5' || e == '6') {\r\n return false\r\n }\r\n else return true\r\n }\r\n\r\n\r\n useEffect(() => {\r\n dispatch(obraEtapaItemAction.clearCampos())\r\n }, [props.obraEtapaItem.idTabelaInsumo])\r\n\r\n useEffect(() => {\r\n\r\n if (props.obraEtapaItem.idTabelaInsumo != 0) {\r\n if (props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) {\r\n setDisabledEdicao(true);\r\n } else {\r\n setDisabledEdicao(false);\r\n }\r\n }\r\n\r\n if (props.obra.orgao.estado.id) {\r\n let changeEstadoEvent = {\r\n type: 'text',\r\n target: {\r\n value: props.obra.orgao.estado.id\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('idEstadoTabelaInsumo', changeEstadoEvent));\r\n\r\n let changeTabelaEvent = {\r\n type: 'text',\r\n target: {\r\n value: 1\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('idTabelaInsumo', changeTabelaEvent));\r\n\r\n let filterModel = {\r\n Uf: props.obra.orgao.estado.uf,\r\n TipoTabela: 'SINAPI'\r\n };\r\n dispatch(tabelaInsumoAnoAction.getAnosImportadosSelect(filterModel));\r\n }\r\n\r\n }, []) //PRIMEIRA VEZ QUE CARREGA A TELA, PEGA OS ANOS QUE JÁ FORAM IMPORTADOS\r\n\r\n useEffect(() => {\r\n if (!props.obraEtapaItem.anoTabelaInsumo && props.obraEtapaItem.anoTabelaInsumo == 0) {\r\n if (tabelaInsumoAno && tabelaInsumoAno.length > 0 && Array.isArray(tabelaInsumoAno)) {\r\n let changeTabelaEvent = {\r\n type: 'text',\r\n target: {\r\n value: tabelaInsumoAno[0].text\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('anoTabelaInsumo', changeTabelaEvent));\r\n }\r\n }\r\n }, [tabelaInsumoAno]) //PREENCHE A COMBO DE ANOS\r\n\r\n useEffect(() => {\r\n let filterModel = null;\r\n if (!props.obraEtapaItem.mesTabelaInsumo && props.obraEtapaItem.mesTabelaInsumo == 0 || Number.isNaN(props.obraEtapaItem.mesTabelaInsumo)) {\r\n if (props.obraEtapaItem.anoTabelaInsumo != 0 && props.obraEtapaItem.idEstadoTabelaInsumo != 0 && props.obraEtapaItem.idTabelaInsumo != 0 && tabelaInsumo && tabelaInsumo != undefined) {\r\n filterModel = {\r\n Ano: props.obraEtapaItem.anoTabelaInsumo,\r\n Uf: (estado != null && estado != undefined && estado.length > 0 && props.obraEtapaItem.idEstadoTabelaInsumo != 0 && estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0] != null ?\r\n estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0].text\r\n : ''),\r\n TipoTabela: (tabelaInsumo != null && tabelaInsumo.length > 0 && tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0] != null ?\r\n tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0].text\r\n : '')\r\n };\r\n\r\n dispatch(tabelaInsumoMesAction.getMesesImportadosSelect(filterModel));\r\n\r\n if (tabelaInsumoMes && tabelaInsumoMes.length > 0 && tabelaInsumoMes[0].value) {\r\n let changeMesEvent = {\r\n type: 'text',\r\n target: {\r\n value: tabelaInsumoMes[0].value\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('mesTabelaInsumo', changeMesEvent));\r\n }\r\n }\r\n } else {\r\n if (tabelaInsumoMes && tabelaInsumoMes.length > 0 && tabelaInsumoMes[0].value) {\r\n console.log('entrei aqui')\r\n let changeMesEvent = {\r\n type: 'text',\r\n target: {\r\n value: tabelaInsumoMes[0].value\r\n }\r\n };\r\n dispatch(obraEtapaItemAction.onChangeProps('mesTabelaInsumo', changeMesEvent));\r\n }\r\n }\r\n\r\n }, [tabelaInsumoMes])\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = null;\r\n if (props.obraEtapaItem.idTabelaInsumo != 0 && props.obraEtapaItem.idEstadoTabelaInsumo != 0 && props.obraEtapaItem.anoTabelaInsumo != 0) {\r\n filterModel = {\r\n Ano: props.obraEtapaItem.anoTabelaInsumo,\r\n Uf: (estado != null && estado != undefined && estado.length > 0 && props.obraEtapaItem.idEstadoTabelaInsumo != 0 && estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0] != null ?\r\n estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0].text\r\n : ''),\r\n TipoTabela: (tabelaInsumo != null && tabelaInsumo.length > 0 && tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0] != null ?\r\n tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0].text\r\n : '')\r\n };\r\n\r\n dispatch(tabelaInsumoMesAction.getMesesImportadosSelect(filterModel));\r\n\r\n let changeMesEvent = {\r\n type: 'text',\r\n target: {\r\n value: parseInt(tabelaInsumoMes[0]?.value)\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('mesTabelaInsumo', changeMesEvent));\r\n\r\n\r\n filterModel = {\r\n Ano: props.obraEtapaItem.anoTabelaInsumo,\r\n Uf: (estado != null && estado != undefined && estado.length > 0 && props.obraEtapaItem.idEstadoTabelaInsumo != 0 && estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0] != null ?\r\n estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0].text\r\n : ''),\r\n TipoTabela: (tabelaInsumo != null && tabelaInsumo.length > 0 && tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0] != null ?\r\n tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0].text\r\n : '')\r\n };\r\n\r\n dispatch(tabelaInsumoAnoAction.getAnosImportadosSelect(filterModel));\r\n\r\n let changeAnoEvent = {\r\n type: 'text',\r\n target: {\r\n value: props.obraEtapaItem.anoTabelaInsumo\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('anoTabelaInsumo', changeAnoEvent));\r\n\r\n }\r\n\r\n }, [props.obraEtapaItem.idTabelaInsumo, props.obraEtapaItem.idEstadoTabelaInsumo, props.obraEtapaItem.anoTabelaInsumo])\r\n\r\n useEffect(() => {\r\n if (props.obraEtapaItem.idTabelaInsumo) {\r\n if (props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) {\r\n setDisabledEdicao(true);\r\n } else {\r\n setDisabledEdicao(false);\r\n }\r\n }\r\n\r\n }, [props.obraEtapaItem.idTabelaInsumo])\r\n\r\n useEffect(() => {\r\n\r\n if (idObraEtapa != 0 && idObraEtapa != undefined) {\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Id: idObraEtapa\r\n };\r\n\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }\r\n\r\n }, [page, limit, debounceTerm, order, direction, idObraEtapa]);\r\n\r\n useEffect(() => {\r\n\r\n if (idObraEtapa != 0 && idObraEtapa != undefined) {\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Id: idObraEtapa\r\n };\r\n\r\n dispatch(obraEtapaItemAction.getObraEtapaItem(filterModel, true));\r\n\r\n handleCalculaValorReferenciaTotal();\r\n handleCalculaValorReferenciaTotalObra();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (obraEtapa && obraEtapa != undefined && obraEtapa.length > 0 && idObraEtapa == 0) {\r\n setIdObraEtapa(obraEtapa[0].id)\r\n }\r\n }, [obraEtapa]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n\r\n updateItensObra();\r\n\r\n }, [obraEtapaItem])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n dispatch(obraEtapaItemAction.getObraEtapaItemById(id))\r\n }\r\n\r\n const handleClean = () => {\r\n dispatch(obraEtapaItemAction.clearDetail())\r\n }\r\n\r\n const handleFinalizaLancamentoItens = (id) => {\r\n confirm({\r\n title: 'Você deseja concluir o lançamento dos itens?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obra.isLoading,\r\n confirmationText: props.obra.isLoading ? 'Concluindo...' : 'Sim, concluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraAction.editObraFinalizaLancamentoItens(id, idObra, idObraEtapa))\r\n toggleConfirm();\r\n })\r\n\r\n }\r\n\r\n const handleAlteraStatusParaEmLancamento = (id) => {\r\n confirm({\r\n title: 'Você deseja retornar a obra para o status anterior (Em lançamento)?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obra.isLoading,\r\n confirmationText: props.obra.isLoading ? 'Retornando status...' : 'Sim, retornar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraAction.editObraAlteraStatusEmLancamento(id))\r\n })\r\n }\r\n\r\n const handleDelete = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este item?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obra.isLoading,\r\n confirmationText: props.obra.isLoading ? 'Excluindo item...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraEtapaItemAction.deleteObraEtapaItemById(id))\r\n })\r\n }\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraEtapaItemAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: props.obraEtapaItem.id,\r\n idUnidade: props.obraEtapaItem.idUnidade,\r\n idTipoServico: props.obraEtapaItem.idTipoServico,\r\n idObraEtapa: parseInt(idObraEtapa),\r\n descritivo: props.obraEtapaItem.descritivo,\r\n codigo: props.obraEtapaItem.codigo,\r\n quantidade: props.obraEtapaItem.quantidade,\r\n idTabelaInsumo: props.obraEtapaItem.idTabelaInsumo,\r\n anoTabelaInsumo: (props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) ? (props.obraEtapaItem.anoTabelaInsumo != 0 && props.obraEtapaItem.anoTabelaInsumo != '' && parseInt(props.obraEtapaItem.anoTabelaInsumo)) : year,\r\n mesTabelaInsumo: (props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) ? (props.obraEtapaItem.mesTabelaInsumo != 0 && props.obraEtapaItem.mesTabelaInsumo != '' && parseInt(props.obraEtapaItem.mesTabelaInsumo)) : month,\r\n idEstadoTabelaInsumo: props.obra.orgao.estado.id,\r\n valorReferencia: props.obraEtapaItem.valorReferencia,\r\n onerado: props.obraEtapaItem.onerado\r\n }\r\n\r\n if (props.obraEtapaItem.quantidade != 0 && props.obraEtapaItem.quantidade != '') {\r\n if ((props.obraEtapaItem.idTabelaInsumo == 3 || props.obraEtapaItem.idTabelaInsumo == 4) || (props.obraEtapaItem.valorReferencia != 0 && props.obraEtapaItem.valorReferencia != null)) {\r\n if (props.obraEtapaItem.id) {\r\n dispatch(obraEtapaItemAction.editObraEtapaItemInfo(props.obraEtapaItem.id, payload, true))\r\n } else {\r\n dispatch(obraEtapaItemAction.createObraEtapaItem(payload))\r\n }\r\n } else {\r\n toast.error('Digite um valor referência para o item')\r\n }\r\n } else {\r\n toast.error('Digite uma quantidade para o item')\r\n }\r\n\r\n updateItensObra();\r\n\r\n };\r\n\r\n const updateItensObra = () => {\r\n\r\n try {\r\n\r\n if (idObra) {\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n }\r\n\r\n //juntar itens das etapas\r\n const itensTotais = obraEtapa;\r\n const itens = itensTotais.reduce((acc, etapa) => {\r\n // Concatenando os itens de todas as etapas em um único array\r\n return acc.concat(etapa.obrasEtapasItens);\r\n }, []);\r\n\r\n setItensObra(itens);\r\n\r\n } catch (err) {\r\n console.log('ERR', err);\r\n }\r\n }\r\n\r\n const handleModalConfirm = (event) => {\r\n\r\n updateItensObra();\r\n\r\n setModalConfirm(true);\r\n\r\n }\r\n\r\n useEffect(() => {\r\n if (obraEtapaItem && obraEtapaItem.length > 0) {\r\n handleCalculaValorReferenciaTotal()\r\n }\r\n }, [obraEtapaItem.length])\r\n\r\n const handleCalculaValorReferenciaTotal = () => {\r\n const arrayValorTotal = obraEtapaItem && obraEtapaItem?.map((n) => {\r\n return (\r\n n.quantidade * n.valorReferencia\r\n )\r\n })\r\n\r\n if (arrayValorTotal && arrayValorTotal.length > 0) {\r\n var valorTotalItens = arrayValorTotal.reduce(function (accumulator, value) {\r\n return accumulator + value\r\n }, 0);\r\n\r\n return valorTotalItens != 0 ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(valorTotalItens) : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const handleCalculaValorReferenciaTotalObra = () => {\r\n\r\n const arrayValorTotal = itensObra?.map((n) => {\r\n return (\r\n n.quantidade * n.valorReferencia\r\n )\r\n })\r\n\r\n // && props.obra.bdi && props.obra.bdi != null && props.obra.bdi != 0\r\n if (arrayValorTotal && arrayValorTotal.length > 0) {\r\n var valorTotalItens = arrayValorTotal.reduce(function (accumulator, value) {\r\n return accumulator + value\r\n }, 0);\r\n\r\n\r\n return valorTotalItens != 0 ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(valorTotalItens + (props.obra.bdi ? (valorTotalItens * props.obra.bdi / 100) : 0)) : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const handleCalculaValorReferenciaTotalObraSemBdi = () => {\r\n\r\n const arrayValorTotal = itensObra?.map((n) => {\r\n return (\r\n n.quantidade * n.valorReferencia\r\n )\r\n })\r\n\r\n // && props.obra.bdi && props.obra.bdi != null && props.obra.bdi != 0\r\n if (arrayValorTotal && arrayValorTotal.length > 0) {\r\n var valorTotalItens = arrayValorTotal.reduce(function (accumulator, value) {\r\n return accumulator + value\r\n }, 0);\r\n\r\n return valorTotalItens != 0 ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(valorTotalItens) : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const handleOpenModal = () => {\r\n if (props.obraEtapaItem.idTabelaInsumo == 0 || props.obraEtapaItem.idTabelaInsumo == null) {\r\n toast.error('Informe a Tabela Padrão no cadastro do item!')\r\n }\r\n else if ((props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) && props.obraEtapaItem.anoTabelaInsumo == 0 || props.obraEtapaItem.anoTabelaInsumo == null) {\r\n toast.error('Informe o ano da Tabela no cadastro do item!')\r\n }\r\n else if ((props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4) && (props.obraEtapaItem.mesTabelaInsumo == 0 || props.obraEtapaItem.mesTabelaInsumo == null || props.obraEtapaItem.mesTabelaInsumo == '')) {\r\n toast.error('Informe o mês da Tabela no cadastro do item!')\r\n }\r\n else {\r\n toggle();\r\n\r\n if (props.obra.tipoObra?.id == TIPO_OBRA.PLANO_TRABALHO || props.obra.tipoObra?.id == TIPO_OBRA.PROJETO_TECNICO) {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: true }))\r\n } else {\r\n dispatch(tipoServicoAction.getTiposServico({ Page: 0, Limit: 100, IsProjeto: false }))\r\n }\r\n }\r\n }\r\n\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO ? 'Novo Item' : 'Itens'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Item'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (props.obraEtapaItem.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n {(undefined != obraEtapa && obraEtapa.length > 0 ?\r\n setIdObraEtapa(e.target.value)}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n displayEmpty\r\n labelId=\"idObraEtapa\"\r\n >\r\n \r\n Etapa\r\n \r\n {!isEmpty(obraEtapa) &&\r\n undefined !== obraEtapa &&\r\n obraEtapa.length &&\r\n obraEtapa.map((row) => (\r\n \r\n {row.titulo}\r\n \r\n ))}\r\n \r\n :\r\n null\r\n )}\r\n \r\n \r\n {(undefined != obraEtapa && obraEtapa.length > 0 &&\r\n <>\r\n \r\n \r\n Valor Total de Referência dos Itens da Etapa:\r\n \r\n \r\n {handleCalculaValorReferenciaTotal() ? handleCalculaValorReferenciaTotal() : '--,--'}\r\n \r\n \r\n {isObra &&\r\n <>\r\n \r\n \r\n Valor Total da Obra com BDI:\r\n \r\n \r\n {valorReferenciaComBdi ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(valorReferenciaComBdi) : 'R$ --,--'}\r\n \r\n \r\n \r\n
\r\n \r\n Valor do BDI:\r\n \r\n \r\n {bdi ? bdi : 0} %\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n \r\n )}\r\n
\r\n \r\n {(props.obra.ultimoEvento === STATUS_SERVICO.LANCAMENTO) &&\r\n <>\r\n \r\n handleSubmit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Informações sobre a tabela de referência ou CPU\r\n \r\n \r\n \r\n \r\n {!isEmpty(tabelaInsumo) &&\r\n undefined != tabelaInsumo &&\r\n tabelaInsumo.length &&\r\n tabelaInsumo.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n {props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4 ?\r\n <>\r\n \r\n \r\n \r\n Estado\r\n \r\n {!isEmpty(estados) &&\r\n undefined !== estados &&\r\n estados.length &&\r\n estados.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n {Array.isArray(tabelaInsumoAno) ?\r\n \r\n {!isEmpty(tabelaInsumoAno) &&\r\n undefined != tabelaInsumoAno &&\r\n tabelaInsumoAno.length &&\r\n tabelaInsumoAno.map((row, index) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n : null}\r\n \r\n \r\n {Array.isArray(tabelaInsumoMes) ?\r\n \r\n {!isEmpty(tabelaInsumoMes) &&\r\n undefined != tabelaInsumoMes &&\r\n tabelaInsumoMes.length &&\r\n tabelaInsumoMes.map((row, index) => {\r\n if (index < 7) {\r\n return (\r\n \r\n {row.text}\r\n \r\n )\r\n }\r\n })}\r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n Desonerado\r\n \r\n NÃO DESONERADO\r\n DESONERADO\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n {props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4 ? 'Clique sobre a lupa para selecionar um item' :\r\n 'Digite as informações do item'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4 ?\r\n \r\n \r\n handleOpenModal()}\r\n >\r\n \r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n Tipo de Serviço *\r\n \r\n {!isEmpty(tipoServico) &&\r\n undefined !== tipoServico &&\r\n tipoServico.length &&\r\n tipoServico.map((row) => (\r\n \r\n {row.nome}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n Unidade\r\n \r\n {!isEmpty(unidade) &&\r\n undefined !== unidade &&\r\n unidade.length &&\r\n unidade.map((row) => (\r\n \r\n {row.text}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {/* se não for CPU é obrigatório lançar um valor*/}\r\n {props.obraEtapaItem.idTabelaInsumo != 3 && props.obraEtapaItem.idTabelaInsumo != 4 ?\r\n \r\n \r\n R$\r\n \r\n )\r\n }}\r\n errorMessages={['Campo obrigatório!']}\r\n disabled={isEditable(props.obra.ultimoEvento) == false || disabledEdicao}\r\n />\r\n \r\n :\r\n \r\n \r\n R$\r\n \r\n )\r\n }}\r\n disabled={isEditable(props.obra.ultimoEvento) == false || disabledEdicao}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraEtapaItem.isLoading && }\r\n >\r\n {props.obraEtapaItem.id ? (props.obraEtapaItem.isLoading ? 'Atualizando Item...' : 'Atualizar') : (props.obraEtapaItem.isLoading ? 'Salvando Item...' : 'Salvar')}\r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura()) && props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO &&\r\n \r\n \r\n handleModalConfirm(event)}\r\n disabled={props.obraEtapaItem.isLoading || undefined == obraEtapaItem || obraEtapaItem.length == 0}\r\n startIcon={}\r\n endIcon={props.obraEtapaItem.isLoading && }\r\n >\r\n {props.obraEtapaItem.isLoading ? 'Finalizando Lançamentos...' : 'Finalizar Lançamento de itens'}\r\n \r\n \r\n \r\n }\r\n {(authActions.isGestor() || authActions.isPrefeitura()) && props.obra.ultimoEvento == STATUS_SERVICO.PENDENTE &&\r\n \r\n \r\n handleAlteraStatusParaEmLancamento(idObra)}\r\n startIcon={}\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? 'Liberando Lançamentos...' : 'Liberar lançamento de itens'}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Código\r\n Tabela\r\n Descritivo\r\n Quantidade\r\n Valor Referência Unidade\r\n Valor Total + BDI\r\n Ações\r\n \r\n \r\n \r\n {undefined !== obraEtapaItem && obraEtapaItem.length > 0\r\n ? obraEtapaItem.map((n) => {\r\n return (\r\n \r\n \r\n {n.codigo ? n.codigo : ''}\r\n \r\n \r\n {\r\n n.idTabelaInsumo != 3 && n.idTabelaInsumo != 4 ? //SE NÃO FOR CPU E COMPRA DE MATERIAL\r\n (\r\n (tabelaInsumo != null && Array.isArray(tabelaInsumo) && tabelaInsumo.length > 0 && n.idTabelaInsumo != '' &&\r\n tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0] != null\r\n )\r\n ? tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0].text\r\n : ''\r\n ) +\r\n ' - ' +\r\n (\r\n (estado != null && Array.isArray(estado) && estado.length > 0 && n.idEstadoTabelaInsumo != 0 &&\r\n estado.filter(obj => obj.value == n.idEstadoTabelaInsumo)[0] != null\r\n )\r\n ? estado.filter(obj => obj.value == n.idEstadoTabelaInsumo)[0].text\r\n : ''\r\n ) +\r\n ' (' +\r\n (\r\n (tabelaInsumoAno != null && Array.isArray(tabelaInsumoAno) && tabelaInsumoAno.length > 0 && n.anoTabelaInsumo != '' &&\r\n tabelaInsumoAno.filter(obj => obj.value == n.anoTabelaInsumo)[0] != null\r\n )\r\n ? tabelaInsumoAno.filter(obj => obj.value == n.anoTabelaInsumo)[0].text\r\n : ''\r\n ) +\r\n '/' +\r\n (\r\n (tabelaInsumoMes != null && Array.isArray(tabelaInsumoMes) && tabelaInsumoMes.length > 0 && n.mesTabelaInsumo != '' &&\r\n tabelaInsumoMes.filter(obj => obj.value == n.mesTabelaInsumo)[0] != null\r\n )\r\n ? tabelaInsumoMes.filter(obj => obj.value == n.mesTabelaInsumo)[0].text\r\n : ''\r\n ) +\r\n ')' :\r\n \r\n {(tabelaInsumo != null && Array.isArray(tabelaInsumo) && tabelaInsumo.length > 0 && n.idTabelaInsumo != 0 &&\r\n tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0] != null\r\n )\r\n ? tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0].text\r\n : ''}\r\n \r\n \r\n }\r\n \r\n \r\n {n.descritivo ? n.descritivo.toUpperCase() : ''}\r\n \r\n \r\n {n.quantidade}\r\n \r\n \r\n {n.valorReferencia ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferencia) : '--,--'}\r\n \r\n \r\n {n.valorReferenciaComBdi ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferenciaComBdi) : '--,--'}\r\n \r\n {(props.obra.ultimoEvento == STATUS_SERVICO.LANCAMENTO) &&\r\n \r\n (\r\n handleEdit(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleDelete(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n }\r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n\r\n\r\n {\r\n modalConfirm ?\r\n setModalConfirm(false)}\r\n >\r\n \r\n \r\n CONFIRMAÇÃO DE LANÇAMENTOS DE ITENS DA OBRA\r\n \r\n setModalConfirm(false)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n O BDI da obra é de: {bdi} %\r\n \r\n \r\n \r\n \r\n Os itens lançados para a obra são:\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Código\r\n Tabela\r\n Descritivo\r\n Quantidade\r\n Valor de Referência\r\n Valor com BDI\r\n \r\n \r\n \r\n {undefined !== itensObra && itensObra.length > 0\r\n ? itensObra.map((n) => {\r\n return (\r\n \r\n \r\n {n.codigo ? n.codigo : ''}\r\n \r\n \r\n {(tabelaInsumo != null && tabelaInsumo != undefined && tabelaInsumo.length > 0 && n.idTabelaInsumo != '' && tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0] != null ?\r\n tabelaInsumo.filter(obj => obj.value == n.idTabelaInsumo)[0].text\r\n : '') + ' - ' + (estado != null && estado != undefined && estado.length > 0 && n.idEstadoTabelaInsumo != '' && estado.filter(obj => obj.value == n.idEstadoTabelaInsumo)[0] != null ?\r\n estado.filter(obj => obj.value == n.idEstadoTabelaInsumo)[0].text\r\n : '') + ' (' + (tabelaInsumoAno != null && tabelaInsumoAno != undefined && tabelaInsumoAno.length > 0 && n.anoTabelaInsumo != '' && tabelaInsumoAno.filter(obj => obj.value == n.anoTabelaInsumo)[0] != null ?\r\n tabelaInsumoAno.filter(obj => obj.value == n.anoTabelaInsumo)[0].text\r\n : '') + '/' + (tabelaInsumoMes != null && tabelaInsumoMes != undefined && tabelaInsumoMes.length > 0 && n.mesTabelaInsumo != '' && tabelaInsumoMes.filter(obj => obj.value == n.mesTabelaInsumo)[0] != null ?\r\n tabelaInsumoMes.filter(obj => obj.value == n.mesTabelaInsumo)[0].text\r\n : '') + ')'}\r\n \r\n \r\n {n.descritivo ? n.descritivo.toUpperCase() : ''}\r\n \r\n \r\n {n.quantidade}\r\n \r\n \r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valorReferencia * n.quantidade)}\r\n \r\n \r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format((n.valorReferencia * n.quantidade) + (props.obra.bdi ? (n.valorReferencia * n.quantidade * (props.obra.bdi / 100)) : 0))}\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Valor BDI:\r\n \r\n \r\n \r\n {props.obra.bdi} %\r\n \r\n \r\n \r\n \r\n \r\n Valor Total da Obra\r\n \r\n \r\n {handleCalculaValorReferenciaTotalObraSemBdi() ? handleCalculaValorReferenciaTotalObraSemBdi() : 'R$ -,--'}\r\n \r\n \r\n \r\n \r\n Valor Total da Obra Com BDI:\r\n \r\n \r\n {handleCalculaValorReferenciaTotalObra() ? handleCalculaValorReferenciaTotalObra() : 'R$ -,--'}\r\n \r\n \r\n \r\n handleFinalizaLancamentoItens(idObra)}\r\n variant=\"contained\"\r\n style={{ backgroundColor: '#000', color: '#FFF', marginTop: 16 }}\r\n startIcon={}\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {(props.obra.isLoading ? 'Finalizando Lançamento...' : 'Finalizar Lançamento de Itens')}\r\n \r\n
\r\n
\r\n
\r\n \r\n : null\r\n }\r\n\r\n {\r\n (modal ?\r\n 0 && props.obraEtapaItem.idEstadoTabelaInsumo != '' && estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0] != null ?\r\n estado.filter(obj => obj.value == props.obraEtapaItem.idEstadoTabelaInsumo)[0].text\r\n : ''\r\n )}\r\n tipoTabela={(tabelaInsumo != null && tabelaInsumo != undefined && tabelaInsumo.length > 0 && props.obraEtapaItem.idTabelaInsumo != '' && tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0] != null ?\r\n tabelaInsumo.filter(obj => obj.value == props.obraEtapaItem.idTabelaInsumo)[0].text\r\n : ''\r\n )}\r\n onerado={props.obraEtapaItem.onerado}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nObraEtapaItemEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraEtapaItemEdit))\r\n)\r\nexport { connectedObraEditPage as ObraEtapaItemEdit }\r\n","import React, { useState, useEffect } from 'react'\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogTitle,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material';\r\nimport { Paper } from '@material-ui/core';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter, } from 'react-router-dom';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport { obraAction } from '../../_actions';\r\n\r\nconst ModalCronograma = ({ obra }) => {\r\n const dispatch = useDispatch();\r\n const [table, setTable] = useState({ columns: 0, rows: 0 });\r\n const [selected, setSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n getTableSize();\r\n }, []);\r\n\r\n const getTableSize = () => {\r\n let innerColumns = 0;\r\n let innerRows = obra.obrasEtapas?.length;\r\n\r\n obra.obrasEtapas.forEach(etapa => {\r\n const periodos = etapa.periodos?.split(';');\r\n if (periodos?.length > innerColumns) {\r\n innerColumns = periodos.length;\r\n }\r\n })\r\n\r\n setTable({ columns: innerColumns, rows: innerRows });\r\n }\r\n\r\n const handleChangeSelected = (index) => {\r\n if (selected === index) {\r\n setSelected(null)\r\n } else {\r\n setSelected(index);\r\n }\r\n }\r\n\r\n const renderTableHeader = () => {\r\n return Array.from({ length: table.columns }, (_, index) => {\r\n return (\r\n <>\r\n \r\n %\r\n \r\n \r\n Período {index + 1}\r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n const renderTableBody = () => {\r\n return obra.obrasEtapas.map((etapa, index) => {\r\n const total = etapa.obrasEtapasItens.reduce((acc, item) => acc +=\r\n (item.idObraOrcamentoItem ?\r\n item.obrasOrcamentosItens.find((itemOrc) => itemOrc.id == item.idObraOrcamentoItem)?.valor\r\n : item.valorReferenciaComBdi\r\n )\r\n , 0);\r\n\r\n const periodos = etapa.periodos?.split(';') || [];\r\n\r\n const cells = [];\r\n cells.push(\r\n \r\n {etapa.titulo}\r\n \r\n );\r\n cells.push(\r\n \r\n {'R$ ' + total.toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\r\n \r\n );\r\n\r\n if (periodos.length) {\r\n for (let i = 0; i < table.columns; i++) {\r\n const porc = Number(periodos[i]);\r\n cells.push(\r\n \r\n

{!isNaN(porc) ? porc + '%' : '-'}

\r\n
\r\n );\r\n cells.push(\r\n \r\n

{!isNaN(porc) ? 'R$ ' + (total * (porc / 100)).toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : '-'}

\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n handleChangeSelected(index)} style={{ marginTop: 0, marginBottom: 0, backgroundColor: selected === index ? '#f2f2f2' : '#fff', cursor: 'pointer', borderBottomColor: 'red' }} key={index}>{cells}\r\n {selected === index && etapa.obrasEtapasItens.map(item => {\r\n const cells2 = [];\r\n cells2.push(\r\n \r\n {item.descritivo}\r\n \r\n );\r\n cells2.push(\r\n \r\n {'R$ ' + ((item.idObraOrcamentoItem ?\r\n item.obrasOrcamentosItens.find((itemOrc) => itemOrc.id == item.idObraOrcamentoItem)?.valor\r\n : item.valorReferenciaComBdi\r\n )).toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\r\n \r\n );\r\n\r\n if (periodos.length) {\r\n for (let i = 0; i < table.columns; i++) {\r\n const porc = Number(periodos[i]);\r\n cells2.push(\r\n \r\n \r\n );\r\n cells2.push(\r\n \r\n

{!isNaN(porc) ? 'R$ ' + ((item.idObraOrcamentoItem ?\r\n item.obrasOrcamentosItens.find((itemOrc) => itemOrc.id == item.idObraOrcamentoItem)?.valor\r\n : item.valorReferenciaComBdi\r\n ) * (porc / 100)).toLocaleString('pt-br', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : '-'}

\r\n
\r\n );\r\n }\r\n }\r\n return {cells2}\r\n })}\r\n \r\n );\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n CRONOGRAMA FÍSICO-FINANCEIRO\r\n dispatch(obraAction.handleModalCronograma())}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ETAPA\r\n \r\n \r\n TOTAL\r\n \r\n {renderTableHeader()}\r\n \r\n \r\n \r\n {renderTableBody()}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nModalCronograma.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedModalCronograma = withRouter(\r\n connect(mapStateToProps, null, null)(ModalCronograma)\r\n)\r\nexport { connectedModalCronograma as ModalCronograma }\r\n\r\nexport default ModalCronograma;\r\n","import React, { useEffect } from 'react';\r\nimport clsx from 'clsx'\r\nimport { Card, Table, TableCell, TableHead, TableRow, Tooltip } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n marginLeft: 10,\r\n marginRight: 10,\r\n [theme.breakpoints.down('md')]: {\r\n width: '100%'\r\n }\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nconst CardTableFinanceiro = (props) => {\r\n const { className, valorEmAberto, title, valorPago, valorTotal, textValorTotal, ...rest } = props\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n
\r\n \r\n Valor em aberto\r\n
\r\n
\r\n {valorEmAberto}\r\n
\r\n \r\n \r\n
\r\n \r\n Valor pago\r\n
\r\n
\r\n {valorPago}\r\n
\r\n \r\n
\r\n \r\n {textValorTotal}\r\n
\r\n \r\n \r\n {valorTotal}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nCardTableFinanceiro.propTypes = {\r\n title: PropTypes.string,\r\n valorEmAberto: PropTypes.string,\r\n valorPago: PropTypes.string,\r\n valorTotal: PropTypes.string,\r\n textValorTotal: PropTypes.string\r\n}\r\n\r\nexport default CardTableFinanceiro\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment'\r\nimport { styled } from '@mui/material/styles';\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport { useLocation } from 'react-router-dom';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport MonetizationOnIcon from '@mui/icons-material/MonetizationOn';\r\nimport { crudService, uploadFile } from '../../_services';\r\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\r\nimport {\r\n Autocomplete,\r\n Backdrop,\r\n Box,\r\n CardHeader,\r\n Checkbox,\r\n CircularProgress,\r\n Divider,\r\n FormLabel,\r\n Grid,\r\n Input,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TableContainer,\r\n TextField,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { obraCobrancaAction, obraAction, authActions, empenhoAction } from '../../_actions';\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { withStyles } from '@mui/styles'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { ModalCronograma } from './ModalCronograma.component';\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport CardTableFinanceiro from './cardTableFinanceiro.component'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 5,\r\n [`&.${linearProgressClasses.colorPrimary}`]: {\r\n backgroundColor: theme.palette.grey[theme.palette.mode === 'light' ? 200 : 800],\r\n },\r\n [`& .${linearProgressClasses.bar}`]: {\r\n borderRadius: 5,\r\n backgroundColor: '#015192'\r\n },\r\n}));\r\n\r\nconst ObraFinanceiroEdit = ({ props, idObra }) => {\r\n\r\n const { isLoading } = props.obraCobranca;\r\n const confirm = useConfirm()\r\n const { classes } = props\r\n\r\n const [valueEmpresa, setValueEmpresa] = React.useState(null);\r\n const [inputValueEmpresa, setInputValueEmpresa] = React.useState('');\r\n const [empresas, setEmpresas] = useState([]);\r\n const [openNf, setOpenNf] = useState(false)\r\n\r\n const { obraEtapa } = props.obraEtapa\r\n const { empresa } = useSelector(\r\n (state) => state.empresa\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const optionsEmpresa = empresas?.map(u => ({ id: u.id, nome: u.nome }));\r\n\r\n const { match: { params } } = props;\r\n\r\n const location = useLocation();\r\n const empresaListar = location.state ? location.state.empresa : null;\r\n const empenhos = useSelector((state) => state.obra?.obrasEmpenhos)\r\n const obraCobranca = useSelector((state) => state.obra?.obrasCobrancas)\r\n\r\n const [totalValorOrcamentosAprovados, setTotalValorOrcamentosAprovados] = useState(null);\r\n const [pagarEmpenho, setPagarEmpenho] = useState(false)\r\n const [idEmpenho, setIdEmpenho] = useState(null)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const dispatch = useDispatch()\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n if (props.authentication.user.idTipoUsuario == 3) {\r\n setEmpresas([{ id: props.authentication.user.usuariosEmpresas[0].idEmpresa, nome: props.authentication.user.usuariosEmpresas[0].empresa.razaoSocial }]);\r\n } else {\r\n crudService\r\n .get(`obrasOrcamentosItens/itensAprovados/${idObra}`)\r\n .then(response =>\r\n setEmpresas(response.data?.map(r => {\r\n return { id: r.idEmpresa, nome: r.empresa }\r\n })));\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n }, [ready, isLoading])\r\n\r\n useEffect(() => {\r\n setTotalValorOrcamentosAprovados(props.obra?.obrasOrcamentos\r\n ?.filter(item => item.status == 1) // Filtra apenas os itens com status 1\r\n .reduce((acc, item) => acc + item.valor, 0)); // Soma o valor desses itens\r\n }, [props.obra?.obrasOrcamentos]);\r\n\r\n useEffect(() => {\r\n\r\n if (valueEmpresa != null && valueEmpresa != '') {\r\n let filterModel = {\r\n IdObra: idObra,\r\n IdEmpresa: valueEmpresa.id\r\n };\r\n\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel))\r\n }\r\n }, [valueEmpresa])\r\n\r\n useEffect(() => {\r\n\r\n if (empresaListar) {\r\n let filterModel = {\r\n IdObra: idObra,\r\n IdEmpresa: empresaListar.id\r\n };\r\n\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel))\r\n\r\n setValueEmpresa({ id: empresaListar.id, nome: empresaListar.razaoSocial });\r\n setInputValueEmpresa({ id: empresaListar.id, nome: empresaListar.razaoSocial });\r\n }\r\n\r\n }, [empresaListar])\r\n\r\n useEffect(() => {\r\n if (pagarEmpenho && idEmpenho) {\r\n realizarPagamentoEmpenho()\r\n }\r\n }, [props.empenho.caminhoNotaFiscal, pagarEmpenho]);\r\n\r\n const isItemPaid = (id) => {\r\n if (id != undefined) {\r\n return obraCobranca?.find((n) => n.dataPagamento != null && n.id == id)\r\n }\r\n }\r\n\r\n const handleOpenVisualiza = (link) => {\r\n window.open(link, '_blank');\r\n }\r\n\r\n const isEmpenhoPaid = () => {\r\n if (empenhos) {\r\n return empenhos?.some((n) => n.empenho?.dataPagamento != null && n.idObra == parseInt(idObra) && n.excluido != true)\r\n }\r\n }\r\n\r\n const verifyObraHasEmpenho = () => {\r\n return empenhos?.some(ts => ts.idObra == parseInt(idObra) && ts.excluido != true);\r\n }\r\n\r\n const totalEmAbertoFinanceiro = obraCobranca?.reduce((total, item) => {\r\n if (!item.dataPagamento) {\r\n return total + item.valor;\r\n }\r\n return total;\r\n }, 0);\r\n\r\n const totalPagoFinanceiro = obraCobranca?.reduce((total, item) => {\r\n if (item.dataPagamento) {\r\n return total + item.valor;\r\n }\r\n return total;\r\n }, 0);\r\n\r\n const totalCobrancasEmitidasFinanceiro = obraCobranca?.reduce((total, item) => {\r\n if (item) {\r\n return total + item.valor;\r\n }\r\n return total;\r\n }, 0);\r\n function TitleTextProgresso() {\r\n return (\r\n \r\n {'Progresso Financeiro da Obra'}\r\n \r\n )\r\n }\r\n\r\n function SegHeaderProgresso() {\r\n return \r\n }\r\n\r\n function TitleTextEmpenho() {\r\n return (\r\n \r\n {'Empenho'}\r\n \r\n )\r\n }\r\n function SegHeaderEmpenho() {\r\n return (\r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n const handleOpenVisualizaNF = (link) => {\r\n window.open(link, '_blank');\r\n }\r\n\r\n const handleRealizaPagamento = (id) => {\r\n confirm({\r\n title: 'Você deseja realizar o pagamento desta Cobrança?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obraCobranca.isLoading,\r\n confirmationText: props.obraCobranca.isLoading ? 'Realizando pagamento...' : 'Sim, receber!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n if (id && id != undefined) {\r\n dispatch(obraCobrancaAction.editObraCobrancaPaga(id, idObra));\r\n }\r\n })\r\n }\r\n\r\n const handleRealizaPagamentoEmpenho = (id) => {\r\n confirm({\r\n title: 'Você deseja marcar este empenho como pago?',\r\n description: returnUploadNF(),\r\n disabled: props.empenho.isLoading,\r\n confirmationText: props.empenho.isLoading ? 'Marcando como pago...' : 'Sim!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setPagarEmpenho(true)\r\n setIdEmpenho(id)\r\n })\r\n }\r\n\r\n const realizarPagamentoEmpenho = () => {\r\n if (idEmpenho && idEmpenho != 0) {\r\n dispatch(empenhoAction.editEmpenhoRealizaPagamento(idEmpenho, idOrgao, idObra, {\r\n caminhoNotaFiscal: props.empenho.caminhoNotaFiscal\r\n }));\r\n }\r\n }\r\n\r\n const handleUploadNotaFiscal = (e) => {\r\n setOpenNf(true)\r\n var file = e.target.files[0]\r\n if (file) {\r\n uploadFile(file)\r\n .then((response) => {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(empenhoAction.onChangeProps('caminhoNotaFiscal', event2))\r\n setOpenNf(false)\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpenNf(false)\r\n })\r\n }\r\n }\r\n\r\n function returnUploadNF() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando nota fiscal...\r\n \r\n \r\n \r\n \r\n Enviar Nota Fiscal\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function TitleText() {\r\n return (\r\n \r\n {'Receber Cobranças'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n return (\r\n \r\n \r\n \r\n 0) ?\r\n (props.obra?.obrasOrcamentos.find(orc => orc.status == 1)?.valor ?? 0)\r\n .toLocaleString('pt-br', { minimumFractionDigits: 2 }) :\r\n //senão, pega o valor das cobranças que já foram emitidas pela empresa\r\n (totalEmAbertoFinanceiro != 0 && totalEmAbertoFinanceiro != undefined) ?\r\n totalEmAbertoFinanceiro.toLocaleString('pt-br', { minimumFractionDigits: 2 }) :\r\n '0,00' :\r\n (totalEmAbertoFinanceiro != 0 && totalEmAbertoFinanceiro != undefined) ?\r\n totalEmAbertoFinanceiro?.toLocaleString('pt-br', { minimumFractionDigits: 2 }) :\r\n '0,00'}`}\r\n valorTotal={totalCobrancasEmitidasFinanceiro == 0 ? 'R$ 0,00' : `R$ ${totalCobrancasEmitidasFinanceiro?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}`}\r\n valorPago={`R$ ${totalPagoFinanceiro ? totalPagoFinanceiro?.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '0,00'}`}\r\n textValorTotal=\"Valor total das cobranças emitidas\"\r\n title=\"RESUMO FINANCEIRO\"\r\n />\r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n dispatch(obraAction.handleModalCronograma())}\r\n >\r\n Cronograma\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n }\r\n />\r\n {(authActions.isEmpresa() && obraEtapa?.length) &&\r\n \r\n history.push(`/obraCobranca/`, idObra)}\r\n endIcon={}\r\n >\r\n Cadastrar nova cobrança\r\n \r\n \r\n }\r\n \r\n {props.authentication.user.idTipoUsuario != 3 &&\r\n \r\n {\r\n setValueEmpresa(newValue);\r\n }}\r\n style={{ marginTop: 16 }}\r\n inputValue={inputValueEmpresa}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValueEmpresa(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsEmpresa}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n defaultValue={valueEmpresa}\r\n getOptionLabel={option => option.nome || ''}\r\n renderInput={(params) => }\r\n fullWidth\r\n />\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n DATA\r\n \r\n {!authActions.isEmpresa() ?\r\n \r\n EMPRESA\r\n \r\n : null}\r\n \r\n NOTA FISCAL\r\n \r\n \r\n VALOR\r\n \r\n \r\n STATUS\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {undefined !== obraCobranca && obraCobranca.length && (authActions.isGestor() ? valueEmpresa && valueEmpresa != null : authActions.isEmpresa())\r\n ? obraCobranca.map((n) => {\r\n return (\r\n \r\n \r\n {n.dataCobranca ? moment(n.dataCobranca).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n {!authActions.isEmpresa() ?\r\n \r\n {n.empresa ? n.empresa.razaoSocial.toUpperCase() : ''}\r\n \r\n : null}\r\n \r\n {n.caminhoNota ?\r\n handleOpenVisualizaNF(n.caminhoNota)}\r\n >\r\n Visualizar\r\n \r\n :\r\n null}\r\n \r\n \r\n {n.valor ? 'R$' + n.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : ''}\r\n \r\n \r\n \r\n
{n.dataPagamento == null ? 'EM ABERTO' : 'PAGO'}
\r\n \r\n
\r\n \r\n (\r\n handleRealizaPagamento(n.id)}\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={isItemPaid(n.id)}\r\n checked={isItemPaid(n.id)}\r\n />\r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!authActions.isEmpresa() ?\r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${props.obra.percentualObraOrcamentosPagos != 0 ? props.obra.percentualObraOrcamentosPagos : 0}%`}\r\n \r\n \r\n \r\n \r\n {(authActions.isGestor() || authActions.isPrefeitura() || authActions.isEmpresa()) && (\r\n <>\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n DATA\r\n \r\n \r\n NOTA FISCAL\r\n \r\n \r\n ARQUIVO\r\n \r\n \r\n VALOR\r\n \r\n \r\n STATUS\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {empenhos && undefined !== empenhos && empenhos.length\r\n ? empenhos.map((n) => {\r\n return (\r\n \r\n \r\n {n.empenho && n.empenho.dataCadastro ? moment(n.empenho.dataCadastro).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n \r\n {n.empenho && n.empenho.caminhoNotaFiscal ?\r\n handleOpenVisualiza(n.empenho.caminhoNotaFiscal)}\r\n >\r\n Visualizar\r\n \r\n :\r\n '-'}\r\n \r\n \r\n {n.empenho && n.empenho.caminhoArquivo ?\r\n handleOpenVisualiza(n.empenho.caminhoArquivo)}\r\n >\r\n Visualizar\r\n \r\n :\r\n '-'}\r\n \r\n \r\n {n.empenho && n.empenho.valor && n.empenho.valor != 0\r\n ? 'R$' + n.empenho.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 })\r\n : (totalValorOrcamentosAprovados\r\n ? 'R$' + totalValorOrcamentosAprovados.toLocaleString('pt-br', { minimumFractionDigits: 2 })\r\n : '-')}\r\n \r\n \r\n \r\n
{n.empenho && n.empenho.dataPagamento == null ? 'EM ABERTO' : n.empenho ? `PAGO EM ${moment(n.empenho?.dataPagamento).format(\"DD/MM/YYYY HH:mm\")}` : null}
\r\n \r\n
\r\n \r\n (\r\n \r\n \r\n handleRealizaPagamentoEmpenho(n.empenho.id)}\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={isEmpenhoPaid(n.empenho.id)}\r\n checked={isEmpenhoPaid(n.empenho.id)}\r\n />\r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nObraFinanceiroEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraFinanceiroEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraFinanceiroEdit))\r\n)\r\nexport { connectedObraFinanceiroEditPage as ObraFinanceiroEdit }\r\n\r\nexport default ObraFinanceiroEdit;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport AddPhotoAlternateIcon from \"@mui/icons-material/AddPhotoAlternate\";\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { toast } from 'react-toastify'\r\nimport {\r\n Backdrop,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Fab,\r\n Grid,\r\n Input,\r\n InputAdornment,\r\n ImageList,\r\n ImageListItem,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n authActions,\r\n obraAction,\r\n obraMedicaoAction,\r\n unidadeAction\r\n} from '../../_actions'\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { uploadImage, uploadFile } from '_services'\r\nimport { stringUtils } from '../../utils'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport CustomButton from '../../components/CustomButton';\r\n\r\nconst CustomInput = styled(Input)(() => ({\r\n display: \"none\"\r\n}));\r\n\r\nconst CustomDeleteIcon = styled(DeleteIcon)(() => ({\r\n color: '#4f4f4f',\r\n marginTop: 47,\r\n fontSize: 21,\r\n '&:hover': {\r\n cursor: 'pointer'\r\n },\r\n}));\r\n\r\nexport const ObraMedicaoAddModal = ({ modal, toggle, props, idObra, obraEtapaItem, percentual, obraEtapaModal }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const [imagesUploaded, setImagesUploaded] = useState([]);\r\n const [filesUploaded, setFilesUploaded] = useState([]);\r\n\r\n const [descricao, setDescricao] = useState('');\r\n const [titulo, setTitulo] = useState(!obraEtapaModal ? 'MEDIÇÃO DE ITEM - ' + props.authentication?.user?.nome?.toUpperCase() + ' ' + props.authentication?.user?.sobrenome?.toUpperCase() : obraEtapaModal ? 'MEDIÇÃO DE ETAPA - ' + props.authentication?.user?.nome?.toUpperCase() + ' ' + props.authentication?.user?.sobrenome?.toUpperCase() : '');\r\n const [quantidade, setQuantidade] = useState('');\r\n const [percentualValor, setPercentualValor] = useState('');\r\n const [open, setOpen] = useState(false);\r\n const [openFile, setOpenFile] = useState(false);\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className, empresa, obraOcorrenciaAnexo, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleUploadClickImage = (event) => {\r\n setOpen(true)\r\n const file = event.target.files[0];\r\n const payload = {\r\n file: file\r\n }\r\n\r\n uploadImage(payload)\r\n .then((response) => {\r\n setImagesUploaded([...imagesUploaded, { caminhoArquivo: response.toString() }])\r\n setOpen(false)\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n };\r\n\r\n const handleUploadClickFile = (event) => {\r\n //event.persist(); // Persist the event\r\n setOpenFile(true)\r\n const file = event.target.files[0];\r\n uploadFile(file)\r\n .then((response) => {\r\n setFilesUploaded([...filesUploaded, { caminhoArquivo: response.toString() }])\r\n setOpenFile(false)\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpenFile(false)\r\n })\r\n };\r\n\r\n const handleRemoveOnList = caminhoArquivo => {\r\n confirm({\r\n title: 'Você deseja excluir esta imagem?',\r\n description: 'Essa operação removerá a imagem desta medição',\r\n disabled: props.obraMedicao.isLoading,\r\n confirmationText: props.obraMedicao.isLoading ? 'Excluindo imagem...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setImagesUploaded(imagesUploaded.filter(ts => ts.caminhoArquivo != caminhoArquivo));\r\n })\r\n };\r\n\r\n const handleRemoveOnListFile = caminhoArquivo => {\r\n confirm({\r\n title: 'Você deseja excluir este arquivo?',\r\n description: 'Essa operação removerá o arquivo desta medição',\r\n disabled: props.obraMedicao.isLoading,\r\n confirmationText: props.obraMedicao.isLoading ? 'Excluindo arquivo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setFilesUploaded(filesUploaded.filter(ts => ts.caminhoArquivo != caminhoArquivo));\r\n })\r\n };\r\n\r\n useEffect(() => {\r\n if (idObra) {\r\n dispatch(obraAction.getObraById(idObra));\r\n\r\n dispatch(unidadeAction.getUnidadeById(obraEtapaItem.idUnidade));\r\n\r\n }\r\n }, [])\r\n\r\n const updatePercentualValor = (percentual) => {\r\n if (percentual >= 0) {\r\n let perc = obraEtapaItem.quantidade * percentual / 100;\r\n\r\n setQuantidade(perc.toFixed(2));\r\n setPercentualValor(percentual);\r\n }\r\n }\r\n\r\n const updatePercentualValorEtapa = (perc) => {\r\n if (percentual >= 0) {\r\n setPercentualValor(perc);\r\n }\r\n }\r\n\r\n const updateQuantidade = (quant) => {\r\n if (quant >= 0) {\r\n let perc = quant * 100 / obraEtapaItem.quantidade;\r\n setPercentualValor(perc.toFixed(2));\r\n setQuantidade(quant);\r\n }\r\n }\r\n\r\n const handleSubmit = () => {\r\n\r\n try {\r\n\r\n let listaItens = [];\r\n\r\n if (obraEtapaModal != null) {\r\n\r\n listaItens = obraEtapaModal?.obrasEtapasItens.map(item => {\r\n return {\r\n idEmpresa: authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0].idEmpresa : 0,\r\n idObraMedicao: 0,\r\n idObraEtapaItem: item.id,\r\n percentual: percentualValor,\r\n quantidade: item.quantidade * percentualValor / 100,\r\n descricao: descricao,\r\n obrasMedicoesEtapasItensAnexos: imagesUploaded.concat(filesUploaded)\r\n }\r\n });\r\n\r\n } else {\r\n listaItens = [\r\n {\r\n idEmpresa: authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0].idEmpresa : 0,\r\n idObraMedicao: 0,\r\n idObraEtapaItem: obraEtapaItem.id,\r\n percentual: percentualValor,\r\n quantidade: quantidade,\r\n descricao: descricao,\r\n obrasMedicoesEtapasItensAnexos: imagesUploaded.concat(filesUploaded)\r\n }\r\n ]\r\n }\r\n\r\n const payload = {\r\n data: new Date(),\r\n idObra: idObra,\r\n idUsuario: props.authentication?.user?.id,\r\n titulo: titulo,\r\n obrasOcorrencias: [{\r\n data: new Date(),\r\n idObra: idObra,\r\n idEmpresa: authActions.isEmpresa() ? props.authentication?.user?.usuariosEmpresas[0].idEmpresa : null,\r\n idUsuario: props.authentication?.user?.id,\r\n idOrgao: props.obra.idOrgao,\r\n idObraMedicao: 0,\r\n sistema: false,\r\n origem: authActions.isEmpresa() ? 'E' : 'O',\r\n descricao: 'Nova medição registrada pelo usuário ' + props.authentication?.user?.nome?.toUpperCase(),\r\n obrasOcorrenciasAnexos: imagesUploaded.concat(filesUploaded)\r\n\r\n }],\r\n obrasMedicoesEtapasItens: listaItens\r\n }\r\n\r\n if (payload) {\r\n if (imagesUploaded && imagesUploaded.length > 0) {\r\n dispatch(obraMedicaoAction.createObraMedicao(payload))\r\n toggle();\r\n\r\n } else {\r\n toast.error('Selecione pelo menos uma imagem para a medição antes de salvar')\r\n }\r\n }\r\n\r\n } catch (err) {\r\n console.log('ERR', err);\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Medição'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n {!obraEtapaModal ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n DETALHES DO ITEM\r\n \r\n \r\n \r\n \r\n ITEM\r\n \r\n \r\n QUANTIDADE\r\n \r\n \r\n CONCLUSÃO\r\n \r\n \r\n \r\n \r\n \r\n \r\n {obraEtapaItem.descritivo?.toUpperCase()}\r\n \r\n \r\n {obraEtapaItem.quantidade} {props.unidade?.unidade?.descricao}\r\n \r\n \r\n {`${percentual} %`}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n theme.zIndex.drawer + 1 }} open={open}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando foto...\r\n \r\n \r\n \r\n \r\n handleUploadClickImage(e)}\r\n />\r\n \r\n \r\n \r\n Resolução máxima: 5000 px\r\n \r\n \r\n Formatos aceitos: JPEG, JPG, PNG, ICO, SVG e WEBP\r\n \r\n \r\n \r\n \r\n {imagesUploaded.map((item) => (\r\n \r\n \r\n \r\n handleRemoveOnList(item.caminhoArquivo)} />\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n theme.zIndex.drawer + 1 }} open={openFile}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo...\r\n \r\n \r\n \r\n \r\n handleUploadClickFile(e)}\r\n />\r\n \r\n \r\n \r\n Enviar arquivos\r\n \r\n \r\n \r\n {filesUploaded && filesUploaded.length > 0 &&\r\n \r\n \r\n \r\n \r\n Caminho arquivo\r\n \r\n \r\n Ação\r\n \r\n \r\n \r\n {filesUploaded.map((item) => (\r\n \r\n \r\n \r\n {item.caminhoArquivo}\r\n \r\n \r\n handleRemoveOnListFile(item.caminhoArquivo)} />\r\n \r\n \r\n \r\n ))}\r\n
\r\n }\r\n
\r\n \r\n updatePercentualValor(event.target.value)}\r\n InputProps={{\r\n min: 0,\r\n max: 100,\r\n step: 0.5,\r\n endAdornment:  %\r\n }}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n validators={['required', 'minNumber:0']}\r\n errorMessages={['Campo obrigatório!', 'Valor precisa ser maior que zero']}\r\n />\r\n \r\n \r\n updateQuantidade(event.target.value)}\r\n InputProps={{\r\n min: 0,\r\n endAdornment:  {props.unidade?.unidade?.descricao}\r\n }}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n validators={['required', 'minNumber:0']}\r\n errorMessages={['Campo obrigatório!', 'Valor precisa ser maior que zero']}\r\n />\r\n \r\n \r\n setTitulo(event.target.value)}\r\n value={titulo || 'MEDIÇÃO DO ITEM - ' + props.authentication?.user?.nome?.toUpperCase() + ' ' + props.authentication?.user?.sobrenome?.toUpperCase()}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n setDescricao(event.target.value)}\r\n value={descricao || ''}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ETAPA: {obraEtapaModal?.titulo?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ITEM\r\n \r\n \r\n QUANTIDADE\r\n \r\n \r\n CONCLUSÃO\r\n \r\n \r\n \r\n {obraEtapaModal?.obrasEtapasItens?.map((o) => {\r\n return (\r\n \r\n \r\n \r\n {o.descritivo?.toUpperCase()}\r\n \r\n \r\n {o.quantidade} {props.unidade?.unidade?.descricao}\r\n \r\n \r\n {o.obrasMedicoesEtapasItens?.reduce(function (accumulator, object) {\r\n return accumulator + (object.obraMedicao?.situacao == 1 && object.percentual)\r\n }, 0)} %\r\n \r\n \r\n \r\n )\r\n })}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n theme.zIndex.drawer + 1 }} open={open}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando foto...\r\n \r\n \r\n \r\n \r\n handleUploadClickImage(e)}\r\n />\r\n \r\n \r\n \r\n Resolução máxima: 5000 px\r\n \r\n \r\n Formatos aceitos: JPEG, JPG, PNG e WEBP\r\n \r\n \r\n \r\n \r\n {imagesUploaded.map((item) => (\r\n \r\n \r\n \r\n handleRemoveOnList(item.caminhoArquivo)} />\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n theme.zIndex.drawer + 1 }} open={openFile}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo...\r\n \r\n \r\n \r\n \r\n handleUploadClickFile(e)}\r\n />\r\n \r\n \r\n \r\n Enviar arquivos\r\n \r\n \r\n \r\n {filesUploaded && filesUploaded.length > 0 &&\r\n \r\n \r\n \r\n \r\n Caminho arquivo\r\n \r\n \r\n Ação\r\n \r\n \r\n \r\n {filesUploaded.map((item) => (\r\n \r\n \r\n \r\n {item.caminhoArquivo}\r\n \r\n \r\n handleRemoveOnListFile(item.caminhoArquivo)} />\r\n \r\n \r\n \r\n ))}\r\n
\r\n }\r\n
\r\n \r\n updatePercentualValorEtapa(event.target.value)}\r\n inputProps={{ min: 0 }}\r\n InputProps={{\r\n step: \"1\",\r\n endAdornment:  %\r\n }}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n validators={['required', 'minNumber:1']}\r\n errorMessages={['Campo obrigatório!', 'Valor precisa ser maior que zero']}\r\n />\r\n \r\n \r\n setTitulo(event.target.value)}\r\n value={titulo || 'MEDIÇÃO DE ETAPA - ' + props.authentication?.user?.nome?.toUpperCase() + ' ' + props.authentication?.user?.sobrenome?.toUpperCase()}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n setDescricao(event.target.value)}\r\n value={descricao || ''}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n * Campos obrigatórios\r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraMedicao.isLoading && }\r\n >\r\n {props.obraMedicao.isLoading ? 'Salvando medição...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","export const options =\r\n{\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItems, data) => {\r\n return `${Math.round((tooltipItems.value), 2)}%`\r\n }\r\n }\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n callback: function (label, index, labels) {\r\n return `${(label)}%`\r\n },\r\n min: 0\r\n },\r\n }\r\n ]\r\n }\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n Skeleton,\r\n Typography\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { obraMedicaoEtapaItemAnexoAction, obraMedicaoAction } from '../../_actions'\r\n\r\nexport const ObraMedicaoEditModalAnexo = ({ modal, toggle, props, idObraMedicaoEtapaItem, idObraMedicao }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const { isLoading } = props.obraMedicaoEtapaItemAnexo\r\n\r\n const obraMedicaoEtapaItemAnexo = useSelector(\r\n (state) => state.obraMedicaoEtapaItemAnexo.obraMedicaoEtapaItemAnexo\r\n )\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n if (idObraMedicaoEtapaItem) {\r\n dispatch(obraMedicaoEtapaItemAnexoAction.getObraMedicaoEtapaItemAnexos(idObraMedicaoEtapaItem))\r\n }\r\n\r\n if (idObraMedicao) {\r\n dispatch(obraMedicaoAction.getObraMedicaoById(idObraMedicao))\r\n }\r\n }, [])\r\n\r\n const handleOpenImagem = (link) => {\r\n window.open(link);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ANEXOS\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {undefined !== obraMedicaoEtapaItemAnexo && obraMedicaoEtapaItemAnexo.length\r\n ? obraMedicaoEtapaItemAnexo.map((n) => {\r\n return (\r\n n.caminhoArquivo.endsWith('png') || n.caminhoArquivo.endsWith('jpg') || n.caminhoArquivo.endsWith('jpeg') || n.caminhoArquivo.endsWith('webp') ?\r\n \r\n \r\n handleOpenImagem(n.caminhoArquivo)}\r\n alt={n.caminhoArquivo}\r\n loading=\"lazy\"\r\n />\r\n \r\n \r\n :\r\n \r\n \r\n handleOpenImagem(n.caminhoArquivo)}>{n.caminhoArquivo}\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport moment from 'moment'\r\nimport {\r\n Box,\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n Skeleton,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TableContainer,\r\n Tooltip,\r\n Typography,\r\n IconButton\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport AttachmentIcon from '@mui/icons-material/Attachment';\r\nimport { obraMedicaoAction } from '../../_actions'\r\nimport { phoneMask, cnpjMask } from '../../utils'\r\nimport { ObraMedicaoEditModalAnexo } from './obraMedicaoEditModalAnexo.component';\r\n\r\nexport const ObraMedicaoEditModal = ({ modal, toggle, props, idObraMedicao, medicao }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const razoesSociaisProcessadas = new Set();\r\n\r\n const [idObraMedicaoEtapaItem, setIdObraMedicaoEtapaItem] = useState(0);\r\n const [obraMedicaoEtapaItem, setObraMedicaoEtapaItem] = useState(null);\r\n\r\n const [idObraMedicaoAnexo, setIdObraMedicaoAnexo] = useState(0);\r\n const [obraMedicaoAnexo, setObraMedicaoAnexo] = useState(null);\r\n\r\n const [modalAnexos, setModalAnexos] = useState(false);\r\n const toggleAnexos = () => setModalAnexos(!modalAnexos);\r\n\r\n const [modalAnexosImagem, setModalAnexosImagem] = useState(false);\r\n const toggleAnexosImagem = () => setModalAnexosImagem(!modalAnexosImagem);\r\n\r\n const handleOpenModalAnexos = (id, n, motivo) => {\r\n if (!motivo) {\r\n setIdObraMedicaoEtapaItem(id)\r\n setObraMedicaoEtapaItem(n);\r\n setObraMedicaoAnexo(null);\r\n } else {\r\n setIdObraMedicaoAnexo(id);\r\n setObraMedicaoEtapaItem(null);\r\n setObraMedicaoAnexo(n);\r\n }\r\n if ((n.obrasMedicoesEtapasItensAnexos && n.obrasMedicoesEtapasItensAnexos.length > 1)) {\r\n toggleAnexos();\r\n } else {\r\n toggleAnexosImagem();\r\n }\r\n }\r\n\r\n const isLoading = useSelector(\r\n (state) => state.usuarioOrgao.isLoading\r\n )\r\n\r\n const obrasMedicoesEtapasItens = useSelector(\r\n (state) => state.obraMedicao.obrasMedicoesEtapasItens\r\n )\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n function CircularProgressWithLabel(props) {\r\n return (\r\n \r\n \r\n \r\n {`${Math.round(props.value)}%`}\r\n \r\n \r\n );\r\n }\r\n\r\n const handleCloseAnexosImagem = () => {\r\n toggleAnexosImagem();\r\n }\r\n\r\n useEffect(() => {\r\n if (idObraMedicao) {\r\n dispatch(obraMedicaoAction.getObraMedicaoById(idObraMedicao))\r\n }\r\n }, [])\r\n\r\n const handleOpenImagem = (link) => {\r\n window.open(link);\r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Detalhes da medição'}\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n DATA/HORA\r\n \r\n \r\n TÍTULO\r\n \r\n \r\n USUÁRIO\r\n \r\n \r\n SITUAÇÃO\r\n \r\n \r\n \r\n \r\n {medicao && undefined != medicao && medicao != null ?\r\n <>\r\n \r\n \r\n {medicao.data ? moment(medicao.data).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n \r\n {medicao.titulo ? medicao.titulo : ''}\r\n \r\n \r\n {medicao.usuario ? medicao.usuario.nome + ' ' + medicao.usuario.sobrenome : ''}\r\n \r\n \r\n {medicao.situacao == 1 ? 'APROVADO' : medicao.situacao == 2 ? 'RECUSADO' : 'PENDENTE DE ANÁLISE'}\r\n \r\n \r\n {medicao.situacao != null &&\r\n <>\r\n \r\n \r\n TÍTULO\r\n \r\n \r\n MOTIVO DA {medicao.situacao == 1 ? 'APROVAÇÃO' : 'RECUSA'}\r\n \r\n \r\n \r\n \r\n {medicao.titulo ? medicao.titulo.toUpperCase() : 'NÃO INFORMADO'}\r\n \r\n \r\n {medicao.motivo ? medicao.motivo.toUpperCase() : 'NÃO INFORMADO'} \r\n {medicao.obrasMedicoesAnexos && medicao.obrasMedicoesAnexos.length > 0 ? (\r\n handleOpenModalAnexos(medicao.id, medicao, true)}>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n \r\n \r\n }\r\n \r\n :\r\n (\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n EMPRESA QUE ENVIOU A MEDIÇÃO\r\n \r\n \r\n \r\n \r\n RAZÃO SOCIAL\r\n \r\n \r\n CNPJ\r\n \r\n \r\n TELEFONE\r\n \r\n \r\n \r\n \r\n {obrasMedicoesEtapasItens && obrasMedicoesEtapasItens.length > 0 ?\r\n obrasMedicoesEtapasItens.map((n) => {\r\n // Verificar se a razão social já foi processada\r\n if (!razoesSociaisProcessadas.has(n.empresa?.razaoSocial)) {\r\n // Adicionar a razão social ao conjunto para evitar repetições\r\n razoesSociaisProcessadas.add(n.empresa?.razaoSocial);\r\n\r\n // Renderizar a linha apenas se a razão social não foi processada antes\r\n return (\r\n \r\n \r\n {n.empresa ? n.empresa.razaoSocial : ''}\r\n \r\n \r\n {n.empresa ? cnpjMask(n.empresa.cnpj) : ''}\r\n \r\n \r\n {n.empresa ? phoneMask(n.empresa.telefone) : ''}\r\n \r\n \r\n );\r\n } else {\r\n return null; //não retorna nada se a empresa for igual a anterior\r\n }\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n < strong > ITENS\r\n \r\n \r\n \r\n \r\n DESCRIÇÃO\r\n \r\n \r\n QUANTIDADE\r\n \r\n \r\n PERCENTUAL CONCLUÍDO\r\n \r\n \r\n \r\n \r\n {obrasMedicoesEtapasItens && obrasMedicoesEtapasItens.length > 0 ?\r\n obrasMedicoesEtapasItens.map((n) => {\r\n return (\r\n \r\n \r\n {n.descricao ? n.descricao.toUpperCase() : ''} \r\n handleOpenModalAnexos(n.id, n, false)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {n.quantidade ? n.quantidade : '-'}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n (modalAnexos ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n ANEXO\r\n \r\n \r\n handleCloseAnexosImagem()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {obraMedicaoEtapaItem && obraMedicaoEtapaItem?.obrasMedicoesEtapasItensAnexos.length > 0 ? handleOpenImagem(obraMedicaoEtapaItem?.obrasMedicoesEtapasItensAnexos[0]?.caminhoArquivo)}>{obraMedicaoEtapaItem?.obrasMedicoesEtapasItensAnexos[0]?.caminhoArquivo} : null}\r\n {obraMedicaoAnexo && obraMedicaoAnexo.obrasMedicoesAnexos && obraMedicaoAnexo.obrasMedicoesAnexos.length > 0 ? handleOpenImagem(obraMedicaoAnexo.obrasMedicoesAnexos[0]?.caminhoArquivo)}>{obraMedicaoAnexo.obrasMedicoesAnexos[0]?.caminhoArquivo} : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n Backdrop,\r\n Box,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Fab,\r\n Grid,\r\n Input,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n obraAction,\r\n obraMedicaoAction\r\n} from '../../_actions'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../utils'\r\nimport { uploadFile } from '_services'\r\n\r\nfunction CircularProgressWithLabel(props) {\r\n return (\r\n \r\n \r\n \r\n {`${Math.round(props.value)}%`}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const ObraMedicaoMotivoModal = ({ modal, toggle, props, idObra, aprovaMedicao, medicao, status }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const [motivo, setMotivo] = useState('');\r\n const [filesUploaded, setFilesUploaded] = useState([]);\r\n const [openFile, setOpenFile] = useState(false);\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, obraEtapa, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n if (idObra) {\r\n dispatch(obraAction.getObraById(idObra))\r\n }\r\n }, [])\r\n\r\n const handleUploadClickFile = (event) => {\r\n //event.persist(); // Persist the event\r\n setOpenFile(true)\r\n const file = event.target.files[0];\r\n uploadFile(file)\r\n .then((response) => {\r\n setFilesUploaded([...filesUploaded, { caminhoArquivo: response.toString() }])\r\n setOpenFile(false)\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpenFile(false)\r\n })\r\n };\r\n\r\n const handleSubmit = () => {\r\n\r\n if (aprovaMedicao) {\r\n let obrasMedicoesAnexos = [\r\n {\r\n caminhoArquivo: filesUploaded[0]?.caminhoArquivo,\r\n idObraMedicao: medicao?.id\r\n }\r\n ]\r\n\r\n dispatch(obraMedicaoAction.editObraMedicaoAprova(medicao.id, props.obra.id, status, motivo, filesUploaded && filesUploaded.length > 0 ? obrasMedicoesAnexos : null));\r\n } else {\r\n dispatch(obraMedicaoAction.editObraMedicaoRecusa(medicao.id, props.obra.id, status, motivo));\r\n }\r\n\r\n toggle();\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {aprovaMedicao ? 'Aprovar Medição' : 'Reprovar Medição'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n
\r\n }\r\n />\r\n
\r\n \r\n Percentual correspondente a esta medição: \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n setMotivo(event.target.value)}\r\n value={motivo || ''}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n Enviar arquivo\r\n \r\n theme.zIndex.drawer + 1 }} open={openFile}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo...\r\n \r\n \r\n \r\n \r\n handleUploadClickFile(e)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraMedicao.isLoading && }\r\n >\r\n {props.obraMedicao.isLoading ? 'Salvando medição...' : 'Salvar'}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment'\r\nimport { Line } from 'react-chartjs-2';\r\nimport { options } from './options'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport {\r\n Box,\r\n CardHeader,\r\n CircularProgress,\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Skeleton,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TableContainer,\r\n TablePagination,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { STATUS_SERVICO, history } from '../../utils'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport { authActions, obraMedicaoAction, obraEtapaAction, obraAction } from '../../_actions';\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { withStyles } from '@mui/styles'\r\nimport { ObraMedicaoEditModal } from './obraMedicaoEditModal.component'\r\nimport { ObraMedicaoMotivoModal } from './obraMedicaoMotivoModal.component'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { useDebounce } from 'use-debounce';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nfunction CircularProgressWithLabel(props) {\r\n return (\r\n \r\n \r\n \r\n {`${Math.round(props.value)}%`}\r\n \r\n \r\n );\r\n}\r\n\r\nconst ObraMedicaoEdit = ({ props, idObra, obra }) => {\r\n\r\n const { isLoading } = props.obraEtapa;\r\n const { totalRegistros } = props.obraMedicao\r\n const isLoadingObraMedicao = props.obraMedicao.isLoading\r\n\r\n const [status, setStatus] = useState(3);\r\n const { obraMedicao } = props.obraMedicao\r\n const { obraEtapa } = props.obraEtapa;\r\n\r\n const { graficoEvolucaoObra } = useSelector(\r\n (state) => state.obra)\r\n\r\n const [modal, setModal] = useState(false);\r\n const [aprovaMedicao, setAprovaMedicao] = useState(false);\r\n const [modalMedicao, setModalMedicao] = useState(false);\r\n const [medicao, setMedicao] = useState(null);\r\n const [idObraMedicao, setIdObraMedicao] = useState(0);\r\n const toggle = () => setModal(!modal);\r\n const toggleModalMedicao = () => setModalMedicao(!modalMedicao);\r\n const { match: { params } } = props;\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(5);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('asc');\r\n const [firstTimeAcessPage, setFirstTimeAcessPage] = useState(false);\r\n\r\n const handleOpenModal = (id, n) => {\r\n setMedicao(n);\r\n setIdObraMedicao(id);\r\n toggle();\r\n }\r\n\r\n const handleOpenModalMedicao = (n, aprovaRecusa) => {\r\n setMedicao(n);\r\n setAprovaMedicao(aprovaRecusa);\r\n toggleModalMedicao();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = {\r\n IdObra: idObra\r\n };\r\n\r\n dispatch(obraEtapaAction.getObraEtapa(filterModel, true));\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n IdObra: idObra,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Situacao: status,\r\n Direction: direction\r\n };\r\n\r\n dispatch(obraMedicaoAction.getObraMedicao(filterModel))\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n let filterModel = {\r\n Page: page,\r\n IdObra: idObra,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Situacao: firstTimeAcessPage ? 0 : status != 0 ? status : 0,\r\n Direction: direction,\r\n };\r\n dispatch(obraMedicaoAction.getObraMedicao(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [status])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n useEffect(() => {\r\n if (idObra && !graficoEvolucaoObra) {\r\n dispatch(obraAction.getGraficoEvolucaoObra(idObra))\r\n }\r\n }, [idObra, graficoEvolucaoObra])\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n };\r\n\r\n // Your data generation function\r\n const generateData = () => {\r\n if (graficoEvolucaoObra) {\r\n const data = {\r\n labels: graficoEvolucaoObra.options, // labels\r\n datasets: [\r\n {\r\n fill: true,\r\n label: 'Gráfico de Evolução da Obra',\r\n data: graficoEvolucaoObra.series[0],\r\n borderColor: '#015191',\r\n backgroundColor: 'rgba(1, 81, 145, 0.5)',\r\n tension: 0\r\n },\r\n ],\r\n };\r\n return data;\r\n } else {\r\n return [];\r\n }\r\n };\r\n\r\n const handleAprovaMedicao = (n) => {\r\n confirm({\r\n title: 'Você deseja aprovar esta medição?',\r\n description: 'A situação será alterada para \"Aprovada\" e seu percentual de conclusão será adicionado ao respectivo item',\r\n disabled: props.obraMedicao.isLoading,\r\n confirmationText: props.obraMedicao.isLoading ? 'Aprovando medição...' : 'Sim, aprovar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n handleOpenModalMedicao(n, true)\r\n })\r\n }\r\n\r\n const handleAdicionaMedicaoItem = () => {\r\n history.push(`/obrasCronogramasObrasEtapasItens/`, idObra)\r\n }\r\n\r\n const handleReprovaMedicao = (n) => {\r\n confirm({\r\n title: 'Você deseja reprovar esta medição?',\r\n description: 'A situação será alterada para \"Recusada\" e seu percentual de conclusão será removido do respectivo item',\r\n disabled: props.obraMedicao.isLoading,\r\n confirmationText: props.obraMedicao.isLoading ? 'Recusando medição...' : 'Sim, recusar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n handleOpenModalMedicao(n, false)\r\n })\r\n }\r\n\r\n const getTotalConclusao = () => {\r\n let total = 0;\r\n let qntd = 0;\r\n obraEtapa.forEach((obra) => {\r\n obra.obrasEtapasItens.forEach((item) => {\r\n total += item.obrasMedicoesEtapasItens?.reduce((accumulator, object) => {\r\n return accumulator + (object.obraMedicao?.situacao == 1 && object.percentual)\r\n }, 0)\r\n qntd++;\r\n })\r\n })\r\n\r\n return (total / qntd) == 100;\r\n }\r\n\r\n function TitleText() {\r\n return (\r\n \r\n {'Medições da Obra'}\r\n \r\n )\r\n }\r\n\r\n function TitleTextProgresso() {\r\n return (\r\n \r\n {'Progresso dos Itens da Obra'}\r\n \r\n )\r\n }\r\n\r\n function TitleTextProgressoObra() {\r\n return (\r\n \r\n {'Progresso da Obra'}\r\n \r\n )\r\n }\r\n\r\n function TitleTextGraficoObra() {\r\n return (\r\n \r\n {'Gráfico de Evolução da Obra'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n function SegHeaderProgresso() {\r\n return \r\n }\r\n\r\n function SegHeaderProgressoObra() {\r\n return \r\n }\r\n\r\n function SegHeaderGraficoObra() {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(authActions.isEmpresa() || authActions.isFiscal()) && obraEtapa !== undefined && obraEtapa.length ?\r\n !getTotalConclusao() ?\r\n \r\n }\r\n >\r\n Cadastrar nova medição\r\n \r\n \r\n :\r\n authActions.isFiscal() && getTotalConclusao() && props.obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO &&\r\n \r\n dispatch(obraAction.putFinalizaObra(idObra))}>\r\n Concluir Obra\r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={PENDENTES} />\r\n } label={APROVADAS} />\r\n } label={RECUSADAS} />\r\n } label={TODAS} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n DATA/HORA\r\n \r\n \r\n USUÁRIO\r\n \r\n \r\n ITEM\r\n \r\n \r\n SITUAÇÃO\r\n \r\n \r\n VALOR\r\n \r\n \r\n AÇÕES\r\n \r\n \r\n \r\n \r\n {undefined !== obraMedicao && obraMedicao.length\r\n ? obraMedicao.map((n) => {\r\n return (\r\n \r\n \r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.obrasMedicoesEtapasItens ? n.obrasMedicoesEtapasItens[0]?.obraEtapaItem?.descritivo?.toUpperCase() : ''}\r\n \r\n \r\n \r\n
{n.situacao == 1 ? 'APROVADO' : n.situacao == 2 ? 'RECUSADO' : 'PENDENTE'}
\r\n
\r\n
\r\n \r\n {'R$ ' + n.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n \r\n \r\n (\r\n \r\n handleOpenModal(n.id, n)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n {n.situacao === null &&\r\n (\r\n \r\n handleAprovaMedicao(n)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n }\r\n {n.situacao === null &&\r\n (\r\n handleReprovaMedicao(n)}\r\n size=\"small\"\r\n disabled={n.situacao == 2}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n }\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoadingObraMedicao ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n
\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n {obraEtapa && undefined !== obraEtapa && obraEtapa.length\r\n ?\r\n obraEtapa.map((obra) => (\r\n \r\n \r\n \r\n {obra.titulo.toUpperCase()}\r\n \r\n \r\n CONCLUSÃO\r\n \r\n \r\n {obra.obrasEtapasItens.map((item) =>\r\n (authActions.isGestor()\r\n || authActions.isPrefeitura()\r\n || authActions.isFiscal()\r\n || (authActions.isEmpresa() && item.obrasOrcamentosItens.length > 0)) && (\r\n \r\n \r\n {item.descritivo}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ))\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n {authActions.isFiscal() && getTotalConclusao() && props.obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO &&\r\n \r\n dispatch(obraAction.putFinalizaObra(idObra))}>\r\n Concluir Obra\r\n \r\n \r\n }\r\n {/*\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${props.obra.percentualConclusaoObra != 0 ? props.obra.percentualConclusaoObra : 0}%`}\r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n }\r\n />\r\n \r\n {graficoEvolucaoObra && graficoEvolucaoObra != null && graficoEvolucaoObra?.options?.length > 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n Sem informações para exibir\r\n \r\n }\r\n \r\n\r\n {/* */}\r\n {\r\n (modal ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n {\r\n (modalMedicao ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nObraMedicaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraMedicaoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraMedicaoEdit))\r\n)\r\nexport { connectedObraMedicaoEditPage as ObraMedicaoEdit }\r\n\r\nexport default ObraMedicaoEdit;\r\n","import React, { useState } from 'react'\r\nimport { connect, useSelector } from 'react-redux'\r\nimport { Page } from 'components'\r\nimport PropTypes from 'prop-types'\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history } from '../../utils'\r\nimport {\r\n Box,\r\n Button,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n CardActions,\r\n CardHeader,\r\n CircularProgress,\r\n Grid,\r\n Typography,\r\n Paper,\r\n Skeleton\r\n} from '@mui/material'\r\nimport moment from 'moment'\r\nimport { useLocation } from 'react-router-dom';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport clsx from 'clsx'\r\nimport { withStyles } from '@mui/styles'\r\nimport ObraSummaryCard from './obraSummaryCard.component'\r\nimport { ObraMedicaoAddModal } from './obraMedicaoAddModal.component'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nfunction CircularProgressWithLabel(props) {\r\n return (\r\n \r\n \r\n \r\n {`${Math.round(props.value)}%`}\r\n \r\n \r\n );\r\n}\r\n\r\nconst ObraMedicaoListObrasEtapasItens = (props) => {\r\n\r\n const location = useLocation();\r\n const idObra = location.state;\r\n const { obraMedicao } = props.obraMedicao\r\n const [obraEtapaItem, setObraEtapaItem] = useState({});\r\n const [obraEtapaModal, setObraEtapaModal] = useState(null);\r\n const [percentual, setPercentual] = useState('');\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n const { obraEtapa } = useSelector(\r\n (state) => state.obraEtapa)\r\n\r\n const isLoading = useSelector(\r\n (state) => state.usuarioOrgao.isLoading\r\n )\r\n\r\n const handleOpenModal = (n, percentual) => {\r\n setObraEtapaItem(n);\r\n setPercentual(percentual);\r\n setObraEtapaModal(null)\r\n toggle();\r\n }\r\n\r\n const handleOpenModalEtapas = (etapa) => {\r\n setObraEtapaModal(etapa);\r\n toggle();\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Nova Medição'}\r\n \r\n )\r\n }\r\n\r\n function ListMedicoesText() {\r\n return (\r\n \r\n {'Medições enviadas'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n function SegHeaderMedicoes() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {undefined !== obraEtapa && obraEtapa.length\r\n ?\r\n obraEtapa.map((etapa) => (\r\n \r\n \r\n \r\n {etapa.titulo.toUpperCase()}\r\n handleOpenModalEtapas(etapa)}\r\n endIcon={}\r\n >\r\n Cadastrar nova medição para a etapa\r\n \r\n \r\n \r\n CONCLUSÃO\r\n \r\n \r\n AÇÃO\r\n \r\n \r\n {etapa.obrasEtapasItens.map((item) =>\r\n item.obrasOrcamentosItens.length > 0 &&\r\n (\r\n \r\n \r\n {item.descritivo}\r\n \r\n \r\n \r\n \r\n \r\n {item.obrasMedicoesEtapasItens?.reduce(function (accumulator, object) {\r\n return accumulator + (object.obraMedicao.situacao == 1 && object.percentual)\r\n }, 0) < 100 ?\r\n \r\n handleOpenModal(item, item.obrasMedicoesEtapasItens?.reduce(function (accumulator, object) {\r\n return accumulator + (object.obraMedicao.situacao == 1 && object.percentual)\r\n }, 0))\r\n }>\r\n Adicionar\r\n \r\n : null\r\n }\r\n \r\n \r\n ))}\r\n \r\n ))\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n DATA/HORA\r\n \r\n \r\n USUÁRIO\r\n \r\n \r\n ITEM\r\n \r\n \r\n SITUAÇÃO\r\n \r\n \r\n \r\n \r\n {undefined !== obraMedicao && obraMedicao.length\r\n ? obraMedicao.map((n) => {\r\n return (\r\n \r\n \r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.obrasMedicoesEtapasItens ? n.obrasMedicoesEtapasItens[0]?.obraEtapaItem?.descritivo.toUpperCase() : ''}\r\n {n.motivo &&\r\n \r\n {n.motivo}\r\n \r\n }\r\n \r\n \r\n
{n.situacao == 1 ? 'APROVADA' : n.situacao == 2 ? 'RECUSADA' : 'PENDENTE DE ANÁLISE'}
\r\n
\r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n history.goBack()}\r\n >\r\n Voltar para tela anterior\r\n \r\n \r\n \r\n \r\n {\r\n (modal ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nObraMedicaoListObrasEtapasItens.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraMedicaoListObrasEtapasItensPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraMedicaoListObrasEtapasItens))\r\n)\r\nexport { connectedObraMedicaoListObrasEtapasItensPage as ObraMedicaoListObrasEtapasItens }\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n obraAction\r\n} from '../../_actions'\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../utils'\r\n\r\nexport const ObraMotivoModal = ({ modal, toggle, props, idObra, isObra, isProjetoTecnico, isReparoPrevencao }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const textObra = 'Obra';\r\n const textCompraMaterial = 'Compra de Material';\r\n const textProjetoTecnico = 'Projeto Técnico';\r\n const textReparoPrevencao = 'Reparo/Prevenção';\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleSubmit = () => {\r\n let payload = { motivoExclusao: props.obra.motivoExclusao }\r\n\r\n if (props.obra.motivoExclusao && props.obra.motivoExclusao != null && props.obra.motivoExclusao != '') {\r\n dispatch(obraAction.deleteObraById(idObra, idOrgao, payload, isObra, isProjetoTecnico, isReparoPrevencao));\r\n toggle();\r\n } else {\r\n toast.error('É necessário informar um motivo')\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {`Excluir ${isReparoPrevencao ? textReparoPrevencao : isProjetoTecnico ? textProjetoTecnico : isObra ? textObra : textCompraMaterial}`}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? `Excluindo ${isReparoPrevencao ? textReparoPrevencao : isProjetoTecnico ? textProjetoTecnico : isObra ? textObra : textCompraMaterial}...` : 'Excluir'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n obraAction\r\n} from '../../_actions'\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../utils'\r\n\r\nexport const ObraMotivoAlteracaoHorasRecebimentoOrcamentosModal = ({ modal, toggle, props, isObra, isProjetoTecnico, isReparoPrevencao, payloadObra, setPayloadObra }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const textObra = 'a Obra';\r\n const textCompraMaterial = 'a Compra de Material';\r\n const textProjetoTecnico = 'o Projeto Técnico';\r\n const textReparoPrevencao = 'o Reparo/Prevenção';\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraAction.onChangeProps(prop, event))\r\n }\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleSubmit = () => {\r\n if (props.obra.motivoMudancaHorasRecebimentoOrcamentos && props.obra.motivoMudancaHorasRecebimentoOrcamentos != null && props.obra.motivoMudancaHorasRecebimentoOrcamentos != '') {\r\n\r\n if (props.obra.id) {\r\n dispatch(obraAction.editObraInfo(props.obra.id, payloadObra, idOrgao, isObra, isProjetoTecnico, isReparoPrevencao))\r\n } else {\r\n dispatch(obraAction.createObra(payloadObra, idOrgao, isObra, isProjetoTecnico, isReparoPrevencao));\r\n }\r\n\r\n toggle();\r\n } else {\r\n toast.error('É necessário informar um motivo')\r\n }\r\n\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Editar horas de recebimento de propostas'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.obra.isLoading && }\r\n >\r\n {props.obra.isLoading ? `Alterando ${isReparoPrevencao ? textReparoPrevencao : isProjetoTecnico ? textProjetoTecnico : isObra ? textObra : textCompraMaterial}...` : 'Alterar e salvar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { uploadFile } from '_services'\r\nimport {\r\n Backdrop,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n FormLabel,\r\n Grid,\r\n Input,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport {\r\n obraAction,\r\n obraOrcamentoAction\r\n} from '../../_actions'\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { stringUtils } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nexport const ObraMotivoModal = ({ modal, toggle, props, idObra, valorOrcamentoAprovado, isItensNaoAprovados, itensAprovados }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const [motivo, setMotivo] = useState('');\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n if (idObra) {\r\n dispatch(obraAction.getObraById(idObra))\r\n }\r\n }, [idObra])\r\n\r\n function isMenorPreco(valor) {\r\n var min = props.obra?.obrasOrcamentos?.filter(function (orcamento) {\r\n return orcamento.valor != null; // Filtrar os orçamentos com valor diferente de null\r\n })?.reduce(function (prev, curr) {\r\n return prev.valor < curr.valor ? prev : curr;\r\n });\r\n\r\n if (min && min.valor != null && min.valor != 0 && min.valor != '' && min.valor == valor) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n console.log('valorOrcamentoAprovado', valorOrcamentoAprovado)\r\n }, [valorOrcamentoAprovado])\r\n\r\n const handleSubmit = () => {\r\n // Verifica se o motivo é nulo, indefinido ou uma string vazia\r\n const motivoInvalido = motivo == null || motivo == undefined || motivo === '';\r\n\r\n // Verifica se o orçamento selecionado não é o de menor preço\r\n const naoMenorPreco = !isMenorPreco(valorOrcamentoAprovado);\r\n\r\n console.log('naoMenorPreco', naoMenorPreco)\r\n\r\n\r\n if (isItensNaoAprovados() == false) {\r\n if (itensAprovados && itensAprovados.length > 0) {\r\n if (naoMenorPreco && motivoInvalido) {\r\n toast.error('É obrigatório o preenchimento de uma justificativa');\r\n } else {\r\n let payload = {\r\n IdObra: idObra,\r\n Itens: itensAprovados,\r\n Motivo: motivo\r\n }\r\n dispatch(obraOrcamentoAction.editObraOrcamentoAprova(payload));\r\n }\r\n }\r\n } else {\r\n toast.error('Para aprovar a proposta da obra, é necessário aprovar uma proposta para cada item');\r\n }\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Aprovar Proposta'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n handleClose()}>\r\n \r\n \r\n \r\n \r\n \r\n handleSubmit(event)}\r\n >\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n setMotivo(event.target.value)}\r\n value={motivo || ''}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cancelar\r\n \r\n }\r\n endIcon={props.obraOrcamento.isLoading && }\r\n >\r\n {props.obraOrcamento.isLoading ? 'Aprovando proposta...' : 'Aprovar'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment'\r\nimport SquareIcon from '@mui/icons-material/Square';\r\nimport { ExpandMore, ExpandLess } from '@mui/icons-material';\r\nimport { toast } from 'react-toastify'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport {\r\n Button,\r\n CardActions,\r\n CardHeader,\r\n Checkbox,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TableContainer,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { obraOrcamentoItemAction, authActions, obraOrcamentoAction, relatorioAction, obraEtapaItemAction } from '../../_actions';\r\nimport { connect, useSelector, useDispatch } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\nimport { faFileExcel } from '@fortawesome/free-solid-svg-icons'\r\nimport { withStyles } from '@mui/styles'\r\nimport { Box } from '@material-ui/core';\r\nimport Stars from '../../components/Stars/Stars';\r\nimport CustomButton from '../../components/CustomButton';\r\nimport { HelpModal } from '../../components';\r\nimport { ObraMotivoModal } from '../ObrasOrcamentos/obraMotivoModal.component';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ObraOrcamentoItemEdit = ({ props, idObra, obra }) => {\r\n\r\n const { isLoading } = props.obraOrcamento;\r\n const horasRecebimentoOrcamentos = useSelector((state) => (state.dashboard ? state.dashboard.dashboard.horasRecebimentoOrcamentos : undefined))\r\n const [dataLimiteRecebimentoOrcamentos, setDataLimiteRecebimentoOrcamentos] = useState('');\r\n\r\n const [modalOrcamentoMotivo, setModalOrcamentoMotivo] = useState(false);\r\n const [valorOrcamentoAprovado, setValorOrcamentoAprovado] = useState(null);\r\n const [idOrcamentoAprovado, setIdOrcamentoAprovado] = useState(null);\r\n const toggleModalOrcamentoMotivo = () => setModalOrcamentoMotivo(!modalOrcamentoMotivo);\r\n\r\n const isObra = props.obra.tipoObra.obra;\r\n const textObra = isObra ? 'Obra' : 'Compra de Material';\r\n\r\n const [ready, setReady] = useState(false);\r\n const [expanded, setExpanded] = useState([]);\r\n const dispatch = useDispatch()\r\n const confirm = useConfirm()\r\n const [itensAprovados, setItensAprovados] = useState([])\r\n\r\n const { obrasEtapasItens } = useSelector(\r\n (state) => state.obraOrcamentoItem.obraOrcamentoItem)\r\n\r\n const { obrasOrcamentos } = useSelector(\r\n (state) => state.obraOrcamentoItem.obraOrcamentoItem)\r\n\r\n useEffect(() => {\r\n }, [ready, isLoading])\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const handleOpenModalMotivo = () => {\r\n toggleModalOrcamentoMotivo();\r\n }\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = {\r\n Id: idObra\r\n };\r\n\r\n dispatch(obraOrcamentoItemAction.getObraOrcamentoItemObra(filterModel))\r\n\r\n if (obra && obra.horasRecebimentoOrcamentos && obra.horasRecebimentoOrcamentos != 0) {\r\n const dataLimite = moment(obra.dataAprovacao).add(obra.horasRecebimentoOrcamentos, 'hours').toISOString()\r\n setDataLimiteRecebimentoOrcamentos(dataLimite)\r\n }\r\n\r\n }, [])\r\n\r\n function isMenorPreco(obj, idObraOrcamento) {\r\n\r\n var min = obj.obrasOrcamentosItens.reduce(function (prev, curr) {\r\n return prev.valor < curr.valor ? prev : curr;\r\n });\r\n\r\n if (min && min.idObraOrcamento == idObraOrcamento && min != 0 && min != '') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const isOrcamentoAtrasado = (dataOrcamento, dataObra) => {\r\n if (dataObra && dataObra != undefined) {\r\n if (obra.horasRecebimentoOrcamentos != null && obra.horasRecebimentoOrcamentos != 0 && moment(dataOrcamento).diff(moment(dataObra), 'hours') > obra.horasRecebimentoOrcamentos) {\r\n return true;\r\n } else if (horasRecebimentoOrcamentos != null && horasRecebimentoOrcamentos != 0 && horasRecebimentoOrcamentos != '') {\r\n if (moment(dataOrcamento).diff(moment(dataObra), 'hours') > horasRecebimentoOrcamentos) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let filterModel = {\r\n Id: idObra\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioOrcamentosArquivo(filterModel))\r\n }\r\n\r\n const isItemSelected = (id) => {\r\n if (id != undefined) {\r\n return obrasEtapasItens?.some((n) => n.idObraOrcamentoItem == id && n.idObraOrcamentoItem != null)\r\n }\r\n }\r\n function isItensNaoAprovados() {\r\n var teste = obrasEtapasItens?.some((n) => n.idObraOrcamentoItem == null)\r\n return teste;\r\n }\r\n\r\n const handleAprovaOrcamentoItem = (id) => {\r\n if (isItemSelected(id)) {\r\n if (id && id != undefined) {\r\n dispatch(obraOrcamentoItemAction.editObraOrcamentoItemAprova(id, idObra));\r\n }\r\n } else {\r\n confirm({\r\n title: 'Você deseja aprovar a proposta deste item?',\r\n description: 'O prestador de serviço será notificado desta ação posteriormente',\r\n disabled: isLoading,\r\n confirmationText: isLoading ? 'Aprovando Proposta...' : 'Sim, aprovar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n if (id && id != undefined) {\r\n dispatch(obraOrcamentoItemAction.editObraOrcamentoItemAprova(id, idObra));\r\n }\r\n })\r\n }\r\n }\r\n\r\n const handleClean = () => {\r\n dispatch(obraOrcamentoAction.clearDetail())\r\n }\r\n\r\n const handleAprovaOrcamento = () => {\r\n confirm({\r\n title: 'Você deseja realmente aprovar esta Proposta?',\r\n description: 'As demais propostas recebidas serão automaticamente marcadas como recusadas',\r\n disabled: props.obraOrcamento.isLoading,\r\n confirmationText: props.obraOrcamento.isLoading ? 'Aprovando Proposta...' : 'Sim, aprovar!',\r\n }).then(() => {\r\n handleOpenModalMotivo(itensAprovados, true)\r\n })\r\n }\r\n\r\n const handleExpand = (index) => {\r\n if (expanded.some(e => e === index)) {\r\n const newExpanded = expanded.filter(e => e !== index);\r\n setExpanded(newExpanded);\r\n } else {\r\n const newExpanded = [...expanded, index];\r\n setExpanded(newExpanded);\r\n }\r\n }\r\n\r\n const handleClickEmpresaOrcamento = (idOrcamento, valorOrcamento) => {\r\n\r\n let itensAprovadosEmpresa = [];\r\n\r\n if (idOrcamentoAprovado == idOrcamento) {\r\n // Desmarque o checkbox se o mesmo ID for clicado novamente\r\n setIdOrcamentoAprovado(null);\r\n setValorOrcamentoAprovado(null);\r\n setItensAprovados([]);\r\n return;\r\n }\r\n\r\n if (valorOrcamento) {\r\n setValorOrcamentoAprovado(valorOrcamento)\r\n }\r\n\r\n if (idOrcamento) {\r\n setIdOrcamentoAprovado(idOrcamento);\r\n\r\n obrasEtapasItens.map((n) => {\r\n n.obrasOrcamentosItens.map((n1) => {\r\n if (n1.idObraOrcamento == idOrcamento) {\r\n if (n1.status == '2' || n1.status == null) {\r\n n1.status = '1';\r\n n.idObraOrcamentoItem = n1.id;\r\n itensAprovadosEmpresa.push(n1.id);\r\n } else {\r\n n1.status = '2';\r\n n.idObraOrcamentoItem = null;\r\n itensAprovadosEmpresa = [];\r\n }\r\n }\r\n })\r\n })\r\n\r\n setItensAprovados(itensAprovadosEmpresa);\r\n\r\n let changeEtapasItensEvent = {\r\n type: 'text',\r\n target: {\r\n value: obrasEtapasItens\r\n }\r\n };\r\n\r\n dispatch(obraEtapaItemAction.onChangeProps('obraEtapaItem', changeEtapasItensEvent));\r\n\r\n }\r\n }\r\n\r\n const canRevert = () => {\r\n const isAdmin = props.authentication.user.idTipoUsuario == 1;\r\n const isInExec = props.obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO;\r\n if (isInExec == false || isAdmin == false) {\r\n return false;\r\n }\r\n\r\n const arrEvent = props.obra.eventos.filter(i => i.status === '3').sort((a, b) => a.data > b.data ? -1 : 1);\r\n const event = isInExec ? (arrEvent.length > 0 ? arrEvent[0] : null) : null;\r\n const isMoreThanDay = event ? moment().diff(moment(event?.data), 'minutes') > (24 * 60) : null;\r\n const hasMedicao = props.obraMedicao.obraMedicao.some(m => m.situacao = 1);\r\n\r\n return isAdmin && isInExec && isMoreThanDay && !hasMedicao;\r\n }\r\n\r\n const handleRevert = () => {\r\n confirm({\r\n title: 'Você deseja reverter a aprovação das propostas dessa obra?',\r\n description: 'Essa é uma situação crítica, só faça se tiver total certeza! A obra voltará para o status de recebendo proposta.',\r\n disabled: props.obraOrcamento.isLoading,\r\n confirmationText: props.obraOrcamento.isLoading ? 'Revertendo...' : 'Sim, reverter!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraOrcamentoAction.revert(props.obra.id));\r\n })\r\n }\r\n\r\n function TitleText() {\r\n return (\r\n \r\n {'Propostas de itens para aprovação'}\r\n \r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n }\r\n />\r\n \r\n {obra && obra.dataAprovacao ? `Data de aprovação da obra: ${moment(obra.dataAprovacao).format('DD/MM/YYYY HH:mm')}` : null}\r\n \r\n \r\n Data limite para o recebimento de propostas: {dataLimiteRecebimentoOrcamentos ? moment(dataLimiteRecebimentoOrcamentos).format('DD/MM/YYYY HH:mm') : '-'}\r\n \r\n
\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Valor Total da {textObra} com BDI:\r\n \r\n \r\n {props.obra.valorReferenciaComBdi ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(props.obra.valorReferenciaComBdi) : (isObra ? 'R$ 0,00' : '--,--')}\r\n \r\n \r\n \r\n handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={}\r\n >\r\n Exportar para Excel\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Legenda: \r\n \r\n \r\n   Item de menor valor\r\n \r\n \r\n  Item aprovado\r\n \r\n \r\n \r\n \r\n \r\n \r\n ITEM\r\n \r\n \r\n VALOR REF.\r\n \r\n \r\n QUANT/UN\r\n \r\n {obrasOrcamentos && obrasOrcamentos != undefined && obrasOrcamentos.map((n, i) => (\r\n o.valor < n.valor) ? '#fff' : '#8DE3C4' }}>\r\n
\r\n \r\n handleClickEmpresaOrcamento(n.id, n.valor)}\r\n color=\"primary\"\r\n checked={idOrcamentoAprovado == n.id}\r\n disabled={obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO || obra.ultimoEvento == STATUS_SERVICO.RECUSADO || obra.ultimoEvento == STATUS_SERVICO.CONCLUIDO || obra.ultimoEvento == STATUS_SERVICO.AVALIADO}\r\n size=\"small\"\r\n />\r\n \r\n
\r\n {n.nomeFantasia}\r\n
\r\n \r\n
\r\n Envio:\r\n  {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n
\r\n
\r\n
\r\n Prazo:\r\n  {n.prazo ? moment(n.prazo).format(\"DD/MM/YYYY\") : ''}\r\n
\r\n
\r\n Total:\r\n  {n.valor ? Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valor) : ''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n {obrasEtapasItens && obrasEtapasItens.length > 0 ? (\r\n obrasEtapasItens.reduce((acc, n) => {\r\n const existingRow = acc.find(row => row.idObraEtapa === n.idObraEtapa);\r\n if (existingRow) {\r\n const existingItem = existingRow.items.find(item => item.descritivo === n.descritivo);\r\n if (existingItem) {\r\n existingItem.subItems.push(n);\r\n } else {\r\n existingRow.items.push({\r\n descritivo: n.descritivo,\r\n subItems: [n]\r\n });\r\n }\r\n } else {\r\n acc.push({ idObraEtapa: n.idObraEtapa, items: [{ descritivo: n.descritivo, subItems: [n] }] });\r\n }\r\n return acc;\r\n }, []).map((row, index) => (\r\n \r\n handleExpand(index)}>\r\n \r\n \r\n {row.items[0].subItems[0].obraEtapa?.titulo}\r\n {expanded.some(e => e == index) ? : }\r\n \r\n \r\n \r\n {expanded.some(e => e == index) && row.items.map(item => (\r\n \r\n {item.subItems.map(n => (\r\n \r\n <>\r\n \r\n \r\n {n.descritivo ? n.descritivo.substring(0, 80) : ''}\r\n \r\n \r\n \r\n R$ {n.valorReferenciaComBdi ? (n.valorReferenciaComBdi).toLocaleString('pt-br', { minimumFractionDigits: 2 }) : ''}\r\n \r\n \r\n {n.quantidade} {n.unidade ? n.unidade.descricao : ''}\r\n \r\n \r\n {\r\n obrasOrcamentos && obrasOrcamentos != undefined && obrasOrcamentos.map((n1, i) => (\r\n o.idObraOrcamento == n1.id)[0]?.id)\r\n ? '#99bbff'\r\n : isMenorPreco(n, n1.id)\r\n ? '#8DE3C4'\r\n : '#FFFFFF',\r\n alignItems: 'center'\r\n }}> \r\n
\r\n {n.obrasOrcamentosItens?.filter((o) => o.idObraOrcamento == n1.id)[0]?.valor &&\r\n handleAprovaOrcamentoItem(n.obrasOrcamentosItens?.filter((o) => o.idObraOrcamento == n1.id)[0]?.id)}\r\n color=\"primary\"\r\n disabled={obra.ultimoEvento == STATUS_SERVICO.ORCAMENTO_APROVADO || obra.ultimoEvento == STATUS_SERVICO.RECUSADO || obra.ultimoEvento == STATUS_SERVICO.CONCLUIDO || obra.ultimoEvento == STATUS_SERVICO.AVALIADO}\r\n size=\"small\"\r\n checked={isItemSelected(n.obrasOrcamentosItens?.filter((o) => o.idObraOrcamento == n1.id)[0]?.id)} //passa o Id do item pra testar se está selecionado já ou não\r\n />\r\n }\r\n {n.obrasOrcamentosItens?.filter((o) => o.idObraOrcamento == n1.id)[0]?.valor ? 'R$ ' + (n.obrasOrcamentosItens?.filter((o) => o.idObraOrcamento == n1.id)[0]?.valor).toLocaleString('pt-br', { minimumFractionDigits: 2 }) : ''}\r\n
\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n ))}\r\n
\r\n ))\r\n }\r\n
\r\n ))\r\n ) : !isLoading ? (\r\n \r\n \r\n Sem itens para exibir\r\n \r\n \r\n ) : (\r\n Array.from({ length: 5 }, (_, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )}\r\n
\r\n {obrasEtapasItens && obrasEtapasItens.length > 0 &&\r\n \r\n \r\n \r\n VALOR TOTAL DOS ITENS APROVADOS DA EMPRESA\r\n \r\n {obrasOrcamentos &&\r\n obrasOrcamentos?.map((n1, i) => {\r\n const totalValue = obrasEtapasItens\r\n .map(o => o.obrasOrcamentosItens?.find(i => i.idObraOrcamento == n1.id && i.status == 1)?.valor || 0)\r\n .reduce((accumulator, value) => accumulator + value, 0);\r\n\r\n const formattedValue = new Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(totalValue);\r\n\r\n return (\r\n \r\n
\r\n {formattedValue}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n
\r\n {canRevert() &&\r\n \r\n \r\n handleRevert()}\r\n >\r\n Reverter\r\n \r\n \r\n \r\n }\r\n {\r\n obra.ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS &&\r\n obrasEtapasItens && obrasEtapasItens != undefined && obrasEtapasItens.length &&\r\n (authActions.isGestor() || authActions.isPrefeitura()) ?\r\n \r\n \r\n handleClean()}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={isLoading && }\r\n >\r\n Aprovar proposta\r\n \r\n \r\n \r\n : null\r\n }\r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n\r\n {\r\n (modalOrcamentoMotivo ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nObraOrcamentoItemEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraOrcamentoItemEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraOrcamentoItemEdit))\r\n)\r\nexport { connectedObraOrcamentoItemEditPage as ObraOrcamentoItemEdit }\r\n\r\nexport default ObraOrcamentoItemEdit;\r\n","/* eslint-disable import/no-unresolved */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport Timeline from \"react-timelines\";\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { obraMedicaoAction } from '../../../_actions';\r\n//import { buildTimebar, buildTrack } from \"./builders\";\r\n\r\nimport \"react-timelines/lib/css/style.css\";\r\n\r\nconst now = new Date();\r\n\r\nexport const fill = (n) => {\r\n const arr = [];\r\n for (let i = 0; i < n; i += 1) {\r\n arr.push(i);\r\n }\r\n return arr;\r\n};\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n})\r\n\r\n// eslint-disable-next-line no-alert\r\nconst clickElement = (element) =>\r\n alert(`Clicked element\\n${JSON.stringify(element, null, 2)}`);\r\n\r\n\r\nconst TimelineGantt = ({ props, idObra, obra }) => {\r\n\r\n console.log('OBRA', obra)\r\n\r\n const { obraMedicao } = props.obraMedicao\r\n const [open, setOpen] = useState(false);\r\n\r\n const inicio = new Date(obra?.dataInicio);\r\n const fim = new Date(obra?.dataTermino);\r\n\r\n const start = new Date(inicio.getFullYear(), inicio.getMonth() + 1, inicio.getDate());\r\n const end = new Date(fim.getFullYear(), fim.getMonth() + 1, fim.getDate());\r\n\r\n console.log('DATA start', start);\r\n console.log('DATA end', end);\r\n\r\n const elements = [\r\n {\r\n id: `t1`,\r\n title: \"night shift\",\r\n start: new Date('2023-10-26 10:00'),\r\n end: new Date('2023-11-26 14:00'),\r\n style: {\r\n backgroundColor: `#015091`,\r\n color: \"\",\r\n borderRadius: \"3px\",\r\n boxShadow: \"1px 1px 0px rgba(0, 0, 0, 0.25)\",\r\n textTransform: \"capitalize\"\r\n }\r\n }\r\n ];\r\n\r\n const getEtapas = (obrasEtapas) => {\r\n try {\r\n\r\n let etapasItens = obrasEtapas.flatMap(n1 => n1.obrasEtapasItens);\r\n\r\n let newArray = etapasItens.map(n => {\r\n\r\n return {\r\n id: n.id,\r\n title: n.descritivo,\r\n elements: n.obrasMedicoesEtapasItens.map(n2 => {\r\n return {\r\n id: n2.id,\r\n title: n2.percentual,\r\n start: new Date(n2.obraMedicao.data),\r\n end: new Date(n2.obraMedicao.data + 10),\r\n style: {\r\n backgroundColor: `#015091`,\r\n color: \"\",\r\n borderRadius: \"3px\",\r\n boxShadow: \"1px 1px 0px rgba(0, 0, 0, 0.25)\",\r\n textTransform: \"capitalize\"\r\n }\r\n }\r\n }),\r\n style: {\r\n fontSize: 9\r\n }\r\n }\r\n\r\n });\r\n\r\n //let etapas = obrasEtapas.map(n => {\r\n\r\n // const itens = n.obrasEtapasItens;\r\n\r\n // const medicoes = itens.flatMap(n1 => n1.obrasMedicoesEtapasItens);\r\n\r\n // console.log('MEDICOES', medicoes)\r\n\r\n \r\n //});\r\n\r\n console.log('ETAPAS', newArray)\r\n\r\n return newArray;\r\n\r\n } catch (err) {\r\n console.log('ERR', err)\r\n }\r\n };\r\n\r\n function diasNoMes(ano, mes) {\r\n return new Date(ano, mes + 1, 0).getDate();\r\n }\r\n\r\n function obterNomeMes(ano, mes) {\r\n const data = new Date(ano, mes, 1);\r\n const opcoes = { month: 'long' };\r\n return data.toLocaleDateString('pt-BR', opcoes);\r\n }\r\n\r\n const montarMeses = (inicio, fim) => {\r\n\r\n let meses = [];\r\n\r\n while (inicio <= fim) {\r\n\r\n let data = new Date(inicio);\r\n\r\n console.log('DATA', data)\r\n\r\n meses.push(\r\n {\r\n id: `m13${data.getMonth() + 1}`,\r\n title: obterNomeMes(data.getFullYear(), data.getMonth() + 1).toUpperCase(),\r\n start: new Date(data.getFullYear(), data.getMonth() + 1, 1),\r\n end: new Date(data.getFullYear(), data.getMonth() + 1, diasNoMes(data.getFullYear(), data.getMonth() + 1))\r\n }\r\n );\r\n\r\n inicio = new Date(data.getFullYear(), data.getMonth() + 1, data.getDate());\r\n\r\n }\r\n\r\n console.log('MESES', meses);\r\n return meses;\r\n }\r\n\r\n const timebar = [\r\n {\r\n id: \"time1\",\r\n title: \"MESES\",\r\n cells: montarMeses(inicio, fim),\r\n useAsGrid: true,\r\n style: {\r\n }\r\n }\r\n ]\r\n\r\n useEffect(() => {\r\n console.log('obraMedicaooooooo', obraMedicao)\r\n\r\n }, [obraMedicao])\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedTimelineGanttPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(TimelineGantt))\r\n)\r\nexport { connectedTimelineGanttPage as TimelineGantt }\r\n","import React, { createContext, useState, useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isLoading, notIsLoading } from '../_actions/empenho.actions';\r\nimport { crudService } from '_services';\r\nimport { stringUtils } from '../utils';\r\n\r\nexport const ContextEmpenhosInfos = createContext();\r\n\r\nexport const ContextEmpenhosInfosProvider = ({ children }) => {\r\n const [empenhosInfos, setEmpenhosInfos] = useState(null);\r\n const dispatch = useDispatch();\r\n\r\n const { idOrgao } = useSelector((state) => state.usuarioOrgao);\r\n\r\n const getEmpenhosInfos = useCallback(async () => {\r\n dispatch(isLoading());\r\n const apiEndpoint = 'empenhos/info' + stringUtils.serialize({ IdOrgao: idOrgao });\r\n try {\r\n const response = await crudService.get(apiEndpoint);\r\n setEmpenhosInfos(response.data);\r\n dispatch(notIsLoading());\r\n } catch (err) {\r\n console.error(err);\r\n } finally {\r\n dispatch(notIsLoading());\r\n }\r\n }, [dispatch, idOrgao]);\r\n\r\n useEffect(() => {\r\n getEmpenhosInfos();\r\n }, [idOrgao, getEmpenhosInfos]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Card, Grid, Typography, Divider } from '@mui/material';\r\nimport { makeStyles } from '@mui/styles';\r\nimport clsx from 'clsx';\r\nimport { ContextEmpenhosInfos } from '../../contexts/ContextEmpenhosInfos';\r\nimport theme from '../../theme'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1)\r\n },\r\n title: {\r\n fontWeight: 500,\r\n color: theme.palette.primary.main,\r\n marginBottom: theme.spacing(1),\r\n borderRadius: theme.shape.borderRadius,\r\n textAlign: 'center',\r\n alignItems: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n item: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: theme.spacing(0.1),\r\n textAlign: 'center',\r\n },\r\n total: {\r\n fontWeight: 'bold',\r\n },\r\n}));\r\n\r\nconst CardNumberEmpenhos = (props) => {\r\n const { className, ...rest } = props;\r\n const classes = useStyles();\r\n const empenhosInfos = useContext(ContextEmpenhosInfos);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n RESUMO DE EMPENHOS\r\n \r\n \r\n \r\n \r\n \r\n Empenhos com arquivo: {empenhosInfos?.comArquivo ? empenhosInfos?.comArquivo : 0}\r\n \r\n \r\n \r\n \r\n Empenhos com nota fiscal: {empenhosInfos?.comNf ? empenhosInfos?.comNf : 0}\r\n \r\n \r\n \r\n \r\n Total de empenhos: {empenhosInfos?.total ? empenhosInfos?.total : 0}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CardNumberEmpenhos;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { empenhoAction } from '../../_actions'\r\nimport { styled } from '@mui/material/styles';\r\nimport moment from 'moment'\r\nimport PropTypes from 'prop-types'\r\nimport { getCor, getNomeUltimoEvento, MANUAIS_CATEGORIAS, history } from '../../utils'\r\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { uploadFile } from '_services'\r\nimport CardNumberEmpenhos from './cardNumberEmpenhos.component'\r\nimport {\r\n Backdrop,\r\n Button,\r\n CircularProgress,\r\n Checkbox,\r\n Fade,\r\n FormLabel,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n Skeleton,\r\n Input,\r\n Grid,\r\n TablePagination,\r\n Typography\r\n} from '@mui/material'\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport InsertDriveFileOutlinedIcon from '@mui/icons-material/InsertDriveFileOutlined';\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\nimport { ContextEmpenhosInfosProvider } from '../../contexts/ContextEmpenhosInfos';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst ButtonStyled = styled(Button)(() => ({\r\n paddingTop: 2,\r\n paddingLeft: 2,\r\n paddingRight: 2,\r\n paddingBottom: 0,\r\n fontSize: 10,\r\n verticalAlign: 'middle',\r\n backgroundColor: '#1C5585',\r\n color: '#FFF',\r\n '&:hover': {\r\n backgroundColor: '#000',\r\n transition: '0.2s'\r\n },\r\n}));\r\n\r\nconst TableStyled = styled(Table)(() => ({\r\n marginBottom: 8\r\n}));\r\n\r\nconst SpanStyled = styled('span')({\r\n borderRadius: 8,\r\n paddingTop: 2,\r\n paddingBottom: 1,\r\n paddingRight: 3,\r\n paddingLeft: 3,\r\n color: '#fff',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n marginRight: 3\r\n});\r\n\r\nconst ToolTipFormatted = styled(({ className, ...props }) => (\r\n \r\n))(() => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: '#f5f5f9',\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n maxWidth: 750,\r\n fontSize: 9,\r\n border: '1.2px solid #90b0cb',\r\n },\r\n}));\r\n\r\nconst Empenho = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { empenho } = props.empenho\r\n const { isLoading } = props.empenho\r\n const { totalRegistros } = props.empenho\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('dataCadastro');\r\n const [direction] = useState('asc');\r\n\r\n const [pagarEmpenho, setPagarEmpenho] = useState(false)\r\n const [idEmpenho, setIdEmpenho] = useState(null)\r\n const [open, setOpen] = useState(false)\r\n\r\n const [ready,] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao)\r\n };\r\n\r\n dispatch(empenhoAction.getEmpenho(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n if (pagarEmpenho && idEmpenho) {\r\n realizarPagamentoEmpenho()\r\n }\r\n }, [props.empenho.caminhoNotaFiscal, pagarEmpenho]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.empenho.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleRealizaPagamento = (id) => {\r\n confirm({\r\n title: 'Você deseja marcar este empenho como pago?',\r\n description: returnUploadNF(),\r\n disabled: props.empenho.isLoading,\r\n confirmationText: props.empenho.isLoading ? 'Marcando como pago...' : 'Sim!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n setPagarEmpenho(true)\r\n setIdEmpenho(id)\r\n })\r\n }\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este empenho?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.empenho.isLoading,\r\n confirmationText: props.empenho.isLoading ? 'Excluindo empenho...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empenhoAction.deleteEmpenhoById(id))\r\n })\r\n }\r\n\r\n const realizarPagamentoEmpenho = () => {\r\n if (idEmpenho && idEmpenho != 0) {\r\n dispatch(empenhoAction.editEmpenhoRealizaPagamento(idEmpenho, idOrgao, null, {\r\n caminhoNotaFiscal: props.empenho.caminhoNotaFiscal\r\n }));\r\n }\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleOpenArquivo = (link) => {\r\n window.open(link, '_blank');\r\n }\r\n\r\n const isItemPaid = (id) => {\r\n if (id != undefined) {\r\n return empenho?.some((n) => n.dataPagamento != null && n.id == id)\r\n }\r\n }\r\n\r\n const handleUploadNotaFiscal = (e) => {\r\n setOpen(true)\r\n var file = e.target.files[0]\r\n if (file) {\r\n uploadFile(file)\r\n .then((response) => {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(empenhoAction.onChangeProps('caminhoNotaFiscal', event2))\r\n setOpen(false)\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n }\r\n\r\n function returnUploadNF() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando nota fiscal...\r\n \r\n \r\n \r\n \r\n Enviar Nota Fiscal\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n //precisa somar o valor de todas as ordens de serviço dentro do empenho, pois pode ter\r\n //mais de uma por empenho\r\n const calcValorTotalEmpenho = (idEmpenho) => {\r\n return empenho?.reduce((total, em) => {\r\n if (em.id === idEmpenho) {\r\n const valorEmpenho = em.obrasEmpenhos?.reduce((subtotal, os) => {\r\n const valorOrcamento = os.obra?.obrasOrcamentos?.reduce((subSubtotal, orc) => {\r\n return subSubtotal + (orc.valor || 0);\r\n }, 0);\r\n return subtotal + valorOrcamento;\r\n }, 0);\r\n return total + valorEmpenho;\r\n }\r\n return total;\r\n }, 0);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== empenho && empenho.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Informações\r\n Empenho\r\n Nota Fiscal\r\n Órgão\r\n Data de Cadastro\r\n Valor\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {undefined !== empenho && empenho.length\r\n ? empenho.map((n) => {\r\n return (\r\n \r\n \r\n {n.obrasEmpenhos?.map((o, index) => (\r\n \r\n \r\n {index === 0 &&\r\n \r\n \r\n DETALHES DA(S) OBRA(S)\r\n \r\n Empresa: \r\n {o.obra?.obrasOrcamentos[0]\r\n ? o.obra?.obrasOrcamentos[0].empresa?.razaoSocial?.toUpperCase()\r\n : ''}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {getNomeUltimoEvento(o.obra.ultimoEvento, o, true)}\r\n Título: {o.obra?.titulo?.toUpperCase()}\r\n
\r\n
\r\n
\r\n \r\n \r\n Descritivo: {o.obra?.descritivo ? o.obra?.descritivo?.toUpperCase() : '-'}\r\n \r\n \r\n \r\n window.open(`/obra/` + o.obra?.id, '_blank')}\r\n size=\"small\"\r\n >\r\n Ver mais\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ))}\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n handleOpenArquivo(n.caminhoArquivo)}>\r\n {n.caminhoArquivo ? : '-'}\r\n \r\n \r\n \r\n handleOpenArquivo(n.caminhoNotaFiscal)}>\r\n {n.caminhoNotaFiscal ? : '-'}\r\n \r\n \r\n \r\n {n.orgao != null ? n.orgao.nome?.toUpperCase() : ''}\r\n \r\n \r\n {n.dataCadastro ? moment(n.dataCadastro).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n \r\n R$ {calcValorTotalEmpenho(n.id)?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n \r\n \r\n {n.dataPagamento ? `PAGO EM ${moment(n.dataPagamento).format(\"DD/MM/YYYY HH:mm\")}` : 'EM ABERTO'}\r\n \r\n \r\n (\r\n \r\n \r\n handleRealizaPagamento(n.id)}\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={isItemPaid(n.id)}\r\n checked={isItemPaid(n.id)}\r\n />\r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n history.push(`/empenho/${n.id}`, n.id)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n\r\n\r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n \r\n \r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nEmpenho.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedEmpenhoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Empenho))\r\n)\r\nexport { connectedEmpenhoPage as Empenho }\r\n","import React, { useEffect } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { empenhoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n Paper,\r\n Typography\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst CustomGrid = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'left'\r\n },\r\n}));\r\n\r\nconst CustomGrid2 = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: 4\r\n },\r\n}));\r\n\r\nconst CustomTypography = styled(Typography)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: -10,\r\n marginBottom: -8,\r\n paddingTop: -10,\r\n paddingBottom: -8,\r\n paddingRight: 3,\r\n marginRight: 3,\r\n paddingLeft: 3,\r\n marginLeft: 3\r\n },\r\n}));\r\n\r\nconst EmpenhoSummaryCard = (props) => {\r\n\r\n const { match: { params } } = props;\r\n const { idEmpenho } = props\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n dispatch(empenhoAction.clear())\r\n if (idEmpenho) {\r\n dispatch(empenhoAction.getEmpenhoById(idEmpenho))\r\n }\r\n }, [])\r\n\r\n //precisa somar o valor de todas as ordens de serviço dentro do empenho, pois pode ter\r\n //mais de uma por empenho\r\n const calcValorTotalEmpenho = (idEmpenho) => {\r\n return props.empenho?.obrasEmpenhos?.reduce((subtotal, os) => {\r\n const valorOrcamento = os.obra?.obrasOrcamentos?.reduce((subSubtotal, orc) => {\r\n return subSubtotal + (orc.valor || 0);\r\n }, 0);\r\n return subtotal + valorOrcamento;\r\n }, 0);\r\n }; \r\n\r\n return (\r\n \r\n {idEmpenho &&\r\n \r\n \r\n \r\n RESUMO DO EMPENHO\r\n \r\n \r\n DATA CADASTRO: {props.empenho.dataCadastro ? moment(props.empenho.dataCadastro).format(\"DD/MM/yyyy\") : ''}\r\n \r\n \r\n \r\n \r\n CÓDIGO: \r\n \r\n \r\n #{props.empenho?.id}\r\n \r\n \r\n \r\n \r\n ÓRGÃO: \r\n \r\n \r\n {props.empenho.orgao?.nome?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n EMPRESA: \r\n \r\n \r\n {props.empenho.empresa?.razaoSocial?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n VALOR: \r\n \r\n \r\n R$ {props.empenho?.valor?.toLocaleString('pt-br', { minimumFractionDigits: 2 }) || calcValorTotalEmpenho(idEmpenho)?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nEmpenhoSummaryCard.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n idEmpenho: PropTypes.number.isRequired\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedEmpenhoSummaryCardPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpenhoSummaryCard))\r\n)\r\nexport { connectedEmpenhoSummaryCardPage as EmpenhoSummaryCard }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport WorkOutlineRoundedIcon from '@mui/icons-material/WorkOutlineRounded';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport { styled } from '@mui/material/styles';\r\nimport { withStyles } from '@mui/styles'\r\nimport moment from 'moment'\r\nimport Typography from '@mui/material/Typography';\r\nimport {\r\n Backdrop,\r\n Card,\r\n Checkbox,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n FormLabel,\r\n IconButton,\r\n Paper,\r\n Grid,\r\n Input,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { toast } from 'react-toastify'\r\nimport {\r\n ValidatorForm\r\n} from 'react-material-ui-form-validator'\r\nimport { uploadFile } from '_services'\r\nimport {\r\n empenhoAction,\r\n obraAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { EmpenhoSummaryCard } from './empenhoSummaryCard.component';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst TableCellStyled = styled(TableCell)(() => ({\r\n backgroundColor: '#f2f2f2',\r\n paddingTop: 6,\r\n paddingBottom: 6,\r\n textAlign: 'center',\r\n}));\r\n\r\nconst TableCellStyled2 = styled(TableCell)(() => ({\r\n backgroundColor: '#f2f2f2',\r\n cursor: 'pointer'\r\n}));\r\n\r\nconst DivStyled = styled('div')(() => ({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center'\r\n}));\r\n\r\nconst EmpenhoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, orgao, className, ...rest } = props\r\n const [open, setOpen] = useState(false)\r\n const [file, setFile] = useState(undefined)\r\n const [fileNF, setFileNF] = useState(undefined)\r\n const [idEmpresas, setIdEmpresas] = useState([])\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const [obrasEmpenhos, setObrasEmpenhos] = useState(props.empenho.obrasEmpenhos);\r\n const obrasPorEmpresa = {};\r\n const [expandedEmpresaId, setExpandedEmpresaId] = useState(null);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const location = useLocation();\r\n const idEmpenho = location.state;\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const handleToggle = (empresaId) => {\r\n setExpandedEmpresaId(empresaId == expandedEmpresaId ? null : empresaId);\r\n };\r\n\r\n const obra = useSelector((state) => state.obra.obra)\r\n\r\n useEffect(() => {\r\n\r\n dispatch(empenhoAction.clear());\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0\r\n };\r\n\r\n dispatch(obraAction.getObraSemEmpenho(filterModel))\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n dispatch(empenhoAction.clear());\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0\r\n };\r\n\r\n dispatch(obraAction.getObraSemEmpenho(filterModel))\r\n }, [idOrgao]);\r\n\r\n\r\n useEffect(() => {\r\n if (idOrgao == '') {\r\n toast.error('Selecione um órgão')\r\n history.push('/empenhos')\r\n }\r\n }, [idOrgao])\r\n\r\n useEffect(() => {\r\n if (fileNF && fileNF != undefined && fileNF != null) {\r\n setOpen(true)\r\n upload('caminhoNotaFiscal', fileNF)\r\n }\r\n }, [fileNF])\r\n\r\n const handleAddListaObrasEnviarEmpenho = (idObra, idEmpresaSelected, valor) => {\r\n setIdEmpresas([...idEmpresas, { idEmpresa: parseInt(idEmpresaSelected) }]);\r\n\r\n if (idObra) {\r\n if (obrasEmpenhos.some(ts => ts.idObra === parseInt(idObra))) {\r\n setObrasEmpenhos(obrasEmpenhos.filter(ts => ts.idObra !== parseInt(idObra)));\r\n } else {\r\n setObrasEmpenhos([...obrasEmpenhos, { idObra: parseInt(idObra), valor: valor }]);\r\n }\r\n }\r\n\r\n if (idEmpresaSelected) { //se já estiver selecionado, remove da lista\r\n if (idEmpresas.some(ts => ts.idEmpresa === parseInt(idEmpresaSelected))) {\r\n setIdEmpresas(idEmpresas.filter(ts => ts.idEmpresa !== parseInt(idEmpresaSelected)));\r\n } else {\r\n setIdEmpresas([...idEmpresas, { idEmpresa: parseInt(idEmpresaSelected) }]);\r\n }\r\n }\r\n }\r\n function calcValorTotalEmpenho() {\r\n const valorEmpenho = obrasEmpenhos?.reduce((subtotal, orc) => {\r\n return subtotal + (orc.valor || 0);\r\n }, 0);\r\n\r\n return valorEmpenho;\r\n };\r\n\r\n const isContainedListaObrasEnviarEmpenho = (idObra) => {\r\n if (idObra !== undefined) {\r\n return obrasEmpenhos.some(ts => ts.idObra === parseInt(idObra));\r\n }\r\n return false;\r\n }\r\n\r\n const handleChangeFile = (e) => {\r\n setFile(e.target.files[0])\r\n }\r\n\r\n useEffect(() => {\r\n if (file && file != undefined && file != null) {\r\n setOpen(true)\r\n upload('caminhoArquivo', file)\r\n }\r\n }, [file])\r\n\r\n for (const o of obra) {\r\n const empresaId = o.obrasOrcamentos[0]?.idEmpresa;\r\n if (!obrasPorEmpresa[empresaId]) {\r\n obrasPorEmpresa[empresaId] = [];\r\n }\r\n obrasPorEmpresa[empresaId].push(o);\r\n }\r\n\r\n const upload = (prop, fileUpload) => {\r\n uploadFile(fileUpload)\r\n .then((response) => {\r\n setTimeout(function () {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(empenhoAction.onChangeProps(prop, event2))\r\n setOpen(false)\r\n\r\n }, 1000);\r\n\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n\r\n\r\n const returnNameArquivoEmpenho = () => {\r\n if (idEmpenho && props.empenho?.caminhoArquivo && props.empenho?.caminhoArquivo != undefined) {\r\n const pathArray = props.empenho?.caminhoArquivo.split('/');\r\n const nomeArquivo = pathArray[pathArray.length - 1];\r\n return nomeArquivo;\r\n }\r\n }\r\n\r\n const returnNameArquivoNF = () => {\r\n if (idEmpenho && props.empenho?.caminhoNotaFiscal && props.empenho?.caminhoNotaFiscal != undefined) {\r\n const pathArray = props.empenho?.caminhoNotaFiscal.split('/');\r\n const nomeArquivo = pathArray[pathArray.length - 1];\r\n return nomeArquivo;\r\n }\r\n }\r\n\r\n const handleChangeFileNotaFiscal = (e) => {\r\n setFileNF(e.target.files[0])\r\n }\r\n\r\n const handleOpenArquivo = (link) => {\r\n window.open(link, '_blank');\r\n }\r\n\r\n //verifica se todas as empresas selecionadas são iguais\r\n function areObjectsEqual(objArray) {\r\n if (objArray.length === 1) {\r\n return true; // Se houver apenas um objeto, eles são considerados iguais\r\n }\r\n\r\n const empresaIds = objArray.map(obj => obj.idEmpresa);\r\n\r\n // Verificar se todos os ids de empresa são iguais\r\n return empresaIds.every(id => id === empresaIds[0]);\r\n }\r\n\r\n const handleSubmit = () => {\r\n\r\n if (areObjectsEqual(idEmpresas)) { //valida se todas as empresas selecionadas são iguais\r\n if (obrasEmpenhos && obrasEmpenhos.length > 0) {\r\n let payload = {\r\n caminhoArquivo: props.empenho.caminhoArquivo,\r\n caminhoNotaFiscal: props.empenho.caminhoNotaFiscal,\r\n idOrgao: idOrgao,\r\n obrasEmpenhos: obrasEmpenhos,\r\n valor: calcValorTotalEmpenho(),\r\n idEmpresa: idEmpresas && idEmpresas[0].idEmpresa\r\n }\r\n\r\n dispatch(empenhoAction.createEmpenho(payload))\r\n\r\n } else {\r\n toast.error('É necessário selecionar pelo menos uma obra para prosseguir')\r\n }\r\n } else {\r\n toast.error('Somente é permitido criar um empenho com obras de uma mesma empresa')\r\n }\r\n\r\n };\r\n\r\n const handleEdit = () => {\r\n if (idEmpenho) {\r\n let payload = {\r\n id: idEmpenho,\r\n caminhoArquivo: props.empenho.caminhoArquivo,\r\n caminhoNotaFiscal: props.empenho.caminhoNotaFiscal,\r\n idOrgao: idOrgao,\r\n ordensServicosEmpenhos: props.empenho.ordensServicosEmpenhos,\r\n idEmpresa: props.empenho.idEmpresa\r\n }\r\n\r\n dispatch(empenhoAction.editEmpenhoInfo(idEmpenho, payload))\r\n\r\n }\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n \r\n {'Novo Empenho'}\r\n \r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n \r\n {'Editar Empenho'}\r\n \r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n {(params.id || props.empenho.id) &&\r\n \r\n }\r\n \r\n \r\n !idEmpenho ? handleSubmit(event) : handleEdit(event)}\r\n >\r\n \r\n }\r\n />\r\n \r\n \r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!idEmpenho ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Selecione a(s) obra(s) para a(s) qual(is) você deseja enviar um empenho\r\n \r\n \r\n \r\n \r\n Id\r\n Título\r\n Descritivo\r\n Órgão\r\n Data de Cadastro\r\n Ações\r\n \r\n \r\n \r\n {Object.keys(obrasPorEmpresa).length > 0 ? (\r\n Object.keys(obrasPorEmpresa).map((empresaId) => {\r\n const obrasEmpresa = obrasPorEmpresa[empresaId];\r\n const empresaNome = obrasEmpresa[0]?.obrasOrcamentos[0]?.empresa?.razaoSocial?.toUpperCase();\r\n const isExpanded = expandedEmpresaId == empresaId;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {empresaNome}\r\n \r\n \r\n \r\n \r\n handleToggle(empresaId)} />\r\n \r\n \r\n \r\n {isExpanded &&\r\n obrasEmpresa?.map((obra) => (\r\n \r\n {obra.id}\r\n {obra.titulo ? obra.titulo.toUpperCase() : ''}\r\n {obra.descritivo ? obra.descritivo.toUpperCase() : ''}\r\n {obra.orgao.nome ? obra.orgao.nome.toUpperCase() : ''}\r\n {obra.dataCadastro ? moment(obra.dataCadastro).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n \r\n handleAddListaObrasEnviarEmpenho(obra.id, obra.obrasOrcamentos[0]?.idEmpresa, obra.obrasOrcamentos[0].valor)}\r\n color=\"primary\"\r\n size=\"small\"\r\n checked={isContainedListaObrasEnviarEmpenho(obra.id)}\r\n />\r\n \r\n \r\n ))}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n Não há obras aptas a receber empenhos\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo...\r\n \r\n \r\n \r\n \r\n Arquivo do Empenho\r\n handleChangeFile(e)}\r\n type=\"file\"\r\n placeholder=\"Enviar empenho\"\r\n formControl\r\n margin=\"dense\"\r\n />\r\n {returnNameArquivoEmpenho() ? handleOpenArquivo(props.empenho.caminhoArquivo)}>Arquivo atual: {returnNameArquivoEmpenho()} : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enviando arquivo...\r\n \r\n \r\n \r\n \r\n Arquivo da NF\r\n handleChangeFileNotaFiscal(e)}\r\n type=\"file\"\r\n formControl\r\n margin=\"dense\"\r\n />\r\n {returnNameArquivoNF() ? handleOpenArquivo(props.empenho.caminhoNotaFiscal)}>Arquivo atual: {returnNameArquivoNF()} : ''}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n * Somente são exibidas na lista as obras já concluídas e avaliadas\r\n \r\n \r\n \r\n history.push('/empenhos')}\r\n >\r\n Cancelar\r\n \r\n }\r\n endIcon={props.empenho.isLoading && }\r\n >\r\n {params.id ? (props.empenho.isLoading ? 'Atualizando empenho...' : 'Atualizar') : (props.empenho.isLoading ? 'Enviando empenho...' : 'Enviar empenho')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (modalHelp ?\r\n \r\n :\r\n null\r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nEmpenhoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedEmpenhoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpenhoEdit))\r\n)\r\nexport { connectedEmpenhoEditPage as EmpenhoEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { empresaAnexoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst EmpresaAnexo = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { empresaAnexo } = props.empresaAnexo\r\n const { totalRegistros } = props.empresaAnexo\r\n const { isLoading } = props.empresaAnexo\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const isAnexo = true;\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n //Listar apenas anexos pendentes de aprovação\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Situacao: 0\r\n };\r\n\r\n dispatch(empresaAnexoAction.getEmpresaAnexo(filterModel, true));\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n //Listar apenas anexos pendentes de aprovação\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Situacao: 0\r\n };\r\n\r\n dispatch(empresaAnexoAction.getEmpresaAnexo(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este anexo?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.empresaAnexo.isLoading,\r\n confirmationText: props.empresaAnexo.isLoading ? 'Excluindo anexo...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(empresaAnexoAction.deleteEmpresaAnexoById(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n Situacao: 0\r\n };\r\n\r\n dispatch(empresaAnexoAction.getEmpresaAnexo(filterModel, true));\r\n\r\n }, []);\r\n\r\n return (\r\n \r\n (\r\n
\r\n {undefined !== empresaAnexo && empresaAnexo.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Empresa\r\n Tipo de Anexo\r\n Data de Validade\r\n Situação\r\n Ações\r\n \r\n \r\n \r\n {undefined !== empresaAnexo && empresaAnexo.length\r\n ? empresaAnexo.map((n) => {\r\n return (\r\n \r\n \r\n {n.empresa ? n.empresa.razaoSocial?.toUpperCase() : ''}\r\n \r\n \r\n {n.tipoAnexo ? n.tipoAnexo.nome : ''}\r\n \r\n \r\n {n.dataValidade ? moment(n.dataValidade).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.situacao == 1 ? 'APROVADO' : n.situacao == 2 ? 'RECUSADO' : 'PENDENTE DE ANÁLISE'}\r\n \r\n \r\n (\r\n \r\n history.push(`/empresa/${n.idEmpresa}`, isAnexo)\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n \r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nEmpresaAnexo.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedEmpresaAnexoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(EmpresaAnexo))\r\n)\r\nexport { connectedEmpresaAnexoPage as EmpresaAnexo }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { obraCobrancaAction, authActions } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport {\r\n Grid,\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Radio,\r\n RadioGroup,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst ObraCobranca = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obraCobranca } = props.obraCobranca\r\n const { totalRegistros } = props.obraCobranca\r\n const { isLoading } = props.obraCobranca\r\n const isCobranca = (authActions.isGestor() || authActions.isPrefeitura()) ? true : false;\r\n\r\n const [status, setStatus] = useState('');\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n Status: status\r\n };\r\n\r\n dispatch(obraCobrancaAction.getObraCobranca(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao, status, term]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.obraCobranca.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n const handleChangeRadio = prop => event => {\r\n setStatus(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Filtrar por Status \r\n \r\n \r\n } label={Em Aberto} />\r\n } label={Pago} />\r\n } label={Todas} />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Data\r\n Empresa\r\n Órgão\r\n Obra\r\n Valor\r\n Status\r\n Ações\r\n \r\n \r\n \r\n {undefined !== obraCobranca && obraCobranca.length\r\n ? obraCobranca.map((n) => {\r\n\r\n console.log('COBRANCA', n)\r\n return (\r\n \r\n \r\n {n.dataCobranca ? moment(n.dataCobranca).format(\"DD/MM/YYYY\") : ''}\r\n \r\n \r\n {n.empresa ? n.empresa.razaoSocial.toUpperCase() : ''}\r\n \r\n \r\n {n.empresa ? n.obra.orgao?.nome.toUpperCase() : ''}\r\n \r\n \r\n {n.obrasMedicoesCobrancas ? `#${n.obra.id} ${n.obra?.titulo.toUpperCase()}` : ''}\r\n \r\n \r\n {n.valor ? 'R$' + n.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : ''}\r\n \r\n \r\n \r\n
{n.dataPagamento == null ? 'EM ABERTO' : 'PAGO'}
\r\n \r\n
\r\n \r\n (\r\n \r\n history.push(`/obra/${n.idObra}`, { isCobranca, empresa: n.empresa })\r\n }\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n \r\n Nenhum registro encontrado\r\n \r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )\r\n }\r\n
\r\n
\r\n
\r\n `${from}-${to} de ${totalRegistros}`}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n
\r\n )\r\n }\r\n no={() => }\r\n />\r\n
\r\n )\r\n}\r\nObraCobranca.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n obraCobranca: state.obraCobranca\r\n }\r\n}\r\nconst connectedObraCobrancaPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraCobranca))\r\n)\r\nexport { connectedObraCobrancaPage as ObraCobranca }\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport clsx from 'clsx'\r\nimport { toast } from 'react-toastify'\r\nimport { useLocation } from 'react-router-dom';\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { uploadFile } from '_services'\r\nimport {\r\n Backdrop,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Checkbox,\r\n CircularProgress,\r\n Divider,\r\n FormLabel,\r\n Grid,\r\n Input,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport ChecklistIcon from '@mui/icons-material/Checklist';\r\nimport { obraCobrancaAction, obraMedicaoAction } from '../../_actions';\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { Page as PageForm } from 'components'\r\nimport PropTypes from 'prop-types'\r\nimport { withRouter, } from 'react-router-dom'\r\nimport { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'\r\nimport { withStyles } from '@mui/styles'\r\nimport ObraSummaryCard from './../Obras/obraSummaryCard.component'\r\nimport { ObraCobrancaEditConfirmationModal } from '..';\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ObraCobrancaEdit = (props) => {\r\n\r\n const { isLoading } = props.obraCobranca\r\n const { obraMedicao } = props.obraMedicao\r\n\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n\r\n const { classes, className, ...rest } = props\r\n\r\n const location = useLocation();\r\n const idObra = location.state;\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const dispatch = useDispatch()\r\n const [valor, setValor] = useState(0);\r\n const [file, setFile] = useState(undefined)\r\n const [open, setOpen] = useState(false)\r\n const [key, setKey] = useState(1);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n const [items, setItems] = useState([]);\r\n const [itemsValor, setItemsValor] = useState([]);\r\n\r\n useEffect(() => {\r\n }, [ready, isLoading])\r\n\r\n useEffect(() => {\r\n dispatch(obraCobrancaAction.clear())\r\n\r\n if (params.id) {\r\n dispatch(obraCobrancaAction.getObraCobrancaById(params.id))\r\n }\r\n\r\n }, [])\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const clearCheckboxSelection = () => {\r\n setItems([]);\r\n setItemsValor([]);\r\n }\r\n\r\n const handleCheckboxSelectAll = () => {\r\n const newItems = [];\r\n const newItemsValor = [];\r\n\r\n obraMedicao && obraMedicao.length > 0 && obraMedicao.map((n) => {\r\n\r\n let valorItem = n.valor;\r\n let percentual = n.obrasMedicoesEtapasItens[0]?.percentual;\r\n\r\n const valor = valorItem * (percentual / 100);\r\n\r\n newItems.push(n);\r\n newItemsValor.push(valor);\r\n })\r\n\r\n setItems(newItems);\r\n setItemsValor(newItemsValor);\r\n }\r\n\r\n const handleCheckboxChange = (event, item, valor) => {\r\n const isChecked = event.target.checked;\r\n\r\n const updatedItems = [...items];\r\n const updatedItemsValor = [...itemsValor];\r\n\r\n if (isChecked) {\r\n updatedItems.push(item);\r\n updatedItemsValor.push(valor);\r\n } else {\r\n const index = updatedItems.indexOf(item);\r\n const indexValor = updatedItemsValor.indexOf(valor);\r\n if (index !== -1) {\r\n updatedItems.splice(index, 1);\r\n updatedItemsValor.splice(indexValor, 1);\r\n }\r\n }\r\n\r\n setItems(updatedItems);\r\n setItemsValor(updatedItemsValor);\r\n };\r\n\r\n useEffect(() => {\r\n if (itemsValor && itemsValor.length > 0) {\r\n const sum = itemsValor.reduce((accumulator, currentValue) => accumulator + currentValue, 0);\r\n setValor(sum);\r\n } else {\r\n setValor(0);\r\n }\r\n }, [itemsValor])\r\n\r\n const upload = () => {\r\n setOpen(true)\r\n uploadFile(file)\r\n .then((response) => {\r\n setTimeout(function () {\r\n var event2 = {\r\n type: 'select',\r\n target: {\r\n value: response.toString()\r\n }\r\n };\r\n dispatch(obraCobrancaAction.onChangeProps('caminhoNota', event2))\r\n\r\n setOpen(false)\r\n\r\n }, 1000);\r\n\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n setOpen(false)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n //traz as aprovadas\r\n let filterModel = {\r\n Page: 0,\r\n IdObra: idObra,\r\n Situacao: 1,\r\n Status: 'semcobranca'\r\n };\r\n\r\n dispatch(obraMedicaoAction.getObraMedicao(filterModel, true));\r\n\r\n }, []);\r\n\r\n const handleChangeFile = (e) => {\r\n setFile(e.target.files[0])\r\n }\r\n\r\n useEffect(() => {\r\n if (file && file != undefined && file != null) {\r\n setOpen(true)\r\n upload()\r\n }\r\n }, [file])\r\n\r\n const handleOpenModalConfirmation = () => {\r\n if (items && items.length > 0) {\r\n if (props.obraCobranca.caminhoNota != '' && props.obraCobranca.caminhoNota != null && props.obraCobranca.caminhoNota != undefined) {\r\n toggle();\r\n } else {\r\n toast.error('É necessário anexar uma nota fiscal para prosseguir');\r\n }\r\n }\r\n else {\r\n toast.error('Selecione ao menos uma medição para prosseguir');\r\n }\r\n };\r\n\r\n function SegHeader() {\r\n if (params.id) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n function SegTitle() {\r\n return \r\n }\r\n\r\n function EditText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Visualizar Cobrança'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function Title() {\r\n return (\r\n <Typography variant=\"h6\" align=\"center\">\r\n <b>{'Selecione os itens para as quais você deseja criar uma cobrança'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Nova Cobrança'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n return (\r\n <PageForm\r\n className={classes.root}\r\n title=\"Gerência de Cobrança - Visualizar Cobrança\"\r\n >\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formObraCobranca\"\r\n >\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <CardHeader\r\n subheader=\"Cadastro de Cobrança\"\r\n title={<SegHeader />}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Divider />\r\n {!params.id ?\r\n <CardContent>\r\n {idObra &&\r\n <ObraSummaryCard idObra={idObra} latitude={props.obra.latitude} longitude={props.obra.longitude} />\r\n }\r\n <CardHeader\r\n title={<SegTitle />}\r\n />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Data</TableCell>\r\n <TableCell>Item</TableCell>\r\n <TableCell style={{ minWidth: '200px' }}>Valor</TableCell>\r\n <TableCell align=\"right\">Ações</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== obraMedicao && obraMedicao.length\r\n ? obraMedicao.map((n) => {\r\n\r\n let valorItem = n.valor;\r\n let percentual = n.obrasMedicoesEtapasItens[0]?.percentual;\r\n\r\n const valor = valorItem * (percentual / 100);\r\n\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n ({percentual}%)\r\n {n ? ' ' + n.obrasMedicoesEtapasItens[0]?.obraEtapaItem?.descritivo : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {valor ? valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) : ''}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <Checkbox\r\n onChange={(event) => handleCheckboxChange(event, n, valor)}\r\n checked={items.includes(n)}\r\n color=\"primary\"\r\n size=\"small\"\r\n />\r\n </TableCell>\r\n </TableRow >\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={4} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n\r\n <Grid fullWidth item lg={12} md={12} xl={12} xs={12} display=\"flex\" alignItems=\"flex-end\" justifyContent=\"flex-end\">\r\n <CustomButton\r\n style={{ marginTop: '16px', marginBottom: '16px' }}\r\n onClick={() => clearCheckboxSelection()}\r\n >\r\n limpar\r\n </CustomButton>\r\n <CustomButton\r\n dark\r\n style={{ marginTop: '16px', marginBottom: '16px' }}\r\n onClick={() => handleCheckboxSelectAll()}\r\n >\r\n TODOS\r\n </CustomButton>\r\n </Grid>\r\n\r\n <Divider />\r\n <Grid container spacing={2} style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-around', marginTop: 15 }}>\r\n <Grid item lg={4} md={4} xl={4} xs={12} style={{ display: 'flex', flexDirection: 'column' }}>\r\n <Backdrop sx={{ color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }} open={open}>\r\n <Grid\r\n container\r\n spacing={3}\r\n direction=\"column\"\r\n justifyContent=\"center\"\r\n alignItems=\"center\"\r\n alignContent=\"center\"\r\n wrap=\"nowrap\"\r\n >\r\n <Grid item>\r\n <CircularProgress color=\"primary\" />\r\n </Grid>\r\n <Grid item>\r\n <Typography variant=\"h6\" color=\"textPrimary\">\r\n Enviando nota...\r\n </Typography>\r\n </Grid>\r\n </Grid>\r\n </Backdrop>\r\n <label>Anexar nota *</label>\r\n <Input\r\n id=\"caminhoNota\"\r\n style={{ marginTop: 3 }}\r\n label=\"Anexar nota *\"\r\n onChange={e => handleChangeFile(e)}\r\n type=\"file\"\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n placeHolder=\"Escolher arquivo *\"\r\n formControl\r\n key={key}\r\n />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12} style={{ display: 'flex', flexDirection: 'column' }}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"valorCobranca\"\r\n label=\"Valor total da Cobrança\"\r\n margin=\"normal\"\r\n value={valor ? valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) : 0 || 0}\r\n variant=\"outlined\"\r\n disabled\r\n />\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n :\r\n <CardContent>\r\n <Grid container spacing={2}>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"dataCobranca\"\r\n label=\"Data da Cobrança\"\r\n margin=\"normal\"\r\n value={moment(props.obraCobranca.dataCobranca).format(\"DD/MM/YYYY\") || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"dataPagamento\"\r\n label=\"Data do Pagamento\"\r\n margin=\"normal\"\r\n value={props.obraCobranca.dataPagamento ? moment(props.obraCobranca.dataPagamento).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"empresa\"\r\n label=\"Empresa\"\r\n margin=\"normal\"\r\n value={props.obraCobranca.empresa?.razaoSocial?.toUpperCase()}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={3}>\r\n <Grid item lg={6} md={6} xl={6} xs={12} >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"obra\"\r\n label=\"Obra\"\r\n margin=\"normal\"\r\n value={\r\n props.obraCobranca?.obra?.titulo?.toUpperCase() || ''\r\n }\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n multiline\r\n readOnly\r\n minRows={2}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"descritivo\"\r\n label=\"Descritivo\"\r\n margin=\"normal\"\r\n value={\r\n props.obraCobranca?.obra?.descritivo?.toUpperCase() || ''\r\n }\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"valor\"\r\n label=\"Valor\"\r\n margin=\"normal\"\r\n value={`${props.obraCobranca?.valor?.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })}` || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n label=\"Status\"\r\n margin=\"normal\"\r\n readOnly\r\n variant=\"outlined\"\r\n value={props.obraCobranca.dataPagamento != null ? 'PAGO' : 'EM ABERTO'}\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid item lg={5} md={5} xl={5} xs={12} align=\"center\">\r\n <FormLabel>\r\n <Typography variant=\"subtitle1\" align=\"center\">Nota Fiscal</Typography>\r\n </FormLabel>\r\n {props.obraCobranca.caminhoNota && (props.obraCobranca.caminhoNota.includes('.jpg') || props.obraCobranca.caminhoNota.includes('.jpeg') || props.obraCobranca.caminhoNota.includes('.png')) ?\r\n <img\r\n style={{ width: 350, height: 450, objectFit: 'contain', padding: 3, justifycontent: 'right', borderRadius: 7 }}\r\n src={props.obraCobranca.caminhoNota}\r\n alt=\"Image\"\r\n />\r\n :\r\n props.obraCobranca.caminhoNota && props.obraCobranca.caminhoNota.includes('.pdf') ?\r\n <iframe\r\n src={`https://docs.google.com/viewer?url=${props.obraCobranca.caminhoNota}&embedded=true`}\r\n style={{ width: 450, height: 450, objectFit: 'contain', padding: 3, justifycontent: 'right', borderRadius: 7 }}\r\n frameborder=\"0\"\r\n scrolling=\"no\"\r\n >\r\n </iframe>\r\n : null\r\n }\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n }\r\n <Divider />\r\n <CardActions>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlgin: 'right',\r\n justifyContent: 'right'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n onClick={() => history.push('/obrasCobrancas')}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n {!params.id &&\r\n <CustomButton\r\n variant=\"contained\"\r\n dark={true}\r\n type=\"submit\"\r\n onClick={() => handleOpenModalConfirmation()}\r\n disabled={props.obraCobranca.isLoading}\r\n startIcon={<ChecklistIcon />}\r\n >\r\n Revisar e enviar cobrança\r\n </CustomButton>\r\n }\r\n </Grid>\r\n </CardActions>\r\n </ValidatorForm>\r\n {\r\n (modal ?\r\n <ObraCobrancaEditConfirmationModal toggle={toggle} modal={modal} props={props} idObra={idObra} idOrgao={idOrgao} valor={valor} items={items} obraMedicao={obraMedicao} />\r\n :\r\n null\r\n )\r\n }\r\n </Card >\r\n </Grid >\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.CADASTRO_COBRANCA}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Grid >\r\n </Grid >\r\n </PageForm >\r\n )\r\n};\r\n\r\nObraCobrancaEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraCobrancaEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraCobrancaEdit))\r\n)\r\nexport { connectedObraCobrancaEditPage as ObraCobrancaEdit }\r\n\r\nexport default ObraCobrancaEdit;\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport moment from 'moment'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n Grid,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Tooltip,\r\n Typography\r\n} from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { obraCobrancaAction } from '../../_actions'\r\nimport {\r\n ValidatorForm\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\n\r\nexport const ObraCobrancaEditConfirmationModal = ({ modal, toggle, props, idObra, idOrgao, valor, items, obraMedicao }) => {\r\n\r\n const formRef = React.createRef(null);\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, empresa, ...rest } = props\r\n const { match: { params } } = props;\r\n\r\n const isLoading = useSelector(\r\n (state) => state.usuarioEmpresa.isLoading\r\n )\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n const handleOpenFile = (link) => {\r\n window.open(link);\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n dataCobranca: moment().toISOString(),\r\n idEmpresa: props.authentication.user.usuariosEmpresas ? props.authentication.user.usuariosEmpresas[0].idEmpresa : 0,\r\n idObra: idObra,\r\n valor: valor,\r\n caminhoNota: props.obraCobranca.caminhoNota,\r\n obrasMedicoesCobrancas: items ? items.map(n => ({\r\n idObraMedicao: n.id\r\n })) : []\r\n }\r\n\r\n if (!params.id) {\r\n dispatch(obraCobrancaAction.createObraCobranca(payload, idOrgao))\r\n toggle()\r\n }\r\n };\r\n\r\n function Text() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Resumo da Cobrança'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function SegHeader() {\r\n return <Text />\r\n }\r\n\r\n return (\r\n <Dialog\r\n open={modal}\r\n fullWidth\r\n style={{ padding: 0, margin: 0 }}\r\n maxWidth='md'\r\n onClose={toggle}\r\n >\r\n <DialogTitle align=\"right\" style={{ paddingTop: 0, marginTop: 0, marginBottom: 0, paddingBottom: 0 }}>\r\n <Button\r\n variant=\"contained\"\r\n style={{ backgroundColor: '#000', position: 'relative', marginTop: 15 }}\r\n onClick={() => handleClose()}>\r\n <CloseIcon />\r\n </Button>\r\n </DialogTitle>\r\n <DialogContent style={{ padding: 0, margin: 0 }}>\r\n <Card style={{ marginTop: 0 }}>\r\n <ValidatorForm\r\n style={{ marginTop: 0, paddingTop: 0 }}\r\n ref={formRef}\r\n id=\"formUsuario\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardHeader\r\n style={{ marginTop: 0, paddingTop: 0 }}\r\n subheader=\"Cadastro de Cobranças\"\r\n title={<SegHeader />}\r\n />\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow style={{ backgroundColor: '#F2F2F2' }}>\r\n <TableCell size=\"small\"><strong>DATA</strong></TableCell>\r\n <TableCell size=\"small\"><strong>ITEM</strong></TableCell>\r\n <TableCell size=\"small\"><strong>VALOR</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {items && undefined !== items && items.length\r\n ? items.map((n) => {\r\n let valorItem = n.valor;\r\n let percentual = n.obrasMedicoesEtapasItens[0]?.percentual;\r\n\r\n const valor = valorItem * (percentual / 100);\r\n\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n ({percentual}%)\r\n {n ? ' ' + n.obrasMedicoesEtapasItens[0]?.obraEtapaItem?.descritivo : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {valor?.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })}\r\n </TableCell>\r\n </TableRow >\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={3} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n )\r\n }\r\n </TableBody>\r\n <TableHead>\r\n <TableRow size=\"small\" style={{ backgroundColor: '#F2F2F2' }}>\r\n <TableCell size=\"small\" colSpan={2}><strong>CAMINHO NOTA</strong></TableCell>\r\n <TableCell size=\"small\"><strong>VALOR TOTAL DA PROPOSTA</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n <TableRow hover key={1}>\r\n <Tooltip title=\"Clique aqui para visualizar o arquivo em uma nova aba\">\r\n <TableCell component=\"th\" scope=\"row\" colSpan={2} style={{ cursor: 'pointer' }} onClick={() => handleOpenFile(props.obraCobranca.caminhoNota)}>\r\n {props.obraCobranca.caminhoNota}\r\n </TableCell>\r\n </Tooltip>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {valor ? valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) : ''}\r\n </TableCell>\r\n </TableRow >\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </CardContent>\r\n <Divider />\r\n <CardActions>\r\n <Grid container style={{\r\n display: 'flex',\r\n alignItems: 'end',\r\n flexDirection: 'row',\r\n textAlign: 'end',\r\n justifyContent: 'end'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n onClick={toggle}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n <CustomButton\r\n type=\"submit\"\r\n dark={true}\r\n variant=\"contained\"\r\n disabled={props.obraCobranca.isLoading}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.obraCobranca.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.obraCobranca.isLoading ? 'Salvando cobrança...' : 'Salvar cobrança'}\r\n </CustomButton>\r\n </Grid>\r\n </CardActions>\r\n </ValidatorForm>\r\n </Card>\r\n </DialogContent>\r\n </Dialog >\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { obraMedicaoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst ObraMedicao = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obraMedicao } = props.obraMedicao\r\n const { totalRegistros } = props.obraMedicao\r\n const { isLoading } = props.obraMedicao\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [ready, setReady] = React.useState(false);\r\n const isCronograma = true;\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n //Listar apenas as em aberto\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Situacao: 0\r\n };\r\n\r\n dispatch(obraMedicaoAction.getObraMedicao(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.obraMedicao.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este cronograma?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obraMedicao.isLoading,\r\n confirmationText: props.obraMedicao.isLoading ? 'Excluindo cronograma...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraMedicaoAction.deleteObraMedicaoById(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0,\r\n Situacao: 0\r\n };\r\n\r\n dispatch(obraMedicaoAction.getObraMedicao(filterModel, true));\r\n\r\n }, []);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Cronogramas\">\r\n <AccessControl\r\n rule={'obrasMedicoes.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <div>\r\n {undefined !== obraMedicao && (\r\n <TitleContent\r\n length={obraMedicao.length ?? 0}\r\n subTitle={'GERÊNCIA DE MEDIÇÕES'}\r\n title={'Lista de Medições Pendentes'}\r\n href={'/obraMedicao'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_MEDICAO}\r\n />\r\n )}\r\n <Grid container spacing={3}>\r\n <Grid item xl={3} lg={3} md={3} xs={12}>\r\n <Input\r\n id=\"term\"\r\n label=\"term\"\r\n placeholder=\"Filtro\"\r\n value={term}\r\n fullWidth\r\n onChange={handleChange('term')}\r\n />\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell align=\"center\">Data</TableCell>\r\n <TableCell align=\"center\">Obra</TableCell>\r\n <TableCell align=\"center\">Usuário</TableCell>\r\n <TableCell align=\"center\">Órgão</TableCell>\r\n <TableCell align=\"center\">Situação</TableCell>\r\n <TableCell align=\"center\">Valor</TableCell>\r\n <TableCell align=\"center\">Ações</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== obraMedicao && obraMedicao.length\r\n ? obraMedicao.map((n) => {\r\n console.log(n)\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.obra ? n.obra.titulo : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.usuario ? n.usuario.nome : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.obra ? n.obra.orgao.nome : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.situacao == 1 ? 'APROVADO' : n.situacao == 2 ? 'RECUSADO' : 'PENDENTE DE ANÁLISE'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {'R$ ' + n.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <AccessControl\r\n rule={'obrasMedicoes.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Visualizar\"\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/obra/${n.idObra}`, { isCronograma })\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Visualizar Cronograma'}>\r\n <Tooltip >\r\n <VisibilityIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n <AccessControl\r\n rule={'obrasMedicoes.delete'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Delete\"\r\n onClick={() => handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Excluir\">\r\n <DeleteIcon />\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n </TableCell>\r\n </TableRow >\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={6} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n <TablePagination\r\n component=\"div\"\r\n count={totalRegistros}\r\n page={page}\r\n labelRowsPerPage=\"Linhas por página\"\r\n labelDisplayedRows={({ from, to }) => `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n </div >\r\n )\r\n }\r\n no={() => <AccessDenied />}\r\n />\r\n </Page >\r\n )\r\n}\r\nObraMedicao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedObraMedicaoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraMedicao))\r\n)\r\nexport { connectedObraMedicaoPage as ObraMedicao }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { obraOrcamentoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Tooltip,\r\n Skeleton,\r\n TablePagination,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst ObraOrcamento = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes, className } = props\r\n const { obraOrcamento } = props.obraOrcamento\r\n const { totalRegistros } = props.obraOrcamento\r\n const { isLoading } = props.obraOrcamento\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('data');\r\n const [direction] = useState('desc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0\r\n };\r\n\r\n dispatch(obraOrcamentoAction.getObraOrcamento(filterModel, true));\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.obraOrcamento.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir esta Proposta?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.obraOrcamento.isLoading,\r\n confirmationText: props.obraOrcamento.isLoading ? 'Excluindo Proposta...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(obraOrcamentoAction.deleteObraOrcamentoById(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraOrcamentoAction.clear());\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: idOrgao ? idOrgao : 0\r\n };\r\n\r\n dispatch(obraOrcamentoAction.getObraOrcamento(filterModel, true));\r\n\r\n }, []);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Propostas Enviadas\">\r\n <AccessControl\r\n rule={'obrasOrcamentos.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <div>\r\n {undefined !== obraOrcamento && obraOrcamento.length > 0 ? (\r\n <TitleContent\r\n length={obraOrcamento.length}\r\n subTitle={'GERÊNCIA DE PROPOSTAS'}\r\n title={'Lista de Propostas Enviadas'}\r\n href={'/obraOrcamento'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_ORCAMENTO_ENVIADO}\r\n />\r\n ) : (\r\n <TitleContent\r\n length={0}\r\n subTitle={'GERÊNCIA DE PROPOSTAS'}\r\n title={'Lista de Propostas Enviadas'}\r\n href={'/obraOrcamento'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_ORCAMENTO_ENVIADO}\r\n />\r\n )}\r\n <Grid container spacing={3}>\r\n <Grid item xl={3} lg={3} md={3} xs={12}>\r\n <Input\r\n id=\"term\"\r\n label=\"term\"\r\n placeholder=\"Filtro\"\r\n value={term}\r\n fullWidth\r\n onChange={handleChange('term')}\r\n />\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Código</TableCell>\r\n <TableCell>Data</TableCell>\r\n <TableCell>Prazo</TableCell>\r\n <TableCell>Órgão</TableCell>\r\n <TableCell>Obra</TableCell>\r\n <TableCell>Status</TableCell>\r\n <TableCell align=\"right\">Valor</TableCell>\r\n <TableCell align=\"right\">Ações</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== obraOrcamento && obraOrcamento.length\r\n ? obraOrcamento.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.id ? n.id : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.data ? moment(n.data).format(\"DD/MM/YYYY\") : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.prazo ? moment(n.prazo).format(\"DD/MM/YYYY\") : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.obra && n.obra.orgao ? n.obra.orgao.nome : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.obra ? '#' + n.obra.id + ' ' + n.obra.titulo : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.status == '1' ? 'APROVADO' : n.status == '2' ? 'RECUSADO' : 'PENDENTE DE ANÁLISE'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\" align=\"right\">\r\n {Intl.NumberFormat('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL'\r\n }).format(n.valor)}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <AccessControl\r\n rule={'obrasOrcamentos.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Visualizar\"\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/obraOrcamento/${n.id}`, n.obra.id)\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Visualizar Proposta'}>\r\n <Tooltip >\r\n <VisibilityIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n </TableCell>\r\n </TableRow >\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={8} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n <TablePagination\r\n component=\"div\"\r\n count={totalRegistros}\r\n page={page}\r\n labelRowsPerPage=\"Linhas por página\"\r\n labelDisplayedRows={({ from, to }) => `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n </div >\r\n )\r\n }\r\n no={() => <AccessDenied />}\r\n />\r\n </Page >\r\n )\r\n}\r\nObraOrcamento.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedObraOrcamentoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraOrcamento))\r\n)\r\nexport { connectedObraOrcamentoPage as ObraOrcamento }\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n Button,\r\n Card,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n Tooltip,\r\n Skeleton,\r\n Typography\r\n} from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { obraAnexoAction } from '../../_actions'\r\n\r\nexport const ObraOrcamentoAnexoEmpresaModal = ({ modal, toggle, props, idObra }) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const { isLoading } = props.obraMedicaoEtapaItemAnexo\r\n\r\n const obraAnexo = useSelector(\r\n (state) => state.obraAnexo.obraAnexo\r\n )\r\n\r\n const handleClose = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n if (idObra) {\r\n dispatch(obraAnexoAction.getObraAnexo({ IdObra: idObra }))\r\n }\r\n }, [])\r\n\r\n const handleOpen = (link) => {\r\n window.open(link);\r\n }\r\n\r\n return (\r\n <Dialog\r\n open={modal}\r\n fullWidth\r\n style={{ padding: 0, margin: 0 }}\r\n maxWidth='md'\r\n onClose={toggle}\r\n >\r\n <DialogTitle>\r\n <Grid alignItems=\"flex-end\" container justifyContent=\"space-between\" spacing={3}>\r\n <Grid item>\r\n <Typography style={{ fontSize: \"16px\", fontWeight: 'bold', textAlign: \"left\", marginRight: 5 }}>\r\n DOCUMENTOS ANEXADOS À OBRA\r\n </Typography>\r\n </Grid>\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n style={{ backgroundColor: '#000', position: 'relative', marginTop: 15 }}\r\n onClick={() => handleClose()}>\r\n <CloseIcon />\r\n </Button>\r\n </Grid>\r\n </DialogTitle>\r\n <DialogContent style={{ padding: 0, margin: 0 }}>\r\n <Card style={{ marginTop: 0, paddingLeft: 8, paddingRight: 8, paddingBottom: 8 }}>\r\n <Grid\r\n container\r\n spacing={2}\r\n direction=\"row\"\r\n justifyContent=\"center\"\r\n alignItems=\"center\"\r\n alignContent=\"center\"\r\n >\r\n <Table sx={{ minWidth: 650, marginTop: 3 }} aria-label=\"simple table\">\r\n {undefined !== obraAnexo && obraAnexo.length\r\n ? obraAnexo.map((n) => {\r\n const pathArray = n.caminhoAnexo.split('/');\r\n const nomeArquivo = pathArray[pathArray.length - 1];\r\n\r\n return (\r\n <Tooltip title=\"Visualizar documento\">\r\n <TableRow hover style={{ cursor: 'pointer' }} onClick={() => handleOpen(n.caminhoAnexo)}>\r\n <TableCell align=\"center\">\r\n {n.tipoAnexo ? n.tipoAnexo.nome : ''}\r\n </TableCell>\r\n <TableCell>\r\n {nomeArquivo}\r\n </TableCell>\r\n </TableRow>\r\n </Tooltip>\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n )\r\n }\r\n </Table>\r\n </Grid>\r\n </Card >\r\n </DialogContent >\r\n </Dialog >\r\n )\r\n}\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport moment from 'moment'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\nimport PropTypes from 'prop-types'\r\nimport { useLocation } from 'react-router-dom';\r\nimport { withStyles } from '@mui/styles'\r\nimport Typography from '@mui/material/Typography'\r\nimport ObraSummaryCard from '../Obras/obraSummaryCard.component'\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Divider,\r\n FormControlLabel,\r\n Grid,\r\n Input,\r\n IconButton,\r\n Paper,\r\n Switch,\r\n TableContainer,\r\n TableBody,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Table,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport {\r\n authActions,\r\n empresaAction,\r\n obraOrcamentoAction,\r\n obraOrcamentoItemAction,\r\n parametroAction,\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, stringUtils } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { styled } from '@mui/material/styles';\r\nimport { toast } from 'react-toastify'\r\nimport CustomButton from '../../components/CustomButton';\r\nimport { ObraOrcamentoAnexoEmpresaModal } from './obraOrcamentoAnexoEmpresaModal.component'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS, STATUS_SERVICO } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'center'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst CustomGrid = styled(Grid)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'left'\r\n },\r\n}));\r\n\r\nconst CustomButton2 = styled(Button)(() => ({\r\n color: '#fff',\r\n backgroundColor: '#015192',\r\n borderColor: '#015192',\r\n borderRadius: 4,\r\n padding: 9,\r\n transition: 'background-color 0.3s',\r\n '&:hover': {\r\n backgroundColor: '#000'\r\n }\r\n}));\r\n\r\nconst CustomTypography = styled(Typography)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n marginTop: -10,\r\n marginBottom: -8,\r\n paddingTop: -10,\r\n paddingBottom: -8,\r\n paddingRight: 3,\r\n marginRight: 3,\r\n paddingLeft: 3,\r\n marginLeft: 3\r\n },\r\n}));\r\n\r\nconst ObraOrcamentoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const [modalConfirm, setModalConfirm] = useState(false);\r\n\r\n const { classes, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n const location = useLocation();\r\n const idObra = location.state;\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n var sum = 0;\r\n\r\n const [cont, setCont] = useState(0);\r\n\r\n const [valueEmpresa, setValueEmpresa] = React.useState(null);\r\n const [inputValueEmpresa, setInputValueEmpresa] = React.useState('');\r\n const [optionsEmpresa, setOptionsEmpresa] = React.useState([]);\r\n\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const [valorOrcamento, setValorOrcamento] = useState(0);\r\n\r\n const { obraEtapa } = useSelector(\r\n (state) => state.obraEtapa)\r\n\r\n const { obraOrcamento } = useSelector(\r\n (state) => state.obraOrcamento)\r\n\r\n const { empresa } = useSelector(\r\n (state) => state.empresa\r\n )\r\n\r\n const handleOpenModal = () => {\r\n toggle();\r\n }\r\n\r\n useEffect(() => {\r\n if (authActions.isGestor()) {\r\n dispatch(empresaAction.getEmpresaSelect(null))\r\n\r\n setOptionsEmpresa(empresa.map(u => ({ id: u.value, nome: u.text })));\r\n }\r\n }, [empresa])\r\n\r\n useEffect(() => {\r\n\r\n dispatch(obraOrcamentoAction.clear())\r\n\r\n dispatch(parametroAction.getTermoAceiteEmpresas())\r\n\r\n if (params.id) {\r\n dispatch(obraOrcamentoAction.getObraOrcamentoById(params.id))\r\n } else {\r\n dispatch(obraOrcamentoAction.clear())\r\n setValorOrcamento(0);\r\n setCont(0);\r\n sum = 0;\r\n\r\n let changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: moment().format('yyyy-MM-DD')\r\n }\r\n };\r\n dispatch(obraOrcamentoAction.onChangeProps('data', changeLatEvent));\r\n\r\n if (props.obra.dataTermino && props.obra.dataInicio) {\r\n changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: moment(props.obra.dataTermino).diff(moment(props.obra.dataInicio), 'days')\r\n }\r\n };\r\n dispatch(obraOrcamentoAction.onChangeProps('diasPrazo', changeLatEvent));\r\n\r\n changeLatEvent = {\r\n type: 'text',\r\n target: {\r\n value: props.obra.dataTermino\r\n }\r\n };\r\n dispatch(obraOrcamentoAction.onChangeProps('prazo', changeLatEvent));\r\n }\r\n }\r\n }, []);\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(obraOrcamentoAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n if (idObra && idObra != 0 && (params.id == undefined || params.id == 0)) {\r\n setValorOrcamento(0);\r\n setCont(0);\r\n sum = 0;\r\n dispatch(obraOrcamentoAction.onChangeProps('obrasOrcamentosItens', []));\r\n }\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (props.obraOrcamento.idEmpresa != 0 && params.id != undefined) {\r\n setValueEmpresa(props.obraOrcamento.empresa)\r\n }\r\n\r\n }, [props.obraOrcamento.idEmpresa])\r\n\r\n useEffect(() => {\r\n if (valueEmpresa) {\r\n handleChangeAutoCompleteEmpresa(valueEmpresa)\r\n }\r\n }, [valueEmpresa])\r\n\r\n const handleChangeAutoCompleteEmpresa = (obj) => {\r\n if (obj != null) {\r\n let selected = empresa.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n empresaAction.changeDetailsEmpresa(\r\n selected[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpen(false)\r\n }\r\n\r\n function getValorTotalOrcado(idObraEtapaItem) {\r\n const obrasOrcamentosItens = props.obraOrcamento?.obrasOrcamentosItens;\r\n if (idObraEtapaItem != 0 && obrasOrcamentosItens?.length) {\r\n const item = obrasOrcamentosItens.find(n => n.idObraEtapaItem == idObraEtapaItem);\r\n return item ? (item.valor).toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '';\r\n }\r\n }\r\n\r\n function getValorOrcado(idObraEtapaItem) {\r\n const obrasOrcamentosItens = props.obraOrcamento?.obrasOrcamentosItens;\r\n if (idObraEtapaItem != 0 && obrasOrcamentosItens?.length) {\r\n const valor = obrasOrcamentosItens.find(n => n.idObraEtapaItem == idObraEtapaItem);\r\n return valor ? valor.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '';\r\n }\r\n }\r\n\r\n const handleChangeValor = (event, n) => {\r\n const obrasOrcamentosItens = props.obraOrcamento?.obrasOrcamentosItens;\r\n\r\n if (obrasOrcamentosItens?.length) {\r\n const index = obrasOrcamentosItens.findIndex(x => x.idObraEtapaItem == n.id);\r\n if (index >= 0) {\r\n const novosValores = obrasOrcamentosItens.map(x =>\r\n x.idObraEtapaItem == n.id ? { ...x, valor: parseFloat(event.target.value), valorTotal: parseFloat(event.target.value) } : x\r\n );\r\n dispatch(obraOrcamentoAction.onChangeProps('obrasOrcamentosItens', novosValores));\r\n setCont(cont + 1);\r\n } else {\r\n const payload = {\r\n id: 0,\r\n idObraOrcamento: idObra,\r\n idObraEtapaItem: n.id,\r\n valor: parseFloat(event.target.value),\r\n valorTotal: parseFloat(event.target.value)\r\n };\r\n obrasOrcamentosItens.push(payload);\r\n dispatch(obraOrcamentoAction.onChangeProps('obrasOrcamentosItens', obrasOrcamentosItens));\r\n setCont(cont + 1);\r\n }\r\n } else {\r\n const payload = {\r\n id: 0,\r\n idObraOrcamento: idObra,\r\n idObraEtapaItem: n.id,\r\n valor: parseFloat(event.target.value),\r\n valorTotal: parseFloat(event.target.value)\r\n }\r\n\r\n obrasOrcamentosItens.push(payload);\r\n dispatch(obraOrcamentoAction.onChangeProps('obrasOrcamentosItens', obrasOrcamentosItens))\r\n setCont(cont + 1);\r\n }\r\n\r\n };\r\n\r\n useEffect(() => {\r\n //calcula o valor total do orçamento, somando o valor total de cada item\r\n if (cont > 0) {\r\n if (props.obraOrcamento.obrasOrcamentosItens && props.obraOrcamento.obrasOrcamentosItens.length) {\r\n sum = 0;\r\n sum = props.obraOrcamento.obrasOrcamentosItens.reduce(function (accumulator, item) {\r\n return accumulator + item.valorTotal\r\n }, 0);\r\n setValorOrcamento(sum);\r\n }\r\n }\r\n }, [cont])\r\n\r\n useEffect(() => {\r\n if (props.obraOrcamento.data && props.obraOrcamento.diasPrazo) {\r\n const day = moment(props.obraOrcamento.data).add(props.obraOrcamento.diasPrazo, 'days');\r\n props.obraOrcamento.prazo = moment(day).format(\"yyyy-MM-DD\");\r\n }\r\n }, [props.obraOrcamento.diasPrazo, props.obraOrcamento.data])\r\n\r\n const handleModalConfirm = (event) => {\r\n\r\n if (!props.obraOrcamento.diasPrazo) {\r\n toast.error('Informe um prazo para a proposta')\r\n return;\r\n }\r\n\r\n if (!valorOrcamento) {\r\n toast.error('O valor da proposta não poder ficar em branco')\r\n return;\r\n }\r\n\r\n setModalConfirm(true);\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n data: moment(props.obraOrcamento.data).toISOString(),\r\n prazo: props.obraOrcamento.prazo,\r\n diasPrazo: props.obraOrcamento.diasPrazo,\r\n valor: valorOrcamento,\r\n observacoes: props.obraOrcamento.observacoes,\r\n obrasOrcamentosItens: props.obraOrcamento.obrasOrcamentosItens,\r\n idObra: idObra,\r\n idEmpresa: authActions.isEmpresa() ? props.authentication.user.usuariosEmpresas ? props.authentication.user.usuariosEmpresas[0].idEmpresa : valueEmpresa.id : valueEmpresa.id,\r\n }\r\n\r\n if (params.id) {\r\n dispatch(obraOrcamentoAction.editObraOrcamentoInfo(params.id, payload, true))\r\n } else {\r\n dispatch(obraOrcamentoAction.createObraOrcamento(payload))\r\n }\r\n };\r\n\r\n function getValor(idObraEtapaItem, quantidadeItem) {\r\n const item = props.obraOrcamento?.obrasOrcamentosItens?.find(p => p.idObraEtapaItem == idObraEtapaItem);\r\n if (item) {\r\n if (item.valor) {\r\n //return quantidadeItem ? item.valor : item.valor;\r\n return item.valor;\r\n } else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n function InsertText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Nova Proposta'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Visualizar Proposta'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function SegHeader() {\r\n if (params.id) {\r\n return <EditText />\r\n }\r\n return <InsertText />\r\n }\r\n\r\n return (\r\n <Page\r\n className={classes.root}\r\n title={\r\n params.id\r\n ? 'Gerência de Propostas - Editar Proposta'\r\n : 'Gerência de Propostas - Nova Proposta'\r\n }\r\n >\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formObraOrcamento\"\r\n onSubmit={(event) => handleModalConfirm(event)}\r\n >\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <CardHeader\r\n subheader=\"Cadastro de Proposta\"\r\n title={<SegHeader />}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n {idObra != undefined ?\r\n <ObraSummaryCard idObra={idObra} isOrcamento={true} latitude={props.obra.latitude} longitude={props.obra.longitude} />\r\n :\r\n <ObraSummaryCard idObra={params.id} isOrcamento={true} latitude={props.obra.latitude} longitude={props.obra.longitude} />\r\n }\r\n <Grid container spacing={2}>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TableContainer component={Paper}>\r\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell colSpan={6} style={{ display: 'flex', justifyContent: 'space-evenly', alignItems: 'center' }}>\r\n <div>\r\n <strong>{params.id ? 'Itens orçados da obra' : 'Itens a serem orçados'}</strong>\r\n </div>\r\n <div>\r\n <CustomButton2 onClick={() => handleOpenModal()}>\r\n Ver documentos da obra <AttachFileIcon />\r\n </CustomButton2>\r\n </div>\r\n </TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {(idObra && idObra != 0 && (params.id == 0 || params.id == undefined)) && props.obra.obrasEtapas != null ?\r\n props.obra.obrasEtapas.map((n) => {\r\n return (\r\n <>\r\n <TableRow size=\"small\" style={{ backgroundColor: '#f2f2f2' }}\r\n key={n.id}\r\n >\r\n <TableCell colSpan={6} component=\"th\" scope=\"row\" align=\"center\">\r\n <strong>{n.titulo}</strong>\r\n </TableCell>\r\n </TableRow>\r\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>Código</strong></TableCell>\r\n <TableCell><strong>Descritivo</strong></TableCell>\r\n <TableCell><strong>Valor Ref. Un.</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Quantidade</strong></TableCell>\r\n <TableCell><strong>Valor Ref.</strong></TableCell>\r\n <TableCell><strong>Valor Ref. BDI</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Valor da Proposta</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Valor Total Item</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {n.obrasEtapasItens?.map((n1, index) => (\r\n <TableRow hover key={index}>\r\n <TableCell>{n1.codigo}</TableCell>\r\n <TableCell>{n1.descritivo}</TableCell>\r\n <TableCell>{n1.valorReferencia ? 'R$' + n1.valorReferencia.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '-'}</TableCell>\r\n <TableCell align=\"right\">{n1.quantidade} {n1.unidade.descricao}</TableCell>\r\n <TableCell>{n1.valorReferencia ? 'R$' + (n1.valorReferencia * n1.quantidade).toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '-'}</TableCell>\r\n <TableCell>{n1.valorReferenciaComBdi ? 'R$' + n1.valorReferenciaComBdi.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : '-'}</TableCell>\r\n <TableCell align=\"right\">\r\n <Input\r\n id=\"valorItem\"\r\n autoComplete=\"off\"\r\n className=\"form-control\"\r\n type=\"number\"\r\n readOnly={params.id}\r\n style={{ width: 125 }}\r\n value={props.obraOrcamentoItem.valor ? props.obraOrcamentoItem.valor : getValor(n1.id) || ''}\r\n startAdornment={<Typography position=\"left\" style={{ fontSize: 12 }}>R$ </Typography>}\r\n onChange={(event) => handleChangeValor(event, n1)}\r\n inputProps={{\r\n min: 0,\r\n step: \"0.01\",\r\n }}\r\n />\r\n </TableCell>\r\n <TableCell style={{ minWidth: 125 }} align=\"right\">R$ {(props.obraOrcamentoItem.valor ? props.obraOrcamentoItem.valor : getValor(n1.id, n1.quantidade) ? getValor(n1.id, n1.quantidade) : 0).toLocaleString('pt-br', { minimumFractionDigits: 2 })}</TableCell>\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n\r\n </>\r\n )\r\n })\r\n : params.id == 0 &&\r\n <TableRow\r\n key={obraEtapa.id}\r\n >\r\n <TableCell colSpan={6} component=\"th\" scope=\"row\" align=\"center\">\r\n Esta obra não possui etapas para exibir\r\n </TableCell>\r\n </TableRow>\r\n }\r\n {params.id != 0 && params.id != undefined && props.obraOrcamento?.obra?.obrasEtapas ?\r\n props.obraOrcamento?.obra?.obrasEtapas.map((n) => {\r\n return (\r\n <>\r\n <TableRow size=\"small\" style={{ backgroundColor: '#f2f2f2' }}\r\n key={n.id}\r\n >\r\n <TableCell colSpan={6} component=\"th\" scope=\"row\" align=\"center\">\r\n <strong>{n.titulo}</strong>\r\n </TableCell>\r\n </TableRow>\r\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\r\n <TableRow>\r\n <TableCell><strong>Código</strong></TableCell>\r\n <TableCell><strong>Descritivo</strong></TableCell>\r\n <TableCell><strong>Valor Ref. Un.</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Quantidade</strong></TableCell>\r\n <TableCell><strong>Valor Ref. + BDI</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Valor da Proposta</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Valor Total Item</strong></TableCell>\r\n </TableRow>\r\n <TableBody>\r\n {n.obrasEtapasItens ? n.obrasEtapasItens.map((oe) => {\r\n return (\r\n <TableRow hover>\r\n <TableCell>{oe.codigo ? oe.codigo : ''}</TableCell>\r\n <TableCell>{oe.descritivo}</TableCell>\r\n <TableCell>R$ {oe.valorReferencia?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}</TableCell>\r\n <TableCell align=\"right\">{oe.quantidade} {oe.unidade?.descricao}</TableCell>\r\n <TableCell>R$ {oe.valorReferenciaComBdi?.toLocaleString('pt-br', { minimumFractionDigits: 2 })}</TableCell>\r\n <TableCell align=\"right\">R$ {getValorOrcado(oe.id)}</TableCell>\r\n <TableCell align=\"right\">R$ {getValorTotalOrcado(oe.id)}</TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n <TableCell colSpan={6} component=\"th\" scope=\"row\" align=\"center\">\r\n Esta obra não possui etapas para exibir\r\n </TableCell>\r\n }\r\n </TableBody>\r\n </Table>\r\n </>\r\n )\r\n })\r\n : null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n <Divider />\r\n {idObra && idObra != 0 && (params.id == undefined || params.id == 0) ?\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <Grid container spacing={2}>\r\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell colSpan={6} align=\"center\"><strong>Elaborar proposta</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n </Table>\r\n <Grid item lg={2} md={2} xl={2} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n type=\"date\"\r\n disabled\r\n id=\"data\"\r\n label=\"Data da Proposta *\"\r\n margin=\"normal\"\r\n value={props.obraOrcamento.data ? moment(props.obraOrcamento.data).format(\"yyyy-MM-DD\") : ''}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n />\r\n </Grid>\r\n <Grid item lg={2} md={2} xl={2} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n type=\"number\"\r\n id=\"diasPrazo\"\r\n label=\"Prazo de Execução (dias) *\"\r\n onChange={handleChange('diasPrazo')}\r\n margin=\"normal\"\r\n value={props.obraOrcamento.diasPrazo}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n inputProps={{\r\n min: 0\r\n }}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n </Grid>\r\n {/* se não for empresa, pede para selecionar*/}\r\n {!authActions.isEmpresa() &&\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <Autocomplete\r\n value={valueEmpresa}\r\n onChange={(event, newValue) => {\r\n setValueEmpresa(newValue);\r\n }}\r\n style={{ marginTop: 16 }}\r\n inputValue={inputValueEmpresa}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValueEmpresa(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsEmpresa}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n defaultValue={valueEmpresa}\r\n getOptionLabel={option => option.nome || ''}\r\n renderInput={(params) => <TextField {...params} label=\"Selecione uma empresa...\" fullWidth required />}\r\n fullWidth\r\n />\r\n </Grid>\r\n }\r\n <Grid item lg={2} md={2} xl={2} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"valor\"\r\n label=\"Valor da Proposta\"\r\n margin=\"normal\"\r\n InputProps={{\r\n startAdornment: <Typography position=\"left\">R$ </Typography>\r\n }}\r\n value={valorOrcamento ? valorOrcamento.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : 0 || 0}\r\n variant=\"outlined\"\r\n disabled\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"observacoes\"\r\n label=\"Observações\"\r\n onChange={handleChange('observacoes')}\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n value={props.obraOrcamento.observacoes || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n : params.id != 0 && params.id != undefined ?\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <Grid container spacing={2}>\r\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell colSpan={6} align=\"center\"><strong>Informações da Proposta</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n </Table>\r\n <Grid item lg={2} md={2} xl={2} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n type=\"date\"\r\n id=\"data\"\r\n label=\"Data\"\r\n margin=\"normal\"\r\n value={props.obraOrcamento.data ? moment(props.obraOrcamento.data).format(\"yyyy-MM-DD\") : ''}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n readOnly\r\n />\r\n </Grid>\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n type=\"number\"\r\n id=\"diasPrazo\"\r\n label=\"Dias Prazo\"\r\n margin=\"normal\"\r\n value={props.obraOrcamento.diasPrazo}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n readOnly\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"empresa\"\r\n label=\"Empresa\"\r\n margin=\"normal\"\r\n value={props.obraOrcamento.empresa?.razaoSocial?.toUpperCase()}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n readOnly\r\n />\r\n </Grid>\r\n <Grid item lg={2} md={2} xl={2} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"valor\"\r\n label=\"Valor da Proposta\"\r\n margin=\"normal\"\r\n InputProps={{\r\n startAdornment: <Typography position=\"left\">R$ </Typography>\r\n }}\r\n value={props.obraOrcamento.valor ? props.obraOrcamento.valor.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : 0}\r\n variant=\"outlined\"\r\n readOnly\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n readOnly\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n id=\"observacoes\"\r\n label=\"Observações\"\r\n margin=\"normal\"\r\n value={props.obraOrcamento?.observacoes?.toUpperCase() || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n : null\r\n }\r\n <CardActions>\r\n {(params.id == undefined || params.id == 0) ?\r\n <>\r\n <Grid container spacing={2}>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography style={{ fontSize: 10, paddingLeft: 6 }}>\r\n * Campos obrigatórios\r\n </Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography style={{ fontSize: 10, paddingLeft: 6 }}>\r\n Atenção: Ao enviar a proposta você se propõe e considerar o valor orçado até a data de previsão de início da obra\r\n </Typography>\r\n </Grid>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlgin: 'right',\r\n justifyContent: 'right'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n onClick={params.id == undefined ? () => history.push('/obrasAguardandoOrcamento') : () => history.push('/obrasOrcamentos')}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.obraOrcamento.isLoading || obraOrcamento.ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.obraOrcamento.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.obraOrcamento.isLoading ? 'Atualizando Proposta...' : 'Atualizar') : (props.obraOrcamento.isLoading ? 'Salvando Proposta...' : 'Salvar')}\r\n </CustomButton>\r\n </Grid>\r\n </>\r\n :\r\n <Button\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n onClick={() => history.goBack()}\r\n >\r\n Voltar para tela anterior\r\n </Button>\r\n }\r\n </CardActions>\r\n </ValidatorForm>\r\n </Card >\r\n </Grid >\r\n </Grid >\r\n </Grid >\r\n {\r\n modalConfirm ?\r\n <Dialog\r\n open={modalConfirm}\r\n fullWidth\r\n style={{ padding: 0, margin: 0 }}\r\n maxWidth='xs'\r\n onClose={() => setModalConfirm(false)}\r\n >\r\n <DialogTitle>\r\n <Typography style={{ fontSize: \"16px\", fontWeight: 'bold' }}>\r\n CONFIRMAÇÃO DE ENVIO DE PROPOSTA\r\n </Typography>\r\n <Button\r\n variant=\"text\"\r\n style={{ position: 'absolute', top: 0, right: 0, color: '#000', minWidth: 'unset' }}\r\n onClick={() => setModalConfirm(false)}>\r\n <CloseIcon />\r\n </Button>\r\n </DialogTitle>\r\n <DialogContent style={{ padding: 0, margin: 0 }}>\r\n <Card style={{ marginTop: 0, paddingLeft: 8, paddingRight: 8, paddingBottom: 8 }}>\r\n <Grid item display=\"flex\" flexDirection=\"column\" justifyContent=\"center\">\r\n <Grid container spacing={2} style={{ paddingLeft: 12, paddingRight: 12 }}>\r\n <CustomGrid item xl={12} lg={12} md={12} xs={12} align=\"left\">\r\n <CustomTypography style={{ fontSize: 13 }} >Ao enviar a Proposta você se compromete a começar a obra no prazo estipulado.</CustomTypography>\r\n </CustomGrid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ paddingLeft: 12, paddingRight: 12 }}>\r\n <CustomGrid item xl={12} lg={12} md={12} xs={12} align=\"left\">\r\n <CustomTypography style={{ fontSize: 13 }} ><strong>Resumo da sua proposta:</strong></CustomTypography>\r\n </CustomGrid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ paddingLeft: 12, paddingRight: 12 }}>\r\n <CustomGrid item xl={12} lg={12} md={12} xs={12} align=\"left\">\r\n <CustomTypography style={{ fontSize: 13 }} ><strong>Data: </strong>{moment(props.obraOrcamento.data).format('DD/MM/yyyy')}</CustomTypography>\r\n </CustomGrid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ paddingLeft: 12, paddingRight: 12 }}>\r\n <CustomGrid item xl={12} lg={12} md={12} xs={12} align=\"left\">\r\n <CustomTypography style={{ fontSize: 13 }} ><strong>Valor Total: </strong>{valorOrcamento ? valorOrcamento.toLocaleString('pt-br', { minimumFractionDigits: 2 }) : 0}</CustomTypography>\r\n </CustomGrid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ paddingLeft: 12, paddingRight: 12, }}>\r\n <CustomGrid item xl={12} lg={12} md={12} xs={12} align=\"left\">\r\n <CustomTypography style={{ fontSize: 13 }} ><strong>Prazo de Entrega: </strong>{moment(props.obraOrcamento.prazo).format('DD/MM/yyyy')}</CustomTypography>\r\n </CustomGrid>\r\n </Grid>\r\n\r\n <Button\r\n onClick={(event) => handleSubmit(event)}\r\n variant=\"contained\"\r\n style={{ backgroundColor: '#000', color: '#FFF', marginTop: 16 }}\r\n disabled={props.obraOrcamento.isLoading || obraOrcamento.ultimoEvento == STATUS_SERVICO.RECEBENDO_ORCAMENTOS}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.obraOrcamento.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.obraOrcamento.isLoading ? 'Atualizando Proposta...' : 'Atualizar') : (props.obraOrcamento.isLoading ? 'Salvando Proposta...' : 'Enviar Proposta')}\r\n </Button>\r\n </Grid>\r\n </Card>\r\n </DialogContent>\r\n </Dialog >\r\n : null\r\n }\r\n {\r\n (modal ?\r\n <ObraOrcamentoAnexoEmpresaModal toggle={toggle} modal={modal} props={props} idObra={idObra} />\r\n :\r\n null\r\n )\r\n }\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.CADASTRO_ORCAMENTO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page >\r\n )\r\n}\r\n\r\nObraOrcamentoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedObraOrcamentoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ObraOrcamentoEdit))\r\n)\r\nexport { connectedObraOrcamentoEditPage as ObraOrcamentoEdit }\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { parametroAction } from '../../_actions'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { Page } from 'components'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Bdi = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { classes } = props;\r\n\r\n const { parametro } = props;\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.getBdi());\r\n }, []);\r\n\r\n const formattedParametro = useMemo(() => {\r\n return { __html: parametro?.valor?.replace('<a ', '<a target=_\"blank\" ') };\r\n }, [parametro.valor]);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Links Úteis\">\r\n <div>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n {parametro && undefined != parametro && parametro != null && (\r\n <Typography component=\"h1\" variant=\"h5\">\r\n Planilhas de Cálculo de BDI\r\n </Typography>\r\n )}\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <div dangerouslySetInnerHTML={formattedParametro}></div>\r\n </div>\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.LINK_BDI}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\nconst connectedBdiPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Bdi))\r\n)\r\nexport { connectedBdiPage as Bdi }\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { parametroAction } from '../../_actions'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { Page } from 'components'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst CalcMat = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { classes } = props;\r\n\r\n const { parametro } = props;\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.getCalcMat());\r\n }, []);\r\n\r\n const formattedParametro = useMemo(() => {\r\n return { __html: parametro?.valor?.replace('<a ', '<a target=_\"blank\" ') };\r\n }, [parametro.valor]);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Planilhas CalcMat\">\r\n <div>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n {parametro && undefined != parametro && parametro != null && (\r\n <Typography component=\"h1\" variant=\"h5\">\r\n Planilhas CalcMat\r\n </Typography>\r\n )}\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <div dangerouslySetInnerHTML={formattedParametro}></div>\r\n\r\n </div>\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.LINK_CALCMAT}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\nconst connectedCalcMatPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(CalcMat))\r\n)\r\nexport { connectedCalcMatPage as CalcMat }\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { parametroAction } from '../../_actions'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { Page } from 'components'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst LinksUteis = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { classes } = props;\r\n\r\n const { parametro } = props;\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.getLinksUteis());\r\n }, []);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n\r\n const formattedParametro = useMemo(() => {\r\n return { __html: parametro?.valor?.replace('<a ', '<a target=_\"blank\" ') };\r\n }, [parametro.valor]);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Links Úteis\">\r\n <div>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n {parametro && undefined != parametro && parametro != null && (\r\n <Typography component=\"h1\" variant=\"h5\">\r\n Lista Gov.Br\r\n </Typography>\r\n )}\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <div dangerouslySetInnerHTML={formattedParametro}></div>\r\n </div>\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.LINK_GOV}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\nconst connectedLinksUteisPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(LinksUteis))\r\n)\r\nexport { connectedLinksUteisPage as LinksUteis }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { parametroAction } from '../../_actions'\r\nimport TitleContent from '../TitleContent'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n Tooltip,\r\n Skeleton,\r\n Input,\r\n Grid,\r\n TablePagination\r\n} from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Parametro = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { isLoading } = props.parametro\r\n const { parametro } = props.parametro // é o mesmo que props.parametro.parametro se estiver entre as chaves\r\n const { totalRegistros } = props.parametro\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('descricao');\r\n const [direction] = useState('asc');\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction\r\n };\r\n\r\n dispatch(parametroAction.getParametro(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n\r\n }, [page, limit, debounceTerm, order, direction]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n <Page className={classes.root} title=\"Parâmetros\">\r\n <AccessControl\r\n rule={'parametros.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <div>\r\n {undefined !== parametro && parametro.length > 0 && (\r\n <TitleContent\r\n // rule={'parametros.list'}\r\n length={parametro.length}\r\n subTitle={'GERÊNCIA DE PARÂMETROS'}\r\n title={'Lista de Parâmetros'}\r\n href={'/parametro'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_PARAMETRO}\r\n />\r\n )}\r\n <Grid container xl={12} lg={12} md={12} xs={12}>\r\n <Grid item xl={3} lg={3} md={3} xs={12}>\r\n <Input\r\n id=\"term\"\r\n label=\"term\"\r\n placeholder=\"Filtro\"\r\n value={term}\r\n fullWidth\r\n onChange={handleChange('term')}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_PARAMETRO}\r\n />\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>Descrição</strong></TableCell>\r\n <TableCell><strong>Valor</strong></TableCell>\r\n <TableCell align=\"right\"><strong>Ações</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== parametro && parametro.length\r\n ? parametro.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.descricao}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.tipo != 'H' ? n.valor : 'Conteúdo HTML'}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <AccessControl\r\n rule={'parametros.edit'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Edit\"\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/parametro/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Editar\">\r\n <Tooltip >\r\n <EditIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={2} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n <TablePagination\r\n component=\"div\"\r\n count={totalRegistros}\r\n page={page}\r\n onPageChange={handleChangePage}\r\n labelRowsPerPage=\"Linhas por página\"\r\n labelDisplayedRows={({ from, to }) => `${from}-${to} de ${totalRegistros}`}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n </div>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n </Page>\r\n )\r\n}\r\nParametro.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n parametro: state.parametro\r\n }\r\n}\r\nconst connectedParametroPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Parametro))\r\n)\r\nexport { connectedParametroPage as Parametro }\r\n","import React, { useEffect, useState, useRef } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport JoditEditor from \"jodit-react\";\r\nimport Typography from '@mui/material/Typography';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Button,\r\n Input,\r\n Grid,\r\n MenuItem\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { parametroAction } from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, stringUtils } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst ParametroEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, parametro, className, ...rest } = props\r\n const editor = useRef(null)\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const [content, setContent] = useState('');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const config = {\r\n readonly: false\r\n }\r\n\r\n useEffect(() => {\r\n\r\n dispatch(parametroAction.clear())\r\n\r\n if (params.id) {\r\n dispatch(parametroAction.getParametroById(params.id))\r\n } else {\r\n dispatch(parametroAction.clear())\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.onChangePropsHtml('valor', content))\r\n }, [content]);\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(parametroAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.parametro.isLoading])\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n descricao: props.parametro.descricao,\r\n chave: props.parametro.chave,\r\n valor: (props.parametro.valor).toString(),\r\n tipo: props.parametro.tipo\r\n }\r\n\r\n if (params.id) {\r\n dispatch(parametroAction.editParametroInfo(params.id, payload, true))\r\n } else {\r\n dispatch(parametroAction.createParametro(payload))\r\n }\r\n\r\n };\r\n\r\n const handleSelectChange = prop => event => {\r\n\r\n var event2 = {\r\n type: 'selectValidator',\r\n target: {\r\n value: event.value\r\n }\r\n };\r\n\r\n dispatch(parametroAction.onChangeProps(prop, event2));\r\n\r\n };\r\n\r\n function EditText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Editar Parâmetro'}</b>\r\n </Typography>\r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return <EditText />\r\n }\r\n }\r\n return (\r\n <Page\r\n className={classes.root}\r\n title={\r\n params.id\r\n ? 'Gerência de Parâmetro - Editar Parâmetro'\r\n : 'Gerência de Parâmetro - Novo Parâmetro'\r\n }\r\n >\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formParametro\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardHeader\r\n subheader=\"Cadastro de Parâmetros\"\r\n title={<SegHeader />}\r\n />\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12} >\r\n <Grid container spacing={2}>\r\n <Grid item lg={6} md={5} xl={4} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"descricao\"\r\n label=\"Descrição\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={handleChange('descricao')}\r\n value={props.parametro.descricao}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n </Grid>\r\n <Grid item lg={6} md={5} xl={4} xs={12}>\r\n {(props.parametro.id > 0 ?\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"chave\"\r\n label=\"Chave\"\r\n margin=\"normal\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n disabled\r\n onChange={handleChange('chave')}\r\n value={props.parametro.chave}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n :\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"chave\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n label=\"Chave\"\r\n margin=\"normal\"\r\n onChange={handleChange('chave')}\r\n value={props.parametro.chave}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n )}\r\n\r\n </Grid>\r\n <Grid item lg={6} md={2} xl={4} xs={12}>\r\n <SelectValidator\r\n className={classes.textField}\r\n validators={['required']}\r\n label=\"Tipo\"\r\n labelId=\"tipo\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n errorMessages={['Campo obrigatório!']}\r\n value={props.parametro.tipo}\r\n onChange={handleChange('tipo')}\r\n name=\"tipo\"\r\n fullWidth\r\n inputProps={{\r\n name: \"Tipo\",\r\n id: \"tipo\"\r\n }}\r\n input={<Input id=\"tipo\" />}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n id=\"tipo\"\r\n >\r\n <MenuItem value={'H'}>HTML</MenuItem>\r\n <MenuItem value={'N'}>Numérico</MenuItem>\r\n <MenuItem value={'B'}>Sim/Não</MenuItem> {/* boolean */}\r\n <MenuItem value={'T'}>Texto</MenuItem>\r\n </SelectValidator>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n {(props.parametro.tipo === 'H' ?\r\n <JoditEditor\r\n ref={editor}\r\n value={props.parametro.valor}\r\n config={config}\r\n\r\n tabIndex={1} // tabIndex of textarea\r\n onBlur={newContent => setContent(newContent)} // preferred to use only this option to update the content for performance reasons\r\n />\r\n : (props.parametro.tipo === 'N' || props.parametro.tipo === 'T') ?\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"valor\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n label=\"Valor\"\r\n margin=\"normal\"\r\n onChange={handleChange('valor')}\r\n value={props.parametro.valor}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n type={(props.parametro.tipo === 'N' ? 'number' : 'text')}\r\n />\r\n :\r\n <SelectValidator\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n variant=\"outlined\"\r\n id=\"valor\"\r\n label=\"Valor\"\r\n value={props.parametro.valor ? JSON.parse(props.parametro.valor) : false}\r\n onChange={handleChange('valor')}\r\n margin=\"normal\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n displayEmpty\r\n labelId=\"valor\"\r\n >\r\n <MenuItem disabled value=\"\">\r\n <em>Valor</em>\r\n </MenuItem>\r\n <MenuItem value={true}>SIM</MenuItem>\r\n <MenuItem value={false}>NÃO</MenuItem>\r\n </SelectValidator>\r\n )}\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n <Divider />\r\n <CardActions>\r\n <Button\r\n variant=\"outlined\"\r\n style={{ color: '#000', borderColor: '#000' }}\r\n onClick={() => history.push('/parametros')}\r\n >\r\n Cancelar\r\n </Button>\r\n <Button\r\n type=\"submit\"\r\n variant=\"contained\"\r\n style={{ backgroundColor: '#000' }}\r\n disabled={props.parametro.isLoading}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.parametro.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.parametro.isLoading ? 'Atualizando parâmetro...' : 'Atualizar') : (props.parametro.isLoading ? 'Salvando parâmetro...' : 'Salvar')}\r\n </Button>\r\n </CardActions>\r\n </ValidatorForm>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </Page>\r\n )\r\n}\r\n\r\n\r\nParametroEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedParametroEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(ParametroEdit))\r\n)\r\nexport { connectedParametroEditPage as ParametroEdit }\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux'\r\nimport { parametroAction } from '../../_actions'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport {\r\n Grid,\r\n IconButton,\r\n Typography,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { Page } from 'components'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Diario = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const { classes } = props;\r\n\r\n const { parametro } = props;\r\n\r\n useEffect(() => {\r\n dispatch(parametroAction.getDiario());\r\n }, []);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const formattedParametro = useMemo(() => {\r\n return { __html: parametro?.valor?.replace('<a ', '<a target=_\"blank\" ') };\r\n }, [parametro.valor]);\r\n\r\n return (\r\n <Page className={classes.root} title=\"Links Úteis\">\r\n <div>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n {parametro && undefined != parametro && parametro != null && (\r\n <Typography component=\"h1\" variant=\"h5\">\r\n {parametro.descricao}\r\n </Typography>\r\n )}\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <div dangerouslySetInnerHTML={formattedParametro}></div>\r\n </div>\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.LINK_DIARIO_OBRA}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\nconst connectedDiarioPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Diario))\r\n)\r\nexport { connectedDiarioPage as Diario }\r\n\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Grid,\r\n Typography\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport TitleContent from './TitleContent'\r\nimport { Page } from 'components'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst PoliticaPrivacidade = (props) => {\r\n\r\n const { classes } = props\r\n\r\n return (\r\n <Page className={classes.root} title=\"Política de Privacidade\">\r\n <div>\r\n <Grid container spacing={3}>\r\n <Grid item lg={12} md={12} xl={12} xs={12} align=\"center\">\r\n <Typography variant=\"h5\" align=\"center\" style={{ paddingBottom: 20 }}>Política de Privacidade</Typography>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={3}>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">1. A quem essa política de privacidade se aplica?</Typography>\r\n <Typography variant=\"body1\">Aplica-se a todos os clientes da Raiar: incluindo sistema e aplicativo que de alguma forma tenham os dados pessoais tratados por nós.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">2. Que tipo de informações pessoais coletamos e utilizamos?</Typography>\r\n <Typography variant=\"body1\">Coletamos dados como nome, sobrenome, e-mail, celular, telefone, CNH e matrícula, porém não se aplica a todas pessoas.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">3. Por que solicitamos seus dados pessoais?</Typography>\r\n <Typography variant=\"body1\">Os dados pessoais são coletados para termos uma experiência de uso mais assertiva e para controlar corretamente cada usuário dentro das plataformas.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">4. Por quanto tempo armazenamos informações pessoais?</Typography>\r\n <Typography variant=\"body1\">Por tempo mínimo de 10 anos conforme legislação.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">5. Quais são os direitos do titular de dados?</Typography>\r\n <Typography variant=\"body1\">O titular dos dados possui o direito de a qualquer momento obter informações sobre como coletamos os dados e como realizamos os tratamentos dos mesmos, assim como solicitar a exclusão dos seus dados pessoais de nossos sistemas.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">6. Uso de cookies</Typography>\r\n <Typography variant=\"body1\">Utilizamos cookies para melhorar a sua experiência de navegação enquanto usuário de nosso site. Os cookies são usados para acompanhar suas preferências, reconhecendo o seu navegador de internet ou dispositivo.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">7. Compartilhamento de dados</Typography>\r\n <Typography variant=\"body1\">A Raiar não realiza o compartilhamento de dados pessoais com terceiros que não façam uso diretamente do sistema.</Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography variant=\"h6\">8. Como entrar em contato com a empresa solicitando maiores informações?</Typography>\r\n <Typography variant=\"body1\">Você poderá falar conosco através do formulário abaixo, ou pelo e-mail: contato@forcontrol.com.br</Typography>\r\n </Grid>\r\n </Grid>\r\n </div>\r\n </Page >\r\n )\r\n}\r\nPoliticaPrivacidade.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n\r\n}\r\nconst connectedPoliticaPrivacidadePage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(PoliticaPrivacidade))\r\n)\r\nexport { connectedPoliticaPrivacidadePage as PoliticaPrivacidade }\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Divider,\r\n Grid,\r\n List,\r\n ListItemButton,\r\n MenuItem,\r\n Typography\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { Page } from 'components'\r\nimport MapPublic from '../components/Maps/MapPublic'\r\nimport { SelectValidator, ValidatorForm } from 'react-material-ui-form-validator'\r\nimport { estadoAction, obraAction, obraAnexoAction, orgaoAction } from '../_actions'\r\nimport { editObrasDetails } from '../_actions/obra.actions'\r\nimport logo from \"../img/raiar.png\";\r\nimport CollectionsSharpIcon from '@mui/icons-material/CollectionsSharp';\r\nimport { Box } from '@mui/system'\r\nimport moment from 'moment/moment'\r\nimport CustomButton from '../components/CustomButton'\r\nimport CarouselImage from '../components/Carousel/CarouselImage'\r\nimport { LoadingButton } from '@mui/lab'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(0),\r\n margin: '-8px',\r\n height: '100vh'\r\n },\r\n logo: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n borderBottom: '1px solid #0005',\r\n paddingBottom: '16px',\r\n marginBottom: '16px'\r\n },\r\n emptyList: {\r\n display: 'flex',\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '100%'\r\n },\r\n listItem: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'flex-start'\r\n }\r\n})\r\n\r\nconst MapaPublico = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { classes } = props;\r\n\r\n const formMapRef = useRef(null);\r\n\r\n const estados = useSelector((state) => state.estado.estado);\r\n const orgaos = useSelector((state) => state.orgao.orgao);\r\n\r\n const [filtro, setFiltro] = useState({ idEstado: '', idOrgao: '' });\r\n const [carouselVisible, setCarouselVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(estadoAction.getEstadoSelect());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (filtro.idEstado) {\r\n dispatch(orgaoAction.getOrgaoSelectPublic(`?Estados=${filtro.idEstado}`));\r\n }\r\n }, [filtro.idEstado]);\r\n\r\n useEffect(() => {\r\n if (filtro.idOrgao) {\r\n dispatch(obraAction.getObraSelectPublic(`?IdOrgao=${filtro.idOrgao}`));\r\n }\r\n }, [filtro.idOrgao]);\r\n\r\n const handleOpenCarousel = () => {\r\n dispatch(obraAnexoAction.getObraAnexoPublic({ IdObra: props.obra?.id }));\r\n setCarouselVisible(true);\r\n }\r\n\r\n const renderListObras = () => {\r\n return (\r\n <List>\r\n {props.obra.obra.map((obra) => {\r\n if (obra.latitude && obra.longitude) {\r\n return (\r\n <Box key={obra.id} mb={3}>\r\n <ListItemButton\r\n selected={obra.id === props.obra.id}\r\n onClick={() => dispatch(editObrasDetails(obra))}\r\n className={classes.listItem}\r\n >\r\n <Box\r\n display=\"flex\"\r\n flexDirection=\"row\"\r\n alignItems=\"flex-start\"\r\n justifyContent=\"flex-start\"\r\n gap=\"8px\"\r\n style={{ width: '100%' }}\r\n >\r\n <img src={obra?.caminhoImagem || logo} width={50} height={50} style={{ borderRadius: '5px', objectFit: obra.caminhoImagem ? 'cover' : 'contain' }} />\r\n <Box\r\n display=\"flex\"\r\n flexDirection=\"column\"\r\n justifyContent=\"space-between\"\r\n alignItems=\"flex-start\"\r\n style={{ width: '100%' }}\r\n >\r\n <Typography variant=\"h6\" mb={1} style={{ fontSize: '0.9rem', lineHeight: '0.9rem' }}>{obra.titulo}</Typography>\r\n <Box\r\n display=\"flex\"\r\n flexDirection=\"row\"\r\n justifyContent=\"space-between\"\r\n alignItems=\"center\"\r\n style={{ width: '100%' }}\r\n >\r\n <Typography variant=\"p\" fontSize=\"12px\">Ínicio: {moment(obra?.dataInicio).format('DD/MM/YYYY')}</Typography>\r\n {obra && obra.dataTermino ? <Typography variant=\"p\" fontSize=\"12px\">Término: {moment(obra?.dataTermino).format('DD/MM/YYYY')}</Typography> : null}\r\n </Box>\r\n {obra?.valorReferenciaComBdi ?\r\n <Typography variant=\"p\" mt={1} fontSize=\"12px\" fontWeight=\"bold\" textAlign=\"right\" style={{ width: '100%' }}>\r\n Valor de referência: R${obra.valorReferenciaComBdi.toLocaleString('pt-br', { minimumFractionDigits: 2 })}\r\n </Typography>\r\n : null\r\n }\r\n </Box>\r\n </Box>\r\n\r\n {props.obra?.id === obra.id &&\r\n <CustomButton dark style={{ marginTop: '20px', width: '100%' }} onClick={handleOpenCarousel}>\r\n <CollectionsSharpIcon />\r\n <Typography variant=\"p\" ml={1} fontSize=\"12px\">Galeria</Typography>\r\n </CustomButton>\r\n }\r\n </ListItemButton>\r\n <Divider />\r\n </Box>\r\n );\r\n }\r\n }\r\n )}\r\n </List>\r\n )\r\n }\r\n\r\n const renderEmptyList = () => {\r\n return (\r\n <div className={classes.emptyList}>\r\n <Typography variant=\"p\" align=\"center\">{filtro.idOrgao ? 'Sem obras até o momento' : 'Escolha um órgão público'}</Typography>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <Page className={classes.root} title=\"Acompanhar Obras\">\r\n {carouselVisible && <CarouselImage images={props.obraAnexo.obraAnexo} openCarousel={carouselVisible} handleClose={() => setCarouselVisible(false)} />}\r\n\r\n <Grid container direction=\"row\">\r\n <Grid item lg={8} md={8} xl={8} xs={12} style={{ height: '100vh', position: 'relative' }}>\r\n <MapPublic obras={filtro.idOrgao ? props?.obra?.obra : []} selectedId={props.obra.id || props.obra.obra[0]?.id} region={filtro.idOrgao ? { lat: props.obra.latitude, lng: props.obra.longitude } : {}} />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12} padding={2} display=\"grid\" gridTemplateRows=\"auto 1fr\" style={{ height: '100vh', maxHeight: '100vh' }}>\r\n <Grid item gridRow={1}>\r\n <div className={classes.logo}>\r\n <img src={logo} width={250} />\r\n </div>\r\n <Typography variant=\"h5\" align=\"center\">Acompanhar Obras Públicas</Typography>\r\n {estados?.length > 0 &&\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formMapRef}\r\n id=\"formMap\"\r\n onSubmit={(event) => console.log(event)}\r\n >\r\n <Grid container direction=\"row\" spacing={2}>\r\n <Grid item lg={3} md={3} xl={3} xs={4}>\r\n <SelectValidator\r\n className={classes.textField}\r\n variant=\"outlined\"\r\n id=\"idEstado\"\r\n label=\"Estado\"\r\n value={filtro.idEstado}\r\n onChange={(event) => setFiltro({ ...filtro, idEstado: event.target.value })}\r\n margin=\"normal\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n >\r\n <MenuItem disabled value=\"\">\r\n <em>Estado</em>\r\n </MenuItem>\r\n {estados.map((row, index) => (\r\n <MenuItem key={index} value={row.value}>\r\n {row.text}\r\n </MenuItem>\r\n ))}\r\n </SelectValidator>\r\n </Grid>\r\n\r\n <Grid item lg={9} md={9} xl={9} xs={8}>\r\n <SelectValidator\r\n className={classes.textField}\r\n variant=\"outlined\"\r\n id=\"idOrgao\"\r\n label=\"Órgão\"\r\n value={filtro.idOrgao}\r\n disabled={!filtro.idEstado}\r\n onChange={(event) => setFiltro({ ...filtro, idOrgao: event.target.value })}\r\n margin=\"normal\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n >\r\n <MenuItem disabled value=\"\">\r\n <em>Órgão público</em>\r\n </MenuItem>\r\n {props.orgao.isLoading && <LoadingButton loading style={{ height: '150px', width: '100%' }} />}\r\n {(!props.orgao.isLoading && orgaos?.length > 0) && orgaos.map((row, index) => (\r\n <MenuItem key={index} value={row.value}>\r\n {row.text}\r\n </MenuItem>\r\n ))}\r\n </SelectValidator>\r\n </Grid>\r\n </Grid>\r\n </ValidatorForm>\r\n </Grid>\r\n }\r\n </Grid>\r\n <Grid item gridRow={2} overflow=\"scroll\" style={{ overflowX: 'hidden' }}>\r\n {filtro.idOrgao > 0 ? renderListObras() : renderEmptyList()}\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </Page >\r\n )\r\n}\r\nMapaPublico.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\nconst connectedMapaPublicoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(MapaPublico))\r\n)\r\nexport { connectedMapaPublicoPage as MapaPublico }\r\n","import React from 'react'\r\nimport { Grid, Typography } from '@mui/material'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@mui/styles'\r\nimport clsx from 'clsx'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}))\r\n\r\nconst TitleContentInformation = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles()\r\n return (\r\n <div {...rest} className={clsx(classes.root, className)}>\r\n <Grid alignItems=\"flex-end\" container justifyContent=\"space-between\" spacing={3}>\r\n <Grid item>\r\n <Typography component=\"h3\" gutterBottom variant=\"overline\">\r\n {props.subTitle}\r\n </Typography>\r\n <Typography component=\"h4\" variant=\"h6\">\r\n {props.title}\r\n </Typography>\r\n </Grid>\r\n </Grid>\r\n </div>\r\n )\r\n}\r\n\r\nTitleContentInformation.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n subTitle: PropTypes.string,\r\n buttonOnClick: PropTypes.object.isRequired,\r\n rule: PropTypes.string\r\n}\r\nexport default TitleContentInformation\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { relatorioAction, orgaoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport TitleContentInformation from '../TitleContentInformation'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Card,\r\n CardContent,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport { cnpjMask, stringUtils } from '../../utils'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport Stars from '../../components/Stars/Stars'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst RelatorioEmpresaPorOrgao = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { relatorio } = props.relatorio\r\n const { totalRegistros } = props.relatorio\r\n const { isLoading } = props.relatorio\r\n\r\n const [razaoSocial, setRazaoSocial] = useState('');\r\n const [cnpj, setCnpj] = useState('');\r\n const [valueOrgao, setValueOrgao] = useState(null);\r\n const [inputValueOrgao, setInputValueOrgao] = useState('');\r\n const [openOrgao, setOpenOrgao] = useState(false)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { usuarioOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { orgao } = useSelector(\r\n (state) => state.orgao)\r\n\r\n function getTotal() {\r\n if (relatorio && relatorio.length > 0) {\r\n\r\n let total = relatorio.length;\r\n\r\n return total;\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(orgaoAction.getOrgaoSelect());\r\n dispatch(relatorioAction.clear());\r\n }, []);\r\n\r\n const optionsOrgaos = orgao.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const handlePrint = () => {\r\n if (valueOrgao && valueOrgao != undefined) {\r\n window.open('/relatorioEmpresaPorOrgaoPrint', '_blank');\r\n }\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let payload = {\r\n IdOrgao: valueOrgao ? valueOrgao.id : 0,\r\n RazaoSocial: razaoSocial,\r\n Cnpj: cnpj ? cnpj.split('.').join('').replace(/[-/.]/g, '') : ''\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaOrgaoArquivo(payload))\r\n }\r\n\r\n useEffect(() => {\r\n if (idOrgao != 0 && idOrgao != '') {\r\n if (usuarioOrgao && usuarioOrgao.length > 0) {\r\n let selectedOrgao = usuarioOrgao.filter(\r\n (item) => item.idOrgao == idOrgao\r\n )\r\n setValueOrgao(usuarioOrgao.length > 0 ? selectedOrgao[0].orgao : '')\r\n }\r\n }\r\n }, [idOrgao])\r\n\r\n const handleSubmit = (event) => {\r\n if (valueOrgao && valueOrgao != undefined) {\r\n\r\n let payload = {\r\n IdOrgao: valueOrgao ? valueOrgao.id : 0,\r\n RazaoSocial: razaoSocial,\r\n Cnpj: cnpj ? cnpj.split('.').join('').replace(/[-/.]/g, '') : ''\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaPorOrgao(payload, true));\r\n } else {\r\n toast.error('Selecione um órgão!')\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n let selectedOrgao = orgao.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n orgaoAction.changeDetailsOrgao(\r\n selectedOrgao[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.relatorio.isLoading])\r\n\r\n return (\r\n <Page className={classes.root} title=\"Relatório - Empresas\">\r\n <AccessControl\r\n rule={'relatorios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid\r\n {...rest}\r\n container\r\n spacing={2}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Card style={{ marginBottom: 10, marginTop: 0 }}>\r\n <ValidatorForm\r\n id=\"formRelatorioTrocas\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardContent>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <TitleContentInformation\r\n subTitle={'RELATÓRIO'}\r\n title={'Empresas por Órgão'}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2}>\r\n <Grid item lg={5} md={5} xl={5} xs={12} style={{ marginTop: 17 }}>\r\n <Autocomplete\r\n value={valueOrgao}\r\n onChange={(event, newValue) => {\r\n setValueOrgao(newValue);\r\n }}\r\n inputValue={inputValueOrgao}\r\n onInputChange={(event, newInputValueOrgao) => {\r\n setInputValueOrgao(newInputValueOrgao);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsOrgaos}\r\n margin=\"normal\"\r\n disabled={(idOrgao != null && idOrgao != 0 && idOrgao != '')}\r\n variant=\"outlined\"\r\n defaultValue={valueOrgao}\r\n getOptionLabel={(optionOrgao) => (optionOrgao ? optionOrgao.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Órgão *... \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"razaoSocial\"\r\n label=\"Razão Social\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={(e) => setRazaoSocial(e.target.value)}\r\n value={razaoSocial || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"cnpj\"\r\n label=\"CNPJ\"\r\n margin=\"normal\"\r\n onChange={(e) => setCnpj(e.target.value)}\r\n value={cnpjMask(cnpj) || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ alignItems: 'center', justifyContent: 'left', alignContent: 'left' }}>\r\n <Grid item xl={12} lg={12} md={12} xs={12} style={{\r\n alignItems: 'bottom',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'right',\r\n textAlign: 'right'\r\n }}>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.relatorio.isLoading}\r\n startIcon={<SearchIcon />}\r\n endIcon={props.relatorio.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.relatorio.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n onClick={() => handlePrint()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFilePdf} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Gerar PDF\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"button\"\r\n onClick={() => handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFileExcel} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Exportar para Excel\r\n </CustomButton>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n </ValidatorForm>\r\n </Card>\r\n <Card>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>ÓRGÃO</strong></TableCell>\r\n <TableCell><strong>RAZÃO SOCIAL</strong></TableCell>\r\n <TableCell><strong>CNPJ</strong></TableCell>\r\n <TableCell><strong>NOTA</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== relatorio && relatorio.length\r\n ? relatorio.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.orgao ? n.orgao.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nomeEmpresa ? n.nomeEmpresa.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.cnpj ? cnpjMask(n.cnpj) : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nota ? <Stars nota={n.nota} avaliacoes={n.avaliacoes} /> : ''}\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (valueOrgao != undefined ?\r\n (isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={3} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n )\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={3} align=\"center\">Informe um órgão</TableCell>\r\n </TableRow>\r\n )\r\n }\r\n {undefined !== relatorio && relatorio.length\r\n ?\r\n <TableRow>\r\n <TableCell rowSpan={2} colSpan={2}><b>TOTAL DE EMPRESAS</b></TableCell>\r\n <TableCell rowSpan={2}><b>{getTotal()}</b></TableCell>\r\n </TableRow>\r\n :\r\n null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.RELATORIO_EMPRESA_ORGAO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n )\r\n}\r\nRelatorioEmpresaPorOrgao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n relatorio: state.relatorio\r\n }\r\n}\r\nconst connectedRelatorioEmpresaPorOrgaoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(RelatorioEmpresaPorOrgao))\r\n)\r\nexport { connectedRelatorioEmpresaPorOrgaoPage as RelatorioEmpresaPorOrgao }\r\n","import React, { useEffect } from 'react';\r\nimport { View, Text, StyleSheet, Image } from '@react-18-pdf/renderer';\r\n\r\nconst styles = StyleSheet.create({\r\n image: {\r\n padding: 10,\r\n width: 60\r\n },\r\n title: {\r\n fontSize: 12,\r\n textAlign: 'center',\r\n },\r\n subTitle: {\r\n fontSize: 12,\r\n textAlign: 'center',\r\n marginTop: 10,\r\n },\r\n info: {\r\n fontSize: 8,\r\n textAlign: 'center',\r\n },\r\n details: {\r\n fontSize: 8,\r\n textAlign: 'left',\r\n },\r\n header: {\r\n position: 'absolute',\r\n top: 20,\r\n left: 20,\r\n right: 25,\r\n },\r\n});\r\n\r\nconst Header = (props) => {\r\n\r\n return (\r\n <View style={styles.header}>\r\n <View style={{ flexDirection: \"row\", width: \"100%\" }}>\r\n <View style={{ alignItems: \"flex-start\", marginLeft: 5, width: \"100%\", textAlign: \"center\" }} >\r\n <Text style={styles.title}>{props.title}</Text>\r\n {(props.info != null ? <Text style={styles.info}>{props.info}</Text> : null)}\r\n </View>\r\n </View>\r\n </View>\r\n )\r\n\r\n};\r\n\r\nexport { Header };\r\n","import React from 'react';\r\nimport { View, Text, StyleSheet, Image } from '@react-18-pdf/renderer';\r\nimport moment from 'moment';\r\n\r\nconst styles = StyleSheet.create({\r\n footer: {\r\n position: 'absolute',\r\n bottom: 10,\r\n left: 20,\r\n right: 25,\r\n flexDirection: 'row',\r\n fontSize: 8,\r\n fontWeight: 'heavy',\r\n marginTop: 5,\r\n },\r\n image: {\r\n width: 50\r\n }\r\n});\r\n\r\nconst Footer = (props) => {\r\n\r\n return (\r\n <View fixed style={styles.footer}>\r\n <View style={{ alignItems: \"flex-start\", textAlign: \"left\", width: \"70%\" }} >\r\n <Text style={styles.details}>Emitido em {moment(new Date).format('DD/MM/YYYY HH:mm')} por {JSON.parse(localStorage.getItem('user'))[\"nome\"]}</Text>\r\n </View>\r\n <View style={{ textAlign: \"right\", width: \"30%\" }} >\r\n <Text fixed render={({ pageNumber, totalPages }) => (\r\n `Página ${pageNumber} de ${totalPages}`\r\n )} />\r\n </View>\r\n </View>\r\n )\r\n\r\n};\r\n\r\nexport { Footer };\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport { Header, Footer } from '../../_reports';\r\nimport { cnpjMask } from '../../utils'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n header: {\r\n borderRight: 1,\r\n padding: 5,\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n borderRight: 1,\r\n padding: 3,\r\n textAlign: 'center'\r\n }\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%'\r\n}));\r\n\r\nconst RelatorioEmpresaPorOrgaoPrint = (props) => {\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const { match: { params } } = props;\r\n const { relatorio } = props.relatorio\r\n\r\n useEffect(() => {\r\n\r\n }, [props.relatorio]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, [])\r\n\r\n const onRendered = () => {\r\n };\r\n\r\n return (\r\n (ready &&\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document onRender={onRendered} width='100%'>\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true} >\r\n <Header title='Relatório de Empresas por Órgão' />\r\n <View style={[styles.row, { marginTop: 40 }]} key={0} >\r\n <View style={[styles.header, { width: 250 }]}>\r\n <Text>ÓRGÃO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 400 }]}>\r\n <Text>RAZÃO SOCIAL</Text>\r\n </View>\r\n <View style={[styles.header, { width: 200 }]}>\r\n <Text>CNPJ</Text>\r\n </View>\r\n </View>\r\n {\r\n relatorio.length > 0 ? relatorio.map(n => {\r\n var retorno = (\r\n <View style={[styles.row]} key={n.id} >\r\n <View style={[styles.cell, { width: 250 }]}>\r\n <Text>{n.orgao ? n.orgao.toUpperCase() : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 400 }]}>\r\n <Text>{n.nomeEmpresa ? n.nomeEmpresa.toUpperCase() : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 200 }]}>\r\n <Text>{n.cnpj ? cnpjMask(n.cnpj) : ''}</Text>\r\n </View>\r\n </View>\r\n );\r\n return retorno;\r\n })\r\n : <View style={[styles.row]} key={0} >\r\n <View style={[styles.cell, { width: 850 }]}>\r\n <Text>Nenhum registro encontrado</Text>\r\n </View>\r\n </View>\r\n }\r\n <Footer />\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer>\r\n </div>\r\n )\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedRelatorioEmpresaPorOrgaoPrintPage = withRouter(connect(mapStateToProps, null, null)(RelatorioEmpresaPorOrgaoPrint));\r\nexport { connectedRelatorioEmpresaPorOrgaoPrintPage as RelatorioEmpresaPorOrgaoPrint };\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { relatorioAction, empresaAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport TitleContentInformation from '../TitleContentInformation'\r\nimport moment from 'moment'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n Autocomplete,\r\n Card,\r\n CardContent,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport {\r\n ValidatorForm,\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst RelatorioEmpresaOrcamentoEnviado = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { relatorio } = props.relatorio\r\n const { totalRegistros } = props.relatorio\r\n const { isLoading } = props.relatorio\r\n\r\n const [valueEmpresa, setValueEmpresa] = useState(null);\r\n const [inputValueEmpresa, setInputValueEmpresa] = useState('');\r\n const [openEmpresa, setOpenEmpresa] = useState(false)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { empresa } = useSelector(\r\n (state) => state.empresa)\r\n\r\n function getTotal() {\r\n if (relatorio && relatorio.length > 0) {\r\n\r\n let total = relatorio.length;\r\n\r\n return total;\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let filterModel = {\r\n IdOrgao: idOrgao\r\n }\r\n\r\n dispatch(empresaAction.getEmpresaSelect(filterModel));\r\n\r\n }, [idOrgao]);\r\n\r\n useEffect(() => {\r\n dispatch(relatorioAction.clear());\r\n }, [])\r\n\r\n const optionsEmpresas = empresa.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const handlePrint = () => {\r\n if (valueEmpresa && valueEmpresa != undefined) {\r\n window.open('/relatorioEmpresasOrcamentosEnviadosPrint', '_blank');\r\n }\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let payload = {\r\n Id: valueEmpresa ? valueEmpresa.id : 0\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaOrcamentoEnviadoArquivo(payload))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n if (valueEmpresa && valueEmpresa != undefined) {\r\n\r\n let payload = {\r\n Id: valueEmpresa ? valueEmpresa.id : 0,\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaOrcamentoEnviado(payload, true));\r\n } else {\r\n toast.error('Selecione uma empresa!')\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (valueEmpresa) {\r\n handleChangeAutoCompleteEmpresa(valueEmpresa)\r\n }\r\n }, [valueEmpresa])\r\n\r\n const handleChangeAutoCompleteEmpresa = (obj) => {\r\n if (obj != null) {\r\n let selectedEmpresa = empresa.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n empresaAction.changeDetailsEmpresa(\r\n selectedEmpresa[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenEmpresa(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.relatorio.isLoading])\r\n\r\n return (\r\n <Page className={classes.root} title=\"Relatório - Propostas enviadas por uma Empresa\">\r\n <AccessControl\r\n rule={'relatorios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid\r\n {...rest}\r\n container\r\n spacing={2}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Card style={{ marginBottom: 10, marginTop: 0 }}>\r\n <ValidatorForm\r\n id=\"formRelatorioOrcamentosEnviadosEmpresa\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardContent>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <TitleContentInformation\r\n subTitle={'RELATÓRIO'}\r\n title={'Propostas enviadas por uma Empresa'}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2}>\r\n <Grid item lg={7} md={7} xl={7} xs={12} style={{ marginTop: 17 }}>\r\n <Autocomplete\r\n value={valueEmpresa}\r\n onChange={(event, newValue) => {\r\n setValueEmpresa(newValue);\r\n }}\r\n inputValue={inputValueEmpresa}\r\n onInputChange={(event, newInputValueEmpresa) => {\r\n setInputValueEmpresa(newInputValueEmpresa);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsEmpresas}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueEmpresa}\r\n getOptionLabel={(o) => (o ? o.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Empresa *... \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ alignItems: 'center', justifyContent: 'left', alignContent: 'left' }}>\r\n <Grid item xl={12} lg={12} md={12} xs={12} style={{\r\n alignItems: 'bottom',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'right',\r\n textAlign: 'right'\r\n }}>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.relatorio.isLoading}\r\n startIcon={<SearchIcon />}\r\n endIcon={props.relatorio.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.relatorio.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n onClick={() => handlePrint()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFilePdf} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Gerar PDF\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"button\"\r\n onClick={() => handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFileExcel} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Exportar para Excel\r\n </CustomButton>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n </ValidatorForm>\r\n </Card>\r\n <Card>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>DATA</strong></TableCell>\r\n <TableCell><strong>OBRA </strong></TableCell>\r\n <TableCell><strong>ÓRGÃO</strong></TableCell>\r\n <TableCell><strong>VALOR</strong></TableCell>\r\n <TableCell><strong>STATUS</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== relatorio && relatorio.length\r\n ? relatorio.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.dataHora ? moment(n.dataHora).format('DD/MM/yyyy HH:mm') : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.tituloObra ? n.tituloObra.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.orgao ? n.orgao.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.valor ? n.valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.status ? n.status.toUpperCase() : '-'}\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (valueEmpresa != undefined ?\r\n (isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={5} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n )\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={5} align=\"center\">Informe uma empresa</TableCell>\r\n </TableRow>\r\n )\r\n }\r\n {undefined !== relatorio && relatorio.length\r\n ?\r\n <TableRow>\r\n <TableCell rowSpan={2} colSpan={4}><b>TOTAL DE PROPOSTAS</b></TableCell>\r\n <TableCell rowSpan={2}><b>{getTotal()}</b></TableCell>\r\n </TableRow>\r\n :\r\n null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.RELATORIO_EMPRESA_ORCAMENTO_ENVIADO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n )\r\n}\r\nRelatorioEmpresaOrcamentoEnviado.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n relatorio: state.relatorio\r\n }\r\n}\r\nconst connectedRelatorioEmpresaOrcamentoEnviadoPage = withRouter(\r\n connect(mapStateToProps, null, null, {\r\n pure: false\r\n })(withStyles(styles)(RelatorioEmpresaOrcamentoEnviado))\r\n)\r\nexport { connectedRelatorioEmpresaOrcamentoEnviadoPage as RelatorioEmpresaOrcamentoEnviado }\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport { Header, Footer } from '../../_reports';\r\nimport moment from 'moment'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n header: {\r\n borderRight: 1,\r\n padding: 5,\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n borderRight: 1,\r\n padding: 3,\r\n textAlign: 'center'\r\n }\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%'\r\n}));\r\n\r\nconst RelatorioEmpresaOrcamentoEnviadoPrint = (props) => {\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const { match: { params } } = props;\r\n const { relatorio } = props.relatorio\r\n\r\n useEffect(() => {\r\n\r\n }, [props.relatorio]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, [])\r\n\r\n const onRendered = () => {\r\n };\r\n\r\n return (\r\n (ready &&\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document onRender={onRendered} width='100%'>\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true} >\r\n <Header title='Relatório de Propostas Enviadas por uma Empresa' />\r\n {\r\n relatorio.length > 0 ? relatorio.map((n, index) => {\r\n var retorno = (\r\n <React.Fragment key={index}> \r\n {index === 0 && (\r\n <View style={[styles.row, { marginTop: 40 }]} >\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>DATA</Text>\r\n </View>\r\n <View style={[styles.header, { width: 300 }]}>\r\n <Text>OBRA</Text>\r\n </View>\r\n <View style={[styles.header, { width: 200 }]}>\r\n <Text>ÓRGÃO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 150 }]}>\r\n <Text>VALOR</Text>\r\n </View>\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>STATUS</Text>\r\n </View>\r\n </View>\r\n )}\r\n <View style={[styles.row]}>\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text>{n.dataHora ? moment(n.dataHora).format('DD/MM/yyyy HH:mm') : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 300 }]}>\r\n <Text>{n.tituloObra ? n.tituloObra.toUpperCase() : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 200, fontSize: 10 }]}>\r\n <Text>{n.orgao ? n.orgao.toUpperCase() : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 150 }]}>\r\n <Text>{n.valor ? n.valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text>{n.status ? n.status.toUpperCase() : '-'}</Text>\r\n </View>\r\n </View>\r\n </React.Fragment>\r\n );\r\n return retorno;\r\n })\r\n : <View style={[styles.row]}>\r\n <View style={[styles.cell, { width: 850 }]}>\r\n <Text>Nenhum registro encontrado</Text>\r\n </View>\r\n </View>\r\n }\r\n <Footer />\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer>\r\n </div >\r\n )\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedRelatorioEmpresaOrcamentoEnviadoPrintPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(RelatorioEmpresaOrcamentoEnviadoPrint));\r\nexport { connectedRelatorioEmpresaOrcamentoEnviadoPrintPage as RelatorioEmpresaOrcamentoEnviadoPrint };\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { relatorioAction, orgaoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport WorkIcon from '@mui/icons-material/Work';\r\nimport LocationCityIcon from '@mui/icons-material/LocationCity';\r\nimport AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\r\nimport TitleContentInformation from '../TitleContentInformation'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Card,\r\n CardContent,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { withStyles } from '@mui/styles'\r\nimport { stringUtils, phoneMask } from '../../utils'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst RelatorioUsuarios = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { relatorio } = props.relatorio\r\n const { totalRegistros } = props.relatorio\r\n const { isLoading } = props.relatorio\r\n\r\n const [nome, setNome] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [valueOrgao, setValueOrgao] = useState(null);\r\n const [inputValueOrgao, setInputValueOrgao] = useState('');\r\n const [openOrgao, setOpenOrgao] = useState(false)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { usuarioOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { orgao } = useSelector(\r\n (state) => state.orgao)\r\n\r\n function getTotal() {\r\n if (relatorio && relatorio.length > 0) {\r\n\r\n let total = relatorio.length;\r\n\r\n return total;\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(orgaoAction.getOrgaoSelect());\r\n dispatch(relatorioAction.clear());\r\n }, []);\r\n\r\n const optionsOrgaos = orgao.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const handlePrint = () => {\r\n window.open('/relatorioUsuariosPrint', '_blank');\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let payload = {\r\n IdOrgao: valueOrgao ? valueOrgao.id : 0,\r\n Nome: nome,\r\n Email: email\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioUsuariosArquivo(payload))\r\n }\r\n\r\n useEffect(() => {\r\n if (idOrgao != 0 && idOrgao != '') {\r\n if (usuarioOrgao && usuarioOrgao.length > 0) {\r\n let selectedOrgao = usuarioOrgao.filter(\r\n (item) => item.idOrgao == idOrgao\r\n )\r\n setValueOrgao(usuarioOrgao.length > 0 ? selectedOrgao[0].orgao : '')\r\n }\r\n }\r\n }, [idOrgao])\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n IdOrgao: valueOrgao ? valueOrgao.id : 0,\r\n Nome: nome,\r\n Email: email ? email.split('.').join('').replace(/[-/.]/g, '') : ''\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioUsuarios(payload, true));\r\n };\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n let selectedOrgao = orgao.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n orgaoAction.changeDetailsOrgao(\r\n selectedOrgao[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.relatorio.isLoading])\r\n\r\n return (\r\n <Page className={classes.root} title=\"Relatório - Empresas\">\r\n <AccessControl\r\n rule={'relatorios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid\r\n {...rest}\r\n container\r\n spacing={2}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Card style={{ marginBottom: 10, marginTop: 0 }}>\r\n <ValidatorForm\r\n id=\"formRelatorioTrocas\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardContent>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <TitleContentInformation\r\n subTitle={'RELATÓRIO'}\r\n title={'Usuários'}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2}>\r\n <Grid item lg={5} md={5} xl={5} xs={12} style={{ marginTop: 17 }}>\r\n <Autocomplete\r\n value={valueOrgao}\r\n onChange={(event, newValue) => {\r\n setValueOrgao(newValue);\r\n }}\r\n inputValue={inputValueOrgao}\r\n onInputChange={(event, newInputValueOrgao) => {\r\n setInputValueOrgao(newInputValueOrgao);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsOrgaos}\r\n margin=\"normal\"\r\n disabled={(idOrgao != null && idOrgao != 0 && idOrgao != '')}\r\n variant=\"outlined\"\r\n defaultValue={valueOrgao}\r\n getOptionLabel={(optionOrgao) => (optionOrgao ? optionOrgao.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Órgão... \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"nome\"\r\n label=\"Nome\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={(e) => setNome(e.target.value)}\r\n value={nome || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"email\"\r\n label=\"E-mail\"\r\n margin=\"normal\"\r\n onChange={(e) => setEmail(e.target.value)}\r\n value={email || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ alignItems: 'center', justifyContent: 'left', alignContent: 'left' }}>\r\n <Grid item xl={12} lg={12} md={12} xs={12} style={{\r\n alignItems: 'bottom',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'right',\r\n textAlign: 'right'\r\n }}>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.relatorio.isLoading}\r\n startIcon={<SearchIcon />}\r\n endIcon={props.relatorio.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.relatorio.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n onClick={() => handlePrint()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFilePdf} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Gerar PDF\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"button\"\r\n onClick={() => handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFileExcel} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Exportar para Excel\r\n </CustomButton>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n </ValidatorForm>\r\n </Card>\r\n <Card>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>TIPO</strong></TableCell>\r\n <TableCell><strong>VÍNCULO</strong></TableCell>\r\n <TableCell><strong>NOME</strong></TableCell>\r\n <TableCell><strong>E-MAIL</strong></TableCell>\r\n <TableCell><strong>TELEFONE/CELULAR</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== relatorio && relatorio.length\r\n ? relatorio.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.tipoUsuario ? n.tipoUsuario == 'ADMINISTRADOR' ?\r\n <span><AdminPanelSettingsIcon style={{ verticalAlign: 'middle' }} /> ADMINISTRADOR</span>\r\n : n.tipoUsuario == 'EMPRESA' ? <span><WorkIcon style={{ verticalAlign: 'middle' }} /> EMPRESA</span> :\r\n n.tipoUsuario == 'ÓRGÃO PÚBLICO' ? <span><LocationCityIcon style={{ verticalAlign: 'middle' }} /> ÓRGÃO PÚBLICO</span> : '' : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\" >\r\n {n.orgao ? n.orgao.toUpperCase() : n.empresa ? n.empresa.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nomeUsuario ? n.nomeUsuario.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.email ? n.email : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.telefone ? phoneMask(n.telefone) : n.celular ? phoneMask(n.celular) : ''}\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={5} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n }\r\n {undefined !== relatorio && relatorio.length\r\n ?\r\n <TableRow>\r\n <TableCell rowSpan={2} colSpan={4}><b>TOTAL DE USUÁRIOS</b></TableCell>\r\n <TableCell rowSpan={2} align=\"center\"><b>{getTotal()}</b></TableCell>\r\n </TableRow>\r\n :\r\n null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.RELATORIO_USUARIO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n )\r\n}\r\nRelatorioUsuarios.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n relatorio: state.relatorio\r\n }\r\n}\r\nconst connectedRelatorioUsuariosPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(RelatorioUsuarios))\r\n)\r\nexport { connectedRelatorioUsuariosPage as RelatorioUsuarios }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { relatorioAction, obraAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport TitleContentInformation from '../TitleContentInformation'\r\nimport moment from 'moment'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n Autocomplete,\r\n Card,\r\n CardContent,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport {\r\n ValidatorForm,\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst RelatorioOcorrenciaObra = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { relatorio } = props.relatorio\r\n const { totalRegistros } = props.relatorio\r\n const { isLoading } = props.relatorio\r\n\r\n const [valueObra, setValueObra] = useState(null);\r\n const [inputValueObra, setInputValueObra] = useState('');\r\n const [openObra, setOpenObra] = useState(false)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { obra } = useSelector(\r\n (state) => state.obra)\r\n\r\n function getTotal() {\r\n if (relatorio && relatorio.length > 0) {\r\n\r\n let total = relatorio.length;\r\n\r\n return total;\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(obraAction.getObraSelect({ IdOrgao: idOrgao }));\r\n\r\n }, [idOrgao]);\r\n\r\n useEffect(() => {\r\n dispatch(relatorioAction.clear());\r\n }, [])\r\n\r\n const optionsObras = obra.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const handlePrint = () => {\r\n if (valueObra && valueObra != undefined) {\r\n window.open('/relatorioOcorrenciasObraPrint', '_blank');\r\n }\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let payload = {\r\n IdObra: valueObra ? valueObra.id : 0\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioOcorrenciaObraArquivo(payload))\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n if (valueObra && valueObra != undefined) {\r\n\r\n let payload = {\r\n IdObra: valueObra ? valueObra.id : 0,\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioOcorrenciaObra(payload, true));\r\n } else {\r\n toast.error('Selecione uma obra!')\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (valueObra) {\r\n handleChangeAutoCompleteObra(valueObra)\r\n }\r\n }, [valueObra])\r\n\r\n const handleChangeAutoCompleteObra = (obj) => {\r\n if (obj != null) {\r\n let selectedObra = obra.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n obraAction.changeDetailsObra(\r\n selectedObra[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenObra(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.relatorio.isLoading])\r\n\r\n return (\r\n <Page className={classes.root} title=\"Relatório - Ocorrências de uma Obra\">\r\n <AccessControl\r\n rule={'relatorios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid\r\n {...rest}\r\n container\r\n spacing={2}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Card style={{ marginBottom: 10, marginTop: 0 }}>\r\n <ValidatorForm\r\n id=\"formRelatorioOcorrenciasObra\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardContent>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <TitleContentInformation\r\n subTitle={'RELATÓRIO'}\r\n title={'Ocorrências de uma Obra'}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2}>\r\n <Grid item lg={7} md={7} xl={7} xs={12} style={{ marginTop: 17 }}>\r\n <Autocomplete\r\n value={valueObra}\r\n onChange={(event, newValue) => {\r\n setValueObra(newValue);\r\n }}\r\n inputValue={inputValueObra}\r\n onInputChange={(event, newInputValueObra) => {\r\n setInputValueObra(newInputValueObra);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsObras}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueObra}\r\n getOptionLabel={(o) => (o ? o.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Obra *... \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ alignItems: 'center', justifyContent: 'left', alignContent: 'left' }}>\r\n <Grid item xl={12} lg={12} md={12} xs={12} style={{\r\n alignItems: 'bottom',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'right',\r\n textAlign: 'right'\r\n }}>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.relatorio.isLoading}\r\n startIcon={<SearchIcon />}\r\n endIcon={props.relatorio.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.relatorio.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n onClick={() => handlePrint()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFilePdf} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Gerar PDF\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"button\"\r\n onClick={() => handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFileExcel} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Exportar para Excel\r\n </CustomButton>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n </ValidatorForm>\r\n </Card>\r\n <Card>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>DATA</strong></TableCell>\r\n <TableCell><strong>OCORRÊNCIA</strong></TableCell>\r\n <TableCell><strong>USUÁRIO</strong></TableCell>\r\n <TableCell><strong>ÓRGÃO</strong></TableCell>\r\n <TableCell><strong>EMPRESA</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== relatorio && relatorio.length\r\n ? relatorio.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.dataHora ? moment(n.dataHora).format('DD/MM/yyyy HH:mm') : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.descricaoOcorrencia ? n.descricaoOcorrencia.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.usuario ? n.usuario.toUpperCase() : '-'} (<span style={{ fontSize: 11 }}>{n.usuarioEmail}</span>)\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.orgao ? n.orgao.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.empresa ? n.empresa.toUpperCase() : '-'}\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (valueObra != undefined ?\r\n (isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={5} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n )\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={5} align=\"center\">Informe uma obra</TableCell>\r\n </TableRow>\r\n )\r\n }\r\n {undefined !== relatorio && relatorio.length\r\n ?\r\n <TableRow>\r\n <TableCell rowSpan={2} colSpan={4}><b>TOTAL DE OCORRÊNCIAS</b></TableCell>\r\n <TableCell rowSpan={2}><b>{getTotal()}</b></TableCell>\r\n </TableRow>\r\n :\r\n null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.RELATORIO_OCORRENCIA_OBRA}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n )\r\n}\r\nRelatorioOcorrenciaObra.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n relatorio: state.relatorio\r\n }\r\n}\r\nconst connectedRelatorioOcorrenciaObraPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(RelatorioOcorrenciaObra))\r\n)\r\nexport { connectedRelatorioOcorrenciaObraPage as RelatorioOcorrenciaObra }\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport { Header, Footer } from '../../_reports';\r\nimport moment from 'moment'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n header: {\r\n borderRight: 1,\r\n padding: 5,\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n borderRight: 1,\r\n padding: 3,\r\n textAlign: 'center'\r\n }\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%'\r\n}));\r\n\r\nconst RelatorioOcorrenciaObraPrint = (props) => {\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const { match: { params } } = props;\r\n const { relatorio } = props.relatorio\r\n\r\n useEffect(() => {\r\n\r\n }, [props.relatorio]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, [])\r\n\r\n const onRendered = () => {\r\n };\r\n\r\n return (\r\n (ready &&\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document onRender={onRendered} width='100%'>\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true} >\r\n <Header title='Relatório de Ocorrências de uma Obra' />\r\n {\r\n relatorio.length > 0 ? relatorio.map((n, index) => {\r\n var retorno = (\r\n <React.Fragment key={index}>\r\n {index === 0 && (\r\n <>\r\n <View style={[styles.row, { marginTop: 40 }]} >\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>CÓDIGO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 750 }]}>\r\n <Text>OBRA</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.row ]} >\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text>{n.idObra}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 750 }]}>\r\n <Text>{n.tituloObra} - {n.descritivoObra}</Text>\r\n </View>\r\n </View>\r\n </>\r\n )}\r\n {index === 0 && (\r\n <View style={[styles.row, { marginTop: 5 }]} >\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>DATA</Text>\r\n </View>\r\n <View style={[styles.header, { width: 150 }]}>\r\n <Text>OCORRÊNCIA</Text>\r\n </View>\r\n <View style={[styles.header, { width: 300 }]}>\r\n <Text>USUÁRIO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 150 }]}>\r\n <Text>ÓRGÃO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 150 }]}>\r\n <Text>EMPRESA</Text>\r\n </View>\r\n </View>\r\n )}\r\n <View style={[styles.row]}>\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text>{n.dataHora ? moment(n.dataHora).format('DD/MM/yyyy HH:mm') : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 150 }]}>\r\n <Text>{n.descricaoOcorrencia ? n.descricaoOcorrencia.toUpperCase() : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 300, fontSize: 10 }]}>\r\n <Text>{n.usuario ? n.usuario.toUpperCase() : '-'} ({n.usuarioEmail})</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 150 }]}>\r\n <Text>{n.orgao ? n.orgao.toUpperCase() : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 150 }]}>\r\n <Text>{n.empresa ? n.empresa.toUpperCase() : '-'}</Text>\r\n </View>\r\n </View>\r\n </React.Fragment>\r\n );\r\n return retorno;\r\n })\r\n : <View style={[styles.row]}>\r\n <View style={[styles.cell, { width: 850 }]}>\r\n <Text>Nenhum registro encontrado</Text>\r\n </View>\r\n </View>\r\n }\r\n <Footer />\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer>\r\n </div >\r\n )\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedRelatorioOcorrenciaObraPrintPage = withRouter(connect(mapStateToProps, null, null)(RelatorioOcorrenciaObraPrint));\r\nexport { connectedRelatorioOcorrenciaObraPrintPage as RelatorioOcorrenciaObraPrint };\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport WorkIcon from '@mui/icons-material/Work';\r\nimport LocationCityIcon from '@mui/icons-material/LocationCity';\r\nimport AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\r\nimport { Header, Footer } from '../../_reports';\r\nimport { phoneMask } from '../../utils'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n header: {\r\n borderRight: 1,\r\n padding: 5,\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n borderRight: 1,\r\n padding: 3,\r\n textAlign: 'center'\r\n }\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%'\r\n}));\r\n\r\nconst RelatorioUsuariosPrint = (props) => {\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const { match: { params } } = props;\r\n const { relatorio } = props.relatorio\r\n\r\n useEffect(() => {\r\n\r\n }, [props.relatorio]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, [])\r\n\r\n const onRendered = () => {\r\n };\r\n\r\n return (\r\n (ready &&\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document onRender={onRendered} width='100%'>\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true} >\r\n <Header title='Relatório de Usuários' />\r\n <View style={[styles.row, { marginTop: 40 }]} key={0} >\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>TIPO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 150 }]}>\r\n <Text>VÍNCULO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 300 }]}>\r\n <Text>NOME</Text>\r\n </View>\r\n <View style={[styles.header, { width: 200 }]}>\r\n <Text>E-MAIL</Text>\r\n </View>\r\n <View style={[styles.header, { width: 100 }]}>\r\n <Text>TELEFONE/CELULAR</Text>\r\n </View>\r\n </View>\r\n {\r\n relatorio.length > 0 ? relatorio.map(n => {\r\n var retorno = (\r\n <View style={[styles.row]} key={n.id} >\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text>{n.tipoUsuario ? n.tipoUsuario == 'ADMINISTRADOR' ?\r\n 'ADMINISTRADOR'\r\n : n.tipoUsuario == 'EMPRESA' ? 'EMPRESA' :\r\n n.tipoUsuario == 'ÓRGÃO PÚBLICO' ? 'ÓRGÃO PÚBLICO' : '' : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 150 }]}>\r\n <Text> {n.orgao ? n.orgao.toUpperCase() : n.empresa ? n.empresa.toUpperCase() : '-'}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 300 }]}>\r\n <Text>{n.nomeUsuario ? n.nomeUsuario.toUpperCase() : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 200 }]}>\r\n <Text>{n.email ? n.email : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 100 }]}>\r\n <Text> {n.telefone ? phoneMask(n.telefone) : n.celular ? phoneMask(n.celular) : ''}</Text>\r\n </View>\r\n </View>\r\n );\r\n return retorno;\r\n })\r\n : <View style={[styles.row]} key={0} >\r\n <View style={[styles.cell, { width: 850 }]}>\r\n <Text>Nenhum registro encontrado</Text>\r\n </View>\r\n </View>\r\n }\r\n <Footer />\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer>\r\n </div>\r\n )\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedRelatorioUsuariosPrintPage = withRouter(connect(mapStateToProps, null, null)(RelatorioUsuariosPrint));\r\nexport { connectedRelatorioUsuariosPrintPage as RelatorioUsuariosPrint };\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { relatorioAction, orgaoAction, tipoServicoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport TitleContentInformation from '../TitleContentInformation'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n Autocomplete,\r\n Button,\r\n Card,\r\n CardContent,\r\n CircularProgress,\r\n Grid,\r\n IconButton,\r\n Paper,\r\n Skeleton,\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip\r\n} from '@mui/material'\r\nimport { toast } from 'react-toastify'\r\nimport { withStyles } from '@mui/styles'\r\nimport { cnpjMask, stringUtils } from '../../utils'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport { HelpModal } from '../../components';\r\nimport { MANUAIS_CATEGORIAS } from '../../utils'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n },\r\n textField: {\r\n fontSize: 8\r\n }\r\n})\r\n\r\nconst RelatorioEmpresaPorTipoServico = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, ...rest } = props\r\n const { relatorio } = props.relatorio\r\n const { totalRegistros } = props.relatorio\r\n const { isLoading } = props.relatorio\r\n\r\n const [razaoSocial, setRazaoSocial] = useState('');\r\n const [cnpj, setCnpj] = useState('');\r\n const [valueTipoServico, setValueTipoServico] = useState(null);\r\n const [inputValueTipoServico, setInputValueTipoServico] = useState('');\r\n const [openTipoServico, setOpenTipoServico] = useState(false)\r\n const [idTipoServico, setIdTipoServico] = useState(0)\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { usuarioOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { tipoServico } = useSelector(\r\n (state) => state.tipoServico)\r\n\r\n function getTotal() {\r\n if (relatorio && relatorio.length > 0) {\r\n\r\n let total = relatorio.length;\r\n\r\n return total;\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(tipoServicoAction.getTiposServicoSelect());\r\n dispatch(relatorioAction.clear());\r\n }, []);\r\n\r\n const optionsTiposServicos = tipoServico && tipoServico.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n const handlePrint = () => {\r\n if (valueTipoServico && valueTipoServico != undefined) {\r\n window.open('/relatorioEmpresaPorTipoServicoPrint', '_blank');\r\n }\r\n }\r\n\r\n const handleExportExcel = () => {\r\n\r\n let payload = {\r\n IdTipoServico: valueTipoServico ? valueTipoServico.id : 0,\r\n RazaoSocial: razaoSocial,\r\n Cnpj: cnpj ? cnpj.split('.').join('').replace(/[-/.]/g, '') : ''\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaTipoServicoArquivo(payload))\r\n }\r\n\r\n //useEffect(() => {\r\n // if (idOrgao != 0 && idOrgao != '') {\r\n // if (usuarioOrgao && usuarioOrgao.length > 0) {\r\n // let selectedOrgao = usuarioOrgao.filter(\r\n // (item) => item.idOrgao == idOrgao\r\n // )\r\n // setValueTipoServico(usuarioOrgao.length > 0 ? selectedOrgao[0].orgao : '')\r\n // }\r\n // }\r\n //}, [idOrgao])\r\n\r\n const handleSubmit = (event) => {\r\n if (valueTipoServico && valueTipoServico != undefined) {\r\n\r\n let payload = {\r\n IdTipoServico: valueTipoServico ? valueTipoServico.id : 0,\r\n RazaoSocial: razaoSocial,\r\n Cnpj: cnpj ? cnpj.split('.').join('').replace(/[-/.]/g, '') : ''\r\n };\r\n\r\n dispatch(relatorioAction.getRelatorioEmpresaPorTipoServico(payload, true));\r\n } else {\r\n toast.error('Selecione um tipo de serviço!')\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (valueTipoServico) {\r\n handleChangeAutoCompleteTipoServico(valueTipoServico)\r\n }\r\n }, [valueTipoServico])\r\n\r\n const handleChangeAutoCompleteTipoServico = (obj) => {\r\n if (obj != null) {\r\n let selectedTípoServico = tipoServico.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n tipoServicoAction.changeDetailsTipoServico(\r\n selectedTípoServico[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenTipoServico(false)\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros, isLoading]);\r\n\r\n useEffect(() => {\r\n }, [ready, props.relatorio.isLoading])\r\n\r\n return (\r\n <Page className={classes.root} title=\"Relatório - Empresas\">\r\n <AccessControl\r\n rule={'relatorios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid\r\n {...rest}\r\n container\r\n spacing={2}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Card style={{ marginBottom: 10, marginTop: 0 }}>\r\n <ValidatorForm\r\n id=\"formRelatorio\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardContent>\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <TitleContentInformation\r\n subTitle={'RELATÓRIO'}\r\n title={'Empresas por Tipo de Serviço'}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2}>\r\n <Grid item lg={5} md={5} xl={5} xs={12} style={{ marginTop: 17 }}>\r\n <Autocomplete\r\n value={valueTipoServico}\r\n onChange={(event, newValue) => {\r\n setValueTipoServico(newValue);\r\n }}\r\n inputValue={inputValueTipoServico}\r\n onInputChange={(event, newInputValueTipoServico) => {\r\n setInputValueTipoServico(newInputValueTipoServico);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsTiposServicos}\r\n margin=\"normal\"\r\n disabled={(idTipoServico != null && idTipoServico != 0 && idTipoServico != '')}\r\n variant=\"outlined\"\r\n defaultValue={valueTipoServico}\r\n getOptionLabel={(optionTipoServico) => (optionTipoServico ? optionTipoServico.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Tipo de Serviço *... \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"razaoSocial\"\r\n label=\"Razão Social\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={(e) => setRazaoSocial(e.target.value)}\r\n value={razaoSocial || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"cnpj\"\r\n label=\"CNPJ\"\r\n margin=\"normal\"\r\n onChange={(e) => setCnpj(e.target.value)}\r\n value={cnpjMask(cnpj) || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid container spacing={2} style={{ alignItems: 'center', justifyContent: 'left', alignContent: 'left' }}>\r\n <Grid item xl={12} lg={12} md={12} xs={12} style={{\r\n alignItems: 'bottom',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'right',\r\n textAlign: 'right'\r\n }}>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.relatorio.isLoading}\r\n startIcon={<SearchIcon />}\r\n endIcon={props.relatorio.isLoading && <CircularProgress size={24} />}\r\n >\r\n {props.relatorio.isLoading ? 'Pesquisando...' : 'Pesquisar'}\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"submit\"\r\n onClick={() => handlePrint()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFilePdf} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Gerar PDF\r\n </CustomButton>\r\n </Grid>\r\n <Grid>\r\n <CustomButton\r\n type=\"button\"\r\n onClick={() => handleExportExcel()}\r\n variant=\"outlined\"\r\n endIcon={<FontAwesomeIcon icon={faFileExcel} style={{ verticalAlign: 'middle' }} />}\r\n >\r\n Exportar para Excel\r\n </CustomButton>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </CardContent>\r\n </ValidatorForm>\r\n </Card>\r\n <Card>\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell><strong>TIPO DE SERVIÇO</strong></TableCell>\r\n <TableCell><strong>RAZÃO SOCIAL</strong></TableCell>\r\n <TableCell><strong>CNPJ</strong></TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== relatorio && relatorio.length\r\n ? relatorio.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.tipoServico ? n.tipoServico.toUpperCase() : '-'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nomeEmpresa ? n.nomeEmpresa.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.cnpj ? cnpjMask(n.cnpj) : ''}\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (valueTipoServico != undefined ?\r\n (isLoading ?\r\n Array.apply(null, { length: 6 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={3} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n )\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={6} colSpan={3} align=\"center\">Informe um tipo de serviço</TableCell>\r\n </TableRow>\r\n )\r\n }\r\n {undefined !== relatorio && relatorio.length\r\n ?\r\n <TableRow>\r\n <TableCell rowSpan={2} colSpan={2}><b>TOTAL DE EMPRESAS</b></TableCell>\r\n <TableCell rowSpan={2}><b>{getTotal()}</b></TableCell>\r\n </TableRow>\r\n :\r\n null\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.RELATORIO_SERVICO_REALIZADO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page>\r\n )\r\n}\r\nRelatorioEmpresaPorTipoServico.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n relatorio: state.relatorio\r\n }\r\n}\r\nconst connectedRelatorioEmpresaPorTipoServicoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(RelatorioEmpresaPorTipoServico))\r\n)\r\nexport { connectedRelatorioEmpresaPorTipoServicoPage as RelatorioEmpresaPorTipoServico }\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport { Header, Footer } from '../../_reports';\r\nimport { cnpjMask } from '../../utils'\r\nimport { styled } from '@mui/material/styles';\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n header: {\r\n borderRight: 1,\r\n padding: 5,\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n borderRight: 1,\r\n padding: 3,\r\n textAlign: 'center'\r\n }\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%'\r\n}));\r\n\r\nconst RelatorioEmpresaPorTipoServicoPrint = (props) => {\r\n\r\n const [ready, setReady] = React.useState(false);\r\n const { match: { params } } = props;\r\n const { relatorio } = props.relatorio\r\n\r\n useEffect(() => {\r\n\r\n }, [props.relatorio]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, [])\r\n\r\n const onRendered = () => {\r\n };\r\n\r\n return (\r\n (ready &&\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document onRender={onRendered} width='100%'>\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true} >\r\n <Header title='Relatório de Empresas por Tipo de Serviço' />\r\n <View style={[styles.row, { marginTop: 40 }]} key={0} >\r\n <View style={[styles.header, { width: 250 }]}>\r\n <Text>TIPO DE SERVIÇO</Text>\r\n </View>\r\n <View style={[styles.header, { width: 400 }]}>\r\n <Text>RAZÃO SOCIAL</Text>\r\n </View>\r\n <View style={[styles.header, { width: 200 }]}>\r\n <Text>CNPJ</Text>\r\n </View>\r\n </View>\r\n {\r\n relatorio.length > 0 ? relatorio.map(n => {\r\n var retorno = (\r\n <View style={[styles.row]} key={n.id} >\r\n <View style={[styles.cell, { width: 250 }]}>\r\n <Text>{n.tipoServico ? n.tipoServico.toUpperCase() : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 400 }]}>\r\n <Text>{n.nomeEmpresa ? n.nomeEmpresa.toUpperCase() : ''}</Text>\r\n </View>\r\n <View style={[styles.cell, { width: 200 }]}>\r\n <Text>{n.cnpj ? cnpjMask(n.cnpj) : ''}</Text>\r\n </View>\r\n </View>\r\n );\r\n return retorno;\r\n })\r\n : <View style={[styles.row]} key={0} >\r\n <View style={[styles.cell, { width: 850 }]}>\r\n <Text>Nenhum registro encontrado</Text>\r\n </View>\r\n </View>\r\n }\r\n <Footer />\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer>\r\n </div>\r\n )\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedRelatorioEmpresaPorTipoServicoPrintPage = withRouter(connect(mapStateToProps, null, null)(RelatorioEmpresaPorTipoServicoPrint));\r\nexport { connectedRelatorioEmpresaPorTipoServicoPrintPage as RelatorioEmpresaPorTipoServicoPrint };\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { subOrgaoAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Skeleton,\r\n Paper,\r\n IconButton,\r\n Tooltip,\r\n Input,\r\n Grid,\r\n TablePagination\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst SubOrgao = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { subOrgao } = props.subOrgao\r\n const { isLoading } = props.subOrgao\r\n const { totalRegistros } = props.subOrgao\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('nome');\r\n const [direction] = useState('asc');\r\n\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao)\r\n };\r\n\r\n dispatch(subOrgaoAction.getSubOrgao(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.subOrgao.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este sub órgão?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.subOrgao.isLoading,\r\n confirmationText: props.subOrgao.isLoading ? 'Excluindo sub órgão...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(subOrgaoAction.deleteSubOrgaoById(id))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n <Page className={classes.root} title=\"Sub Órgãos\">\r\n <AccessControl\r\n rule={'subOrgaos.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <div>\r\n {undefined !== subOrgao && subOrgao.length > 0 ? (\r\n <TitleContent\r\n rule={'subOrgaos.create'}\r\n length={subOrgao.length}\r\n subTitle={'GERÊNCIA DE SUB ÓRGÃO'}\r\n title={'Lista de Sub Órgãos'}\r\n href={'/subOrgao'}\r\n />\r\n ) : (\r\n <TitleContent\r\n rule={'subOrgaos.create'}\r\n length={0}\r\n subTitle={'GERÊNCIA DE SUB ÓRGÃO'}\r\n title={'Lista de Sub Órgãos'}\r\n href={'/subOrgao'}\r\n />\r\n )}\r\n <Grid container spacing={3}>\r\n <Grid item xl={3} lg={3} md={3} xs={12}>\r\n <Input\r\n id=\"term\"\r\n label=\"term\"\r\n placeholder=\"Filtro\"\r\n value={term}\r\n fullWidth\r\n onChange={handleChange('term')}\r\n />\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Nome</TableCell>\r\n <TableCell>Órgão</TableCell>\r\n <TableCell align=\"right\">Ações</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== subOrgao && subOrgao.length\r\n ? subOrgao.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nome ? n.nome.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.orgao && n.orgao.nome ? n.orgao.nome.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <AccessControl\r\n rule={'subOrgaos.edit'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Edit\"\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/subOrgao/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Editar'}>\r\n <Tooltip >\r\n <EditIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n <AccessControl\r\n rule={'subOrgaos.delete'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Delete\"\r\n onClick={() => handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Excluir\">\r\n <DeleteIcon />\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (\r\n !isLoading ?\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={3} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n :\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n <TablePagination\r\n component=\"div\"\r\n count={totalRegistros}\r\n page={page}\r\n labelRowsPerPage=\"Linhas por página\"\r\n labelDisplayedRows={({ from, to }) => `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n </div>\r\n )\r\n }\r\n no={() => <AccessDenied />}\r\n />\r\n </Page >\r\n )\r\n}\r\nSubOrgao.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n subOrgao: state.subOrgao\r\n }\r\n}\r\nconst connectedSubOrgaoPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(SubOrgao))\r\n)\r\nexport { connectedSubOrgaoPage as SubOrgao }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@mui/styles'\r\nimport { toast } from 'react-toastify'\r\nimport Typography from '@mui/material/Typography';\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport {\r\n Autocomplete,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Chip,\r\n CircularProgress,\r\n Divider,\r\n Button,\r\n Badge,\r\n Grid,\r\n TextField,\r\n MenuItem\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTrashAlt, faPlus } from '@fortawesome/free-solid-svg-icons'\r\nimport {\r\n subOrgaoAction,\r\n orgaoAction,\r\n usuarioAction\r\n} from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, stringUtils } from '../../utils'\r\nimport { Page } from 'components'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst SubOrgaoEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, subOrgao, className, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const confirm = useConfirm()\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const [idUsuario, setIdUsuario] = useState(0);\r\n const [textUsuario, setTextUsuario] = useState('');\r\n\r\n const [valueOrgao, setValueOrgao] = useState(null);\r\n const [inputValueOrgao, setInputValueOrgao] = useState('');\r\n const [openOrgao, setOpenOrgao] = useState(false)\r\n\r\n const [valueUsuario, setValueUsuario] = React.useState(null);\r\n const [inputValueUsuario, setInputValueUsuario] = React.useState('');\r\n\r\n const { orgao } = useSelector(\r\n (state) => state.orgao)\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { usuarioOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n const { usuario } = useSelector(\r\n (state) => state.usuario\r\n )\r\n\r\n var optionsOrgaos = usuarioOrgao.map(u => ({ id: u.orgao.id, nome: u.orgao.nome }));\r\n\r\n const options = usuario.map(u => ({ id: u.value, nome: u.text }));\r\n\r\n useEffect(() => {\r\n\r\n dispatch(subOrgaoAction.clear())\r\n dispatch(orgaoAction.getOrgaoSelect())\r\n dispatch(usuarioAction.getUsuarioOrgaoSelect())\r\n if (params.id) {\r\n dispatch(subOrgaoAction.getSubOrgaoById(params.id))\r\n } else {\r\n dispatch(subOrgaoAction.clear())\r\n }\r\n\r\n }, []);\r\n useEffect(() => {\r\n\r\n }, [ready, props.subOrgao.isLoading])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(subOrgaoAction.onChangeProps(prop, event))\r\n }\r\n\r\n useEffect(() => {\r\n if (valueOrgao) {\r\n handleChangeAutoCompleteOrgao(valueOrgao)\r\n }\r\n }, [valueOrgao])\r\n\r\n const handleChangeAutoCompleteOrgao = (obj) => {\r\n if (obj != null) {\r\n let selectedOrgao = orgao.filter(\r\n (item) => item.value == obj.id\r\n )\r\n\r\n dispatch(\r\n orgaoAction.changeDetailsOrgao(\r\n selectedOrgao[0]\r\n )\r\n )\r\n } else {\r\n\r\n }\r\n setOpenOrgao(false)\r\n }\r\n\r\n const handleAddUsuarioOnList = () => {\r\n if (!valueUsuario || valueUsuario == 0) {\r\n toast.error('Selecione um usuário!')\r\n return\r\n }\r\n\r\n if (props.subOrgao.usuariosSubOrgaos.filter(ts => ts.idUsuario == parseInt(idUsuario)).length > 0) {\r\n toast.error('Erro ao adicionar! Este usuário já existe!')\r\n }\r\n else {\r\n props.subOrgao.usuariosSubOrgaos.push({\r\n 'idUsuario': idUsuario,\r\n 'idSubOrgao': props.subOrgao.id,\r\n 'usuario': {\r\n 'nome': textUsuario\r\n }\r\n });\r\n setIdUsuario(0);\r\n setValueUsuario(null);\r\n }\r\n }\r\n\r\n const handleRemoveUsuarioOnList = id => {\r\n confirm({\r\n title: 'Você deseja excluir este usuário?',\r\n description: 'Essa operação desvinculará o usuário deste sub órgão',\r\n disabled: props.subOrgao.isLoading,\r\n confirmationText: props.subOrgao.isLoading ? 'Excluindo usuário...' : 'Sim, excluir!',\r\n }).then(() => {\r\n props.subOrgao.usuariosSubOrgaos = props.subOrgao.usuariosSubOrgaos.filter(ts => ts.idUsuario != parseInt(id));\r\n forceUpdate(n => !n);\r\n })\r\n };\r\n\r\n useEffect(() => {\r\n if (idOrgao != 0) {\r\n if (usuarioOrgao && usuarioOrgao.length > 0) {\r\n let selectedOrgao = usuarioOrgao.filter(\r\n (item) => item.idOrgao == idOrgao\r\n )\r\n setValueOrgao(usuarioOrgao.length > 0 ? selectedOrgao[0].orgao : '')\r\n }\r\n\r\n dispatch(usuarioAction.getUsuarioOrgaoSelect(idOrgao))\r\n }\r\n\r\n }, [idOrgao])\r\n\r\n useEffect(() => {\r\n if (props.subOrgao.idOrgao != 0 && params.id != undefined) {\r\n setValueOrgao(props.subOrgao.orgao)\r\n }\r\n }, [props.subOrgao.idOrgao])\r\n\r\n const handleChangeAutoCompleteUsuario = (obj) => {\r\n if (obj != null) {\r\n setIdUsuario(obj.id);\r\n setTextUsuario(obj.nome);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (valueUsuario) {\r\n handleChangeAutoCompleteUsuario(valueUsuario)\r\n }\r\n }, [valueUsuario])\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n nome: props.subOrgao.nome,\r\n idOrgao: valueOrgao ? valueOrgao.id : props.subOrgao.idOrgao,\r\n usuariosSubOrgaos: props.subOrgao.usuariosSubOrgaos\r\n }\r\n\r\n if (params.id) {\r\n dispatch(subOrgaoAction.editSubOrgaoInfo(params.id, payload, true))\r\n } else {\r\n dispatch(subOrgaoAction.createSubOrgao(payload))\r\n }\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Novo Sub Órgão'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Editar Sub Órgão'}</b>\r\n </Typography>\r\n )\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return <EditText />\r\n }\r\n return <InsertText />\r\n }\r\n return (\r\n <Page\r\n className={classes.root}\r\n title={\r\n params.id\r\n ? 'Gerência de Sub Órgãos - Editar Sub Órgão'\r\n : 'Gerência de Sub Órgãos - Novo Sub Órgão'\r\n }\r\n >\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formSubOrgao\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <CardHeader\r\n subheader=\"Cadastro de Sub Órgãos\"\r\n title={<SegHeader />}\r\n />\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <Grid container spacing={2}>\r\n <Grid item lg={8} md={8} xl={8} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"nome\"\r\n label=\"Nome *\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={handleChange('nome')}\r\n value={props.subOrgao.nome || ''}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12} style={{ marginTop: 16 }}>\r\n <Autocomplete\r\n value={valueOrgao}\r\n onChange={(event, newValue) => {\r\n setValueOrgao(newValue);\r\n }}\r\n inputValue={inputValueOrgao}\r\n onInputChange={(event, newInputValueOrgao) => {\r\n setInputValueOrgao(newInputValueOrgao);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={optionsOrgaos}\r\n margin=\"normal\"\r\n disabled={(idOrgao != null && idOrgao != '')}\r\n variant=\"outlined\"\r\n defaultValue={valueOrgao}\r\n getOptionLabel={(optionOrgao) => (optionOrgao ? optionOrgao.nome : '')}\r\n renderInput={(params) => <TextField {...params} label=\"Órgão * \" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n </Grid>\r\n {params.id ? <Grid container spacing={2}>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{ marginTop: 16 }}>\r\n <Typography component=\"h4\" variant=\"subtitle\" align=\"center\">\r\n Vincular usuários ao Sub Órgão\r\n </Typography>\r\n </Grid>\r\n <Grid item lg={4} md={4} xl={4} xs={12}>\r\n <Autocomplete\r\n value={valueUsuario}\r\n onChange={(event, newValueUsuario) => {\r\n setValueUsuario(newValueUsuario);\r\n }}\r\n inputValue={inputValueUsuario}\r\n onInputChange={(event, newInputValueUsuario) => {\r\n setInputValueUsuario(newInputValueUsuario);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={options}\r\n margin=\"normal\"\r\n variant=\"outlined\"\r\n defaultValue={valueUsuario}\r\n isOptionEqualToValue={(option, value) => option.id == value.id}\r\n getOptionLabel={option => option.nome}\r\n renderInput={(params) => <TextField {...params} label=\"Selecione um usuário...\" fullWidth />}\r\n fullWidth\r\n />\r\n </Grid>\r\n <Grid item lg={3} md={3} xl={3} xs={12} style={{ alignItems: 'top', justifyContent: 'center' }}>\r\n <Button style={{ width: '200px', marginLeft: '15px', backgroundColor: '#000' }} name=\"btnUsuarios\" id=\"btnUsuarios\" variant=\"contained\" className=\"btn\" component='a' onClick={handleAddUsuarioOnList}>Adicionar <FontAwesomeIcon icon={faPlus} /></Button>\r\n </Grid>\r\n </Grid>\r\n :\r\n null}\r\n </CardContent>\r\n <Grid item lg={12} md={12} xl={12} xs={12} align=\"center\" style={{ marginTop: 8, marginBottom: 8 }}>\r\n {\r\n (props.subOrgao.usuariosSubOrgaos != null && props.subOrgao.usuariosSubOrgaos.length > 0 ?\r\n props.subOrgao.usuariosSubOrgaos.map(n => {\r\n return (\r\n (n.id !== '' && n.idUsuario ?\r\n <Chip\r\n variant=\"filled\"\r\n sx={{\r\n marginTop: 0.8,\r\n marginLeft: 0.8,\r\n marginRight: 0.8,\r\n padding: 1,\r\n backgroundColor: '#015192',\r\n color: '#FFF',\r\n alignItems: 'center',\r\n gap: '2px', // Espaçamento entre texto e ícone\r\n }}\r\n index={n.id}\r\n key={'button1' + n.id}\r\n label={`${n.usuario ? n.usuario.nome : n.idUsuario} `}\r\n deleteIcon={<FontAwesomeIcon icon={faTrashAlt} style={{ color: '#FFF', fontSize: 12 }} />}\r\n onDelete={() => handleRemoveUsuarioOnList(n.idUsuario)}\r\n />\r\n : null)\r\n );\r\n })\r\n : null)\r\n }\r\n </Grid>\r\n <Divider />\r\n <CardActions>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography style={{ fontSize: \"10px\", paddingLeft: \"6px\" }}>\r\n * Campos obrigatórios\r\n </Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlign: 'right',\r\n justifyContent: 'right'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n onClick={() => history.push('/subOrgaos')}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n <CustomButton\r\n variant=\"contained\"\r\n dark={true}\r\n type=\"submit\"\r\n disabled={props.subOrgao.isLoading}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.subOrgao.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.subOrgao.isLoading ? 'Atualizando sub órgão...' : 'Atualizar') : (props.subOrgao.isLoading ? 'Salvando sub órgão...' : 'Salvar')}\r\n </CustomButton>\r\n </Grid>\r\n </CardActions>\r\n </ValidatorForm>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </Page >\r\n )\r\n}\r\n\r\nSubOrgaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedSubOrgaoEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(SubOrgaoEdit))\r\n)\r\nexport { connectedSubOrgaoEditPage as SubOrgaoEdit }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport { usuarioAction } from '../../_actions'\r\nimport PropTypes from 'prop-types'\r\nimport {\r\n Table,\r\n TableContainer,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n Tooltip,\r\n Skeleton,\r\n Input,\r\n Grid,\r\n TablePagination\r\n} from '@mui/material'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport { withStyles } from '@mui/styles'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { history, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport TitleContent from '../TitleContent'\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\nimport { useConfirm } from 'material-ui-confirm'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport AccessDenied from '../Errors/AccessDenied'\r\nimport { Page } from 'components'\r\nimport { useDebounce } from 'use-debounce';\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(6, 6, 6, 6)\r\n }\r\n})\r\n\r\nconst Usuario = (props) => {\r\n\r\n const confirm = useConfirm()\r\n const dispatch = useDispatch()\r\n const { classes } = props\r\n const { usuario } = props.usuario\r\n const { isLoading } = props.usuario\r\n const { totalRegistros } = props.usuario\r\n\r\n const [page, setPage] = useState(0);\r\n const [limit, setLimit] = useState(10);\r\n const [term, setTerm] = useState('');\r\n const [debounceTerm] = useDebounce(term, 1000);\r\n const [order] = useState('nome');\r\n const [direction] = useState('asc');\r\n const [ready, setReady] = React.useState(false);\r\n\r\n const { idOrgao } = useSelector(\r\n (state) => state.usuarioOrgao\r\n )\r\n\r\n useEffect(() => {\r\n\r\n const fetchData = (page, limit, term) => {\r\n\r\n let filterModel = {\r\n Page: page,\r\n Limit: limit,\r\n Term: term,\r\n Order: order,\r\n Direction: direction,\r\n IdOrgao: (idOrgao && idOrgao != '' && idOrgao),\r\n };\r\n\r\n dispatch(usuarioAction.getUsuario(filterModel, true));\r\n\r\n };\r\n\r\n fetchData(page, limit, debounceTerm, order, direction);\r\n }, [page, limit, debounceTerm, order, direction, idOrgao]);\r\n\r\n useEffect(() => {\r\n\r\n }, [props.usuario.usuario]);\r\n\r\n useEffect(() => {\r\n\r\n }, [totalRegistros]);\r\n\r\n const handleVerificaEmailUsuario = (n) => {\r\n confirm({\r\n title: 'Você deseja verificar este e-mail?',\r\n description: 'O status verificado será alterado para \"SIM\"',\r\n disabled: props.usuario.isLoading,\r\n confirmationText: props.usuario.isLoading ? 'Verificando e-mail...' : 'Sim, verificar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(usuarioAction.verifyUsuarioEmail(n, idOrgao))\r\n })\r\n }\r\n\r\n const handleRequestPasswordReset = (email) => {\r\n confirm({\r\n title: 'Você deseja reenviar o e-mail de definição de senha?',\r\n description: 'O usuário receberá um e-mail para cadastrar/alterar a senha de acesso ao sistema',\r\n disabled: props.usuario.isLoading,\r\n confirmationText: props.usuario.isLoading ? 'Enviando e-mail...' : 'Sim, enviar!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(usuarioAction.requestPasswordReset(email))\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.usuario.isLoading])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeLimit = (event) => {\r\n setLimit(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const handleClick = (id) => {\r\n confirm({\r\n title: 'Você deseja excluir este Usuário?',\r\n description: 'Essa operação é irreversível',\r\n disabled: props.usuario.isLoading,\r\n confirmationText: props.usuario.isLoading ? 'Excluindo usuário...' : 'Sim, excluir!',\r\n cancellationText: 'Não!'\r\n }).then(() => {\r\n dispatch(usuarioAction.deleteUsuarioById(id, idOrgao))\r\n })\r\n }\r\n\r\n const handleChange = prop => event => {\r\n setTerm(event.target.value);\r\n };\r\n\r\n return (\r\n <Page className={classes.root} title=\"Usuários\">\r\n <AccessControl\r\n rule={'usuarios.list'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <div>\r\n {undefined !== usuario && usuario.length > 0 ? (\r\n <TitleContent\r\n rule={'usuarios.create'}\r\n length={usuario.length}\r\n subTitle={'GERÊNCIA DE USUÁRIO'}\r\n title={'Lista de Usuários'}\r\n href={'/usuario'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_USUARIO}\r\n />\r\n ) : (\r\n <TitleContent\r\n rule={'usuarios.create'}\r\n length={0}\r\n subTitle={'GERÊNCIA DE USUÁRIO'}\r\n title={'Lista de Usuários'}\r\n href={'/usuario'}\r\n telaManual={MANUAIS_CATEGORIAS.LISTAGEM_USUARIO}\r\n />\r\n )}\r\n <Grid container xl={12} lg={12} md={12} xs={12}>\r\n <Grid item xl={3} lg={3} md={3} xs={12}>\r\n <Input\r\n id=\"term\"\r\n label=\"term\"\r\n placeholder=\"Filtro\"\r\n value={term}\r\n onChange={handleChange('term')}\r\n fullWidth\r\n />\r\n </Grid>\r\n </Grid>\r\n <br />\r\n <TableContainer component={Paper}>\r\n <Table>\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Nome</TableCell>\r\n <TableCell>E-mail</TableCell>\r\n <TableCell>Tipo</TableCell>\r\n <TableCell>Vínculo</TableCell>\r\n <TableCell>Cadastro Ativo\r\n <Tooltip\r\n style={{ paddingLeft: 4 }}\r\n title=\"Exibe se o usuário já criou uma senha de acesso ao sistema\"\r\n >\r\n <InfoIcon size={9} sx={{ verticalAlign: 'middle' }} />\r\n </Tooltip>\r\n </TableCell>\r\n <TableCell align=\"right\">Ações</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {undefined !== usuario && usuario.length\r\n ? usuario.map((n) => {\r\n return (\r\n <TableRow hover key={n.id}>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.nome ? n.nome.toUpperCase() : ''} {n.sobrenome ? n.sobrenome.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.email ? n.email.toLowerCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {n.tipoUsuario ? n.tipoUsuario.nome.toUpperCase() : ''}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {(n.usuariosOrgaos && n.usuariosOrgaos.length > 0) ? n.usuariosOrgaos[0]?.orgao?.nome?.toUpperCase() : (n.usuariosEmpresas && n.usuariosEmpresas.length > 0) ? n.usuariosEmpresas[0].empresa.razaoSocial?.toUpperCase() : 'RAIAR'}\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n {(n.emailVerificado != null && n.emailVerificado == true) ? 'SIM' : 'NÃO'}\r\n </TableCell>\r\n <TableCell align=\"right\">\r\n <AccessControl\r\n rule={'usuarios.edit'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Edit\"\r\n component=\"a\"\r\n onClick={() =>\r\n history.push(`/usuario/${n.id}`)\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Editar'}>\r\n <Tooltip >\r\n <EditIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n <AccessControl\r\n rule={'usuarios.delete'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"Delete\"\r\n onClick={() => handleClick(n.id)}\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Excluir\">\r\n <DeleteIcon />\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n {n.emailVerificado != true &&\r\n <>\r\n <AccessControl\r\n rule={'usuariosEmail.verify'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"VerifyEmail\"\r\n size=\"small\"\r\n onClick={() => handleVerificaEmailUsuario(n.id)}\r\n >\r\n <Tooltip title=\"Verificar E-mail\">\r\n <DoneIcon />\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n <AccessControl\r\n rule={'usuariosEmail.verify'}\r\n yes={() => (\r\n <IconButton\r\n aria-label=\"ReenviarEmailDefinicaoSenha\"\r\n size=\"small\"\r\n onClick={() => handleRequestPasswordReset(n.email)}\r\n >\r\n <Tooltip title=\"Reenviar E-mail De Definição de Senha\">\r\n <SendIcon />\r\n </Tooltip>\r\n </IconButton>\r\n )}\r\n />\r\n </>\r\n }\r\n </TableCell>\r\n </TableRow>\r\n )\r\n })\r\n :\r\n (\r\n isLoading ?\r\n Array.apply(null, { length: 5 }).map((e, i) => (\r\n <TableRow hover>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n <TableCell component=\"th\" scope=\"row\">\r\n <Skeleton animation=\"wave\" />\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n :\r\n <TableRow>\r\n <TableCell rowSpan={3} colSpan={6} align=\"center\">Nenhum registro encontrado</TableCell>\r\n </TableRow>\r\n )\r\n }\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n <TablePagination\r\n component=\"div\"\r\n count={totalRegistros}\r\n page={page}\r\n labelRowsPerPage=\"Linhas por página\"\r\n labelDisplayedRows={({ from, to }) => `${from}-${to} de ${totalRegistros}`}\r\n onPageChange={handleChangePage}\r\n rowsPerPage={limit}\r\n onRowsPerPageChange={handleChangeLimit}\r\n />\r\n </div>\r\n )}\r\n no={() => <AccessDenied />}\r\n />\r\n </Page>\r\n )\r\n}\r\nUsuario.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n usuario: state.usuario\r\n }\r\n}\r\nconst connectedUsuarioPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(Usuario))\r\n)\r\nexport { connectedUsuarioPage as Usuario }\r\n","import React, { useEffect, useState } from 'react'\r\nimport { connect, useDispatch, useSelector } from 'react-redux'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport moment from 'moment'\r\nimport { withStyles } from '@mui/styles'\r\nimport Typography from '@mui/material/Typography'\r\nimport { AccessControl } from '../../components/Utils/AccessControl'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport HelpIcon from '@mui/icons-material/Help';\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n CircularProgress,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n MenuItem,\r\n Tooltip\r\n} from '@mui/material'\r\nimport {\r\n ValidatorForm,\r\n TextValidator,\r\n SelectValidator\r\n} from 'react-material-ui-form-validator'\r\nimport { authActions, usuarioAction, tipoUsuarioAction, logAction } from '../../_actions'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { phoneMask, history, stringUtils, MANUAIS_CATEGORIAS } from '../../utils'\r\nimport { Page } from 'components'\r\nimport { isEmpty } from 'lodash'\r\nimport SaveIcon from '@mui/icons-material/Save';\r\nimport CustomButton from '../../components/CustomButton/CustomButton'\r\nimport { HelpModal } from '../../components';\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center'\r\n },\r\n nome: {\r\n marginTop: theme.spacing(1)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2),\r\n justifyContent: 'space-between'\r\n },\r\n avatar: {\r\n height: 200,\r\n width: 200,\r\n borderRadius: '10px',\r\n webkitBorderRadius: '10px',\r\n mozBorderRadius: '10px',\r\n cursor: 'pointer'\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: '#fff'\r\n }\r\n})\r\n\r\nconst UsuarioEdit = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n const { classes, className, toggle, ...rest } = props\r\n const { match: { params } } = props;\r\n const formRef = React.createRef(null);\r\n const [emailEditable, setEmailEditable] = useState(false);\r\n\r\n const tipoUsuario = useSelector((state) => state.tipoUsuario.tipoUsuario)\r\n\r\n const [, forceUpdate] = React.useState(0);\r\n const [ready, setReady] = React.useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(usuarioAction.clear())\r\n dispatch(tipoUsuarioAction.getTiposUsuarioSelect())\r\n\r\n if (params.id) {\r\n dispatch(usuarioAction.getUsuarioById(params.id))\r\n dispatch(logAction.getLogByUsuario(params.id))\r\n } else {\r\n dispatch(usuarioAction.clear())\r\n }\r\n\r\n }, []);\r\n\r\n const [modalHelp, setModalHelp] = useState(false);\r\n const toggleModalHelp = () => setModalHelp(!modalHelp);\r\n\r\n const handleOpenModalHelp = () => {\r\n toggleModalHelp();\r\n }\r\n\r\n const { log } = useSelector(\r\n (state) => state.log\r\n )\r\n\r\n useEffect(() => {\r\n\r\n }, [ready, props.usuario.isLoading])\r\n\r\n const handleChange = (prop) => (event) => {\r\n dispatch(usuarioAction.onChangeProps(prop, event))\r\n }\r\n\r\n const handleSubmitUsuarioEmail = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n email: props.usuario.email\r\n }\r\n\r\n if (params.id) {\r\n dispatch(usuarioAction.editUsuarioEmailInfo(params.id, payload, true))\r\n }\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n\r\n let payload = {\r\n id: params.id,\r\n nome: props.usuario.nome,\r\n senha: props.usuario.senha,\r\n sobrenome: props.usuario.sobrenome,\r\n email: props.usuario.email.toLowerCase(),\r\n idTipoUsuario: (params.id) ? props.usuario.idTipoUsuario : 1,\r\n celular: props.usuario.celular && props.usuario.celular.split('-').join('').replace('(', '').replace(')', '').replace(' ', ''),\r\n matricula: props.usuario.matricula,\r\n telefone: props.usuario.telefone && props.usuario.telefone.split('-').join('').replace('(', '').replace(')', '').replace(' ', '')\r\n }\r\n\r\n if (params.id) {\r\n dispatch(usuarioAction.editUsuarioInfo(params.id, payload, true))\r\n } else {\r\n dispatch(usuarioAction.createUsuario(payload))\r\n }\r\n };\r\n\r\n function InsertText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Novo Usuário'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function EditText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Editar Usuário'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function InsertEmailText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{'Cadastrar E-mail'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function EditEmailText() {\r\n return (\r\n <Typography variant=\"h5\">\r\n <b>{authActions.isGestor() ? 'Editar E-mail' : 'E-mail'}</b>\r\n </Typography>\r\n )\r\n }\r\n\r\n function SegHeader() {\r\n if (params.id) {\r\n return <EditText />\r\n }\r\n return <InsertText />\r\n }\r\n\r\n function SegHeaderEmail() {\r\n if (params.id) {\r\n return <EditEmailText />\r\n }\r\n return <InsertEmailText />\r\n }\r\n\r\n return (\r\n <Page\r\n className={classes.root}\r\n title={\r\n params.id\r\n ? 'Gerência de Usuários - Editar Usuário'\r\n : 'Gerência de Usuários - Novo Usuário'\r\n }\r\n >\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formUsuario\"\r\n onSubmit={(event) => handleSubmit(event)}\r\n >\r\n <Grid container style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n <CardHeader\r\n subheader=\"Cadastro de Usuários\"\r\n title={<SegHeader />}\r\n />\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n aria-label=\"Ajuda\"\r\n component=\"a\"\r\n onClick={() =>\r\n handleOpenModalHelp()\r\n }\r\n size=\"small\"\r\n >\r\n <Tooltip title={'Ajuda'}>\r\n <Tooltip>\r\n <HelpIcon sx={{ float: 'center', color: '#000' }} fontSize='medium' />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n </Grid>\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <Grid container spacing={2}>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"nome\"\r\n label=\"Nome *\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={handleChange('nome')}\r\n value={props.usuario.nome || ''}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n </Grid>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"sobrenome\"\r\n label=\"Sobrenome *\"\r\n margin=\"normal\"\r\n onInput={stringUtils.toInputUppercase}\r\n onChange={handleChange('sobrenome')}\r\n value={props.usuario.sobrenome || ''}\r\n variant=\"outlined\"\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n />\r\n </Grid>\r\n {params.id ?\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <SelectValidator\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n variant=\"outlined\"\r\n id=\"idTipoUsuario\"\r\n label=\"Tipo Usuário *\"\r\n disabled\r\n margin=\"normal\"\r\n value={props.usuario.idTipoUsuario}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n displayEmpty\r\n labelId=\"idTipoUsuario\"\r\n >\r\n <MenuItem disabled value=\"\">\r\n <em>Tipo Usuário</em>\r\n </MenuItem>\r\n {!isEmpty(tipoUsuario) &&\r\n undefined !== tipoUsuario &&\r\n tipoUsuario.length &&\r\n tipoUsuario.map((row) => (\r\n <MenuItem key={row.value} value={row.value}>\r\n {row.text}\r\n </MenuItem>\r\n ))}\r\n </SelectValidator>\r\n </Grid>\r\n :\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <SelectValidator\r\n validators={['required']}\r\n errorMessages={['Campo obrigatório!']}\r\n variant=\"outlined\"\r\n id=\"idTipoUsuario\"\r\n label=\"Tipo Usuário *\"\r\n disabled\r\n margin=\"normal\"\r\n value={1}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n fullWidth\r\n displayEmpty\r\n labelId=\"idTipoUsuario\"\r\n >\r\n <MenuItem disabled value=\"\">\r\n <em>Tipo Usuário</em>\r\n </MenuItem>\r\n <MenuItem selected value={1}>ADMINISTRADOR</MenuItem>\r\n </SelectValidator>\r\n </Grid>\r\n }\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"celular\"\r\n label=\"Celular \"\r\n margin=\"normal\"\r\n onChange={handleChange('celular')}\r\n value={phoneMask(props.usuario.celular) || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"telefone\"\r\n label=\"Telefone \"\r\n margin=\"normal\"\r\n onChange={handleChange('telefone')}\r\n value={phoneMask(props.usuario.telefone) || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"matricula\"\r\n label=\"Matrícula\"\r\n type=\"number\"\r\n margin=\"normal\"\r\n onChange={handleChange('matricula')}\r\n value={props.usuario.matricula || ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n {!params.id &&\r\n <Grid item lg={6} md={6} xl={6} xs={12} style={{ display: 'flex', flexDirection: 'column' }}>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <TextValidator\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n fullWidth\r\n label=\"E-mail para acesso ao sistema *\"\r\n value={props.usuario.email || ''}\r\n className={classes.textField}\r\n onInput={stringUtils.toInputLowerCase}\r\n onChange={handleChange('email')}\r\n id=\"email\"\r\n name=\"email\"\r\n autoComplete=\"email\"\r\n validators={['required', 'isEmail']}\r\n errorMessages={[\r\n 'Você precisa informar o e-mail',\r\n 'E-mail inválido'\r\n ]}\r\n />\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography style={{ fontSize: 11, paddingLeft: 2 }}>\r\n <b>O usuário receberá um e-mail posteriormente para criar uma senha</b>\r\n </Typography>\r\n </Grid>\r\n </Grid>\r\n }\r\n {(props.usuario && props.usuario.dataHoraUltimoAcesso ?\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"dataHoraUltimoAcesso\"\r\n label=\"Data/Hora do Último Acesso\"\r\n margin=\"normal\"\r\n value={props.usuario.dataHoraUltimoAcesso ? moment(props.usuario.dataHoraUltimoAcesso).format(\"DD/MM/YYYY HH:mm\") : ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n :\r\n null\r\n )}\r\n {(log && log.usuario && params.id ?\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n className={classes.textField}\r\n fullWidth\r\n id=\"usuarioCadastro\"\r\n label=\"Usuário de Cadastro\"\r\n margin=\"normal\"\r\n value={log.usuario ? log.usuario.nome?.toUpperCase() : ''}\r\n variant=\"outlined\"\r\n />\r\n </Grid>\r\n :\r\n null\r\n )}\r\n </Grid>\r\n </CardContent>\r\n <Divider />\r\n <CardActions>\r\n <Grid item lg={12} md={12} xl={12} xs={12}>\r\n <Typography style={{ fontSize: \"10px\", paddingLeft: \"6px\" }}>\r\n * Campos obrigatórios\r\n </Typography>\r\n </Grid>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlgin: 'right',\r\n justifyContent: 'right'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n onClick={() => history.push('/Usuarios')}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.usuario.isLoading}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.usuario.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.usuario.isLoading ? 'Atualizando usuário...' : 'Atualizar') : (props.usuario.isLoading ? 'Salvando usuário...' : 'Salvar')}\r\n </CustomButton>\r\n </Grid>\r\n </CardActions>\r\n </ValidatorForm>\r\n {params.id &&\r\n <Grid\r\n {...rest}\r\n className={clsx(classes.root, className)}\r\n container\r\n spacing={3}\r\n >\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{ marginTop: 24 }}>\r\n <Grid item md={12} xs={12}>\r\n <Card>\r\n <ValidatorForm\r\n className={classes.form}\r\n ref={formRef}\r\n id=\"formUsuarioEmail\"\r\n onSubmit={(event) => handleSubmitUsuarioEmail(event)}\r\n >\r\n <CardHeader\r\n title={<SegHeaderEmail />}\r\n subheader={authActions.isGestor() ? 'Altera somente o e-mail de acesso ao sistema do usuário' : 'Para acesso ao sistema'}>\r\n </CardHeader>\r\n <Divider />\r\n <CardContent lg={12} md={12} xl={12} xs={12}>\r\n <Grid container spacing={2}>\r\n <Grid item lg={6} md={6} xl={6} xs={12}>\r\n <TextValidator\r\n variant=\"outlined\"\r\n margin=\"normal\"\r\n fullWidth\r\n label=\"E-mail *\"\r\n value={props.usuario.email || ''}\r\n className={classes.textField}\r\n onInput={stringUtils.toInputLowerCase}\r\n onChange={handleChange('email')}\r\n id=\"email\"\r\n name=\"email\"\r\n autoComplete=\"email\"\r\n validators={['required', 'isEmail']}\r\n errorMessages={[\r\n 'Você precisa informar o e-mail',\r\n 'E-mail inválido'\r\n ]}\r\n disabled={props.usuario.id != 0 && emailEditable == false}\r\n />\r\n </Grid>\r\n <AccessControl\r\n rule={'usuariosEmail.edit'} //permissão necessária para acessar conteúdo\r\n yes={() => (\r\n <Grid item lg={1} md={1} xl={1} xs={12}>\r\n <IconButton\r\n style={{ marginTop: 20 }}\r\n color=\"inherit\"\r\n onClick={() => setEmailEditable(true)}\r\n >\r\n <Tooltip title={'Liberar Edição do E-mail'}>\r\n <Tooltip >\r\n <EditIcon />\r\n </Tooltip>\r\n </Tooltip>\r\n </IconButton>\r\n </Grid>\r\n )}\r\n />\r\n </Grid>\r\n </CardContent>\r\n {authActions.isGestor() &&\r\n <>\r\n <Divider />\r\n <CardActions>\r\n <Grid item lg={12} md={12} xl={12} xs={12} style={{\r\n display: 'flex',\r\n alignItems: 'right',\r\n flexDirection: 'row',\r\n textAlign: 'right',\r\n justifyContent: 'right'\r\n }}>\r\n <CustomButton\r\n variant=\"outlined\"\r\n onClick={() => history.push('/usuarios')}\r\n >\r\n Cancelar\r\n </CustomButton>\r\n <CustomButton\r\n type=\"submit\"\r\n variant=\"contained\"\r\n dark={true}\r\n disabled={props.usuario.isLoading}\r\n startIcon={<SaveIcon />}\r\n endIcon={props.usuario.isLoading && <CircularProgress size={24} />}\r\n >\r\n {params.id ? (props.usuario.isLoading ? 'Atualizando email...' : 'Atualizar e-mail') : (props.usuario.isLoading ? 'Salvando email...' : 'Salvar e-mail')}\r\n </CustomButton>\r\n </Grid>\r\n </CardActions>\r\n </>\r\n }\r\n </ValidatorForm>\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n }\r\n </Card>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n {\r\n (modalHelp ?\r\n <HelpModal\r\n toggle={toggleModalHelp}\r\n modal={modalHelp}\r\n props={props}\r\n tela={MANUAIS_CATEGORIAS.CADASTRO_USUARIO}\r\n />\r\n :\r\n null\r\n )\r\n }\r\n </Page >\r\n )\r\n}\r\n\r\nUsuarioEdit.propTypes = {\r\n classes: PropTypes.object.isRequired\r\n}\r\nconst mapStateToProps = (state) => {\r\n return state\r\n}\r\n\r\nconst connectedUsuarioEditPage = withRouter(\r\n connect(mapStateToProps, null, null)(withStyles(styles)(UsuarioEdit))\r\n)\r\nexport { connectedUsuarioEditPage as UsuarioEdit }\r\n","import React, { useEffect, useState } from 'react';\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PDFViewer, Document, Image, Page, View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { styled } from '@mui/material/styles';\r\nimport drmEngenharia from '../../../img/drmEngenharia.jpg'\r\nimport moment from 'moment'\r\nimport { OBRA_DIARIO_CONDICAO_CLIMATICA } from '../../../utils';\r\nimport { ObraDiarioPrintPdfFooter } from './'\r\n\r\nconst styles = StyleSheet.create({\r\n row: {\r\n flexDirection: 'row',\r\n fontSize: 7,\r\n borderTop: 1,\r\n borderLeft: 1,\r\n borderRight: 1,\r\n borderBottom: 1\r\n },\r\n column: {\r\n flexDirection: 'column',\r\n },\r\n cellCabecalho: {\r\n padding: 6,\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n borderBottom: 1,\r\n },\r\n cellLastCabecalho: {\r\n padding: 6,\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n textAlign: 'center'\r\n },\r\n cellLastCabecalhoAlignLeft: {\r\n padding: 6,\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n textAlign: 'left'\r\n },\r\n cellRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n borderBottom: 1,\r\n },\r\n cellLastRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n cellLabel: {\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n width: '20%', // Ajuste a largura para que ocupe a parte da tabela adequadamente\r\n textAlign: 'left',\r\n padding: 5,\r\n borderRight: 1,\r\n },\r\n cellValue: {\r\n fontSize: 14,\r\n width: '80%', // Ajuste a largura do valor para preencher o espaço restante\r\n textAlign: 'left',\r\n paddingLeft: 6,\r\n },\r\n header: {\r\n textAlign: 'center',\r\n padding: 5,\r\n },\r\n backgroundImage: {\r\n justifyContent: 'center',\r\n width: '40%',\r\n objectFit: 'contain'\r\n },\r\n imageAnexo: {\r\n width: 190,\r\n height: 110,\r\n objectFit: 'contain'\r\n },\r\n});\r\n\r\nconst CustomPage = styled(Page)(({ theme }) => ({\r\n padding: 20,\r\n paddingBottom: 25,\r\n height: '100%',\r\n width: '100%',\r\n}));\r\n\r\nconst ObraDiarioPrintPdf = (props) => {\r\n const location = useLocation();\r\n\r\n const [ready, setReady] = useState(false);\r\n const { match: { params } } = props;\r\n const { obraDiario } = location.state || {};\r\n const equipes = obraDiario.obrasDiariosEquipes;\r\n const anexos = obraDiario.obrasDiariosAnexos;\r\n const [imageBase64, setImageBase64] = useState(null);\r\n const [anexosCarregadosPrint, setAnexosCarregadosPrint] = useState(null);\r\n const [anexosCarregados, setAnexosCarregados] = useState(false);\r\n const isImageUrl = (url) => /\\.(jpeg|jpg|gif|png)$/i.test(url);\r\n\r\n const fetchImageAsBase64 = async (url) => {\r\n const response = await fetch(url);\r\n\r\n const blob = await response.blob();\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchImageAsBase64(drmEngenharia).then(setImageBase64);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (anexos && anexos.length > 0) {\r\n const loadImagesParallel = async () => {\r\n const loadedAnexos = await Promise.all(\r\n anexos.map(async (anexo) => {\r\n if (isImageUrl(anexo.caminhoAnexo)) {\r\n const base64Image = await fetchImageAsBase64(anexo.caminhoAnexo);\r\n return base64Image ? { ...anexo, base64: base64Image } : null;\r\n }\r\n return null;\r\n })\r\n );\r\n setAnexosCarregadosPrint(loadedAnexos.filter(Boolean));\r\n setAnexosCarregados(true);\r\n };\r\n\r\n loadImagesParallel();\r\n }\r\n }, [anexos]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setReady(true);\r\n }, 1100);\r\n }, []);\r\n\r\n return (\r\n ready && (\r\n <div style={{ width: '100%', height: '100%' }}>\r\n <PDFViewer style={{ width: \"100%\", height: \"100vh\" }}>\r\n <Document width=\"100%\">\r\n <CustomPage orientation=\"landscape\" size=\"A4\" style={styles.page} wrap={true}>\r\n <View style={{ margin: 10 }}>\r\n <View style={[styles.row]} wrap={false}>\r\n {/* Primeira coluna */}\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center' }]}>\r\n <Image src={imageBase64} style={styles.backgroundImage} />\r\n </View>\r\n\r\n {/* Segunda coluna */}\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'end', borderRight: 1 }]}>\r\n <View style={[styles.cellCabecalho, { borderBottom: 0 }]}>\r\n <Text>Diário de Obra</Text>\r\n </View>\r\n </View>\r\n\r\n {/* Terceira coluna */}\r\n <View style={[styles.column, { width: '50%' }]}>\r\n {/* Cabeçalho */}\r\n <View style={[styles.cellCabecalho, { backgroundColor: '#d6d4d4' }]}>\r\n <Text>Dados</Text>\r\n </View>\r\n\r\n {/* Linha 1 - Cliente */}\r\n <View style={styles.cellRow}>\r\n <Text style={[styles.cellLabel, { backgroundColor: '#EBEBEB' }]}>Cliente</Text>\r\n <Text style={styles.cellValue}>{obraDiario?.obra?.orgao?.nome}</Text>\r\n </View>\r\n\r\n {/* Linha 2 - Obra */}\r\n <View style={styles.cellRow}>\r\n <Text style={[styles.cellLabel, { backgroundColor: '#EBEBEB' }]}>Obra</Text>\r\n <Text style={styles.cellValue}>{obraDiario?.obra?.titulo}</Text>\r\n </View>\r\n\r\n {/* Linha 3 - Local */}\r\n <View style={styles.cellRow}>\r\n <Text style={[styles.cellLabel, { backgroundColor: '#EBEBEB' }]}>Local</Text>\r\n <Text style={styles.cellValue}>{obraDiario.obra.endereco || '-'}</Text>\r\n </View>\r\n\r\n {/* Linha 4 - Data */}\r\n <View style={styles.cellLastRow}>\r\n <Text style={[styles.cellLabel, { backgroundColor: '#EBEBEB' }]}>Data</Text>\r\n <Text style={styles.cellValue}>{moment(obraDiario?.data).format(\"DD/MM/YYYY\")}</Text>\r\n </View>\r\n </View>\r\n </View>\r\n\r\n {/* Tempo e equipe */}\r\n <View style={[styles.cellLastCabecalho, { backgroundColor: '#d6d4d4', borderRight: 1, borderLeft: 1 }]}>\r\n <Text>Tempo/Equipe</Text>\r\n </View>\r\n\r\n {/* Início da tabela de tempo e equipe */}\r\n <View style={[styles.row]}>\r\n {/* Primeira coluna */}\r\n <View style={[styles.column, { width: '25%', backgroundColor: '#d6d4d4', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>Tempo</Text>\r\n </View>\r\n </View>\r\n {/* Segunda coluna */}\r\n <View style={[styles.column, { width: '75%', justifyContent: 'center', alignItems: 'end' }]}>\r\n <View style={[styles.cellLastCabecalho, { backgroundColor: '#d6d4d4' }]}>\r\n <Text>Equipe</Text>\r\n </View>\r\n </View>\r\n </View>\r\n <View style={[styles.row]}>\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>{obraDiario?.condicaoClimatica == OBRA_DIARIO_CONDICAO_CLIMATICA.SOL ? 'SOL' :\r\n obraDiario?.condicaoClimatica == OBRA_DIARIO_CONDICAO_CLIMATICA.NUBLADO ? 'NUBLADO' :\r\n 'CHUVA'}</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '37.5%', justifyContent: 'center', alignItems: 'end' }]}>\r\n <View style={[styles.cellLastCabecalho, { borderRight: 1, backgroundColor: '#EBEBEB' }]}>\r\n <Text>Cargo</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '37.5%', justifyContent: 'center', alignItems: 'end' }]}>\r\n <View style={[styles.cellLastCabecalho, { backgroundColor: '#EBEBEB' }]}>\r\n <Text>Nome</Text>\r\n </View>\r\n </View>\r\n </View>\r\n {equipes && equipes.length > 0 ? equipes?.map((equipe, index) => (\r\n <View key={equipe.id} style={[styles.row]}>\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text></Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '37.5%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalhoAlignLeft]}>\r\n <Text>{equipe?.cargo}</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '37.5%', justifyContent: 'center', alignItems: 'end' }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>{equipe?.usuario}</Text>\r\n </View>\r\n </View>\r\n </View>\r\n )) :\r\n <View key={`nenhuma-equipe`} style={[styles.row]}>\r\n <View style={[styles.column, { width: '100%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>Nenhum registro para ser exibido</Text>\r\n </View>\r\n </View>\r\n </View>\r\n }\r\n <View style={[styles.row]}>\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalhoAlignLeft]}>\r\n <Text>Prazo: {obraDiario?.obra?.obrasOrcamentos[0]?.diasPrazo} dias</Text>\r\n </View>\r\n </View>\r\n </View>\r\n <View style={[styles.row]}>\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalhoAlignLeft]}>\r\n <Text>Início: {moment(obraDiario.obra.dataInicio).format(\"DD/MM/YYYY\")}</Text>\r\n </View>\r\n </View>\r\n </View>\r\n <View style={[styles.row]}>\r\n <View style={[styles.column, { width: '25%', justifyContent: 'center', alignItems: 'center', borderRight: 1 }]}>\r\n <View style={[styles.cellLastCabecalhoAlignLeft]}>\r\n <Text>Término: {moment(obraDiario.obra.dataTermino).format(\"DD/MM/YYYY\")}</Text>\r\n </View>\r\n </View>\r\n </View>\r\n <View style={[styles.row, { justifyContent: 'center', alignItems: 'center', backgroundColor: '#EBEBEB' }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>Registros (observações)</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.row, { justifyContent: 'center', alignItems: 'center' }]}>\r\n <View style={[styles.cellLastCabecalhoAlignLeft]}>\r\n <Text>{obraDiario?.observacoes}</Text>\r\n </View>\r\n </View>\r\n\r\n {/* Fotos */}\r\n <View wrap={false}>\r\n <View style={[styles.row, { justifyContent: 'center', alignItems: 'center', backgroundColor: '#EBEBEB', marginTop: 5 }]}>\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>Fotos/Croqui</Text>\r\n </View>\r\n </View>\r\n {/* Só imprime anexos que forem em formato de imagem*/}\r\n <View style={[styles.row, { justifyContent: 'center', alignItems: 'center' }]}>\r\n <View wrap={false} style={[styles.content, { flex: 1, borderRightWidth: 1, borderRightColor: '#000', borderRightStyle: 'solid' }]}>\r\n {anexosCarregados && anexosCarregadosPrint && anexosCarregadosPrint.length > 0 ?\r\n <View style={{ flexDirection: 'row', flexWrap: 'wrap', padding: 5 }}>\r\n {anexosCarregadosPrint.map((n, index) => {\r\n return (\r\n n.base64 ? (\r\n <Image key={n.id} src={n.base64} style={[styles.imageAnexo, { margin: 5 }]} wrap={false} />\r\n ) : (\r\n <Text key={index}>Imagem não disponível</Text>\r\n )\r\n )\r\n })}\r\n </View> :\r\n <View style={[styles.cellLastCabecalho]}>\r\n <Text>Nenhum anexo para ser exibido</Text>\r\n </View>\r\n }\r\n </View>\r\n </View>\r\n </View>\r\n <ObraDiarioPrintPdfFooter\r\n responsavelTecnico={obraDiario.responsavelTecnico}\r\n data={obraDiario.data}\r\n />\r\n </View>\r\n </CustomPage>\r\n </Document>\r\n </PDFViewer >\r\n </div >\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n};\r\n\r\nconst connectedObraDiarioPrintPdfPage = withRouter(connect(mapStateToProps, null, null)(ObraDiarioPrintPdf));\r\nexport { connectedObraDiarioPrintPdfPage as ObraDiarioPrintPdf };\r\n","import React from 'react';\r\nimport { View, Text, StyleSheet } from '@react-18-pdf/renderer';\r\nimport moment from 'moment';\r\n\r\nconst styles = StyleSheet.create({\r\n footer: {\r\n width: '100%',\r\n fontWeight: 'heavy',\r\n marginTop: 30\r\n },\r\n row: {\r\n flexDirection: 'row',\r\n width: '100%',\r\n borderTop: 1,\r\n borderBottom: 1,\r\n },\r\n column: {\r\n flexDirection: 'column',\r\n },\r\n cellCabecalho: {\r\n padding: 6,\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n borderBottom: 1,\r\n },\r\n});\r\n\r\nconst ObraDiarioPrintPdfFooter = ({ responsavelTecnico, data }) => (\r\n <View style={styles.footer}>\r\n {/* Linha dos Títulos */}\r\n <View style={styles.row}>\r\n <View style={[styles.column, { width: '75%' }]}>\r\n <View style={[styles.cellCabecalho, { borderTop: 1, borderLeft: 1, borderBottom: 0, backgroundColor: '#EBEBEB' }]}>\r\n <Text>Responsável Técnico</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '25%' }]}>\r\n <View style={[styles.cellCabecalho, { borderTop: 1, borderRight: 1, borderBottom: 0, borderLeft: 1, backgroundColor: '#EBEBEB' }]}>\r\n <Text>Data</Text>\r\n </View>\r\n </View>\r\n </View>\r\n\r\n {/* Linha dos Valores */}\r\n <View style={styles.row}>\r\n <View style={[styles.column, { width: '75%' }]}>\r\n <View style={[styles.cellCabecalho, { borderLeft: 1 }]}>\r\n <Text>{responsavelTecnico}</Text>\r\n </View>\r\n </View>\r\n <View style={[styles.column, { width: '25%' }]}>\r\n <View style={[styles.cellCabecalho, { borderLeft: 1, borderRight: 1 }]}>\r\n <Text>{moment(data).format('DD/MM/YYYY')}</Text>\r\n </View>\r\n </View>\r\n </View>\r\n </View>\r\n);\r\n\r\nexport { ObraDiarioPrintPdfFooter };\r\n","import React from 'react'\r\nimport { Route, Switch, Redirect } from 'react-router-dom'\r\nimport { RouteWithLayout } from './components'\r\nimport { PrivateRouteWithLayout } from './components'\r\nimport {\r\n Main as MainLayout,\r\n Minimal as MinimalLayout,\r\n} from './layouts'\r\n\r\nimport {\r\n Bdi as BdiView,\r\n Diario as DiarioView,\r\n CalcMat as CalcMatView,\r\n Error404 as Error404View,\r\n EmailVerification as EmailVerificationView,\r\n Empenho as EmpenhoView,\r\n EmpenhoEdit as EmpenhoEditView,\r\n Empresa as EmpresaView,\r\n EmpresaAnexo as EmpresaAnexoView,\r\n EmpresaEdit as EmpresaEditView,\r\n EmpresaUsuarioEdit as EmpresaUsuarioEditView,\r\n Home as HomeView,\r\n Manual as ManualView,\r\n ManualEdit as ManualEditView,\r\n LinksUteis as LinksUteisView,\r\n Login as LoginView,\r\n Notificacao as NotificacaoView,\r\n NotificacaoEdit as NotificacaoEditView,\r\n Obra as ObraView,\r\n ObraMateriais as ObraMateriaisView,\r\n ObraProjetoTecnico as ObraProjetoTecnicoView,\r\n ObraReparoPrevencao as ObraReparoPrevencaoView,\r\n ObraEdit as ObraEditView,\r\n ObraAguardandoOrcamento as ObraAguardandoOrcamentoView,\r\n ObraCobranca as ObraCobrancaView,\r\n ObraCobrancaEdit as ObraCobrancaEditView,\r\n ObraOrcamento as ObraOrcamentoView,\r\n ObraOrcamentoEdit as ObraOrcamentoEditView,\r\n ObraMedicao as ObraMedicaoView,\r\n ObraMedicaoListObrasEtapasItens as ObraMedicaoListObrasEtapasItensView,\r\n Orgao as OrgaoView,\r\n OrgaoEdit as OrgaoEditView,\r\n OrgaoUsuarioEdit as OrgaoUsuarioEditView,\r\n Parametro as ParametroView,\r\n ParametroEdit as ParametroEditView,\r\n PasswordReset as PasswordResetView,\r\n PasswordResetSuccess as PasswordResetSuccessView,\r\n PoliticaPrivacidade as PoliticaPrivacidadeView,\r\n MapaPublico as MapaPublicoView,\r\n RelatorioOcorrenciaObra as RelatorioOcorrenciaObraView,\r\n RelatorioOcorrenciaObraPrint as RelatorioOcorrenciaObraPrintView,\r\n RelatorioEmpresaOrcamentoEnviado as RelatorioEmpresaOrcamentoEnviadoView,\r\n RelatorioEmpresaOrcamentoEnviadoPrint as RelatorioEmpresaOrcamentoEnviadoPrintView,\r\n RelatorioEmpresaPorOrgao as RelatorioEmpresaPorOrgaoView,\r\n RelatorioEmpresaPorOrgaoPrint as RelatorioEmpresaPorOrgaoPrintView,\r\n RelatorioEmpresaPorTipoServico as RelatorioEmpresaPorTipoServicoView,\r\n RelatorioEmpresaPorTipoServicoPrint as RelatorioEmpresaPorTipoServicoPrintView,\r\n RelatorioUsuarios as RelatorioUsuariosView,\r\n RelatorioUsuariosPrint as RelatorioUsuariosPrintView,\r\n SubOrgao as SubOrgaoView,\r\n SubOrgaoEdit as SubOrgaoEditView,\r\n Dashboard as DashboardView,\r\n Usuario as UsuarioView,\r\n UsuarioEdit as UsuarioEditView\r\n} from './views'\r\nimport { ObraDiarioPrintPdf as ObraDiarioPrintPdfView } from './views/Obras/ObrasDiarios'\r\n\r\nconst Routes = () => {\r\n return (\r\n <Switch>\r\n <PrivateRouteWithLayout\r\n component={DashboardView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/dashboard\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={DashboardView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ManualView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/manuais\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ManualEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/manual\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ManualEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/manual/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={SubOrgaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/subOrgaos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={SubOrgaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/subOrgao\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={SubOrgaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/subOrgao/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={NotificacaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/notificacoes\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={NotificacaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/notificacao\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={NotificacaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/notificacao/:id\"\r\n />\r\n <Route\r\n component={PoliticaPrivacidadeView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/politica-de-privacidade\"\r\n />\r\n <Route\r\n component={MapaPublicoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/mapa-publico\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={UsuarioView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/usuarios\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={UsuarioEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/usuario\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={UsuarioEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/usuario/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpresaView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empresas\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpresaEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empresa\"\r\n />\r\n <Route\r\n component={EmpresaUsuarioEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empresaCadastro\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpenhoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empenhos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpenhoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empenho\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpenhoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empenho/:id\"\r\n />\r\n <Route\r\n component={OrgaoUsuarioEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/orgaoCadastro\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpresaEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empresa/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraDiarioPrintPdfView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obraDiarioPrintPdf\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={OrgaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/orgaos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={OrgaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/orgao\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={OrgaoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/orgao/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ParametroView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/parametros\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ParametroEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/parametro\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ParametroEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/parametro/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioOcorrenciaObraView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioOcorrenciasObra\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioOcorrenciaObraPrintView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioOcorrenciasObraPrint\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaOrcamentoEnviadoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresasOrcamentosEnviados\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaOrcamentoEnviadoPrintView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresasOrcamentosEnviadosPrint\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaPorOrgaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresasPorOrgao\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaPorOrgaoPrintView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresaPorOrgaoPrint\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaPorTipoServicoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresasPorTipoServico\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioEmpresaPorTipoServicoPrintView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioEmpresaPorTipoServicoPrint\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioUsuariosView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioUsuarios\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={RelatorioUsuariosPrintView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/relatorioUsuariosPrint\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obras\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraMateriaisView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/materiais\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraProjetoTecnicoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/projetosTecnicos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraReparoPrevencaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/reparosPrevencoes\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraMedicaoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obrasCronogramas\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={EmpresaAnexoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/empresasAnexos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraMedicaoListObrasEtapasItensView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obrasCronogramasObrasEtapasItens\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraAguardandoOrcamentoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obrasAguardandoOrcamento\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraCobrancaView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obrasCobrancas\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraCobrancaEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obraCobranca/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraCobrancaEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obraCobranca\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obra\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obra/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraOrcamentoView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obrasOrcamentos\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraOrcamentoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obraOrcamento\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={ObraOrcamentoEditView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/obraOrcamento/:id\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={BdiView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/bdi\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={DiarioView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/diario\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={LinksUteisView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/links-uteis\"\r\n />\r\n <PrivateRouteWithLayout\r\n component={CalcMatView}\r\n exact\r\n layout={MainLayout}\r\n path=\"/calcMat\"\r\n />\r\n <Route component={LoginView} exact path=\"/login\" />\r\n <Route\r\n component={EmailVerificationView}\r\n exact\r\n path=\"/email-verification\"\r\n />\r\n <Route\r\n component={PasswordResetView}\r\n exact\r\n path=\"/password-reset\"\r\n />\r\n <Route\r\n component={PasswordResetSuccessView}\r\n exact\r\n path=\"/password-reset-success\"\r\n />\r\n <RouteWithLayout\r\n component={Error404View}\r\n exact\r\n layout={MinimalLayout}\r\n path=\"/not-found\"\r\n />\r\n <Redirect to=\"/not-found\" />\r\n </Switch>\r\n )\r\n}\r\n\r\nexport default Routes\r\n","import React, { useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@mui/styles'\r\nimport { Typography } from '@mui/material'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}))\r\n\r\nconst Tawkto = () => {\r\n useEffect(() => {\r\n const s = document.createElement('script');\r\n s.type = 'text/javascript';\r\n s.async = true;\r\n s.src = 'https://embed.tawk.to/64edea4aa91e863a5c1074c2/1h90lmd3d';\r\n s.charset = 'UTF-8';\r\n s.setAttribute('crossorigin', '*');\r\n document.head.appendChild(s);\r\n }, []);\r\n\r\n return (\r\n <div>\r\n {/* O componente pode ser vazio, pois o chat será carregado pelo script */}\r\n </div>\r\n );\r\n}\r\n\r\nTawkto.propTypes = {\r\n className: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n //title: PropTypes.string.isRequired\r\n}\r\n\r\nexport default Tawkto\r\n","import React, { useLayoutEffect } from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { ThemeProvider } from '@mui/styles';\r\nimport { LocalizationProvider } from '@mui/x-date-pickers';\r\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\r\nimport { ConfirmProvider } from 'material-ui-confirm';\r\nimport './App.css';\r\nimport theme from './theme';\r\nimport Routes from './Routes';\r\nimport Mensagens from './components/Utils';\r\nimport { authActions } from './_actions';\r\nimport { useDispatch } from 'react-redux';\r\nimport { history } from './utils';\r\nimport Tawkto from './components/Tawkto';\r\n\r\nconst App = () => {\r\n const dispatch = useDispatch()\r\n\r\n useLayoutEffect(() => {\r\n dispatch(authActions.refresh())\r\n }, [])\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <Tawkto />\r\n <ThemeProvider theme={theme}>\r\n <ConfirmProvider>\r\n <div className=\"App\">\r\n <Mensagens />\r\n </div>\r\n <Router history={history} >\r\n <Routes />\r\n </Router>\r\n </ConfirmProvider>\r\n </ThemeProvider>\r\n </LocalizationProvider>\r\n )\r\n}\r\nexport default App\r\n","let token = localStorage.getItem('token')\r\nlet expires = localStorage.getItem('expires')\r\nlet user = JSON.parse(localStorage.getItem('user'))\r\n\r\nconst initialState = user\r\n ? { refreshed: false, loggedIn: true, token, expires, user }\r\n : {}\r\n\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case 'LOGIN_REQUEST':\r\n return {\r\n ...state,\r\n loggingIn: true,\r\n user: action.user\r\n }\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n loggedIn: true,\r\n loggingIn: false,\r\n user: action.user,\r\n token: action.token,\r\n expires: action.expires\r\n }\r\n case 'LOGIN_FAILURE':\r\n return {}\r\n case 'AUTHENTICATION_REFRESH_REQUEST':\r\n return {\r\n ...state,\r\n refreshed: false,\r\n token: action.token\r\n }\r\n case 'AUTHENTICATION_REFRESH_SUCCESS':\r\n return {\r\n ...state,\r\n loggedIn: true,\r\n refreshed: true,\r\n loggingIn: false,\r\n user: action.user\r\n }\r\n case 'AUTHENTICATION_REFRESH_FAILURE':\r\n return {\r\n ...state,\r\n refreshed: true,\r\n loggedIn: false,\r\n user: null,\r\n token: null,\r\n expires: null\r\n }\r\n case 'VERIFICATION_USER_SUCCESS':\r\n return {\r\n ...state,\r\n user: { ...state.user }\r\n }\r\n case 'EDIT_USER_SUCCESS':\r\n return {\r\n ...state,\r\n user: {\r\n ...state.user,\r\n ...action.user\r\n }\r\n }\r\n case 'UPDATE_USER_DETAILS':\r\n return {\r\n ...state,\r\n user: action.user\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n cidade: [],\r\n open: false,\r\n id: 0,\r\n nome: '',\r\n idEstado: 0,\r\n ibge: '',\r\n estado: null\r\n}\r\n\r\nexport function cidade(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_CIDADE':\r\n return {\r\n ...state,\r\n cidade: action.cidade\r\n }\r\n case 'CIDADE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n idEstado: action.idEstado,\r\n ibge: action.ibge,\r\n estado: action.estado\r\n }\r\n case 'CIDADE_UPDATED':\r\n return state\r\n case 'CIDADE_CLEAR':\r\n return initialState\r\n case 'CIDADE_CLEAR_ALL':\r\n return {\r\n ...state,\r\n cidade: []\r\n }\r\n case 'CIDADE_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n isLoading: false,\r\n convocacao: [],\r\n open: false,\r\n id: 0,\r\n data: '',\r\n observacoes: '',\r\n idEmpresa: 0,\r\n empresa: [],\r\n idObra: 0,\r\n obra: [],\r\n totalRegistros: 0,\r\n aceita: false\r\n}\r\n\r\nexport function convocacao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CONVOCACAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n data: action.data,\r\n observacoes: action.observacoes,\r\n idEmpresa: action.idEmpresa,\r\n empresa: action.empresa,\r\n idObra: action.idObra,\r\n obra: action.obra,\r\n aceita: action.aceita\r\n }\r\n case 'CONVOCACAO_UPDATED':\r\n return state\r\n case 'CONVOCACAO_CLEAR':\r\n return initialState\r\n case 'CONVOCACAO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n convocacao: []\r\n }\r\n case 'FETCHED_ALL_CONVOCACAO':\r\n return {\r\n ...state,\r\n convocacao: action.convocacao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'CONVOCACAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'CONVOCACAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CONVOCACAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n dashboard: {\r\n obrasPendentes: 0,\r\n obrasRecebendoOrcamento: 0,\r\n obrasAprovadaEmAndamento: 0,\r\n obrasRecusadas: 0,\r\n obrasConcluidas: 0,\r\n orcamentosEnviados: 0,\r\n obrasAindaSemOrcamento: 0,\r\n totalAnexosPendentes: 0,\r\n totalObras: 0,\r\n totalUsuarios: 0,\r\n totalEmpresas: 0,\r\n graficoObras: { options: [], series: [] },\r\n graficoObrasPorMes: { options: [], series: [] },\r\n horasRecebimentoOrcamentos: '',\r\n valorTotalEmpenhos: 0,\r\n valorTotalEmpenhosEmAberto: 0,\r\n valorTotalEmpenhosPagos: 0\r\n },\r\n obras: [],\r\n totalObras: 0,\r\n isLoading: false,\r\n isLoadingObrasEmAberto: false,\r\n isLoadingGraficoObras: false\r\n}\r\n\r\nexport function dashboard(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_DASHBOARD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'FETCHED_DASHBOARD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_DASHBOARD_SUCCESS':\r\n return {\r\n ...state,\r\n dashboard: action.dashboard,\r\n isLoading: false\r\n }\r\n case 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_REQUEST':\r\n return {\r\n ...state,\r\n isLoadingGraficoObras: true\r\n }\r\n case 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_SUCCESS':\r\n return {\r\n ...state,\r\n isLoadingGraficoObras: false,\r\n obras: action.obras,\r\n totalObras: action.totalObras\r\n }\r\n case 'FETCHED_DASHBOARD_GRAFICO_ORDENS_SERVICO_FAILURE':\r\n return {\r\n ...state,\r\n isLoadingGraficoObras: false,\r\n error: action.error\r\n }\r\n case 'DASHBOARD_CLEAR':\r\n return initialState\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n estado: [],\r\n open: false,\r\n id: '',\r\n nome: '',\r\n uf: '',\r\n ibge: '',\r\n}\r\n\r\nexport function estado(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_ESTADO':\r\n return {\r\n ...state,\r\n estado: action.estado\r\n }\r\n case 'ESTADO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n uf: action.uf,\r\n ibge: action.ibge,\r\n }\r\n case 'ESTADO_UPDATED':\r\n return state\r\n case 'HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n isLoading: false,\r\n empresa: [],\r\n open: false,\r\n id: 0,\r\n razaoSocial: '',\r\n nomeFantasia: '',\r\n cpf: '',\r\n cnpj: '',\r\n telefone: '',\r\n celular: '',\r\n email: '',\r\n endereco: '',\r\n idCidade: 0,\r\n idEstado: 0,\r\n inscricaoEstadual: '',\r\n informacoesCobranca: '',\r\n usuariosEmpresas: [],\r\n empresasOrgaos: [],\r\n cidade: [],\r\n totalRegistros: 0,\r\n atendeFimDeSemana: false,\r\n servicosUrgencia: false,\r\n fornecedor: false,\r\n autonomo: false,\r\n prestadorServico: false,\r\n projeto: false,\r\n cadastroLiberado: false,\r\n empresasAnexos: [],\r\n empresasCidades: [],\r\n empresasTiposServicos: [],\r\n}\r\n\r\nexport function empresa(state = initialState, action) {\r\n switch (action.type) {\r\n case 'EMPRESA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n razaoSocial: action.razaoSocial,\r\n nomeFantasia: action.nomeFantasia,\r\n cnpj: action.cnpj,\r\n cpf: action.cpf,\r\n telefone: action.telefone,\r\n celular: action.celular,\r\n email: action.email,\r\n endereco: action.endereco,\r\n idCidade: action.idCidade,\r\n idEstado: action.idEstado,\r\n informacoesCobranca: action.informacoesCobranca,\r\n inscricaoEstadual: action.inscricaoEstadual,\r\n usuariosEmpresas: action.usuariosEmpresas,\r\n empresasCidades: action.empresasCidades,\r\n empresasOrgaos: action.empresasOrgaos,\r\n fornecedor: action.fornecedor,\r\n cidade: action.cidade,\r\n prestadorServico: action.prestadorServico,\r\n autonomo: action.autonomo,\r\n projeto: action.projeto,\r\n cadastroLiberado: action.cadastroLiberado,\r\n atendeFimDeSemana: action.atendeFimDeSemana,\r\n servicosUrgencia: action.servicosUrgencia,\r\n empresasAnexos: action.empresasAnexos,\r\n empresasTiposServicos: action.empresasTiposServicos,\r\n }\r\n case 'EMPRESA_UPDATED':\r\n return state\r\n case 'EMPRESA_CLEAR':\r\n return initialState\r\n case 'EMPRESA_CLEAR_ALL':\r\n return {\r\n ...state,\r\n empresa: []\r\n }\r\n case 'EMPRESA_CLEAR_USUARIOS_EMPRESAS':\r\n return {\r\n ...state,\r\n usuariosEmpresas: []\r\n }\r\n case 'EMPRESA_CLEAR_TIPOS_SERVICOS':\r\n return {\r\n ...state,\r\n empresasTiposServicos: []\r\n }\r\n case 'FETCHED_ALL_EMPRESA':\r\n return {\r\n ...state,\r\n empresa: action.empresa,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'EMPRESA_HANDLE_ON_CHANGE':\r\n if ((action.props === 'prestadorServico' || action.props === 'fornecedor') && action.value) {\r\n return {\r\n ...state,\r\n [action.props]: true,\r\n autonomo: false,\r\n projeto: false,\r\n empresasTiposServicos: []\r\n }\r\n } else if (action.props === 'autonomo' && action.value) {\r\n return {\r\n ...state,\r\n autonomo: true,\r\n fornecedor: false,\r\n projeto: false,\r\n prestadorServico: false,\r\n empresasTiposServicos: []\r\n }\r\n } else if (action.props === 'projeto' && action.value) {\r\n return {\r\n ...state,\r\n autonomo: false,\r\n fornecedor: false,\r\n projeto: true,\r\n prestadorServico: false,\r\n empresasTiposServicos: []\r\n }\r\n } else {\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n }\r\n case 'EMPRESA_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EMPRESA_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n empresaAnexo: [],\r\n open: false,\r\n id: 0,\r\n idTipoAnexo: 0,\r\n caminhoAnexo: '',\r\n dataValidade: '',\r\n idEmpresa: 0,\r\n empresa: null,\r\n excluido: false\r\n}\r\n\r\nexport function empresaAnexo(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_EMPRESA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_EMPRESA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.empresaAnexo.id,\r\n isLoading: false,\r\n idTipoAnexo: action.empresaAnexo.idTipoAnexo,\r\n caminhoAnexo: action.empresaAnexo.caminhoAnexo,\r\n dataValidade: action.empresaAnexo.dataValidade,\r\n idEmpresa: action.empresaAnexo.idEmpresa,\r\n empresa: action.empresaAnexo.empresa,\r\n excluido: action.empresaAnexo.excluido,\r\n empresaAnexo: action.empresaAnexo.empresaAnexo\r\n }\r\n case 'CREATE_EMPRESA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_EMPRESA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_EMPRESA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.empresaAnexo.id,\r\n isLoading: false,\r\n idTipoAnexo: action.empresaAnexo.idTipoAnexo,\r\n caminhoAnexo: action.empresaAnexo.caminhoAnexo,\r\n dataValidade: action.empresaAnexo.dataValidade,\r\n idEmpresa: action.empresaAnexo.idEmpresa,\r\n empresa: action.empresaAnexo.empresa,\r\n excluido: action.empresaAnexo.excluido,\r\n empresaAnexo: action.empresaAnexo.empresaAnexo\r\n }\r\n case 'EDIT_EMPRESA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_EMPRESA_ANEXO':\r\n return {\r\n ...state,\r\n empresaAnexo: action.empresaAnexo,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'EMPRESA_ANEXO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n idTipoAnexo: action.idTipoAnexo,\r\n caminhoAnexo: action.caminhoAnexo,\r\n dataValidade: action.dataValidade,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa,\r\n empresaAnexo: action.empresaAnexo\r\n }\r\n case 'EMPRESA_ANEXO_CLEAR':\r\n return initialState\r\n case 'EMPRESA_ANEXO_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0, \r\n idEmpresa: 0,\r\n caminhoAnexo: '',\r\n dataValidade: '',\r\n idTipoAnexo: 0,\r\n empresa: null\r\n }\r\n case 'EMPRESA_ANEXO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n empresaAnexo: [...state.empresaAnexo, action.data.empresaAnexo]\r\n }\r\n case 'EMPRESA_ANEXO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'EMPRESA_ANEXO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EMPRESA_ANEXO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n empresaCidade: [],\r\n id: '',\r\n isLoading: false,\r\n idCidade: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {}\r\n}\r\n\r\nexport function empresaCidade(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_EMPRESA_CIDADE_SUCCESS':\r\n return {\r\n ...state,\r\n idEmpresa: '',\r\n empresaCidade: [\r\n ...state.empresaCidade,\r\n action.empresaCidade\r\n ]\r\n }\r\n case 'FETCHED_ALL_EMPRESA_CIDADE':\r\n return {\r\n ...state,\r\n empresaCidade: action.empresaCidade\r\n }\r\n case 'EMPRESA_CIDADE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idCidade: action.idCidade,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'EMPRESA_CIDADE_UPDATED':\r\n return state\r\n case 'EMPRESA_CIDADE_ADD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EMPRESA_CIDADE_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'EMPRESA_CIDADE_ADD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'EMPRESA_CIDADE_CLEAR':\r\n return initialState\r\n case 'EMPRESA_CIDADE_CLEAR_ALL':\r\n return {\r\n ...state,\r\n empresaCidade: []\r\n }\r\n case 'EMPRESA_CIDADE_CLEAR_SELECTED':\r\n return {\r\n ...state,\r\n id: '',\r\n isLoading: false,\r\n idCidade: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {}\r\n }\r\n case 'CHANGE_DETAILS_EMPRESA_CIDADE':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idCidade: action.idCidade,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'AUTHENTICATION_REFRESH_SUCCESS':\r\n return {\r\n ...state,\r\n empresaCidade: action.user.usuariosEmpresas\r\n }\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n empresaCidade: action.user.usuariosEmpresas\r\n }\r\n case 'OPEN_MODAL_REQUEST_CADASTRO_EMPRESA_CIDADE':\r\n return {\r\n ...state,\r\n openModalCadastroEmpresaCidade: action.open\r\n }\r\n case 'OPEN_MODAL_REQUEST_CADASTRO_TIPO_EMPRESA':\r\n return {\r\n ...state,\r\n openModalCadastroTipoEmpresa: action.open\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n empresaOrgao: [],\r\n id: '',\r\n isLoading: false,\r\n idOrgao: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {}\r\n}\r\n\r\nexport function empresaOrgao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_EMPRESA_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n idEmpresa: '',\r\n empresaOrgao: [\r\n ...state.empresaOrgao,\r\n action.empresaOrgao\r\n ]\r\n }\r\n case 'FETCHED_ALL_EMPRESA_ORGAO':\r\n return {\r\n ...state,\r\n empresaOrgao: action.empresaOrgao\r\n }\r\n case 'EMPRESA_ORGAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idOrgao: action.idOrgao,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'EMPRESA_ORGAO_UPDATED':\r\n return state\r\n case 'EMPRESA_ORGAO_ADD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EMPRESA_ORGAO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'EMPRESA_ORGAO_ADD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'EMPRESA_ORGAO_CLEAR':\r\n return initialState\r\n case 'EMPRESA_ORGAO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n empresaOrgao: []\r\n }\r\n case 'EMPRESA_ORGAO_CLEAR_SELECTED':\r\n return {\r\n ...state,\r\n id: '',\r\n isLoading: false,\r\n idOrgao: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {}\r\n }\r\n case 'CHANGE_DETAILS_EMPRESA_ORGAO':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idOrgao: action.idOrgao,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'AUTHENTICATION_REFRESH_SUCCESS':\r\n return {\r\n ...state,\r\n empresaOrgao: action.user.usuariosEmpresas\r\n }\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n empresaOrgao: action.user.usuariosEmpresas\r\n }\r\n case 'OPEN_MODAL_REQUEST_CADASTRO_EMPRESA_ORGAO':\r\n return {\r\n ...state,\r\n openModalCadastroEmpresaOrgao: action.open\r\n }\r\n case 'OPEN_MODAL_REQUEST_CADASTRO_TIPO_EMPRESA':\r\n return {\r\n ...state,\r\n openModalCadastroTipoEmpresa: action.open\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n usuario: [],\r\n open: false,\r\n id: '',\r\n nome: '',\r\n totalRegistros: 0\r\n}\r\n\r\nexport function insumo(state = initialState, action) {\r\n switch (action.type) { \r\n case 'FETCHED_ALL_INSUMO':\r\n return {\r\n ...state,\r\n insumo: action.insumo,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'INSUMO_CLEAR':\r\n return initialState\r\n case 'INSUMO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'INSUMO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n log: [],\r\n id: 0,\r\n tipo: '',\r\n tabela: '',\r\n chave: '',\r\n id_usuario: 0,\r\n dataHora: '',\r\n campo: '',\r\n valorAntigo: '',\r\n valorNovo: '',\r\n usuario: []\r\n}\r\n\r\nexport function log(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_LOG':\r\n return {\r\n ...state,\r\n log: action.log\r\n }\r\n case 'LOG_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n tipo: action.tipo,\r\n tabela: action.tabela,\r\n chave: action.chave,\r\n id_usuario: action.id_usuario,\r\n dataHora: action.dataHora,\r\n campo: action.campo,\r\n valorAntigo: action.valorAntigo,\r\n valorNovo: action.valorNovo,\r\n usuario: action.usuario\r\n }\r\n case 'LOG_UPDATED':\r\n return state\r\n case 'LOG_CLEAR':\r\n return initialState\r\n case 'LOG_CLEAR_ALL':\r\n return {\r\n ...state,\r\n log: []\r\n }\r\n case 'LOG_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n manual: [],\r\n id: '',\r\n nome: '',\r\n descricao: '',\r\n categoria: 0,\r\n link: '',\r\n tiposUsuariosManuais: [],\r\n excluido: ''\r\n}\r\n\r\nexport function manual(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_MANUAL_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_MANUAL_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.manual.id,\r\n isLoading: false,\r\n nome: action.manual.nome,\r\n descricao: action.manual.descricao,\r\n categoria: action.manual.categoria,\r\n link: action.manual.link,\r\n tiposUsuariosManuais: action.manual.tiposUsuariosManuais,\r\n excluido: action.manual.excluido\r\n }\r\n case 'CREATE_MANUAL_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_MANUAL_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_MANUAL_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.manual.id,\r\n isLoading: false,\r\n nome: action.manual.nome,\r\n descricao: action.manual.descricao,\r\n categoria: action.manual.categoria,\r\n link: action.manual.link,\r\n tiposUsuariosManuais: action.manual.tiposUsuariosManuais,\r\n excluido: action.manual.excluido\r\n }\r\n case 'EDIT_MANUAL_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_MANUAL':\r\n return {\r\n ...state,\r\n manual: action.manual,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'MANUAL_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n nome: action.nome,\r\n descricao: action.descricao,\r\n categoria: action.categoria,\r\n link: action.link,\r\n tiposUsuariosManuais: action.tiposUsuariosManuais,\r\n excluido: action.excluido\r\n }\r\n case 'MANUAL_CLEAR':\r\n return initialState\r\n case 'MANUAL_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'MANUAL_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'MANUAL_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import moment from 'moment'\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n openModalNotificacaoFiltrosItens: false,\r\n openModalNotificacaoTestes: false,\r\n openModalNotificacaoUsuarios: false,\r\n id: 0,\r\n dataHora: moment(new Date()).format('YYYY-MM-DD HH:mm'),\r\n titulo: '',\r\n descricao: '',\r\n caminhoImagem: '',\r\n acao: '',\r\n chave: '',\r\n excluido: false,\r\n notificacoesFiltros: [],\r\n totalNotificacoesUsuarios: 0,\r\n taxaAbertura: 0\r\n}\r\n\r\nexport function notificacao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_NOTIFICACAO':\r\n return {\r\n ...state,\r\n notificacao: action.notificacao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'NOTIFICACAO_DETAIL':\r\n return action.notificacao\r\n case 'NOTIFICACAO_UPDATED':\r\n return state\r\n case 'NOTIFICACAO_CLEAR':\r\n return initialState\r\n case 'NOTIFICACAO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n notificacao: []\r\n }\r\n case 'NOTIFICACAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OPEN_MODAL_NOTIFICACAO_FILTROS_ITENS':\r\n return {\r\n ...state,\r\n openModalNotificacaoFiltrosItens: action.open\r\n }\r\n case 'OPEN_MODAL_NOTIFICACAO_TESTES':\r\n return {\r\n ...state,\r\n openModalNotificacaoTestes: action.open\r\n }\r\n case 'OPEN_MODAL_NOTIFICACAO_USUARIOS':\r\n return {\r\n ...state,\r\n openModalNotificacaoUsuarios: action.open\r\n }\r\n case 'NOTIFICACAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'NOTIFICACAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n id: 0,\r\n idNotificacao: '',\r\n filtro: '',\r\n notificacoesFiltrosItens: []\r\n}\r\n\r\nexport function notificacaoFiltro(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_NOTIFICACAO_FILTRO':\r\n return {\r\n ...state,\r\n notificacaoFiltro: action.notificacaoFiltro,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'NOTIFICACAO_FILTRO_DETAIL':\r\n return action.notificacaoFiltro\r\n case 'NOTIFICACAO_FILTRO_UPDATED':\r\n return state\r\n case 'NOTIFICACAO_FILTRO_CLEAR':\r\n return initialState\r\n case 'NOTIFICACAO_FILTRO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n notificacaoFiltro: []\r\n }\r\n case 'NOTIFICACAO_FILTRO_CLEAR_INFO':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0,\r\n idNotificacao: '',\r\n filtro: '',\r\n }\r\n case 'NOTIFICACAO_FILTRO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'NOTIFICACAO_FILTRO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'NOTIFICACAO_FILTRO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n id: 0,\r\n idNotificacao: '',\r\n idUsuario: '',\r\n usuario: null\r\n}\r\n\r\nexport function notificacaoUsuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_NOTIFICACAO_USUARIO':\r\n return {\r\n ...state,\r\n notificacaoUsuario: action.notificacaoUsuario,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'NOTIFICACAO_USUARIO_DETAIL':\r\n return action.notificacaoUsuario\r\n case 'NOTIFICACAO_USUARIO_UPDATED':\r\n return state\r\n case 'NOTIFICACAO_USUARIO_CLEAR':\r\n return initialState\r\n case 'NOTIFICACAO_USUARIO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n notificacaoUsuario: []\r\n }\r\n case 'NOTIFICACAO_USUARIO_CLEAR_INFO':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0,\r\n idNotificacao: '',\r\n idUsuario: '',\r\n usuario: null\r\n }\r\n case 'NOTIFICACAO_USUARIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'NOTIFICACAO_USUARIO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'NOTIFICACAO_USUARIO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n id: 0,\r\n idNotificacao: '',\r\n idUsuario: '',\r\n usuario: null\r\n}\r\n\r\nexport function notificacaoTeste(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_NOTIFICACAO_TESTE':\r\n return {\r\n ...state,\r\n notificacaoTeste: action.notificacaoTeste,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'NOTIFICACAO_TESTE_DETAIL':\r\n return action.notificacaoTeste\r\n case 'NOTIFICACAO_TESTE_UPDATED':\r\n return state\r\n case 'NOTIFICACAO_TESTE_CLEAR':\r\n return initialState\r\n case 'NOTIFICACAO_TESTE_CLEAR_ALL':\r\n return {\r\n ...state,\r\n notificacaoTeste: []\r\n }\r\n case 'NOTIFICACAO_TESTE_CLEAR_INFO':\r\n return {\r\n ...state,\r\n id: 0,\r\n idNotificacao: '',\r\n idUsuario: '',\r\n usuario: null\r\n }\r\n case 'NOTIFICACAO_TESTE_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n orgao: [],\r\n id: '',\r\n nome: '',\r\n idCidade: 0,\r\n idEstado: '',\r\n excluido: '',\r\n celular: '',\r\n cnpj: '',\r\n email: '',\r\n endereco: '',\r\n telefone: '',\r\n cidade: [],\r\n cadastroLiberado: false,\r\n mapaPublico: true,\r\n naoExigeOrcamentos: false,\r\n usuariosOrgaos: []\r\n}\r\n\r\nexport function orgao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_ORGAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.orgao.id,\r\n isLoading: false,\r\n nome: action.orgao.nome,\r\n celular: action.orgao.celular,\r\n cnpj: action.orgao.cnpj,\r\n email: action.orgao.email,\r\n endereco: action.orgao.endereco,\r\n telefone: action.orgao.telefone,\r\n idCidade: action.orgao.idCidade,\r\n idEstado: action.orgao.idEstado,\r\n cadastroLiberado: action.orgao.cadastroLiberado,\r\n cidade: action.orgao.cidade,\r\n mapaPublico: action.orgao.mapaPublico,\r\n naoExigeOrcamentos: action.orgao.naoExigeOrcamentos,\r\n usuariosOrgaos: action.usuariosOrgaos\r\n }\r\n case 'CREATE_ORGAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_ORGAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.orgao.id,\r\n isLoading: false,\r\n nome: action.orgao.nome,\r\n celular: action.orgao.celular,\r\n cnpj: action.orgao.cnpj,\r\n email: action.orgao.email,\r\n endereco: action.orgao.endereco,\r\n telefone: action.orgao.telefone,\r\n idCidade: action.orgao.idCidade,\r\n idEstado: action.orgao.idEstado,\r\n cidade: action.orgao.cidade,\r\n cadastroLiberado: action.orgao.cadastroLiberado,\r\n mapaPublico: action.orgao.mapaPublico,\r\n naoExigeOrcamentos: action.orgao.naoExigeOrcamentos,\r\n usuariosOrgaos: action.orgao.usuariosOrgaos\r\n }\r\n case 'ORGAO_CLEAR_USUARIOS_ORGAOS':\r\n return {\r\n ...state,\r\n usuariosOrgaos: []\r\n }\r\n case 'EDIT_ORGAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_ORGAO':\r\n return {\r\n ...state,\r\n orgao: action.orgao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'FETCHED_ALL_ORGAO_SELECT':\r\n return {\r\n ...state,\r\n orgao: action.orgao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'ORGAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n nome: action.nome,\r\n celular: action.celular,\r\n cnpj: action.cnpj,\r\n email: action.email,\r\n endereco: action.endereco,\r\n telefone: action.telefone,\r\n idCidade: action.idCidade,\r\n idEstado: action.idEstado,\r\n cadastroLiberado: action.cadastroLiberado,\r\n mapaPublico: action.mapaPublico,\r\n cidade: action.cidade,\r\n naoExigeOrcamentos: action.naoExigeOrcamentos,\r\n usuariosOrgaos: action.usuariosOrgaos\r\n }\r\n case 'ORGAO_CLEAR':\r\n return initialState\r\n case 'ORGAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'ORGAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'ORGAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obra: [],\r\n open: false,\r\n openModalCronograma: false,\r\n id: '',\r\n descritivo: '',\r\n titulo: '',\r\n idUsuario: 0,\r\n idTipoObra: 0,\r\n dataInicio: '',\r\n duracaoObra: 30,\r\n idUsuarioMudancaSituacao: 0,\r\n usuarioMudancaSituacao: [],\r\n dataMudancaSituacao: '',\r\n dataAprovacao: '',\r\n dataTermino: '',\r\n idOrgao: 0,\r\n valorReferencia: 0,\r\n valorReferenciaComBdi: 0,\r\n valorFinal: 0,\r\n idTabelaInsumo: '',\r\n anoTabelaInsumo: '',\r\n mesTabelaInsumo: '',\r\n idEstadoTabelaInsumo: '',\r\n horasRecebimentoOrcamentos: 0,\r\n onerado: false,\r\n urgencia: false,\r\n credenciamento: false,\r\n latitude: '',\r\n longitude: '',\r\n endereco: '',\r\n bdi: '',\r\n ultimoEvento: null,\r\n caminhoImagem: '',\r\n motivoExclusao: '',\r\n motivoMudancaHorasRecebimentoOrcamentos: '',\r\n tipoObra: [],\r\n orgao: [],\r\n idSubOrgao: 0,\r\n empresa: [],\r\n veiculo: [],\r\n usuario: [],\r\n eventos: [],\r\n obrasAnexos: [],\r\n obrasEtapas: [],\r\n obrasOrcamentos: [],\r\n obrasCobrancas: [],\r\n obrasAvaliacoes: [],\r\n obrasCoordenadas: [],\r\n tabelaInsumo: [],\r\n estadoTabelaInsumo: [],\r\n obrasEmpenhos: [],\r\n percentualConclusaoObra: 0,\r\n percentualObraOrcamentosPagos: 0,\r\n graficoEvolucaoObra: { options: [], series: [] }\r\n}\r\n\r\nexport function obra(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obra.id,\r\n isLoading: false,\r\n descritivo: action.obra.descritivo,\r\n titulo: action.obra.titulo,\r\n idUsuario: action.obra.idUsuario,\r\n idTipoObra: action.obra.idTipoObra,\r\n dataInicio: action.obra.dataInicio,\r\n dataTermino: action.obra.dataTermino,\r\n dataAprovacao: action.obra.dataAprovacao,\r\n idOrgao: action.obra.idOrgao,\r\n valorReferencia: action.obra.valorReferencia,\r\n valorReferenciaComBdi: action.obra.valorReferenciaComBdi,\r\n valorFinal: action.obra.valorFinal,\r\n idTabelaInsumo: action.obra.idTabelaInsumo,\r\n anoTabelaInsumo: action.obra.anoTabelaInsumo,\r\n mesTabelaInsumo: action.obra.mesTabelaInsumo,\r\n idEstadoTabelaInsumo: action.obra.idEstadoTabelaInsumo,\r\n horasRecebimentoOrcamentos: action.obra.horasRecebimentoOrcamentos,\r\n caminhoImagem: action.obra.caminhoImagem,\r\n onerado: action.obra.onerado,\r\n credenciamento: action.obra.credenciamento,\r\n urgencia: action.obra.urgencia,\r\n latitude: action.obra.latitude,\r\n longitude: action.obra.longitude,\r\n bdi: action.obra.bdi,\r\n ultimoEvento: action.obra.ultimoEvento,\r\n tipoObra: action.obra.tipoObra,\r\n orgao: action.obra.orgao,\r\n idSubOrgao: action.obra.idSubOrgao,\r\n empresa: action.obra.empresa,\r\n eventos: action.obra.eventos,\r\n usuario: action.obra.usuario,\r\n idUsuarioMudancaSituacao: action.obra.idUsuarioMudancaSituacao,\r\n usuarioMudancaSituacao: action.obra.usuarioMudancaSituacao,\r\n dataMudancaSituacao: action.obra.dataMudancaSituacao,\r\n veiculo: action.obra.veiculo,\r\n motivoExclusao: action.obra.motivoExclusao,\r\n motivoMudancaHorasRecebimentoOrcamentos: action.obra.motivoMudancaHorasRecebimentoOrcamentos,\r\n obrasEtapas: action.obra.obrasEtapas,\r\n obrasAnexos: action.obra.obrasAnexos,\r\n obrasOrcamentos: action.obra.obrasOrcamentos,\r\n obrasCobrancas: action.obra.obrasCobrancas,\r\n obrasCoordenadas: action.obra.obrasCoordenadas,\r\n obrasEmpenhos: action.obra.obrasEmpenhos,\r\n tabelaInsumo: action.obra.tabelaInsumo,\r\n estadoTabelaInsumo: action.obra.estadoTabelaInsumo,\r\n percentualConclusaoObra: action.obra.percentualConclusaoObra,\r\n obrasAvaliacoes: action.obra.obrasAvaliacoes,\r\n percentualObraOrcamentosPagos: action.obra.percentualObraOrcamentosPagos,\r\n graficoEvolucaoObra: action.obra.graficoEvolucaoObra\r\n }\r\n case 'GRAFICO_EVOLUCAO_OBRA_DETAIL':\r\n return {\r\n ...state,\r\n graficoEvolucaoObra: action.graficoEvolucaoObra\r\n };\r\n case 'CREATE_OBRA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obra.id,\r\n isLoading: false,\r\n descritivo: action.obra.descritivo,\r\n titulo: action.obra.titulo,\r\n idUsuario: action.obra.idUsuario,\r\n idTipoObra: action.obra.idTipoObra,\r\n dataInicio: action.obra.dataInicio,\r\n dataTermino: action.obra.dataTermino,\r\n idOrgao: action.obra.idOrgao,\r\n valorReferencia: action.obra.valorReferencia,\r\n valorReferenciaComBdi: action.obra.valorReferenciaComBdi,\r\n valorFinal: action.obra.valorFinal,\r\n idTabelaInsumo: action.obra.idTabelaInsumo,\r\n anoTabelaInsumo: action.obra.anoTabelaInsumo,\r\n mesTabelaInsumo: action.obra.mesTabelaInsumo,\r\n onerado: action.obra.onerado,\r\n credenciamento: action.obra.credenciamento,\r\n urgencia: action.obra.urgencia,\r\n idEstadoTabelaInsumo: action.obra.idEstadoTabelaInsumo,\r\n horasRecebimentoOrcamentos: action.obra.horasRecebimentoOrcamentos,\r\n caminhoImagem: action.obra.caminhoImagem,\r\n latitude: action.obra.latitude,\r\n longitude: action.obra.longitude,\r\n bdi: action.obra.bdi,\r\n ultimoEvento: action.obra.ultimoEvento,\r\n tipoObra: action.obra.tipoObra,\r\n orgao: action.obra.orgao,\r\n idSubOrgao: action.obra.idSubOrgao,\r\n empresa: action.obra.empresa,\r\n eventos: action.obra.eventos,\r\n usuario: action.obra.usuario,\r\n motivoExclusao: action.obra.motivoExclusao,\r\n motivoMudancaHorasRecebimentoOrcamentos: action.obra.motivoMudancaHorasRecebimentoOrcamentos,\r\n idUsuarioMudancaSituacao: action.obra.idUsuarioMudancaSituacao,\r\n usuarioMudancaSituacao: action.obra.usuarioMudancaSituacao,\r\n dataMudancaSituacao: action.obra.dataMudancaSituacao,\r\n dataAprovacao: action.obra.dataAprovacao,\r\n veiculo: action.obra.veiculo,\r\n obrasAnexos: action.obra.obrasAnexos,\r\n obrasEtapas: action.obra.obrasEtapas,\r\n obrasCoordenadas: action.obra.obrasCoordenadas,\r\n obrasOrcamentos: action.obra.obrasOrcamentos,\r\n obrasEmpenhos: action.obra.obrasEmpenhos,\r\n obrasCobrancas: action.obra.obrasCobrancas,\r\n tabelaInsumo: action.obra.tabelaInsumo,\r\n estadoTabelaInsumo: action.obra.estadoTabelaInsumo,\r\n percentualConclusaoObra: action.obra.percentualConclusaoObra,\r\n obrasAvaliacoes: action.obra.obrasAvaliacoes,\r\n percentualObraOrcamentosPagos: action.obra.percentualObraOrcamentosPagos,\r\n graficoEvolucaoObra: action.obra.graficoEvolucaoObra\r\n }\r\n case 'EDIT_OBRA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA':\r\n return {\r\n ...state,\r\n obra: action.obra,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n descritivo: action.descritivo,\r\n titulo: action.titulo,\r\n idUsuario: action.idUsuario,\r\n idTipoObra: action.idTipoObra,\r\n dataInicio: action.dataInicio,\r\n dataTermino: action.dataTermino,\r\n dataAprovacao: action.dataAprovacao,\r\n idOrgao: action.idOrgao,\r\n valorReferencia: action.valorReferencia,\r\n valorReferenciaComBdi: action.valorReferenciaComBdi,\r\n valorFinal: action.valorFinal,\r\n idTabelaInsumo: action.idTabelaInsumo,\r\n anoTabelaInsumo: action.anoTabelaInsumo,\r\n mesTabelaInsumo: action.mesTabelaInsumo,\r\n onerado: action.onerado,\r\n credenciamento: action.credenciamento,\r\n urgencia: action.urgencia,\r\n idEstadoTabelaInsumo: action.idEstadoTabelaInsumo,\r\n horasRecebimentoOrcamentos: action.horasRecebimentoOrcamentos,\r\n caminhoImagem: action.caminhoImagem,\r\n latitude: action.latitude,\r\n longitude: action.longitude,\r\n bdi: action.bdi,\r\n ultimoEvento: action.ultimoEvento,\r\n tipoObra: action.tipoObra,\r\n orgao: action.orgao,\r\n idSubOrgao: action.idSubOrgao,\r\n empresa: action.empresa,\r\n eventos: action.eventos,\r\n usuario: action.usuario,\r\n motivoExclusao: action.motivoExclusao,\r\n motivoMudancaHorasRecebimentoOrcamentos: action.motivoMudancaHorasRecebimentoOrcamentos,\r\n idUsuarioMudancaSituacao: action.idUsuarioMudancaSituacao,\r\n usuarioMudancaSituacao: action.usuarioMudancaSituacao,\r\n dataMudancaSituacao: action.dataMudancaSituacao,\r\n veiculo: action.veiculo,\r\n obrasAnexos: action.obrasAnexos,\r\n obrasEtapas: action.obrasEtapas,\r\n obrasOrcamentos: action.obrasOrcamentos,\r\n obrasCoordenadas: action.obrasCoordenadas,\r\n obrasCobrancas: action.obrasCobrancas,\r\n obrasEmpenhos: action.obrasEmpenhos,\r\n tabelaInsumo: action.tabelaInsumo,\r\n estadoTabelaInsumo: action.estadoTabelaInsumo,\r\n percentualConclusaoObra: action.percentualConclusaoObra,\r\n obrasAvaliacoes: action.obrasAvaliacoes,\r\n percentualObraOrcamentosPagos: action.percentualObraOrcamentosPagos,\r\n graficoEvolucaoObra: action.graficoEvolucaoObra\r\n }\r\n case 'OBRA_CLEAR':\r\n return initialState\r\n case 'OBRA_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obra: [...state.obra, action.data.obra]\r\n }\r\n case 'OBRA_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'OBRA_HANDLE_MODAL_CADASTRO':\r\n return {\r\n ...state,\r\n openModalCronograma: !state.openModalCronograma\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraAnexo: [],\r\n open: false,\r\n id: 0,\r\n idTipoAnexo: 0,\r\n caminhoAnexo: '',\r\n idObra: 0,\r\n obra: null,\r\n excluido: false\r\n}\r\n\r\nexport function obraAnexo(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraAnexo.id,\r\n isLoading: false,\r\n idTipoAnexo: action.obraAnexo.idTipoAnexo,\r\n caminhoAnexo: action.obraAnexo.caminhoAnexo,\r\n idObra: action.obraAnexo.idObra,\r\n obra: action.obraAnexo.obra,\r\n excluido: action.obraAnexo.excluido,\r\n obraAnexo: action.obraAnexo.obraAnexo\r\n }\r\n case 'CREATE_OBRA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraAnexo.id,\r\n isLoading: false,\r\n idTipoAnexo: action.obraAnexo.idTipoAnexo,\r\n caminhoAnexo: action.obraAnexo.caminhoAnexo,\r\n idObra: action.obraAnexo.idObra,\r\n obra: action.obraAnexo.obra,\r\n excluido: action.obraAnexo.excluido,\r\n obraAnexo: action.obraAnexo.obraAnexo\r\n }\r\n case 'EDIT_OBRA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_ANEXO':\r\n return {\r\n ...state,\r\n obraAnexo: action.obraAnexo,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_ANEXO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n idTipoAnexo: action.idTipoAnexo,\r\n caminhoAnexo: action.caminhoAnexo,\r\n idObra: action.idObra,\r\n excluido: action.excluido,\r\n obra: action.obra,\r\n obraAnexo: action.obraAnexo\r\n }\r\n case 'OBRA_ANEXO_CLEAR':\r\n return initialState\r\n case 'OBRA_ANEXO_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0, \r\n idObra: 0,\r\n caminhoAnexo: '',\r\n idTipoAnexo: 0,\r\n obra: null\r\n }\r\n case 'OBRA_ANEXO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraAnexo: [...state.obraAnexo, action.data.obraAnexo]\r\n }\r\n case 'OBRA_ANEXO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ANEXO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_ANEXO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraAvaliacao: [],\r\n open: false,\r\n id: 0,\r\n descricao: '',\r\n idObra: 0,\r\n idOrgao: 0,\r\n idEmpresa: 0,\r\n nota: 0,\r\n obra: null,\r\n excluido: false\r\n}\r\n\r\nexport function obraAvaliacao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_AVALIACAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_AVALIACAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraAvaliacao.id,\r\n isLoading: false,\r\n descricao: action.obraAvaliacao.descricao,\r\n nota: action.obraAvaliacao.nota,\r\n idObra: action.obraAvaliacao.idObra,\r\n idOrgao: action.obraAvaliacao.idOrgao,\r\n idEmpresa: action.obraAvaliacao.idEmpresa,\r\n obra: action.obraAvaliacao.obra,\r\n excluido: action.obraAvaliacao.excluido,\r\n obraAvaliacao: action.obraAvaliacao.obraAvaliacao\r\n }\r\n case 'CREATE_OBRA_AVALIACAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_AVALIACAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_AVALIACAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraAvaliacao.id,\r\n isLoading: false,\r\n nota: action.obraAvaliacao.nota,\r\n descricao: action.obraAvaliacao.descricao,\r\n idObra: action.obraAvaliacao.idObra,\r\n idOrgao: action.obraAvaliacao.idOrgao,\r\n idEmpresa: action.obraAvaliacao.idEmpresa,\r\n obra: action.obraAvaliacao.obra,\r\n excluido: action.obraAvaliacao.excluido,\r\n obraAvaliacao: action.obraAvaliacao.obraAvaliacao\r\n }\r\n case 'EDIT_OBRA_AVALIACAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_AVALIACAO':\r\n return {\r\n ...state,\r\n obraAvaliacao: action.obraAvaliacao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_AVALIACAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n nota: action.nota,\r\n descricao: action.descricao,\r\n idObra: action.idObra,\r\n idOrgao: action.idOrgao,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n obra: action.obra,\r\n obraAvaliacao: action.obraAvaliacao\r\n }\r\n case 'OBRA_AVALIACAO_CLEAR':\r\n return initialState\r\n case 'OBRA_AVALIACAO_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0, \r\n idObra: 0,\r\n descricao: '',\r\n idOrgao: 0,\r\n idEmpresa: 0,\r\n nota: 0,\r\n obra: null\r\n }\r\n case 'OBRA_AVALIACAO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraAvaliacao: [...state.obraAvaliacao, action.data.obraAvaliacao]\r\n }\r\n case 'OBRA_AVALIACAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_AVALIACAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_AVALIACAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraDiario: [],\r\n id: '',\r\n idObra: 0,\r\n idEmpresa: 0,\r\n data: '',\r\n condicaoClimatica: '',\r\n observacoes: '',\r\n responsavelTecnico: '',\r\n obra: [],\r\n empresa: [],\r\n obrasDiariosAnexos: [],\r\n obrasDiariosEquipes: []\r\n}\r\n\r\nexport function obraDiario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_DIARIO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_DIARIO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraDiario.id,\r\n isLoading: false,\r\n idObra: action.obraDiario.idObra,\r\n idEmpresa: action.obraDiario.idEmpresa,\r\n data: action.obraDiario.data,\r\n condicaoClimatica: action.obraDiario.condicaoClimatica,\r\n observacoes: action.obraDiario.observacoes,\r\n responsavelTecnico: action.obraDiario.responsavelTecnico,\r\n obra: action.obraDiario.obra,\r\n empresa: action.obraDiario.empresa,\r\n obrasDiariosAnexos: action.obraDiario.obrasDiariosAnexos,\r\n obrasDiariosEquipes: action.obraDiario.obrasDiariosEquipes\r\n }\r\n case 'CREATE_OBRA_DIARIO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_DIARIO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_DIARIO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraDiario.id,\r\n isLoading: false,\r\n idObra: action.obraDiario.idObra,\r\n idEmpresa: action.obraDiario.idEmpresa,\r\n data: action.obraDiario.data,\r\n condicaoClimatica: action.obraDiario.condicaoClimatica,\r\n responsavelTecnico: action.obraDiario.responsavelTecnico,\r\n obra: action.obraDiario.obra,\r\n empresa: action.obraDiario.empresa,\r\n obrasDiariosAnexos: action.obraDiario.obrasDiariosAnexos,\r\n obrasDiariosEquipes: action.obraDiario.obrasDiariosEquipes\r\n }\r\n case 'EDIT_OBRA_DIARIO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_DIARIO':\r\n return {\r\n ...state,\r\n obraDiario: action.obraDiario,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_DIARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n idObra: action.idObra,\r\n idEmpresa: action.idEmpresa,\r\n data: action.data,\r\n condicaoClimatica: action.condicaoClimatica,\r\n responsavelTecnico: action.responsavelTecnico,\r\n obra: action.obra,\r\n empresa: action.empresa,\r\n obrasDiariosAnexos: action.obrasDiariosAnexos,\r\n obrasDiariosEquipes: action.obrasDiariosEquipes\r\n }\r\n case 'OBRA_DIARIO_CLEAR':\r\n return initialState\r\n case 'OBRA_DIARIO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraDiario: [...state.obraDiario, action.data.obraDiario]\r\n }\r\n case 'OBRA_DIARIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_DIARIO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_DIARIO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n empenho: [],\r\n id: '',\r\n caminhoArquivo: '',\r\n caminhoNotaFiscal: '',\r\n idOrgao: 0,\r\n dataCadastro: '',\r\n dataPagamento: '',\r\n orgao: '',\r\n idEmpresa: 0,\r\n empresa: [],\r\n obrasEmpenhos: [],\r\n excluido: ''\r\n}\r\n\r\nexport function empenho(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_EMPENHO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_EMPENHO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.empenho.id,\r\n isLoading: false,\r\n caminhoArquivo: action.empenho.caminhoArquivo,\r\n caminhoNotaFiscal: action.empenho.caminhoNotaFiscal,\r\n idOrgao: action.empenho.idOrgao,\r\n dataCadastro: action.empenho.dataCadastro,\r\n dataPagamento: action.empenho.dataPagamento,\r\n orgao: action.empenho.orgao,\r\n idEmpresa: action.empenho.idEmpresa,\r\n empresa: action.empenho.empresa,\r\n obrasEmpenhos: action.empenho.obrasEmpenhos,\r\n excluido: action.empenho.excluido\r\n }\r\n case 'CREATE_EMPENHO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_EMPENHO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_EMPENHO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.empenho.id,\r\n isLoading: false,\r\n caminhoArquivo: action.empenho.caminhoArquivo,\r\n caminhoNotaFiscal: action.empenho.caminhoNotaFiscal,\r\n idOrgao: action.empenho.idOrgao,\r\n dataCadastro: action.empenho.dataCadastro,\r\n dataPagamento: action.empenho.dataPagamento,\r\n orgao: action.empenho.orgao,\r\n idEmpresa: action.empenho.idEmpresa,\r\n empresa: action.empenho.empresa,\r\n obrasEmpenhos: action.empenho.obrasEmpenhos,\r\n excluido: action.empenho.excluido\r\n }\r\n case 'EDIT_EMPENHO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_EMPENHO':\r\n return {\r\n ...state,\r\n empenho: action.empenho,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'EMPENHO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n caminhoArquivo: action.caminhoArquivo,\r\n caminhoNotaFiscal: action.caminhoNotaFiscal,\r\n idOrgao: action.idOrgao,\r\n dataCadastro: action.dataCadastro,\r\n dataPagamento: action.dataPagamento,\r\n orgao: action.orgao,\r\n idEmpresa: action.idEmpresa,\r\n empresa: action.empresa,\r\n obrasEmpenhos: action.obrasEmpenhos,\r\n excluido: action.excluido\r\n }\r\n case 'EMPENHO_CLEAR':\r\n return initialState\r\n case 'EMPENHO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'EMPENHO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EMPENHO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraCobranca: [],\r\n open: false,\r\n id: 0,\r\n dataCobranca: '',\r\n dataPagamento: '',\r\n idEmpresa: 0,\r\n caminhoNota: '',\r\n empresa: [],\r\n obra: [],\r\n obrasMedicoesCobrancas: [],\r\n valor: ''\r\n}\r\n\r\nexport function obraCobranca(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_COBRANCA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_COBRANCA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraCobranca.id,\r\n isLoading: false,\r\n dataCobranca: action.obraCobranca.dataCobranca,\r\n dataPagamento: action.obraCobranca.dataPagamento,\r\n idEmpresa: action.obraCobranca.idEmpresa,\r\n caminhoNota: action.obraCobranca.caminhoNota,\r\n empresa: action.obraCobranca.empresa,\r\n obra: action.obraCobranca.obra,\r\n obrasMedicoesCobrancas: action.obraCobranca.obrasMedicoesCobrancas,\r\n valor: action.obraCobranca.valor\r\n }\r\n case 'CREATE_OBRA_COBRANCA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_COBRANCA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_COBRANCA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraCobranca.id,\r\n isLoading: false,\r\n dataCobranca: action.obraCobranca.dataCobranca,\r\n dataPagamento: action.obraCobranca.dataPagamento,\r\n idEmpresa: action.obraCobranca.idEmpresa,\r\n caminhoNota: action.obraCobranca.caminhoNota,\r\n empresa: action.obraCobranca.empresa,\r\n obra: action.obraCobranca.obra,\r\n obrasMedicoesCobrancas: action.obraCobranca.obrasMedicoesCobrancas,\r\n valor: action.obraCobranca.valor\r\n }\r\n case 'EDIT_OBRA_COBRANCA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_COBRANCA':\r\n return {\r\n ...state,\r\n obraCobranca: action.obraCobranca,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_COBRANCA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n dataCobranca: action.dataCobranca,\r\n dataPagamento: action.dataPagamento,\r\n idEmpresa: action.idEmpresa,\r\n caminhoNota: action.caminhoNota,\r\n empresa: action.empresa,\r\n obra: action.obra,\r\n obrasMedicoesCobrancas: action.obrasMedicoesCobrancas,\r\n valor: action.valor\r\n }\r\n case 'OBRA_COBRANCA_CLEAR':\r\n return initialState\r\n case 'OBRA_COBRANCA_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n id: 0,\r\n isLoading: false,\r\n dataCobranca: '',\r\n dataPagamento: '',\r\n idEmpresa: 0,\r\n caminhoNota: '',\r\n empresa: [],\r\n obra: [],\r\n obrasMedicoesCobrancas: [],\r\n valor: ''\r\n }\r\n case 'OBRA_COBRANCA_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraCobranca: [...state.obraCobranca, action.data.obraCobranca]\r\n }\r\n case 'OBRA_COBRANCA_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_COBRANCA_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_COBRANCA_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraCoordenada: [],\r\n open: false,\r\n id: 0,\r\n indice: 0,\r\n idObra: 0,\r\n obra: null,\r\n latitude: '',\r\n longitude: '',\r\n endereco: '',\r\n excluido: false\r\n}\r\n\r\nexport function obraCoordenada(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_COORDENADA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_COORDENADA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraCoordenada.id,\r\n isLoading: false,\r\n indice: action.obraCoordenada.indice,\r\n idObra: action.obraCoordenada.idObra,\r\n obra: action.obraCoordenada.obra,\r\n latitude: action.obraCoordenada.latitude,\r\n longitude: action.obraCoordenada.longitude,\r\n endereco: action.obraCoordenada.endereco,\r\n excluido: action.obraCoordenada.excluido,\r\n obraCoordenada: action.obraCoordenada.obraCoordenada\r\n }\r\n case 'CREATE_OBRA_COORDENADA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_COORDENADA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_COORDENADA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraCoordenada.id,\r\n isLoading: false,\r\n indice: action.obraCoordenada.indice,\r\n idObra: action.obraCoordenada.idObra,\r\n obra: action.obraCoordenada.obra,\r\n latitude: action.obraCoordenada.latitude,\r\n longitude: action.obraCoordenada.longitude,\r\n endereco: action.obraCoordenada.endereco,\r\n excluido: action.obraCoordenada.excluido,\r\n obraCoordenada: action.obraCoordenada.obraCoordenada\r\n }\r\n case 'EDIT_OBRA_COORDENADA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_COORDENADA':\r\n return {\r\n ...state,\r\n obraCoordenada: action.obraCoordenada,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_COORDENADA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n indice: action.indice,\r\n idObra: action.idObra,\r\n obra: action.obra,\r\n latitude: action.latitude,\r\n longitude: action.longitude,\r\n endereco: action.endereco,\r\n excluido: action.excluido,\r\n obraCoordenada: action.obraCoordenada\r\n }\r\n case 'OBRA_COORDENADA_CLEAR':\r\n return initialState\r\n case 'OBRA_COORDENADA_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n id: 0, \r\n indice: 0,\r\n idObra: 0,\r\n obra: null,\r\n latitude: '',\r\n longitude: '',\r\n endereco: '',\r\n excluido: false\r\n }\r\n case 'OBRA_COORDENADA_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraCoordenada: [...state.obraCoordenada, action.data.obraCoordenada]\r\n }\r\n case 'OBRA_COORDENADA_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_COORDENADA_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_COORDENADA_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraMedicao: [],\r\n open: false,\r\n id: '',\r\n data: '',\r\n idObra: 0,\r\n obra: [],\r\n idUsuario: 0,\r\n usuario: [],\r\n excluido: false,\r\n valor: 0,\r\n titulo: '',\r\n situacao: '',\r\n obrasMedicoesEtapasItens: [],\r\n obrasMedicoesAnexos: [],\r\n obrasOcorrencias: []\r\n}\r\n\r\nexport function obraMedicao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_MEDICAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_MEDICAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraMedicao.id,\r\n isLoading: false,\r\n data: action.obraMedicao.data, \r\n idObra: action.obraMedicao.idObra,\r\n obra: action.obraMedicao.obra,\r\n idUsuario: action.obraMedicao.idUsuario,\r\n usuario: action.obraMedicao.usuario,\r\n excluido: action.obraMedicao.excluido,\r\n titulo: action.obraMedicao.titulo,\r\n valor: action.obraMedicao.valor,\r\n situacao: action.obraMedicao.situacao,\r\n obrasMedicoesEtapasItens: action.obraMedicao.obrasMedicoesEtapasItens,\r\n obrasMedicoesAnexos: action.obraMedicao.obrasMedicoesAnexos,\r\n obrasOcorrencias: action.obraMedicao.obrasOcorrencias\r\n }\r\n case 'CREATE_OBRA_MEDICAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_MEDICAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_MEDICAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraMedicao.id,\r\n isLoading: false,\r\n data: action.obraMedicao.data,\r\n idObra: action.obraMedicao.idObra,\r\n obra: action.obraMedicao.obra,\r\n idUsuario: action.obraMedicao.idUsuario,\r\n usuario: action.obraMedicao.usuario,\r\n excluido: action.obraMedicao.excluido,\r\n titulo: action.obraMedicao.titulo,\r\n valor: action.obraMedicao.valor,\r\n situacao: action.obraMedicao.situacao,\r\n obrasMedicoesEtapasItens: action.obraMedicao.obrasMedicoesEtapasItens,\r\n obrasOcorrencias: action.obraMedicao.obrasOcorrencias,\r\n obrasMedicoesAnexos: action.obraMedicao.obrasMedicoesAnexos\r\n }\r\n case 'EDIT_OBRA_MEDICAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_MEDICAO':\r\n return {\r\n ...state,\r\n obraMedicao: action.obraMedicao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_MEDICAO_CLEAR':\r\n return initialState\r\n case 'OBRA_MEDICAO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraMedicao: [...state.obraMedicao, action.data.obraMedicao]\r\n }\r\n case 'OBRA_MEDICAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n data: action.data,\r\n idObra: action.idObra,\r\n obra: action.obra,\r\n idUsuario: action.idUsuario,\r\n usuario: action.usuario,\r\n excluido: action.excluido,\r\n titulo: action.titulo,\r\n valor: action.valor,\r\n situacao: action.situacao,\r\n obrasMedicoesEtapasItens: action.obrasMedicoesEtapasItens,\r\n obrasOcorrencias: action.obrasOcorrencias,\r\n obrasMedicoesAnexos: action.obrasMedicoesAnexos\r\n }\r\n case 'OBRA_MEDICAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_MEDICAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_MEDICAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraMedicaoEtapaItemAnexo: [],\r\n open: false,\r\n id: '',\r\n caminhoArquivo: '',\r\n idObraMedicaoEtapaItem: 0\r\n}\r\n\r\nexport function obraMedicaoEtapaItemAnexo(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraMedicaoEtapaItemAnexo.id,\r\n isLoading: false,\r\n caminhoArquivo: action.obraMedicaoEtapaItemAnexo.caminhoArquivo, \r\n idObraMedicaoEtapaItem: action.obraMedicaoEtapaItemAnexo.idObraMedicaoEtapaItem\r\n }\r\n case 'CREATE_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraMedicaoEtapaItemAnexo.id,\r\n isLoading: false,\r\n caminhoArquivo: action.obraMedicaoEtapaItemAnexo.caminhoArquivo, \r\n idObraMedicaoEtapaItem: action.obraMedicaoEtapaItemAnexo.idObraMedicaoEtapaItem\r\n }\r\n case 'EDIT_OBRA_MEDICAO_ETAPA_ITEM_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_MEDICAO_ETAPA_ITEM_ANEXO':\r\n return {\r\n ...state,\r\n obraMedicaoEtapaItemAnexo: action.obraMedicaoEtapaItemAnexo,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_CLEAR':\r\n return initialState\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraMedicaoEtapaItemAnexo: [...state.obraMedicaoEtapaItemAnexo, action.data.obraMedicaoEtapaItemAnexo]\r\n }\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n caminhoArquivo: action.caminhoArquivo,\r\n idObraMedicaoEtapaItem: action.idObraMedicaoEtapaItem\r\n }\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_MEDICAO_ETAPA_ITEM_ANEXO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraEtapa: [],\r\n duracaoEtapa: 15,\r\n open: false,\r\n id: 0,\r\n descritivo: '',\r\n titulo: '',\r\n periodos: '',\r\n idObra: 0,\r\n dataInicio: '',\r\n dataTermino: '',\r\n valorReferencia: '',\r\n valorReferenciaComBdi: '',\r\n obra: null,\r\n obrasEtapasItens: []\r\n}\r\n\r\nexport function obraEtapa(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_ETAPA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_ETAPA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraEtapa.id,\r\n isLoading: false,\r\n descritivo: action.obraEtapa.descritivo,\r\n titulo: action.obraEtapa.titulo,\r\n periodos: action.obraEtapa.periodos,\r\n idObra: action.obraEtapa.idObra,\r\n dataInicio: action.obraEtapa.dataInicio,\r\n dataTermino: action.obraEtapa.dataTermino,\r\n valorReferencia: action.obraEtapa.valorReferencia,\r\n valorReferenciaComBdi: action.obraEtapa.valorReferenciaComBdi,\r\n obra: action.obraEtapa.obra,\r\n obrasEtapasItens: action.obraEtapa.obrasEtapasItens\r\n }\r\n case 'CREATE_OBRA_ETAPA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_ETAPA_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_ETAPA_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraEtapa.id,\r\n isLoading: false,\r\n descritivo: action.obraEtapa.descritivo,\r\n titulo: action.obraEtapa.titulo,\r\n periodos: action.obraEtapa.periodos,\r\n idObra: action.obraEtapa.idObra,\r\n dataInicio: action.obraEtapa.dataInicio,\r\n dataTermino: action.obraEtapa.dataTermino,\r\n idEstadoTabelaInsumo: action.obraEtapa.idEstadoTabelaInsumo,\r\n valorReferencia: action.obraEtapa.valorReferencia,\r\n valorReferenciaComBdi: action.obraEtapa.valorReferenciaComBdi,\r\n obra: action.obraEtapa.obra,\r\n obrasEtapasItens: action.obraEtapa.obrasEtapasItens\r\n }\r\n case 'EDIT_OBRA_ETAPA_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_ETAPA':\r\n return {\r\n ...state,\r\n obraEtapa: action.obraEtapa,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_ETAPA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n descritivo: action.descritivo,\r\n titulo: action.titulo,\r\n periodos: action.periodos,\r\n idObra: action.idObra,\r\n dataInicio: action.dataInicio,\r\n dataTermino: action.dataTermino,\r\n valorReferencia: action.valorReferencia,\r\n valorReferenciaComBdi: action.valorReferenciaComBdi,\r\n obra: action.obraEtapa,\r\n obrasEtapasItens: action.obraEtapasEtapasItens\r\n }\r\n case 'OBRA_ETAPA_CLEAR':\r\n return initialState\r\n case 'OBRA_ETAPA_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n id: 0,\r\n descritivo: '',\r\n titulo: '',\r\n periodos: '',\r\n idObra: 0,\r\n dataInicio: '',\r\n dataTermino: '',\r\n valorReferencia: '',\r\n valorReferenciaComBdi: '',\r\n obra: null,\r\n obrasEtapasItens: []\r\n }\r\n case 'OBRA_ETAPA_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraobraEtapa: [...state.obraEtapa, action.data.obraEtapa]\r\n }\r\n case 'OBRA_ETAPA_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ETAPA_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_ETAPA_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraEtapaItem: [],\r\n open: false,\r\n id: 0,\r\n descritivo: '',\r\n codigo: '',\r\n idObraEtapa: 0,\r\n idUnidade: 0,\r\n quantidade: 0,\r\n idTipoServico: 0,\r\n tabelaInsumo: [],\r\n valorReferencia: '',\r\n valorReferenciaComBdi: '',\r\n idTabelaInsumo: 1,\r\n idEstadoTabelaInsumo: 0,\r\n anoTabelaInsumo: 0,\r\n mesTabelaInsumo: 0,\r\n onerado: false,\r\n obraEtapa: null\r\n}\r\n\r\nexport function obraEtapaItem(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_ETAPA_ITEM_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_ETAPA_ITEM_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraEtapaItem.id,\r\n isLoading: false,\r\n descritivo: action.obraEtapaItem.descritivo,\r\n codigo: action.obraEtapaItem.codigo,\r\n idObraEtapa: action.obraEtapaItem.idObraEtapa,\r\n idUnidade: action.obraEtapaItem.idUnidade,\r\n quantidade: action.obraEtapaItem.quantidade,\r\n idTipoServico: action.obraEtapaItem.idTipoServico,\r\n valorReferencia: action.obraEtapaItem.valorReferencia,\r\n valorReferenciaComBdi: action.obraEtapaItem.valorReferenciaComBdi,\r\n tabelaInsumo: action.obraEtapaItem.tabelaInsumo,\r\n idTabelaInsumo: action.obraEtapaItem.idTabelaInsumo,\r\n idEstadoTabelaInsumo: action.obraEtapaItem.idEstadoTabelaInsumo,\r\n anoTabelaInsumo: action.obraEtapaItem.anoTabelaInsumo,\r\n mesTabelaInsumo: action.obraEtapaItem.mesTabelaInsumo,\r\n onerado: action.obraEtapaItem.onerado,\r\n obraEtapa: action.obraEtapaItem.obraEtapa\r\n }\r\n case 'CREATE_OBRA_ETAPA_ITEM_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_ETAPA_ITEM_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_ETAPA_ITEM_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraEtapaItem.id,\r\n isLoading: false,\r\n descritivo: action.obraEtapaItem.descritivo,\r\n codigo: action.obraEtapaItem.codigo,\r\n idObraEtapa: action.obraEtapaItem.idObraEtapa,\r\n idUnidade: action.obraEtapaItem.idUnidade,\r\n quantidade: action.obraEtapaItem.quantidade,\r\n idTipoServico: action.obraEtapaItem.idTipoServico,\r\n tabelaInsumo: action.obraEtapaItem.tabelaInsumo,\r\n idEstadoTabelaInsumo: action.obraEtapaItem.idEstadoTabelaInsumo,\r\n valorReferencia: action.obraEtapaItem.valorReferencia,\r\n valorReferenciaComBdi: action.obraEtapaItem.valorReferenciaComBdi,\r\n idTabelaInsumo: action.obraEtapaItem.idTabelaInsumo,\r\n idEstadoTabelaInsumo: action.obraEtapaItem.idEstadoTabelaInsumo,\r\n anoTabelaInsumo: action.obraEtapaItem.anoTabelaInsumo,\r\n mesTabelaInsumo: action.obraEtapaItem.mesTabelaInsumo,\r\n onerado: action.obraEtapaItem.onerado,\r\n obraEtapa: action.obraEtapaItem.obraEtapa\r\n }\r\n case 'EDIT_OBRA_ETAPA_ITEM_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_ETAPA_ITEM':\r\n return {\r\n ...state,\r\n obraEtapaItem: action.obraEtapaItem,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_ETAPA_ITEM_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n descritivo: action.descritivo,\r\n codigo: action.codigo,\r\n idObraEtapa: action.idObraEtapa,\r\n idUnidade: action.idUnidade,\r\n quantidade: action.quantidade,\r\n idTipoServico: action.idTipoServico,\r\n tabelaInsumo: action.tabelaInsumo,\r\n valorReferencia: action.valorReferencia,\r\n valorReferenciaComBdi: action.valorReferenciaComBdi,\r\n idTabelaInsumo: action.idTabelaInsumo,\r\n idEstadoTabelaInsumo: action.idEstadoTabelaInsumo,\r\n anoTabelaInsumo: action.anoTabelaInsumo,\r\n mesTabelaInsumo: action.mesTabelaInsumo,\r\n onerado: action.onerado,\r\n obraEtapa: action.obraEtapa\r\n }\r\n case 'OBRA_ETAPA_ITEM_CLEAR':\r\n return initialState\r\n case 'OBRA_ETAPA_ITEM_CLEAR_DETAIL':\r\n return {\r\n ...state,\r\n id: 0,\r\n isLoading: false,\r\n descritivo: '',\r\n codigo: '',\r\n idObraEtapa: 0,\r\n idUnidade: 0,\r\n quantidade: '',\r\n idTipoServico: '',\r\n valorReferencia: '',\r\n valorReferenciaComBdi: '',\r\n idTabelaInsumo: 0,\r\n idEstadoTabelaInsumo: 0,\r\n anoTabelaInsumo: '',\r\n mesTabelaInsumo: '',\r\n onerado: false,\r\n obraEtapa: null\r\n }\r\n case 'OBRA_ETAPA_ITEM_CLEAR_CAMPOS':\r\n return {\r\n ...state, \r\n isLoading: false,\r\n descritivo: '',\r\n codigo: '',\r\n idUnidade: 0,\r\n quantidade: '',\r\n idTipoServico: '',\r\n valorReferencia: '',\r\n valorReferenciaComBdi: '' \r\n }\r\n case 'OBRA_ETAPA_ITEM_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraobraEtapaItem: [...state.obraEtapaItem, action.data.obraEtapaItem]\r\n }\r\n case 'OBRA_ETAPA_ITEM_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ETAPA_ITEM_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_ETAPA_ITEM_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraOcorrenciaAnexo: [],\r\n id: '',\r\n caminhoArquivo: '',\r\n idObraOcorrencia: 0,\r\n excluido: false\r\n}\r\n\r\nexport function obraOcorrenciaAnexo(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_OCORRENCIA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_OCORRENCIA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOcorrenciaAnexo.id,\r\n isLoading: false,\r\n caminhoArquivo: action.obraOcorrenciaAnexo.caminhoArquivo,\r\n idObraOcorrencia: action.obraOcorrenciaAnexo.idObraOcorrencia,\r\n excluido: action.obraOcorrenciaAnexo.excluido,\r\n }\r\n case 'CREATE_OBRA_OCORRENCIA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_OCORRENCIA_ANEXO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_OCORRENCIA_ANEXO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOcorrenciaAnexo.id,\r\n isLoading: false,\r\n caminhoArquivo: action.obraOcorrenciaAnexo.caminhoArquivo,\r\n idObraOcorrencia: action.obraOcorrenciaAnexo.idObraOcorrencia,\r\n excluido: action.obraOcorrenciaAnexo.excluido,\r\n }\r\n case 'EDIT_OBRA_OCORRENCIA_ANEXO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_OCORRENCIA_ANEXO':\r\n return {\r\n ...state,\r\n obraOcorrenciaAnexo: action.obraOcorrenciaAnexo,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_OCORRENCIA_ANEXO_CLEAR':\r\n return initialState\r\n case 'OBRA_OCORRENCIA_ANEXO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraOcorrenciaAnexo: [...state.obraOcorrenciaAnexo, action.data.obraOcorrenciaAnexo]\r\n }\r\n case 'OBRA_OCORRENCIA_ANEXO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n caminhoArquivo: action.caminhoArquivo,\r\n idObraOcorrencia: action.idObraOcorrencia,\r\n excluido: action.excluido,\r\n }\r\n case 'OBRA_OCORRENCIA_ANEXO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_OCORRENCIA_ANEXO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_OCORRENCIA_ANEXO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraOcorrencias: []\r\n}\r\n\r\nexport function obraOcorrencias(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_OBRA_OCORRENCIAS':\r\n return {\r\n ...state,\r\n obraOcorrencias: action.obraOcorrencias,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_OCORRENCIAS_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_OCORRENCIAS_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n obraOrcamento: [],\r\n open: false,\r\n id: '',\r\n data: '',\r\n prazo: '',\r\n diasPrazo: 0,\r\n valor: 0,\r\n statusOrcamento: 0,\r\n idOrgao: 0,\r\n idObra: 0,\r\n idEmpresa: 0,\r\n empresa: [],\r\n obra: [],\r\n excluido: false,\r\n observacoes: '',\r\n obrasOrcamentosItens: []\r\n}\r\n\r\nexport function obraOrcamento(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_ORCAMENTO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_ORCAMENTO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOrcamento.id,\r\n isLoading: false,\r\n data: action.obraOrcamento.data,\r\n prazo: action.obraOrcamento.prazo,\r\n diasPrazo: action.obraOrcamento.diasPrazo,\r\n valor: action.obraOrcamento.valor,\r\n statusOrcamento: action.obraOrcamento.statusOrcamento,\r\n idOrgao: action.obraOrcamento.idOrgao,\r\n idObra: action.obraOrcamento.idObra,\r\n obra: action.obraOrcamento.obra,\r\n idEmpresa: action.obraOrcamento.idEmpresa,\r\n empresa: action.obraOrcamento.empresa,\r\n excluido: action.obraOrcamento.excluido,\r\n observacoes: action.obraOrcamento.observacoes,\r\n obrasOrcamentosItens: action.obraOrcamento.obrasOrcamentosItens\r\n }\r\n case 'CREATE_OBRA_ORCAMENTO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOrcamento.id,\r\n isLoading: false,\r\n data: action.obraOrcamento.data,\r\n prazo: action.obraOrcamento.prazo,\r\n diasPrazo: action.obraOrcamento.diasPrazo,\r\n valor: action.obraOrcamento.valor,\r\n statusOrcamento: action.obraOrcamento.statusOrcamento,\r\n idOrgao: action.obraOrcamento.idOrgao,\r\n idObra: action.obraOrcamento.idObra,\r\n obra: action.obraOrcamento.obra,\r\n idEmpresa: action.obraOrcamento.idEmpresa,\r\n empresa: action.obraOrcamento.empresa,\r\n excluido: action.obraOrcamento.excluido,\r\n observacoes: action.obraOrcamento.observacoes,\r\n obrasOrcamentosItens: action.obraOrcamento.obrasOrcamentosItens\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_ORCAMENTO':\r\n return {\r\n ...state,\r\n obraOrcamento: action.obraOrcamento,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'OBRA_ORCAMENTO_CLEAR':\r\n return initialState\r\n case 'OBRA_ORCAMENTO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraOrcamento: [...state.obraOrcamento, action.data.obraOrcamento]\r\n }\r\n case 'OBRA_ORCAMENTO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n data: action.data,\r\n prazo: action.prazo,\r\n diasPrazo: action.diasPrazo,\r\n valor: action.valor,\r\n statusOrcamento: action.statusOrcamento,\r\n idOrgao: action.idOrgao,\r\n idObra: action.idObra,\r\n obra: action.obra,\r\n idEmpresa: action.idEmpresa,\r\n empresa: action.empresa,\r\n excluido: action.excluido,\r\n observacoes: action.observacoes,\r\n obrasOrcamentosItens: action.obrasOrcamentosItens\r\n }\r\n case 'OBRA_ORCAMENTO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ORCAMENTO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_ORCAMENTO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n totalEmpresas: 0,\r\n isLoading: false,\r\n open: false,\r\n id: '',\r\n idObraOrcamento: 0,\r\n idObraEtapaItem: 0,\r\n status: 0,\r\n dataAlteracaoStatus: '',\r\n valor: 0,\r\n excluido: false,\r\n obraOrcamentoItem: []\r\n}\r\n\r\nexport function obraOrcamentoItem(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_OBRA_ORCAMENTO_ITEM_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_OBRA_ORCAMENTO_ITEM_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOrcamentoItem.id,\r\n isLoading: false,\r\n idObraOrcamento: action.obraOrcamentoItem.idObraOrcamento,\r\n idObraEtapaItem: action.obraOrcamentoItem.idObraEtapaItem,\r\n valor: action.obraOrcamentoItem.valor,\r\n excluido: action.obraOrcamentoItem.excluido,\r\n status: action.obraOrcamentoItem.status,\r\n dataAlteracaoStatus: action.obraOrcamentoItem.dataAlteracaoStatus,\r\n obraOrcamentoItem: action.obraOrcamentoItem.obraOrcamentoItem,\r\n obrasEtapasItens: action.obraOrcamentoItem.obrasEtapasItens\r\n }\r\n case 'CREATE_OBRA_ORCAMENTO_ITEM_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_ITEM_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_ITEM_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.obraOrcamentoItem.id,\r\n isLoading: false,\r\n idObraOrcamento: action.obraOrcamentoItem.idObraOrcamento,\r\n idObraEtapaItem: action.obraOrcamentoItem.idObraEtapaItem,\r\n valor: action.obraOrcamentoItem.valor,\r\n excluido: action.obraOrcamentoItem.excluido,\r\n status: action.obraOrcamentoItem.status,\r\n dataAlteracaoStatus: action.obraOrcamentoItem.dataAlteracaoStatus,\r\n obraOrcamentoItem: action.obraOrcamentoItem.obraOrcamentoItem,\r\n obrasEtapasItens: action.obraOrcamentoItem.obrasEtapasItens\r\n }\r\n case 'EDIT_OBRA_ORCAMENTO_ITEM_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_OBRA_ORCAMENTO_ITEM':\r\n return {\r\n ...state,\r\n obraOrcamentoItem: action.obraOrcamentoItem,\r\n obrasEtapasItens: action.obrasEtapasItens,\r\n totalRegistros: action.totalRegistros,\r\n totalEmpresas: action.totalEmpresas\r\n }\r\n case 'OBRA_ORCAMENTO_ITEM_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n idObraOrcamento: action.idObraOrcamento,\r\n idObraEtapaItem: action.idObraEtapaItem,\r\n valor: action.valor,\r\n excluido: action.excluido,\r\n status: action.status,\r\n dataAlteracaoStatus: action.dataAlteracaoStatus,\r\n obraOrcamentoItem: action.obraOrcamentoItem,\r\n obrasEtapasItens: action.obrasEtapasItens\r\n }\r\n case 'OBRA_ORCAMENTO_ITEM_CLEAR':\r\n return initialState\r\n case 'OBRA_ORCAMENTO_ITEM_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n obraOrcamentoItem: [...state.obraOrcamentoItem, action.data.obraOrcamentoItem]\r\n }\r\n case 'OBRA_ORCAMENTO_ITEM_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OBRA_ORCAMENTO_ITEM_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'OBRA_ORCAMENTO_ITEM_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n parametro: [],\r\n id: '',\r\n descricao: '',\r\n chave: '',\r\n valor: '',\r\n tipo: '',\r\n text: '',\r\n value: 0,\r\n totalRegistros: 0,\r\n};\r\n\r\nexport function parametro(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_PARAMETRO':\r\n return {\r\n ...state,\r\n parametro: action.parametro,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'PARAMETRO_DETAIL':\r\n return action.parametro\r\n case 'PARAMETRO_UPDATED':\r\n return state\r\n case 'PARAMETRO_CLEAR':\r\n return initialState\r\n case 'PARAMETRO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n parametro: []\r\n }\r\n case 'PARAMETRO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'PARAMETRO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'PARAMETRO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n permissao: [],\r\n open: false,\r\n id: 0,\r\n nome: '',\r\n descricao: '',\r\n excluido: false\r\n}\r\n\r\nexport function permissao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_PERMISSAO':\r\n return {\r\n ...state,\r\n permissao: action.permissao\r\n }\r\n case 'PERMISSAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n descricao: action.descricao,\r\n excluido: action.excluido\r\n }\r\n case 'PERMISSAO_UPDATED':\r\n return state\r\n case 'PERMISSAO_CLEAR':\r\n return initialState\r\n case 'PERMISSAO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n permissao: []\r\n }\r\n case 'PERMISSAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n permissaoTipoUsuario: [],\r\n open: false,\r\n id: 0,\r\n permissaoId: 0,\r\n idTipoUsuario: 0,\r\n permitido: false,\r\n checkedAll: false,\r\n isLoading: false\r\n}\r\n\r\nexport function permissaoTipoUsuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_PERMISSAO_TIPO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoTipoUsuario: action.permissaoTipoUsuario,\r\n idTipoUsuario: action.idTipoUsuario\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n permissaoId: action.permissaoId,\r\n idTipoUsuario: action.idTipoUsuario,\r\n permitido: action.permitido\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_CLEAR':\r\n return initialState\r\n case 'PERMISSAO_TIPO_USUARIO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n permissaoTipoUsuario: []\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_CREATE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_CREATE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n idTipoUsuario: 0,\r\n checkedAll: false,\r\n permissaoTipoUsuario: []\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_CREATE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'PERMISSAO_TIPO_USUARIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'HANDLE_CHANGE_CHECK_ALL_PERMISSAO_TIPO_USUARIO':\r\n return {\r\n ...state,\r\n checkedAll: !state.checkedAll\r\n }\r\n case 'HANDLE_CHECKED_PERMITIDO_PERMISSAO_TIPO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoTipoUsuario: state.permissaoTipoUsuario.map(\r\n (permissaoTipoUsuario) =>\r\n permissaoTipoUsuario.id === action.id\r\n ? {\r\n ...permissaoTipoUsuario,\r\n permitido: !permissaoTipoUsuario.permitido\r\n }\r\n : permissaoTipoUsuario\r\n )\r\n }\r\n case 'HANDLE_CHECK_ALL_PERMISSAO_TIPO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoTipoUsuario: state.permissaoTipoUsuario.map(\r\n (permissaoTipoUsuario) => ({\r\n ...permissaoTipoUsuario,\r\n permitido: action.checked\r\n })\r\n )\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n permissaoUsuario: [],\r\n open: false,\r\n id: 0,\r\n permissaoId: 0,\r\n usuarioId: 0,\r\n permitido: false,\r\n checkedAll: false,\r\n isLoading: false\r\n}\r\n\r\nexport function permissaoUsuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_PERMISSAO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoUsuario: action.permissaoUsuario,\r\n usuarioId: action.usuarioId\r\n }\r\n case 'PERMISSAO_USUARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n permissaoId: action.permissaoId,\r\n usuarioId: action.usuarioId,\r\n permitido: action.permitido\r\n }\r\n case 'PERMISSAO_USUARIO_CLEAR':\r\n return initialState\r\n case 'PERMISSAO_USUARIO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n permissaoUsuario: []\r\n }\r\n case 'PERMISSAO_USUARIO_CREATE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'PERMISSAO_USUARIO_CREATE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n usuarioId: 0,\r\n checkedAll: false,\r\n permissaoUsuario: []\r\n }\r\n case 'PERMISSAO_USUARIO_CREATE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'PERMISSAO_USUARIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'HANDLE_CHANGE_CHECK_ALL_PERMISSAO_USUARIO':\r\n return {\r\n ...state,\r\n checkedAll: !state.checkedAll\r\n }\r\n case 'HANDLE_CHECKED_PERMITIDO_PERMISSAO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoUsuario: state.permissaoUsuario.map((permissaoUsuario) =>\r\n permissaoUsuario.id === action.id\r\n ? {\r\n ...permissaoUsuario,\r\n permitido: !permissaoUsuario.permitido\r\n }\r\n : permissaoUsuario\r\n )\r\n }\r\n case 'HANDLE_CHECK_ALL_PERMISSAO_USUARIO':\r\n return {\r\n ...state,\r\n permissaoUsuario: state.permissaoUsuario.map((permissaoUsuario) => ({\r\n ...permissaoUsuario,\r\n permitido: action.checked\r\n }))\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n totalRegistros: 0,\r\n relatorio: []\r\n}\r\n\r\nexport function relatorio(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_RELATORIO':\r\n return {\r\n ...state,\r\n relatorio: action.relatorio,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'RELATORIO_CLEAR':\r\n return initialState\r\n case 'RELATORIO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n relatorio: []\r\n }\r\n case 'RELATORIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'RELATORIO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'RELATORIO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n subOrgao: [],\r\n orgao: [],\r\n id: '',\r\n nome: '',\r\n idOrgao: 0,\r\n usuariosSubOrgaos: [],\r\n excluido: false\r\n}\r\n\r\nexport function subOrgao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_SUB_ORGAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_SUB_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.subOrgao.id,\r\n isLoading: false,\r\n orgao: action.subOrgao.orgao,\r\n nome: action.subOrgao.nome, \r\n idOrgao: action.subOrgao.idOrgao,\r\n usuariosSubOrgaos: action.subOrgao.usuariosSubOrgaos,\r\n excluido: action.excluido\r\n }\r\n case 'CREATE_SUB_ORGAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_SUB_ORGAO_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'EDIT_SUB_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.subOrgao.id,\r\n isLoading: false,\r\n orgao: action.subOrgao.orgao,\r\n nome: action.subOrgao.nome, \r\n idOrgao: action.subOrgao.idOrgao,\r\n usuariosSubOrgaos: action.subOrgao.usuariosSubOrgaos,\r\n excluido: action.subOrgao.excluido\r\n }\r\n case 'EDIT_SUB_ORGAO_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_SUB_ORGAO':\r\n return {\r\n ...state,\r\n subOrgao: action.subOrgao,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'SUB_ORGAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n nome: action.nome,\r\n orgao: action.orgao,\r\n idOrgao: action.idOrgao,\r\n usuariosSubOrgaos: action.usuariosSubOrgaos,\r\n excluido: action.excluido\r\n }\r\n case 'SUB_ORGAO_CLEAR':\r\n return initialState\r\n case 'SUB_ORGAO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'SUB_ORGAO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'SUB_ORGAO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n open: false,\r\n id: 0,\r\n descricao: '',\r\n excluido: false\r\n}\r\n\r\nexport function tabelaInsumo(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_TABELA_INSUMO':\r\n return {\r\n ...state,\r\n tabelaInsumo: action.tabelaInsumo\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n open: false,\r\n id: '',\r\n text: '',\r\n value: '',\r\n tabelaInsumoAno: [],\r\n excluido: false\r\n}\r\n\r\nexport function tabelaInsumoAno(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_TABELA_INSUMO_ANO':\r\n return {\r\n ...state,\r\n tabelaInsumoAno: action.tabelaInsumoAno\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n open: false,\r\n id: '',\r\n text: '',\r\n value: '',\r\n tabelaInsumoMes: [],\r\n excluido: false\r\n}\r\n\r\nexport function tabelaInsumoMes(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_TABELA_INSUMO_MES':\r\n return {\r\n ...state,\r\n tabelaInsumoMes: action.tabelaInsumoMes\r\n }\r\n case 'MES_CLEAR':\r\n return initialState\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n foto: [],\r\n open: false,\r\n id: '',\r\n nome: '',\r\n excluido: false,\r\n}\r\n\r\nexport function tipoAnexo(state = initialState, action) {\r\n switch (action.type) { \r\n case 'FETCHED_ALL_TIPO_ANEXO':\r\n return {\r\n ...state,\r\n tipoAnexo: action.tipoAnexo\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n isLoading: false,\r\n usuario: [],\r\n open: false,\r\n id: '',\r\n nome: '',\r\n idTipoUsuario: '',\r\n}\r\n\r\nexport function tipoUsuario(state = initialState, action) {\r\n switch (action.type) { \r\n case 'FETCHED_ALL_TIPO_USUARIO':\r\n return {\r\n ...state,\r\n tipoUsuario: action.tipoUsuario\r\n }\r\n case 'TIPO_USUARIO_CLEAR':\r\n return initialState\r\n case 'TIPO_USUARIO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'TIPO_USUARIO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n usuario: [],\r\n open: false,\r\n id: '',\r\n nome: ''\r\n}\r\n\r\nexport function tipoServico(state = initialState, action) {\r\n switch (action.type) { \r\n case 'FETCHED_ALL_TIPO_SERVICO':\r\n return {\r\n ...state,\r\n tipoServico: action.tipoServico\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n anchor: 'left',\r\n tipoObra: [],\r\n open: false,\r\n id: '',\r\n nome: '',\r\n uf: '',\r\n ibge: '',\r\n}\r\n\r\nexport function tipoObra(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETCHED_ALL_TIPO_OBRA':\r\n return {\r\n ...state,\r\n tipoObra: action.tipoObra\r\n }\r\n case 'ESTADO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n uf: action.uf,\r\n ibge: action.ibge,\r\n }\r\n case 'ESTADO_UPDATED':\r\n return state\r\n case 'HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n loading: false,\r\n usuario: [],\r\n open: false,\r\n id: '',\r\n descricao: ''\r\n}\r\n\r\nexport function unidade(state = initialState, action) {\r\n switch (action.type) { \r\n case 'FETCHED_ALL_UNIDADE':\r\n return {\r\n ...state,\r\n unidade: action.unidade\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n totalRegistros: 0,\r\n isLoading: false,\r\n usuario: [],\r\n open: false,\r\n id: '',\r\n email: '',\r\n nome: '',\r\n senha: '',\r\n sobrenome: '',\r\n idTipoUsuario: '',\r\n plataforma: '',\r\n versaoSistema: '',\r\n dataHoraUltimoAcesso: '',\r\n openModalRequestPasswordReset: false,\r\n caminhoCnh: '',\r\n celular: '',\r\n cnh: '',\r\n matricula: '',\r\n telefone: '',\r\n idUsuarioOrgao: 0,\r\n emailVerificado: false\r\n}\r\n\r\nexport function usuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_USER_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'CREATE_USER_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.user.id,\r\n isLoading: false,\r\n email: action.user.email,\r\n nome: action.user.nome,\r\n senha: action.user.senha,\r\n sobrenome: action.user.sobrenome,\r\n idTipoUsuario: action.user.idTipoUsuario,\r\n dataHoraUltimoAcesso: action.user.dataHoraUltimoAcesso,\r\n caminhoCnh: action.user.caminhoCnh,\r\n celular: action.user.celular,\r\n cnh: action.user.cnh,\r\n matricula: action.user.matricula,\r\n telefone: action.user.telefone,\r\n idUsuarioOrgao: action.user.idUsuarioOrgao,\r\n emailVerificado: action.user.emailVerificado\r\n }\r\n case 'CREATE_USER_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'EDIT_USER_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIOEMAIL_UPDATED':\r\n return state\r\n case 'EDIT_USER_SUCCESS':\r\n return {\r\n ...state,\r\n id: action.user.id,\r\n isLoading: false,\r\n email: action.user.email,\r\n nome: action.user.nome,\r\n senha: action.user.senha,\r\n sobrenome: action.user.sobrenome,\r\n idTipoUsuario: action.user.idTipoUsuario,\r\n dataHoraUltimoAcesso: action.user.dataHoraUltimoAcesso,\r\n caminhoCnh: action.user.caminhoCnh,\r\n celular: action.user.celular,\r\n cnh: action.user.cnh,\r\n matricula: action.user.matricula,\r\n telefone: action.user.telefone,\r\n idUsuarioOrgao: action.idUsuarioOrgao,\r\n emailVerificado: action.emailVerificado\r\n }\r\n case 'EDIT_USER_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'REQUEST_RESET_PASSWORD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'REQUEST_RESET_PASSWORD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n openModalRequestPasswordReset: false\r\n }\r\n case 'REQUEST_RESET_PASSWORD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'RESET_PASSWORD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'RESET_PASSWORD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'RESET_PASSWORD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: action.error\r\n }\r\n case 'FETCHED_ALL_USUARIO':\r\n return {\r\n ...state,\r\n usuario: action.usuario,\r\n totalRegistros: action.totalRegistros\r\n }\r\n case 'USUARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n isLoading: false,\r\n email: action.email,\r\n nome: action.nome,\r\n senha: action.senha,\r\n sobrenome: action.sobrenome,\r\n idTipoUsuario: action.idTipoUsuario,\r\n dataHoraUltimoAcesso: action.dataHoraUltimoAcesso,\r\n caminhoCnh: action.caminhoCnh,\r\n celular: action.celular,\r\n cnh: action.cnh,\r\n matricula: action.matricula,\r\n telefone: action.telefone,\r\n idUsuarioOrgao: action.idUsuarioOrgao,\r\n emailVerificado: action.emailVerificado\r\n }\r\n case 'USER_CLEAR':\r\n return initialState\r\n case 'USUARIO_ESTABELECIMENTO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n usuario: [...state.usuario, action.data.usuario]\r\n }\r\n case 'USUARIO_ORGAO_SET_ID':\r\n return {\r\n idUsuarioOrgao: action.idUsuarioOrgao\r\n }\r\n case 'USUARIO_HANDLE_ON_CHANGE':\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n }\r\n case 'OPEN_MODAL_REQUEST_PASSWORD_RESET':\r\n return {\r\n ...state,\r\n openModalRequestPasswordReset: action.open\r\n }\r\n case 'USUARIO_ISLOADING':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_NOTISLOADING':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n usuarioOrgao: [],\r\n id: '',\r\n isLoading: false,\r\n idUsuario: '',\r\n idOrgao: '',\r\n excluido: null,\r\n orgao: {}\r\n}\r\n\r\nexport function usuarioOrgao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_USUARIO_ORGAO_SUCCESS':\r\n return {\r\n ...state,\r\n idOrgao: '',\r\n usuarioOrgao: [\r\n ...state.usuarioOrgao,\r\n action.usuarioOrgao\r\n ]\r\n }\r\n case 'FETCHED_ALL_USUARIO_ORGAO':\r\n return {\r\n ...state,\r\n usuarioOrgao: action.usuarioOrgao,\r\n totalRegistros: action.totalRegistros\r\n } \r\n case 'USUARIO_ORGAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idUsuario: action.idUsuario,\r\n idOrgao: action.idOrgao,\r\n excluido: action.excluido,\r\n orgao: action.orgao\r\n }\r\n case 'USUARIO_ORGAO_UPDATED':\r\n return state\r\n case 'USUARIO_ORGAO_ADD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_ORGAO_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ORGAO_ADD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ORGAO_CLEAR':\r\n return initialState\r\n case 'USUARIO_ORGAO_CLEAR_ALL':\r\n return {\r\n ...state,\r\n usuarioOrgao: []\r\n }\r\n case 'USUARIO_ORGAO_CLEAR_SELECTED':\r\n return {\r\n ...state,\r\n id: '',\r\n isLoading: false,\r\n idUsuario: '',\r\n idOrgao: '',\r\n excluido: null,\r\n orgao: {}\r\n }\r\n case 'CHANGE_DETAILS_USUARIO_ORGAO':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idUsuario: action.idUsuario,\r\n idOrgao: action.idOrgao,\r\n excluido: action.excluido,\r\n orgao: action.orgao\r\n }\r\n case 'AUTHENTICATION_REFRESH_SUCCESS':\r\n return {\r\n ...state,\r\n usuarioOrgao: action.user.usuariosOrgaos\r\n }\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n usuarioOrgao: action.user.usuariosOrgaos\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n usuarioEmpresa: [],\r\n id: '',\r\n isLoading: false,\r\n idUsuario: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {}\r\n}\r\n\r\nexport function usuarioEmpresa(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CREATE_USUARIO_EMPRESA_SUCCESS':\r\n return {\r\n ...state,\r\n idEmpresa: '',\r\n usuarioEmpresa: [\r\n ...state.usuarioEmpresa,\r\n action.usuarioEmpresa\r\n ]\r\n }\r\n case 'FETCHED_ALL_USUARIO_EMPRESA':\r\n return {\r\n ...state,\r\n usuarioEmpresa: action.usuarioEmpresa\r\n }\r\n case 'USUARIO_EMPRESA_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idUsuario: action.idUsuario,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'USUARIO_EMPRESA_UPDATED':\r\n return state\r\n case 'USUARIO_EMPRESA_ADD_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_EMPRESA_ADD_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_EMPRESA_ADD_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_REQUEST':\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_SUCCESS':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_ESTABELECIMENTO_DELETE_FAILURE':\r\n return {\r\n ...state,\r\n isLoading: false\r\n }\r\n case 'USUARIO_EMPRESA_CLEAR':\r\n return initialState\r\n case 'USUARIO_EMPRESA_CLEAR_ALL':\r\n return {\r\n ...state,\r\n usuarioEmpresa: []\r\n }\r\n case 'USUARIO_EMPRESA_CLEAR_SELECTED':\r\n return {\r\n ...state,\r\n id: '',\r\n isLoading: false,\r\n idUsuario: '',\r\n idEmpresa: '',\r\n excluido: null,\r\n empresa: {},\r\n categoriaId: 0\r\n }\r\n case 'CHANGE_DETAILS_USUARIO_EMPRESA':\r\n return {\r\n ...state,\r\n id: action.id,\r\n idUsuario: action.idUsuario,\r\n idEmpresa: action.idEmpresa,\r\n excluido: action.excluido,\r\n empresa: action.empresa\r\n }\r\n case 'AUTHENTICATION_REFRESH_SUCCESS':\r\n return {\r\n ...state,\r\n usuarioEmpresa: action.user.usuariosEmpresas\r\n }\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n usuarioEmpresa: action.user.usuariosEmpresas\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { authentication } from './auth.reducer'\r\nimport { cidade } from './cidade.reducer'\r\nimport { convocacao } from './convocacao.reducer'\r\nimport { dashboard } from './dashboard.reducer'\r\nimport { estado } from './estado.reducer'\r\nimport { empresa } from './empresa.reducer'\r\nimport { empresaAnexo } from './empresaAnexo.reducer'\r\nimport { empresaCidade } from './empresaCidade.reducer'\r\nimport { empresaOrgao } from './empresaOrgao.reducer'\r\nimport { insumo } from './insumo.reducer'\r\nimport { log } from './log.reducer'\r\nimport { manual } from './manual.reducer'\r\nimport { notificacao } from './notificacao.reducer'\r\nimport { notificacaoFiltro } from './notificacaoFiltro.reducer'\r\nimport { notificacaoUsuario } from './notificacaoUsuario.reducer'\r\nimport { notificacaoTeste } from './notificacaoTeste.reducer'\r\nimport { orgao } from './orgao.reducer'\r\nimport { obra } from './obra.reducer'\r\nimport { obraAnexo } from './obraAnexo.reducer'\r\nimport { obraAvaliacao } from './obraAvaliacao.reducer'\r\nimport { obraDiario } from './obraDiario.reducer'\r\nimport { empenho } from './empenho.reducer'\r\nimport { obraCobranca } from './obraCobranca.reducer'\r\nimport { obraCoordenada } from './obraCoordenada.reducer'\r\nimport { obraMedicao } from './obraMedicao.reducer'\r\nimport { obraMedicaoEtapaItemAnexo } from './obraMedicaoEtapaItemAnexo.reducer'\r\nimport { obraEtapa } from './obraEtapa.reducer'\r\nimport { obraEtapaItem } from './obraEtapaItem.reducer'\r\nimport { obraOcorrenciaAnexo } from './obraOcorrenciaAnexo.reducer'\r\nimport { obraOcorrencias } from './obraOcorrencias.reducer'\r\nimport { obraOrcamento } from './obraOrcamento.reducer'\r\nimport { obraOrcamentoItem } from './obraOrcamentoItem.reducer'\r\nimport { parametro } from './parametro.reducer'\r\nimport { permissao } from './permissao.reducer'\r\nimport { permissaoTipoUsuario } from './permissaoTipoUsuario.reducer'\r\nimport { permissaoUsuario } from './permissaoUsuario.reducer'\r\nimport { relatorio } from './relatorio.reducer'\r\nimport { subOrgao } from './subOrgao.reducer'\r\nimport { tabelaInsumo } from './tabelaInsumo.reducer'\r\nimport { tabelaInsumoAno } from './tabelaInsumoAno.reducer'\r\nimport { tabelaInsumoMes } from './tabelaInsumoMes.reducer'\r\nimport { tipoAnexo } from './tipoAnexo.reducer'\r\nimport { tipoUsuario } from './tipoUsuario.reducer'\r\nimport { tipoServico } from './tipoServico.reducer'\r\nimport { tipoObra } from './tipoObra.reducer'\r\nimport { unidade } from './unidade.reducer'\r\nimport { usuario } from './usuario.reducer'\r\nimport { usuarioOrgao } from './usuarioOrgao.reducer'\r\nimport { usuarioEmpresa } from './usuarioEmpresa.reducer'\r\n\r\nimport { combineReducers } from 'redux'\r\n\r\nimport { reducer as formReducer } from 'redux-form'\r\n\r\nconst appReducer = combineReducers({\r\n authentication,\r\n cidade,\r\n convocacao,\r\n dashboard,\r\n estado,\r\n empenho,\r\n empresa,\r\n empresaAnexo,\r\n empresaCidade,\r\n empresaOrgao,\r\n insumo,\r\n log,\r\n manual,\r\n notificacao,\r\n notificacaoFiltro,\r\n notificacaoUsuario,\r\n notificacaoTeste,\r\n obra,\r\n obraAnexo,\r\n obraAvaliacao,\r\n obraCobranca,\r\n obraCoordenada,\r\n obraDiario,\r\n obraMedicao,\r\n obraMedicaoEtapaItemAnexo,\r\n obraEtapa,\r\n obraEtapaItem,\r\n obraOcorrenciaAnexo,\r\n obraOcorrencias,\r\n obraOrcamento,\r\n obraOrcamentoItem,\r\n orgao,\r\n parametro,\r\n permissao,\r\n permissaoTipoUsuario,\r\n permissaoUsuario,\r\n relatorio,\r\n subOrgao,\r\n tabelaInsumo,\r\n tabelaInsumoAno,\r\n tabelaInsumoMes,\r\n tipoAnexo,\r\n tipoServico,\r\n tipoUsuario,\r\n tipoObra,\r\n unidade,\r\n usuario,\r\n usuarioOrgao,\r\n usuarioEmpresa,\r\n form: formReducer\r\n})\r\n\r\nconst rootReducer = (state, action) => {\r\n if (action.type === 'LOGOUT_SUCCESS') {\r\n const { routing } = state\r\n state = { routing }\r\n }\r\n return appReducer(state, action)\r\n}\r\nexport default rootReducer\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom/client'\r\nimport App from './App'\r\nimport { createStore, applyMiddleware } from 'redux'\r\nimport { Provider } from 'react-redux'\r\nimport { thunk } from 'redux-thunk'\r\nimport './index.css';\r\nimport multi from 'redux-multi'\r\nimport reducer from './_reducers'\r\nimport { persistStore, persistReducer } from 'redux-persist'\r\nimport storage from 'redux-persist/lib/storage'\r\nimport { PersistGate } from 'redux-persist/integration/react'\r\n\r\nconst persistConfig = {\r\n key: 'raiar-admin-root',\r\n storage,\r\n blacklist: ['authentication']\r\n}\r\nconst persistedReducer = persistReducer(persistConfig, reducer)\r\nconst devTools =\r\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\r\n//Define a store do redux (agrupa todos reducers da aplicação, atravez do arquivo reducer from './_reducers';)\r\nconst store = applyMiddleware(thunk, multi)(createStore)(\r\n persistedReducer,\r\n devTools\r\n)\r\nconst persistor = persistStore(store)\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\r\n\r\nroot.render(\r\n <Provider store={store}>\r\n <PersistGate loading={null} persistor={persistor}>\r\n <App />\r\n </PersistGate>\r\n </Provider>\r\n)\r\n","module.exports = __webpack_public_path__ + \"static/media/raiar.ed75877d.png\";","module.exports = __webpack_public_path__ + \"static/media/raiarBlue.139d6e61.png\";","module.exports = __webpack_public_path__ + \"static/media/autonomo.6f3f26c7.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAKIUExURUdwTABKrQBKrQBIrQBs/wBIrQBm7wBs/wBs/wBIrUdwTABKrUdwTABIrQBs/0dwTABIrQBu/wBIrUdwTABq/wBIrQBIrQBIrQBs/wBs/wBIrQBKrQBIrQBs/0dwTABs/wBIrQBs/wBm8QBm7wBs/wBs/wBs/wBIrQBOtQBs/QBs/wBk7QBs/wBIrwBs/wBs/wBo/wBKrQBIrQBs/wBIrQBIrQBg/wBIrQBKrQBs/wBIrQBs/5G9+QBIrQBq/wBs/wBIrQBKrQA8pwBm8QBIrQBa7wBs/wBKqwBu/wBIrQBIrQB0/wBs/wBs/wBm7wBIrQBIrQBs/wBIrQBs/wBo/wBIrQBi/wBs/wBq/wBs/wBs/wBIrQBs/wBs/wBm/wBIrQBs/wBKrQBIrQBKrQBs/wBs/wBKrQBIrwBIrQBk6wBIrQBIrQBIrQBIrQBu/wBEqwBq/wBs/wBs/wBIrQBs/wRMrSZ88wBIrR5gtwBKrQBIrQBs/wBKrUdwTABq/wBIrQBo/wBIrQBIrQBs/wBg7wBk7wA8mQBIrQBm/wBu/wRo8QBIrQBs/////wBKrQBIrQBu//39/wJu/wBk/wBo/wJKrfv7/fn7/QBGq/n7/wBEqwJMr/v9/wBm/wBAqQZOr/H1+wA+p/v9/QA+qShmuwBq/wJMrQBCq/3//9Hl/x5et6XL/6PL/4ep2QJs/wBIqwJw/yZkuRpctSqF/+Hp9QBi/7fV/2Kl/5e13e/1/93n8+31/5/J/16Ny0SV/2Cl/z6R/1qh/5Wz3TSL/wRu/2Sn/8HT65Gx21aJyWqVzwBCqRhatXSd073P6RJWs9fj8anN/xh6/w52/0qZ//H3/x5+/yyH/xBUs3BlNNcAAACMdFJOUwAC/QL7+esC/fsA+wD91QBEAqsAAu0u9+loOASfgQDJ4Tjr6UwO198CkTYIwRLlgwjjm+8avwSBLvkkeP1IDDqv3fn3ue3zAuNCBCibfOVM8T6P4wYOAqVY7Yu9Cq8GPNOto9F2FJMKRseJrVD1DvlcKM2d8fntwfmxZBj5AA6NBG4MYOnjBhYE2+mhzBXeqAAABHRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0nYWRvYmU6bnM6bWV0YS8nPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6QXR0cmliPSdodHRwOi8vbnMuYXR0cmlidXRpb24uY29tL2Fkcy8xLjAvJz4KICA8QXR0cmliOkFkcz4KICAgPHJkZjpTZXE+CiAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgICA8QXR0cmliOkNyZWF0ZWQ+MjAyMy0xMC0wOTwvQXR0cmliOkNyZWF0ZWQ+CiAgICAgPEF0dHJpYjpFeHRJZD43MGRiM2NmMy03ZTlkLTQxOGEtOTIyZi0zM2U0NzYzNjFjYjc8L0F0dHJpYjpFeHRJZD4KICAgICA8QXR0cmliOkZiSWQ+NTI1MjY1OTE0MTc5NTgwPC9BdHRyaWI6RmJJZD4KICAgICA8QXR0cmliOlRvdWNoVHlwZT4yPC9BdHRyaWI6VG91Y2hUeXBlPgogICAgPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L0F0dHJpYjpBZHM+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyc+CiAgPGRjOnRpdGxlPgogICA8cmRmOkFsdD4KICAgIDxyZGY6bGkgeG1sOmxhbmc9J3gtZGVmYXVsdCc+RGVzaWduIHNlbSBub21lIC0gMTwvcmRmOmxpPgogICA8L3JkZjpBbHQ+CiAgPC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJz4KICA8cGRmOkF1dGhvcj5MdWNpYW5vIEdvbWVzPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSdyJz8+rpgb6wAAAyVJREFUOBGFlIlPE0EUxp9rods0JWpUPING0XrjhXcMHvG+YlxvxXgfxCPeGox3lJnXdttlgRRQoo0a7XibiCfeeN//jm+2BaYUsJt0J5nffu99770ZgKZfZ4D8/vNzZp/tUnBoRw+AWbOa9tSVAfndBzDGgpkZiEKMnQLQXt1vWBvQt5Axl8sV7JeNmldDceR8S6QbVuiExXVdgpbP8mg4sGs6acBpkmPMjOvBzOMSDPgycHEaacBUxnSmx5mpXz2zW8QstCzMwIJl0MzRkCzSM+OMhSt/HDxcXVVvoU+So6Bdgwn5NmASmyD1WOTFt1rbvv/uTj0S6dPE+tQ0c4dT4Di7+vom59c4D/GaT1WIWsAb2KnGNmAPc8VN0rvJo6WhmlDI5vxDVUxYPsyeqJAdYTlz6cwMP+flIZKTirz0Sj1518RRNXZ+FtNJkF3nUclJ0uZ1VTEUGXhCBXNHkxOz8hURDue8H1cL1DxYovou3k9ezPBL4pKg1LxRgT4PdlLLk7ufmcx88IhHmzhuX6lAS4JKydd0k6HDP1MUL30pQ/RQyRUQhlJoFvn+q4EM8VL+mTjq9zjo2RjcgN7MZZpm+Akvd+xQqjZ/ejmmUWu2Ka7d0JdC68HI71oqpFNJm78VgoYI+2xt1HMWOTK2GX5WznnUtms4//qRPJOXlDLSUHSnHsoK/XkYlQW/VPe3wpId9I5P8eKH4qVOb8zKyL03k2+9v3u5jLiAV3RSMpShDVgg55Gis0h45jTCUGaoiTnNQD8cW5loN9NvXzwQoy6jRUVcnerEkRxBkjS5LHG4AjSNJNihmSCAHzZTd+RZSIDoCM5IE5RZbkpkmQQtjc5MjzRB+WXeAKolPc65Rkt4AyUtcgb0ZzqdrwSoCR92GZNSw8Y03LBW+kmAPrJ8UhmHRooWbtgrj2wytAc3+tVdde0MUTK0U5qm+VIxuTb2UZqOGS9uadFJ4gsDBifrSDfZqZadNJCr2ATnfhSL2hCU/VlXyAj0Yq+29GSSsITAIhw57D8gkYOCC4vELpibSKbVfz/kXZgueqm3QyusG+Zt33AuPfA/hgJwiLdQhbsAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/raiarWhite.afb8a476.png\";","module.exports = __webpack_public_path__ + \"static/media/login_mini.b43cc05f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/empresa.306681e2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/cidade.16859043.jpg\";","module.exports = __webpack_public_path__ + \"static/media/prestador.14d79e8e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/fornecedor.43fe18c6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/drmEngenharia.77b2db60.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAfCAYAAAD9cg1AAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQ5SURBVEhLpVZdSNNRFN+3zu/p8GM6qVRU0B5EsQJBECboQ36gQb1UhA/mo/SYElgPiUZKYA/SEnxQQh+CUkSKFDNEikEZ5nJOzdxW+TX3vX5n3c3929wc/uCwe8/u/557zvmdcy9/YGBAPDs7m8A7Afb29njx8fG8zc1NR0ZGhiMnJ8fe0dFh5/P5brYkAPyWlpaCiYmJhy6XS8h0x8JvIzMM/YF8kUgkH8vLyz+XlZUZmpubnez/IzQ0NFzAhw4M6eOIRCAQuFJSUvQFBQXqoqKi5rGxsSTouTiNAa+IRCJ7TEyMTqlUqru6utKgO0J9ff3F0xogofDBkDUvL+8Zwp4BnQcC9ntqwADP6XRK1tbWGqampq6MjIx4chrSAH2EOLuFQqFXPDovaOwVkITndrt5Npst3mw231Cr1eWY84WFhYXKpaWlm1gfYCwxMdGUlZU1JZfLF5OTkzWQL0lJSatSqdSCTWRYEpR5h4eHcqvVqp2cnPwgYrqgwMa66urq+7W1tVqa2+12gV6vj56ZmclcXFxUbW1t3UZtyOnk/iDKw/NLWP8kZJJzc3PnGxsb8zDmgFxvb2+PraiouIOwufB9wLcoxFUUYmrIHNBGcJXNjkAbdnd3H2xsbLxCGL8ztQ+Uk/39/ZSdnR3hqVgkk8nMYrF4i005wMGkyBM/rIGoqCg2CgR5CDmuxVCowtLUjYQd8fI/IImJoKWvqPwBpplR3e6wHlAdsCEHPT09Uvx3HbFWMJUPxCo0QqNCoXCGNIDTu3HKAAM6nU42PT09qNFoWrFZUKrDg0+ZmZkWPtF0fHz8XbBYYtF+WlraNyTSwlRkVGQ0Gs+BIcnEFgKd2DsmoCfZsPkdlUoVug4iEcoXCcLmRA28r6mpKYXh8CyKFLiAjDAw2NbWpvEYZPoTwT8MwYDND4qLi5/iAhqFB54KDUdTjoQCbrYflZWV7ehbD4aHh38zdegLh+JJCYYcMrFirSvY2vz8/OcLCwtiijvmPhzbrunEaAU/Ec8XON1bjD+AVXq0AIXD4Yj53yO06LPr6+tf0fy+jo6OklEPjm3XRD30/nXE9BHuhGXSbW9vZ4H/CTBSi6mA1niBvpMwNzd3FwdZwHT1n/YErQI/tr6+PisJvNWVlpYORkdHBzQ48shkMuXPz8/fWl5e9jWwiFjU2dnpwBvoZXp6+mum4gAeSXAhNbW2tl5gqsgMEMhIXV3d49jYWCPN6eQkFC66ly0Wy5mVlZX63t5ezxsprIFgzQ6N7lNVVdU9aglM5QMIIEGorg4NDamamprCXzjBbjQCes1wdnb2G/9Ee7G7uys3GAzXtFptnAjV50DmDXjTBDS7uLi4PwgF8T4A/f39v1BY3WCPEmGhi59jCV34PD0QRCUlJUt4LV9meg5SU1MP0NM32ZQDYhhCMIMDXMHLQsrUHJhMpt9/ASMQLRkjm5mZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAKaUExURUdwTMcQEskQEuEQFkdwTMcPEckQEuIPFN0QFscQEuMQFsgRE8cQE+MSGNIPE+MQFuIQFuMQFuMQGOEQFt0QFskOEckQEuMSGOIMEckQEuIQF9YOEsgPEccQEscQEskTFdQMEuMRF+EQFuIQFskQEscQEOIQFscQEscQEsgOEccQEtYNEOMQFuMQFuEQFskQEskMDOEQFscQEOEQFuEQFscQEuEQFuMQEuEQFskQEuMQGOMQFuMQFuMSFuEQFscQEscQEuEQFt0QFskQEscQEuEQFuMQFscOEMkQEtsIDuMQFucQGMcKDN8UGOMQFuEQFuMQFuMQFuMQFuMSGM8uMMcOEsEAAtcABuMQFscQEMcQEscOEMcQEscQEuM0OOEQFuMQFumbnccQEuEOFuEQFscQEscQEskQEscQEt0SGOMQFscQEt0QFuEQFscOEuEQFscQEskQEskQEkdwTEdwTEdwTEdwTNsQFuEQFuMQFuMQFuMQFscQEscQEscMEP///8kQEscQEuMSGOEQFuESGMkSFOMUGv/9/eESFuMQFv37++MQGOEQGP/7++EIDsUDBeECCscICuEKEP35+ccMDuEGDOEEDOEMEuMSFscKDMUGCOUuNMkOEOECCOVydulQVvnj4+Ghof/5+cEEBsEsLvPb2+EOFN8KEPnz8/Wpq8k6Ov3t7+1kaMUKDMMCBNNubsMkJr0SFOMOFMkUFscOEPWvseeXme1ucM84Ou3Hx+UgJP3z8/v5+cMuLtE0Nt2Tk78OEL8kJu1qbulCRvXh4elMUN8CCOWdn+UoLr8GCNFmaOF8fskYGsMKDOE6QP39/fWlqfnV1f/5++U6QOMWHPvz8/O9v/Wrrd10duvDxf3v78kwMsUYGutWWr6l7+QAAAB/dFJOUwD7+/0AAv0C6/n9AgL7BPsM0/v76S6t/QTg7A44n+D5Cv06ZKtDfY73R74G4aPLnQxqFoXD7WIKSEQWy9/7vYm5YOWbUOl2PNHpOib56cEyXPN08flM+e2ZbrEk45Pt1+P9/RpMr93Bo+ts6/fvGs/1gaEAAAAAx9U2h6Vk8RI/QjAAAAAEdGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTEwLTA5PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmY2Y2ViMGI5LWM0NmQtNDk0Mi1hMTk4LWRjNDcxZWVjZjExNTwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5EZXNpZ24gc2VtIG5vbWUgLSAyPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkx1Y2lhbm8gR29tZXM8L3BkZjpBdXRob3I+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnhtcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhtcDpDcmVhdG9yVG9vbD5DYW52YTwveG1wOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9J3InPz6ErDeUAAADH0lEQVQ4EYWUZ2/TUBSGb2LVIQ1x06alhRaKS4EOWrGX2KXsJcpeggBlQ+ELIAHmyicmiqKudAiQGALaskGUvVfZBARi8184J4mJMyjXH3wTP37Pe8Y1Y5FlYcyybklpWpctlRvG5+D/tsgz405ibHiq6vFAuonjKirE94zP9b2F5ZUCZNqdkF7AzVaR82WDE5EW1kcFZ4oAAoGiy2Uy814Z8aQU5DwgCwCbcrmIFzfx/XGkxPJUSCFMy2yZPqv9mpuLIpKV2bEZFe8BZ1CusfXOqgVva+rcHEWtvIx11ZOgu8Tmq3YV9dT659fP+/0nbjw4QqTLxadGk9kDQECu5fNXhdYhxfsGSQq+PlpwnmrHLKD5rOL1BnD5FeVbDZG8YLnBpYWVgFOWtdonijegEKh4Fe8t8mnm+4wlwlRQUIWPCAQodkDxKy9QEtPpbwQd2xDUqp8SEVwk+uxXOxdNfJchNHNUqDJotRcobIjEN+79POzGbPKN2TgqIBm0jpsYWecQPFfndsWAI8pBELSm31GKbVcaSLHMGJqNA6cKzS/vYsRgbEr7+6ODXLTyndgOfWWxftRArekDJksu0apfuXzK7RJdvJAl6RzmPxfHS4D6oz+IpMuv3L7KObawe++/WHAzB1I0dHkcW+LFpShnTl/Ezpiiy4guJmIPZVVr/PQl6LHt5ON3wQ6aMqKHgjnGgCyDqlW3vj+25uHr+68wY5qJ/BhOYlNozpCE+o7Fiy41uLF9LrTY19hANGljo8s9mclIAmizc3HAkUPBouhM8JeEFUrzyDgZocNFBxbRUTGCJJm9GmQidZAcTogTJMnN6BKHNwzi2RJ5TlT79LcsOyDFEwFRcGNMyiFSYiOBIoc/AGhw2PaEgmi7xDfWh0eMvhTkcKlhHPSwdLextT1A8IU9mvm0yNQYMdxnsUE+e7g8WOv40hj4oeAMKVr5yrgSRjgL25scKg9+yQYmziRES2yI6gx+H/nCTgQpn6xUH4Jm3jNhCSPBJTZDhfQqvuJAZ4GJx+AwqYpP/kcJI5I2lpS69b+Bibewmbu7FccH/gMFjEjOL2USrQAAAABJRU5ErkJggg==\""],"sourceRoot":""}