@inovamobil/ic-databar-lib 2.2.2-next.0 → 2.2.2-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/inovamobil-ic-databar-lib.umd.js +1 -1
- package/bundles/inovamobil-ic-databar-lib.umd.js.map +1 -1
- package/bundles/inovamobil-ic-databar-lib.umd.min.js +1 -1
- package/bundles/inovamobil-ic-databar-lib.umd.min.js.map +1 -1
- package/esm2015/lib/ic-data-bar.component.js +2 -2
- package/fesm2015/inovamobil-ic-databar-lib.js +1 -1
- package/fesm2015/inovamobil-ic-databar-lib.js.map +1 -1
- package/inovamobil-ic-databar-lib.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -454,7 +454,7 @@ export class DataBarComponent {
|
|
|
454
454
|
DataBarComponent.decorators = [
|
|
455
455
|
{ type: Component, args: [{
|
|
456
456
|
selector: 'ic-data-bar',
|
|
457
|
-
template: "<div fxFlex=\"1 0 auto\" fxFlexLayout=\"space-around center\" fxLayout=\"column\">\r\n <!-- DESKTOP -->\r\n <mat-toolbar class=\"px-0 mat-elevation-z4\">\r\n <div fxFlex=\"1 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\r\n <!-- BOT\u00C3O EXIBIR DRAWER -->\r\n <mat-drawer-container fxFlex.sm fxHide.gt-sm>\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n id=\"btn_exibir_databar_mobile\"\r\n mat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </mat-drawer-container>\r\n <!-- /BOT\u00C3O EXIBIR DRAWER -->\r\n\r\n <!-- A\u00C7\u00D5ES -->\r\n <div\r\n fxFlex.sm\r\n fxHide\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"space-around center\"\r\n fxShow.gt-sm\r\n >\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\"\r\n color=\"primary\"\r\n id=\"btn_nova_pesquisa\"\r\n mat-button\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>insert_drive_file</mat-icon>\r\n </button>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <!-- BTN_REVERTER -->\r\n <button\r\n (click)=\"onClickReverter()\"\r\n [disabled]=\"desabilitarBotaoReverter\"\r\n color=\"primary\"\r\n id=\"btn_reverter\"\r\n mat-button\r\n matTooltip=\"Reverter\"\r\n >\r\n <mat-icon>restore</mat-icon>\r\n </button>\r\n <!-- BTN_REVERTER -->\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n id=\"btn_adicionar\"\r\n mat-button\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n </button>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <!-- BTN_EDITAR -->\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n id=\"btn_editar\"\r\n mat-button\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <!-- BTN_EDITAR -->\r\n\r\n <!-- BTN_CLONAR -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\"\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n <!-- BTN_CLONAR -->\r\n\r\n <!-- BTN_REMOVER -->\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n id=\"btn_remover\"\r\n mat-button\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n </button>\r\n <!-- BTN_REMOVER -->\r\n\r\n <!-- BTN_SALVAR -->\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n id=\"btn_salvar\"\r\n mat-button\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <!-- BTN_SALVAR -->\r\n </div>\r\n <!-- /A\u00C7\u00D5ES -->\r\n\r\n <!-- STATUS -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- PROGRESS -->\r\n <mat-spinner *ngIf=\"emProgresso\" [diameter]=\"20\"></mat-spinner>\r\n <!-- PROGRESS -->\r\n\r\n <button\r\n color=\"primary\"\r\n fxHide.lt-sm\r\n id=\"btn_status\"\r\n mat-button\r\n matTooltip=\"A\u00E7\u00E3o no momento\"\r\n >\r\n {{ status }}\r\n </button>\r\n </div>\r\n <!-- STATUS -->\r\n\r\n <!-- PAGINA\u00C7\u00C3O -->\r\n <div fxFlex.sm fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- BTN_PRIMEIRO -->\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n id=\"btn_primeiro\"\r\n mat-button\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n </button>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <!-- BTN_ANTERIOR -->\r\n <button\r\n (click)=\"anterior()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoAnterior()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_anterior\"\r\n mat-button\r\n matTooltip=\"Anterior\"\r\n >\r\n <mat-icon>navigate_before</mat-icon>\r\n </button>\r\n <!-- BTN_ANTERIOR -->\r\n\r\n <div\r\n class=\"px-0 px-sm-12 contador-paginas\"\r\n id=\"contador_paginacao\"\r\n matTooltip=\"P\u00E1gina Atual\"\r\n >\r\n {{ entidadePaginada?.posicao }} de {{ entidadePaginada?.total }}\r\n </div>\r\n\r\n <!-- BTN_PROXIMO -->\r\n <button\r\n (click)=\"proximo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoProximo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_proximo\"\r\n mat-button\r\n matTooltip=\"Pr\u00F3ximo\"\r\n >\r\n <mat-icon>navigate_next</mat-icon>\r\n </button>\r\n <!-- BTN_PROXIMO -->\r\n\r\n <!-- BTN_ULTIMO -->\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n </button>\r\n <!-- BTN_ULTIMO -->\r\n </div>\r\n <!-- /PAGINA\u00C7\u00C3O -->\r\n\r\n <div\r\n fxShow.gt-sm\r\n fxHide\r\n fxFlex.sm\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <!-- MODO_TABELA -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>format_list_bulleted</mat-icon>\r\n </button>\r\n <!-- MODO_TABELA -->\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <!-- /DESKTOP -->\r\n\r\n <!-- MOBILE -->\r\n <mat-drawer #drawer fxFlex fxLayoutAlign=\"column\" mode=\"over\">\r\n <!-- FECHAR SIDENAV -->\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n class=\"btn-fechar-drawer\"\r\n id=\"btn_fechar_databar_mobile\"\r\n mat-icon-button\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- /FECHAR SIDENAV -->\r\n\r\n <!-- STATUS -->\r\n <div class=\"pr-12\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <div fxFlex=\"100\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <h4 class=\"pl-12\">A\u00E7\u00F5es</h4>\r\n <p class=\"texto-status\" id=\"status_mobile\">{{ status }}</p>\r\n </div>\r\n </div>\r\n <!-- /STATUS -->\r\n\r\n <!-- OPCOES -->\r\n <div class=\"px-12 overflow\" fxLayout=\"column\" fxLayoutAlign=\"start start\">\r\n <mat-list>\r\n <!-- BTN_PRIMEIRO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_primeiro_mobile\"\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n Primeiro item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ULTIMO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo_mobile\"\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n \u00DAltimo item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ULTIMO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- MODO_TABELA -->\r\n <mat-list-item>\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela_mobile\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>list</mat-icon>\r\n Modo tabela\r\n </button>\r\n </mat-list-item>\r\n <!-- MODO_TABELA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"\r\n servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\r\n \"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_nova_pesquisa_mobile\"\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>restore_page</mat-icon>\r\n Nova Pesquisa\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar_mobile\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n Pesquisar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_adicionar_mobile\"\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n Incluir\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_EDITAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_editar_mobile\"\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n Editar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_EDITAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_CLONAR -->\r\n <mat-list-item *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\">\r\n <button\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar_mobile\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>content_copy</mat-icon>\r\n Clonar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_CLONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_REMOVER -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_remover_mobile\"\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n Remover\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_REMOVER -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_SALVAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_salvar_mobile\"\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n Salvar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_SALVAR -->\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n </div>\r\n <!-- /OPCOES -->\r\n </mat-drawer>\r\n <!-- /MOBILE -->\r\n</div>\r\n",
|
|
457
|
+
template: "<div fxFlex=\"1 0 auto\" fxFlexLayout=\"space-around center\" fxLayout=\"column\">\r\n <!-- DESKTOP -->\r\n <mat-toolbar class=\"px-0 mat-elevation-z4\">\r\n <div fxFlex=\"1 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\r\n <!-- BOT\u00C3O EXIBIR DRAWER -->\r\n <mat-drawer-container fxFlex.sm fxHide.gt-sm>\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n id=\"btn_exibir_databar_mobile\"\r\n mat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </mat-drawer-container>\r\n <!-- /BOT\u00C3O EXIBIR DRAWER -->\r\n\r\n <!-- A\u00C7\u00D5ES -->\r\n <div\r\n fxFlex.sm\r\n fxHide\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"space-around center\"\r\n fxShow.gt-sm\r\n >\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\"\r\n color=\"primary\"\r\n id=\"btn_nova_pesquisa\"\r\n mat-button\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>insert_drive_file</mat-icon>\r\n </button>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <!-- BTN_REVERTER -->\r\n <button\r\n (click)=\"onClickReverter()\"\r\n [disabled]=\"desabilitarBotaoReverter\"\r\n color=\"primary\"\r\n id=\"btn_reverter\"\r\n mat-button\r\n matTooltip=\"Reverter\"\r\n >\r\n <mat-icon>restore</mat-icon>\r\n </button>\r\n <!-- BTN_REVERTER -->\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n id=\"btn_adicionar\"\r\n mat-button\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n </button>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <!-- BTN_EDITAR -->\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n id=\"btn_editar\"\r\n mat-button\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <!-- BTN_EDITAR -->\r\n\r\n <!-- BTN_CLONAR -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\"\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>file_copy</mat-icon>\r\n </button>\r\n <!-- BTN_CLONAR -->\r\n\r\n <!-- BTN_REMOVER -->\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n id=\"btn_remover\"\r\n mat-button\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n </button>\r\n <!-- BTN_REMOVER -->\r\n\r\n <!-- BTN_SALVAR -->\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n id=\"btn_salvar\"\r\n mat-button\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <!-- BTN_SALVAR -->\r\n </div>\r\n <!-- /A\u00C7\u00D5ES -->\r\n\r\n <!-- STATUS -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- PROGRESS -->\r\n <mat-spinner *ngIf=\"emProgresso\" [diameter]=\"20\"></mat-spinner>\r\n <!-- PROGRESS -->\r\n\r\n <button\r\n color=\"primary\"\r\n fxHide.lt-sm\r\n id=\"btn_status\"\r\n mat-button\r\n matTooltip=\"A\u00E7\u00E3o no momento\"\r\n >\r\n {{ status }}\r\n </button>\r\n </div>\r\n <!-- STATUS -->\r\n\r\n <!-- PAGINA\u00C7\u00C3O -->\r\n <div fxFlex.sm fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- BTN_PRIMEIRO -->\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n id=\"btn_primeiro\"\r\n mat-button\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n </button>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <!-- BTN_ANTERIOR -->\r\n <button\r\n (click)=\"anterior()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoAnterior()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_anterior\"\r\n mat-button\r\n matTooltip=\"Anterior\"\r\n >\r\n <mat-icon>navigate_before</mat-icon>\r\n </button>\r\n <!-- BTN_ANTERIOR -->\r\n\r\n <div\r\n class=\"px-0 px-sm-12 contador-paginas\"\r\n id=\"contador_paginacao\"\r\n matTooltip=\"P\u00E1gina Atual\"\r\n >\r\n {{ entidadePaginada?.posicao }} de {{ entidadePaginada?.total }}\r\n </div>\r\n\r\n <!-- BTN_PROXIMO -->\r\n <button\r\n (click)=\"proximo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoProximo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_proximo\"\r\n mat-button\r\n matTooltip=\"Pr\u00F3ximo\"\r\n >\r\n <mat-icon>navigate_next</mat-icon>\r\n </button>\r\n <!-- BTN_PROXIMO -->\r\n\r\n <!-- BTN_ULTIMO -->\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n </button>\r\n <!-- BTN_ULTIMO -->\r\n </div>\r\n <!-- /PAGINA\u00C7\u00C3O -->\r\n\r\n <div\r\n fxShow.gt-sm\r\n fxHide\r\n fxFlex.sm\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <!-- MODO_TABELA -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>format_list_bulleted</mat-icon>\r\n </button>\r\n <!-- MODO_TABELA -->\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <!-- /DESKTOP -->\r\n\r\n <!-- MOBILE -->\r\n <mat-drawer #drawer fxFlex fxLayoutAlign=\"column\" mode=\"over\">\r\n <!-- FECHAR SIDENAV -->\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n class=\"btn-fechar-drawer\"\r\n id=\"btn_fechar_databar_mobile\"\r\n mat-icon-button\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- /FECHAR SIDENAV -->\r\n\r\n <!-- STATUS -->\r\n <div class=\"pr-12\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <div fxFlex=\"100\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <h4 class=\"pl-12\">A\u00E7\u00F5es</h4>\r\n <p class=\"texto-status\" id=\"status_mobile\">{{ status }}</p>\r\n </div>\r\n </div>\r\n <!-- /STATUS -->\r\n\r\n <!-- OPCOES -->\r\n <div class=\"px-12 overflow\" fxLayout=\"column\" fxLayoutAlign=\"start start\">\r\n <mat-list>\r\n <!-- BTN_PRIMEIRO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_primeiro_mobile\"\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n Primeiro item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ULTIMO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo_mobile\"\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n \u00DAltimo item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ULTIMO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- MODO_TABELA -->\r\n <mat-list-item>\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela_mobile\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>list</mat-icon>\r\n Modo tabela\r\n </button>\r\n </mat-list-item>\r\n <!-- MODO_TABELA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"\r\n servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\r\n \"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_nova_pesquisa_mobile\"\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>restore_page</mat-icon>\r\n Nova Pesquisa\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar_mobile\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n Pesquisar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_adicionar_mobile\"\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n Incluir\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_EDITAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_editar_mobile\"\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n Editar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_EDITAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_CLONAR -->\r\n <mat-list-item *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\">\r\n <button\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar_mobile\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>file_copy</mat-icon>\r\n Clonar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_CLONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_REMOVER -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_remover_mobile\"\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n Remover\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_REMOVER -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_SALVAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_salvar_mobile\"\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n Salvar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_SALVAR -->\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n </div>\r\n <!-- /OPCOES -->\r\n </mat-drawer>\r\n <!-- /MOBILE -->\r\n</div>\r\n",
|
|
458
458
|
styles: ["::ng-deep .sucesso{background:#4caf50!important;color:#fff!important}::ng-deep .sucesso button{color:#1b5e20!important;font-weight:800!important}.contador-paginas{color:#039be5;font-size:14px}@media (max-width:959px){.contador-paginas{font-size:12px}}.btn-fechar-drawer{position:absolute;right:5px;top:5px}.texto-status{color:#039be5;text-align:center}mat-toolbar{height:52px;width:100%}mat-drawer-container{background:transparent!important}mat-drawer{left:0;min-width:240px}.overflow,mat-drawer,mat-list{overflow-y:auto}:host{display:flex;flex:0 0 auto;z-index:99999}:host .mat-toolbar .pagina{font-size:10px;margin:1vm;text-align:center}:host.above{position:relative;z-index:99999999}"]
|
|
459
459
|
},] }
|
|
460
460
|
];
|
|
@@ -476,4 +476,4 @@ DataBarComponent.propDecorators = {
|
|
|
476
476
|
drawer: [{ type: ViewChild, args: ['drawer', { static: false },] }],
|
|
477
477
|
fecharSidenav: [{ type: HostListener, args: ['document:click', ['$event'],] }]
|
|
478
478
|
};
|
|
479
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvaWMtZGF0YS1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBUXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTy9ELE1BQU0sT0FBTyxnQkFBZ0I7SUF1QnpCLFlBQ1ksT0FBZ0MsRUFDaEMsV0FBK0IsRUFDL0IsV0FBdUIsRUFDdkIsZUFBK0IsRUFDL0IsZ0JBQW9DO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFv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WSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IEljQ29uZmlybWFEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWMtY29uZmlybWEtZGlhbG9nJztcclxuaW1wb3J0IHsgSWNtU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWNtLXNuYWNrYmFyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXJyb3JEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaWFsb2dzL2Vycm9yLWRpYWxvZy9zZXJ2aWNlL2Vycm9yLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBBQ0FPX1BBR0lOQUNBTyB9IGZyb20gJy4vY29uc3RhbnRzL2ljLWRhdGFiYXIuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0RhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyQmluZE9uQ2xpY2tTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJSZXZlcnRlclNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJCaW5kU2VydmljZSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFCYXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFFbnRpZGFkZVBhZ2luYWRhIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUVudGlkYWRlUGFnaW5hZGEnO1xyXG5pbXBvcnQgeyBFRXZlbnRvQ2xpY2sgfSBmcm9tICcuL2VudW0vZWV2ZW50b2NsaWNrJztcclxuaW1wb3J0IHsgRVN0YXR1cyB9IGZyb20gJy4vZW51bS9lc3RhdHVzJztcclxuaW1wb3J0IHsgSWNEYXRhYmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pYy1kYXRhYmFyLXJldmVydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhYmFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpYy1kYXRhLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3L2ljLWRhdGEtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhQmFyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgc2Vydmljb0JpbmQ6XHJcbiAgICAgICAgfCBJRGF0YUJhckJpbmRTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRTdGF0dXNTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPjtcclxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzOiBEYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZTtcclxuICAgIEBJbnB1dCgpIHNldCBzZXJ2aWNvUmV2ZXJ0ZXIoc2VydmljbzogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4pIHtcclxuICAgICAgICB0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPSBzZXJ2aWNvO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFU3RhdHVzPigpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0dXM6IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgRVN0YXR1cyA9IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3NlcnZpY29SZXZlcnRlcjogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD47XHJcbiAgICBwcml2YXRlICRzZXRTdGF0dXM6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJhd2VyOiBNYXREcmF3ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nOiBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dFcnJvOiBFcnJvckRpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9kYXRhYmFyU2VydmljZTogRGF0YWJhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc25hY2tCYXJTZXJ2aWNlOiBJY21TbmFja0JhclNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGFyUHJvcGVydHNPYnJpZ2F0b3JpYXMoKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhclNldFN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlcikgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJHNldFN0YXR1cykgdGhpcy4kc2V0U3RhdHVzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgZmVjaGFyU2lkZW5hdihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluc2VyaW5kb091RWRpdGFuZG8oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLmluc2VyaW5kbyB8fCB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5lZGl0YW5kbztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1Blc3F1aXNhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvUmV2ZXJ0ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9BZGljaW9uYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvRWRpdGFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMucGVzcXVpc2FuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvRWRpdGFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvQ2xvbmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICF0aGlzLmVudGlkYWRlUGFnaW5hZGE/LmVudGlkYWRlIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzICE9IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQ2xvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUmVtb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9TYWx2YXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mb3JtPy5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmluc2VyaW5kbyAmJiB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmVkaXRhbmRvKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvU2FsdmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb1JldHJvY2VkZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvIDw9IDEgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzb1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90b2VzUGFnaW5hY2FvQXZhbmNhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmluc2VyaW5kb091RWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPj0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tSZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja01vZG9UYWJlbGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tNb2RvVGFiZWxhKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrTm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgIH1cclxuXHJcbiAgICBub3ZhUGVzcXVpc2EoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGVzcXVpc2FyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0luc2VyaXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrSW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrSW5zZXJpcik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrRWRpdGFyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0VkaXRhcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrRWRpdGFyKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9uYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tDbG9uYXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrQ2xvbmFyKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tDbG9uYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tSZW1vdmVyKTtcclxuICAgICAgICB0aGlzLl9jbGlja1JlbW92ZXIoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja1JlbW92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3hpbW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigncHJveGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIGFudGVyaW9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2FudGVyaW9yJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdWx0aW1vKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3VsdGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaW1laXJvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3ByaW1laXJvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2FsdmFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrU2FsdmFyKTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuaW5zZXJpbmRvOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJpcigpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lZGl0YXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pbnNlcmlyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuc2FsdmFuZG8pO1xyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmRcclxuICAgICAgICAgICAgLmNyaWFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBzYWx2byBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5pbnNlcmluZG8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5zYWx2YW5kbyk7XHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28odHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZFxyXG4gICAgICAgICAgICAuZWRpdGFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cm8gZWRpdGFkbyBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvYnNlcnZhclNldFN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoKHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPikuc2V0U3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuJHNldFN0YXR1cyA9IChcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgICAgICApLnNldFN0YXR1cy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdGFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmluc2VyaW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcmlyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLnBlc3F1aXNhbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlc3F1aXNhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMubm92YVBlc3F1aXNhOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMucmVtb3ZlbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvczpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKTogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gbmV3IEljRGF0YWJhclJldmVydGVyU2VydmljZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Vydmljb1JldmVydGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldERhZG9zQW50ZXJpb3JlcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkuc2V0RGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyxcclxuICAgICAgICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JldmVydGVyKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEgPSB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkucmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0sXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBzdGF0dXNBbnRlcmlvciA9IHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5zdGF0dXNBbnRlcmlvcjtcclxuXHJcbiAgICAgICAgaWYgKHN0YXR1c0FudGVyaW9yID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKVxyXG4gICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoc3RhdHVzQW50ZXJpb3IpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrUmV2ZXJ0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Jlc2V0YXJDb250YWRvclBhZ2luYWNhbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXJQcm9wZXJ0c09icmlnYXRvcmlhcygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtIHNlcnZpw6dvIGRlIGJpbmQgdmluY3VsYWRvLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignw4kgb2JyaWdhdMOzcmlvIHRlciB1bWEgZW50aWRhZGUgcGFnaW5hZGEgdmluY3VsYWRhLicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXR1cyhzdGF0dXM6IEVTdGF0dXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXN0YXR1cykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHRoaXMuc3RhdHVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRFbnRpZGFkZSgpOiBUIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBUO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3VibWV0ZXJGb3JtdWxhcmlvT25FbnRlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQub25DbGlja0VudGVyKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGVzcXVpc2FyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGEoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYS5zdWJzY3JpYmUoKGVudGlkYWRlUGFnaW5hZGEpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9IGVudGlkYWRlUGFnaW5hZGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wZXNxdWlzYXJTZWxlY2lvbmFkbygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGVzcXVpc2FyU2VsZWNpb25hZG8oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NldERhZG9zQW50ZXJpb3JlcygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2N1c3RvbWl6YWRvJyk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0luc2VyaXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xpY2tFZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0Nsb25hcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9yZXNldGFyQ29udGFkb3JQYWdpbmFjYW8oKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuaW5zZXJpbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja1JlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5yZW1vdmVuZG8pO1xyXG4gICAgICAgIHRoaXMuX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lbWl0aXJFdmVudG9DbGljayhldmVudG86IEVFdmVudG9DbGljayk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFyU2VydmljZS5lbWl0aXJFdmVudG9DbGljazxUPihcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPixcclxuICAgICAgICAgICAgZXZlbnRvLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNhb0Nsb3NlRGlhbG9nQ29uZmlybWFjYW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvTWVuc2FnZW0gPSAnUmVtb3ZlbmRvIHJlZ2lzdHJvLi4uJztcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb09rID0gKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5yZW1vdmVyKCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKCdSZW1vdmlkbyBjb20gc3VjZXNzbyEnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLl9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgJ1ZvY8OqIHJlYWxtZW50ZSBkZXNlamEgZXhjbHVpciBlc3RlIHJlZ2lzdHJvPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JldmVydGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAnQXMgYWx0ZXJhw6fDtWVzIHJlYWxpemFkYXMgc2Vyw6NvIHBlcmRpZGFzLiBEZXNlamEgY29udGludWFyPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wYWdpbmFyKGFjYW8/OiBBQ0FPX1BBR0lOQUNBTyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID0gW10uY29uY2F0KHRoaXMuX2dldEVudGlkYWRlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcG9zaWNhb0FudGVyaW9yID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW87XHJcblxyXG4gICAgICAgIHN3aXRjaCAoYWNhbykge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltZWlybyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndWx0aW1vJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Byb3hpbW8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8rKztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhbnRlcmlvcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhby0tO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbWl6YWRvJzpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5saXN0YXJQYWdpbmFjYW8odGhpcy5lbnRpZGFkZVBhZ2luYWRhKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ0Vycm8ub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnTmVuaHVtIHJlZ2lzdHJvIGZvaSBlbmNvbnRyYWRvLicsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5yZXNldEZvcm0odGhpcy5mb3JtLCB0aGlzLmVudGlkYWRlUGFnaW5hZGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gc3VjY2Vzcy50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHN1Y2Nlc3MucG9zaWNhbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdWNjZXNzLmVudGlkYWRlWzBdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQyMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gcG9zaWNhb0FudGVyaW9yO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJybyBwYWdpbmHDp8OjbycsIGVycm9yKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UHJvZ3Jlc3NvKHByb2dyZXNzbzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSB0aGlzLl9kYXRhYmFyU2VydmljZS5kZWZpbmlyUHJvZ3Jlc3NvKHRoaXMuZm9ybSwgcHJvZ3Jlc3NvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
479
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvaWMtZGF0YS1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBUXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTy9ELE1BQU0sT0FBTyxnQkFBZ0I7SUF1QnpCLFlBQ1ksT0FBZ0MsRUFDaEMsV0FBK0IsRUFDL0IsV0FBdUIsRUFDdkIsZUFBK0IsRUFDL0IsZ0JBQW9DO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFv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WSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IEljQ29uZmlybWFEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWMtY29uZmlybWEtZGlhbG9nJztcclxuaW1wb3J0IHsgSWNtU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWNtLXNuYWNrYmFyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXJyb3JEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaWFsb2dzL2Vycm9yLWRpYWxvZy9zZXJ2aWNlL2Vycm9yLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBBQ0FPX1BBR0lOQUNBTyB9IGZyb20gJy4vY29uc3RhbnRzL2ljLWRhdGFiYXIuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0RhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyQmluZE9uQ2xpY2tTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJSZXZlcnRlclNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJCaW5kU2VydmljZSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFCYXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFFbnRpZGFkZVBhZ2luYWRhIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUVudGlkYWRlUGFnaW5hZGEnO1xyXG5pbXBvcnQgeyBFRXZlbnRvQ2xpY2sgfSBmcm9tICcuL2VudW0vZWV2ZW50b2NsaWNrJztcclxuaW1wb3J0IHsgRVN0YXR1cyB9IGZyb20gJy4vZW51bS9lc3RhdHVzJztcclxuaW1wb3J0IHsgSWNEYXRhYmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pYy1kYXRhYmFyLXJldmVydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhYmFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpYy1kYXRhLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3L2ljLWRhdGEtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhQmFyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgc2Vydmljb0JpbmQ6XHJcbiAgICAgICAgfCBJRGF0YUJhckJpbmRTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRTdGF0dXNTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPjtcclxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzOiBEYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZTtcclxuICAgIEBJbnB1dCgpIHNldCBzZXJ2aWNvUmV2ZXJ0ZXIoc2VydmljbzogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4pIHtcclxuICAgICAgICB0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPSBzZXJ2aWNvO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFU3RhdHVzPigpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0dXM6IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgRVN0YXR1cyA9IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3NlcnZpY29SZXZlcnRlcjogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD47XHJcbiAgICBwcml2YXRlICRzZXRTdGF0dXM6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJhd2VyOiBNYXREcmF3ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nOiBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dFcnJvOiBFcnJvckRpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9kYXRhYmFyU2VydmljZTogRGF0YWJhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc25hY2tCYXJTZXJ2aWNlOiBJY21TbmFja0JhclNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGFyUHJvcGVydHNPYnJpZ2F0b3JpYXMoKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhclNldFN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlcikgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJHNldFN0YXR1cykgdGhpcy4kc2V0U3RhdHVzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgZmVjaGFyU2lkZW5hdihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluc2VyaW5kb091RWRpdGFuZG8oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLmluc2VyaW5kbyB8fCB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5lZGl0YW5kbztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1Blc3F1aXNhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvUmV2ZXJ0ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9BZGljaW9uYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvRWRpdGFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMucGVzcXVpc2FuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvRWRpdGFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvQ2xvbmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICF0aGlzLmVudGlkYWRlUGFnaW5hZGE/LmVudGlkYWRlIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzICE9IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQ2xvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUmVtb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9TYWx2YXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mb3JtPy5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmluc2VyaW5kbyAmJiB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmVkaXRhbmRvKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvU2FsdmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb1JldHJvY2VkZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvIDw9IDEgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzb1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90b2VzUGFnaW5hY2FvQXZhbmNhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmluc2VyaW5kb091RWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPj0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tSZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja01vZG9UYWJlbGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tNb2RvVGFiZWxhKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrTm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgIH1cclxuXHJcbiAgICBub3ZhUGVzcXVpc2EoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGVzcXVpc2FyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0luc2VyaXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrSW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrSW5zZXJpcik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrRWRpdGFyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0VkaXRhcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrRWRpdGFyKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9uYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tDbG9uYXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrQ2xvbmFyKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tDbG9uYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tSZW1vdmVyKTtcclxuICAgICAgICB0aGlzLl9jbGlja1JlbW92ZXIoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja1JlbW92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3hpbW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigncHJveGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIGFudGVyaW9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2FudGVyaW9yJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdWx0aW1vKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3VsdGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaW1laXJvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3ByaW1laXJvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2FsdmFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrU2FsdmFyKTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuaW5zZXJpbmRvOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJpcigpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lZGl0YXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pbnNlcmlyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuc2FsdmFuZG8pO1xyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmRcclxuICAgICAgICAgICAgLmNyaWFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBzYWx2byBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5pbnNlcmluZG8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5zYWx2YW5kbyk7XHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28odHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZFxyXG4gICAgICAgICAgICAuZWRpdGFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cm8gZWRpdGFkbyBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvYnNlcnZhclNldFN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoKHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPikuc2V0U3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuJHNldFN0YXR1cyA9IChcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgICAgICApLnNldFN0YXR1cy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdGFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmluc2VyaW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcmlyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLnBlc3F1aXNhbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlc3F1aXNhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMubm92YVBlc3F1aXNhOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMucmVtb3ZlbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvczpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKTogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gbmV3IEljRGF0YWJhclJldmVydGVyU2VydmljZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Vydmljb1JldmVydGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldERhZG9zQW50ZXJpb3JlcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkuc2V0RGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyxcclxuICAgICAgICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JldmVydGVyKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEgPSB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkucmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0sXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBzdGF0dXNBbnRlcmlvciA9IHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5zdGF0dXNBbnRlcmlvcjtcclxuXHJcbiAgICAgICAgaWYgKHN0YXR1c0FudGVyaW9yID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKVxyXG4gICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoc3RhdHVzQW50ZXJpb3IpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrUmV2ZXJ0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Jlc2V0YXJDb250YWRvclBhZ2luYWNhbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXJQcm9wZXJ0c09icmlnYXRvcmlhcygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtIHNlcnZpw6dvIGRlIGJpbmQgdmluY3VsYWRvLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignw4kgb2JyaWdhdMOzcmlvIHRlciB1bWEgZW50aWRhZGUgcGFnaW5hZGEgdmluY3VsYWRhLicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXR1cyhzdGF0dXM6IEVTdGF0dXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXN0YXR1cykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHRoaXMuc3RhdHVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRFbnRpZGFkZSgpOiBUIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBUO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3VibWV0ZXJGb3JtdWxhcmlvT25FbnRlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQub25DbGlja0VudGVyKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGVzcXVpc2FyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGEoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYS5zdWJzY3JpYmUoKGVudGlkYWRlUGFnaW5hZGEpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9IGVudGlkYWRlUGFnaW5hZGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wZXNxdWlzYXJTZWxlY2lvbmFkbygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGVzcXVpc2FyU2VsZWNpb25hZG8oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NldERhZG9zQW50ZXJpb3JlcygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2N1c3RvbWl6YWRvJyk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0luc2VyaXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xpY2tFZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0Nsb25hcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9yZXNldGFyQ29udGFkb3JQYWdpbmFjYW8oKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuaW5zZXJpbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja1JlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5yZW1vdmVuZG8pO1xyXG4gICAgICAgIHRoaXMuX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lbWl0aXJFdmVudG9DbGljayhldmVudG86IEVFdmVudG9DbGljayk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFyU2VydmljZS5lbWl0aXJFdmVudG9DbGljazxUPihcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPixcclxuICAgICAgICAgICAgZXZlbnRvLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNhb0Nsb3NlRGlhbG9nQ29uZmlybWFjYW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvTWVuc2FnZW0gPSAnUmVtb3ZlbmRvIHJlZ2lzdHJvLi4uJztcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb09rID0gKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5yZW1vdmVyKCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKCdSZW1vdmlkbyBjb20gc3VjZXNzbyEnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLl9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgJ1ZvY8OqIHJlYWxtZW50ZSBkZXNlamEgZXhjbHVpciBlc3RlIHJlZ2lzdHJvPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JldmVydGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAnQXMgYWx0ZXJhw6fDtWVzIHJlYWxpemFkYXMgc2Vyw6NvIHBlcmRpZGFzLiBEZXNlamEgY29udGludWFyPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wYWdpbmFyKGFjYW8/OiBBQ0FPX1BBR0lOQUNBTyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID0gW10uY29uY2F0KHRoaXMuX2dldEVudGlkYWRlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcG9zaWNhb0FudGVyaW9yID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW87XHJcblxyXG4gICAgICAgIHN3aXRjaCAoYWNhbykge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltZWlybyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndWx0aW1vJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Byb3hpbW8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8rKztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhbnRlcmlvcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhby0tO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbWl6YWRvJzpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5saXN0YXJQYWdpbmFjYW8odGhpcy5lbnRpZGFkZVBhZ2luYWRhKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ0Vycm8ub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnTmVuaHVtIHJlZ2lzdHJvIGZvaSBlbmNvbnRyYWRvLicsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5yZXNldEZvcm0odGhpcy5mb3JtLCB0aGlzLmVudGlkYWRlUGFnaW5hZGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gc3VjY2Vzcy50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHN1Y2Nlc3MucG9zaWNhbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdWNjZXNzLmVudGlkYWRlWzBdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQyMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gcG9zaWNhb0FudGVyaW9yO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJybyBwYWdpbmHDp8OjbycsIGVycm9yKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UHJvZ3Jlc3NvKHByb2dyZXNzbzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSB0aGlzLl9kYXRhYmFyU2VydmljZS5kZWZpbmlyUHJvZ3Jlc3NvKHRoaXMuZm9ybSwgcHJvZ3Jlc3NvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -688,7 +688,7 @@ class DataBarComponent {
|
|
|
688
688
|
DataBarComponent.decorators = [
|
|
689
689
|
{ type: Component, args: [{
|
|
690
690
|
selector: 'ic-data-bar',
|
|
691
|
-
template: "<div fxFlex=\"1 0 auto\" fxFlexLayout=\"space-around center\" fxLayout=\"column\">\r\n <!-- DESKTOP -->\r\n <mat-toolbar class=\"px-0 mat-elevation-z4\">\r\n <div fxFlex=\"1 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\r\n <!-- BOT\u00C3O EXIBIR DRAWER -->\r\n <mat-drawer-container fxFlex.sm fxHide.gt-sm>\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n id=\"btn_exibir_databar_mobile\"\r\n mat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </mat-drawer-container>\r\n <!-- /BOT\u00C3O EXIBIR DRAWER -->\r\n\r\n <!-- A\u00C7\u00D5ES -->\r\n <div\r\n fxFlex.sm\r\n fxHide\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"space-around center\"\r\n fxShow.gt-sm\r\n >\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\"\r\n color=\"primary\"\r\n id=\"btn_nova_pesquisa\"\r\n mat-button\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>insert_drive_file</mat-icon>\r\n </button>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <!-- BTN_REVERTER -->\r\n <button\r\n (click)=\"onClickReverter()\"\r\n [disabled]=\"desabilitarBotaoReverter\"\r\n color=\"primary\"\r\n id=\"btn_reverter\"\r\n mat-button\r\n matTooltip=\"Reverter\"\r\n >\r\n <mat-icon>restore</mat-icon>\r\n </button>\r\n <!-- BTN_REVERTER -->\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n id=\"btn_adicionar\"\r\n mat-button\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n </button>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <!-- BTN_EDITAR -->\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n id=\"btn_editar\"\r\n mat-button\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <!-- BTN_EDITAR -->\r\n\r\n <!-- BTN_CLONAR -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\"\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n <!-- BTN_CLONAR -->\r\n\r\n <!-- BTN_REMOVER -->\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n id=\"btn_remover\"\r\n mat-button\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n </button>\r\n <!-- BTN_REMOVER -->\r\n\r\n <!-- BTN_SALVAR -->\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n id=\"btn_salvar\"\r\n mat-button\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <!-- BTN_SALVAR -->\r\n </div>\r\n <!-- /A\u00C7\u00D5ES -->\r\n\r\n <!-- STATUS -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- PROGRESS -->\r\n <mat-spinner *ngIf=\"emProgresso\" [diameter]=\"20\"></mat-spinner>\r\n <!-- PROGRESS -->\r\n\r\n <button\r\n color=\"primary\"\r\n fxHide.lt-sm\r\n id=\"btn_status\"\r\n mat-button\r\n matTooltip=\"A\u00E7\u00E3o no momento\"\r\n >\r\n {{ status }}\r\n </button>\r\n </div>\r\n <!-- STATUS -->\r\n\r\n <!-- PAGINA\u00C7\u00C3O -->\r\n <div fxFlex.sm fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- BTN_PRIMEIRO -->\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n id=\"btn_primeiro\"\r\n mat-button\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n </button>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <!-- BTN_ANTERIOR -->\r\n <button\r\n (click)=\"anterior()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoAnterior()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_anterior\"\r\n mat-button\r\n matTooltip=\"Anterior\"\r\n >\r\n <mat-icon>navigate_before</mat-icon>\r\n </button>\r\n <!-- BTN_ANTERIOR -->\r\n\r\n <div\r\n class=\"px-0 px-sm-12 contador-paginas\"\r\n id=\"contador_paginacao\"\r\n matTooltip=\"P\u00E1gina Atual\"\r\n >\r\n {{ entidadePaginada?.posicao }} de {{ entidadePaginada?.total }}\r\n </div>\r\n\r\n <!-- BTN_PROXIMO -->\r\n <button\r\n (click)=\"proximo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoProximo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_proximo\"\r\n mat-button\r\n matTooltip=\"Pr\u00F3ximo\"\r\n >\r\n <mat-icon>navigate_next</mat-icon>\r\n </button>\r\n <!-- BTN_PROXIMO -->\r\n\r\n <!-- BTN_ULTIMO -->\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n </button>\r\n <!-- BTN_ULTIMO -->\r\n </div>\r\n <!-- /PAGINA\u00C7\u00C3O -->\r\n\r\n <div\r\n fxShow.gt-sm\r\n fxHide\r\n fxFlex.sm\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <!-- MODO_TABELA -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>format_list_bulleted</mat-icon>\r\n </button>\r\n <!-- MODO_TABELA -->\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <!-- /DESKTOP -->\r\n\r\n <!-- MOBILE -->\r\n <mat-drawer #drawer fxFlex fxLayoutAlign=\"column\" mode=\"over\">\r\n <!-- FECHAR SIDENAV -->\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n class=\"btn-fechar-drawer\"\r\n id=\"btn_fechar_databar_mobile\"\r\n mat-icon-button\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- /FECHAR SIDENAV -->\r\n\r\n <!-- STATUS -->\r\n <div class=\"pr-12\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <div fxFlex=\"100\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <h4 class=\"pl-12\">A\u00E7\u00F5es</h4>\r\n <p class=\"texto-status\" id=\"status_mobile\">{{ status }}</p>\r\n </div>\r\n </div>\r\n <!-- /STATUS -->\r\n\r\n <!-- OPCOES -->\r\n <div class=\"px-12 overflow\" fxLayout=\"column\" fxLayoutAlign=\"start start\">\r\n <mat-list>\r\n <!-- BTN_PRIMEIRO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_primeiro_mobile\"\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n Primeiro item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ULTIMO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo_mobile\"\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n \u00DAltimo item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ULTIMO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- MODO_TABELA -->\r\n <mat-list-item>\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela_mobile\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>list</mat-icon>\r\n Modo tabela\r\n </button>\r\n </mat-list-item>\r\n <!-- MODO_TABELA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"\r\n servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\r\n \"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_nova_pesquisa_mobile\"\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>restore_page</mat-icon>\r\n Nova Pesquisa\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar_mobile\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n Pesquisar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_adicionar_mobile\"\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n Incluir\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_EDITAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_editar_mobile\"\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n Editar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_EDITAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_CLONAR -->\r\n <mat-list-item *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\">\r\n <button\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar_mobile\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>content_copy</mat-icon>\r\n Clonar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_CLONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_REMOVER -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_remover_mobile\"\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n Remover\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_REMOVER -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_SALVAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_salvar_mobile\"\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n Salvar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_SALVAR -->\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n </div>\r\n <!-- /OPCOES -->\r\n </mat-drawer>\r\n <!-- /MOBILE -->\r\n</div>\r\n",
|
|
691
|
+
template: "<div fxFlex=\"1 0 auto\" fxFlexLayout=\"space-around center\" fxLayout=\"column\">\r\n <!-- DESKTOP -->\r\n <mat-toolbar class=\"px-0 mat-elevation-z4\">\r\n <div fxFlex=\"1 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\r\n <!-- BOT\u00C3O EXIBIR DRAWER -->\r\n <mat-drawer-container fxFlex.sm fxHide.gt-sm>\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n id=\"btn_exibir_databar_mobile\"\r\n mat-button\r\n type=\"button\"\r\n color=\"primary\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </mat-drawer-container>\r\n <!-- /BOT\u00C3O EXIBIR DRAWER -->\r\n\r\n <!-- A\u00C7\u00D5ES -->\r\n <div\r\n fxFlex.sm\r\n fxHide\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"space-around center\"\r\n fxShow.gt-sm\r\n >\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\"\r\n color=\"primary\"\r\n id=\"btn_nova_pesquisa\"\r\n mat-button\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>insert_drive_file</mat-icon>\r\n </button>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <!-- BTN_REVERTER -->\r\n <button\r\n (click)=\"onClickReverter()\"\r\n [disabled]=\"desabilitarBotaoReverter\"\r\n color=\"primary\"\r\n id=\"btn_reverter\"\r\n mat-button\r\n matTooltip=\"Reverter\"\r\n >\r\n <mat-icon>restore</mat-icon>\r\n </button>\r\n <!-- BTN_REVERTER -->\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n id=\"btn_adicionar\"\r\n mat-button\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n </button>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <!-- BTN_EDITAR -->\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n id=\"btn_editar\"\r\n mat-button\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <!-- BTN_EDITAR -->\r\n\r\n <!-- BTN_CLONAR -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\"\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>file_copy</mat-icon>\r\n </button>\r\n <!-- BTN_CLONAR -->\r\n\r\n <!-- BTN_REMOVER -->\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n id=\"btn_remover\"\r\n mat-button\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n </button>\r\n <!-- BTN_REMOVER -->\r\n\r\n <!-- BTN_SALVAR -->\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n id=\"btn_salvar\"\r\n mat-button\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <!-- BTN_SALVAR -->\r\n </div>\r\n <!-- /A\u00C7\u00D5ES -->\r\n\r\n <!-- STATUS -->\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- PROGRESS -->\r\n <mat-spinner *ngIf=\"emProgresso\" [diameter]=\"20\"></mat-spinner>\r\n <!-- PROGRESS -->\r\n\r\n <button\r\n color=\"primary\"\r\n fxHide.lt-sm\r\n id=\"btn_status\"\r\n mat-button\r\n matTooltip=\"A\u00E7\u00E3o no momento\"\r\n >\r\n {{ status }}\r\n </button>\r\n </div>\r\n <!-- STATUS -->\r\n\r\n <!-- PAGINA\u00C7\u00C3O -->\r\n <div fxFlex.sm fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <!-- BTN_PRIMEIRO -->\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n id=\"btn_primeiro\"\r\n mat-button\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n </button>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <!-- BTN_ANTERIOR -->\r\n <button\r\n (click)=\"anterior()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoAnterior()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_anterior\"\r\n mat-button\r\n matTooltip=\"Anterior\"\r\n >\r\n <mat-icon>navigate_before</mat-icon>\r\n </button>\r\n <!-- BTN_ANTERIOR -->\r\n\r\n <div\r\n class=\"px-0 px-sm-12 contador-paginas\"\r\n id=\"contador_paginacao\"\r\n matTooltip=\"P\u00E1gina Atual\"\r\n >\r\n {{ entidadePaginada?.posicao }} de {{ entidadePaginada?.total }}\r\n </div>\r\n\r\n <!-- BTN_PROXIMO -->\r\n <button\r\n (click)=\"proximo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoProximo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_proximo\"\r\n mat-button\r\n matTooltip=\"Pr\u00F3ximo\"\r\n >\r\n <mat-icon>navigate_next</mat-icon>\r\n </button>\r\n <!-- BTN_PROXIMO -->\r\n\r\n <!-- BTN_ULTIMO -->\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo\"\r\n fxFlex.sm\r\n fxHide.lt-sm\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n </button>\r\n <!-- BTN_ULTIMO -->\r\n </div>\r\n <!-- /PAGINA\u00C7\u00C3O -->\r\n\r\n <div\r\n fxShow.gt-sm\r\n fxHide\r\n fxFlex.sm\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <!-- MODO_TABELA -->\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>format_list_bulleted</mat-icon>\r\n </button>\r\n <!-- MODO_TABELA -->\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <!-- /DESKTOP -->\r\n\r\n <!-- MOBILE -->\r\n <mat-drawer #drawer fxFlex fxLayoutAlign=\"column\" mode=\"over\">\r\n <!-- FECHAR SIDENAV -->\r\n <button\r\n (click)=\"drawer.toggle()\"\r\n class=\"btn-fechar-drawer\"\r\n id=\"btn_fechar_databar_mobile\"\r\n mat-icon-button\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- /FECHAR SIDENAV -->\r\n\r\n <!-- STATUS -->\r\n <div class=\"pr-12\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <div fxFlex=\"100\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <h4 class=\"pl-12\">A\u00E7\u00F5es</h4>\r\n <p class=\"texto-status\" id=\"status_mobile\">{{ status }}</p>\r\n </div>\r\n </div>\r\n <!-- /STATUS -->\r\n\r\n <!-- OPCOES -->\r\n <div class=\"px-12 overflow\" fxLayout=\"column\" fxLayoutAlign=\"start start\">\r\n <mat-list>\r\n <!-- BTN_PRIMEIRO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"primeiro()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoRetroceder ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoPrimeiro()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_primeiro_mobile\"\r\n matTooltip=\"Primeiro item\"\r\n >\r\n <mat-icon>first_page</mat-icon>\r\n Primeiro item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PRIMEIRO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ULTIMO -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"ultimo()\"\r\n [disabled]=\"\r\n desabilitarBotoesPaginacaoAvancar ||\r\n servicoConfiguracaoBotoes?.desabilitarBotaoUltimo()\r\n \"\r\n class=\"px-0 px-sm-12\"\r\n color=\"primary\"\r\n id=\"btn_ultimo_mobile\"\r\n mat-button\r\n matTooltip=\"\u00DAltimo\"\r\n >\r\n <mat-icon>last_page</mat-icon>\r\n \u00DAltimo item\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ULTIMO -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- MODO_TABELA -->\r\n <mat-list-item>\r\n <button\r\n *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoModoTabela()\"\r\n (click)=\"onClickModoTabela()\"\r\n [disabled]=\"desabilitarBotaoModoTabela\"\r\n color=\"primary\"\r\n id=\"btn_modo_tabela_mobile\"\r\n mat-button\r\n matTooltip=\"Alterar exibi\u00E7\u00E3o para tabela\"\r\n >\r\n <mat-icon>list</mat-icon>\r\n Modo tabela\r\n </button>\r\n </mat-list-item>\r\n <!-- MODO_TABELA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_NOVA_PESQUISA -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"onClickNovaPesquisa()\"\r\n [disabled]=\"\r\n servicoConfiguracaoBotoes?.desabilitarBotaoNovaPesquisa()\r\n \"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_nova_pesquisa_mobile\"\r\n matTooltip=\"Nova Pesquisa\"\r\n >\r\n <mat-icon>restore_page</mat-icon>\r\n Nova Pesquisa\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_NOVA_PESQUISA -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_PESQUISAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"pesquisar()\"\r\n [disabled]=\"desabilitarBotaoPesquisar\"\r\n color=\"primary\"\r\n id=\"btn_pesquisar_mobile\"\r\n mat-button\r\n matTooltip=\"Pesquisar\"\r\n >\r\n <mat-icon>search</mat-icon>\r\n Pesquisar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_PESQUISAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_ADICIONAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"inserir()\"\r\n [disabled]=\"desabilitarBotaoAdicionar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_adicionar_mobile\"\r\n matTooltip=\"Adicionar\"\r\n >\r\n <mat-icon>add_circle</mat-icon>\r\n Incluir\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_ADICIONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_EDITAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"editar()\"\r\n [disabled]=\"desabilitarBotaoEditar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_editar_mobile\"\r\n matTooltip=\"Editar\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n Editar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_EDITAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_CLONAR -->\r\n <mat-list-item *ngIf=\"servicoConfiguracaoBotoes?.exibirBotaoClonar()\">\r\n <button\r\n (click)=\"clonar()\"\r\n [disabled]=\"desabilitarBotaoClonar\"\r\n color=\"primary\"\r\n id=\"btn_clonar_mobile\"\r\n mat-button\r\n matTooltip=\"Clonar\"\r\n >\r\n <mat-icon>file_copy</mat-icon>\r\n Clonar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_CLONAR -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_REMOVER -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"remover()\"\r\n [disabled]=\"desabilitarBotaoRemover\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_remover_mobile\"\r\n matTooltip=\"Remover\"\r\n >\r\n <mat-icon>delete_forever</mat-icon>\r\n Remover\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_REMOVER -->\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <!-- BTN_SALVAR -->\r\n <mat-list-item>\r\n <button\r\n (click)=\"salvar()\"\r\n [disabled]=\"desabilitarBotaoSalvar\"\r\n color=\"primary\"\r\n mat-button\r\n id=\"btn_salvar_mobile\"\r\n matTooltip=\"Salvar\"\r\n >\r\n <mat-icon>save</mat-icon>\r\n Salvar\r\n </button>\r\n </mat-list-item>\r\n <!-- BTN_SALVAR -->\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n </div>\r\n <!-- /OPCOES -->\r\n </mat-drawer>\r\n <!-- /MOBILE -->\r\n</div>\r\n",
|
|
692
692
|
styles: ["::ng-deep .sucesso{background:#4caf50!important;color:#fff!important}::ng-deep .sucesso button{color:#1b5e20!important;font-weight:800!important}.contador-paginas{color:#039be5;font-size:14px}@media (max-width:959px){.contador-paginas{font-size:12px}}.btn-fechar-drawer{position:absolute;right:5px;top:5px}.texto-status{color:#039be5;text-align:center}mat-toolbar{height:52px;width:100%}mat-drawer-container{background:transparent!important}mat-drawer{left:0;min-width:240px}.overflow,mat-drawer,mat-list{overflow-y:auto}:host{display:flex;flex:0 0 auto;z-index:99999}:host .mat-toolbar .pagina{font-size:10px;margin:1vm;text-align:center}:host.above{position:relative;z-index:99999999}"]
|
|
693
693
|
},] }
|
|
694
694
|
];
|