;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Discurso de fraude nas urnas eletrônicas é político, diz Barroso

Rafael Neves

Do UOL, em Brasília

14/05/2021 17h50Atualizada em 14/05/2021 17h50

O presidente do TSE (Tribunal Superior Eleitoral), ministro Luís Roberto Barroso, afirmou nesta sexta-feira (14) que "é um discurso político" a alegação de que há fraudes nas urnas eletrônicas no Brasil. A declaração foi dada na sede da corte, em Brasília, no lançamento de uma campanha que defende a integridade dos equipamentos e do processo eleitoral.

"Eu entendo e respeito quem defenda o voto impresso. Agora, para dizer que tem fraude é preciso botar as armas na mesa e dizer quais são as provas. Senão, é retórica puramente política e nem me cabe comentar", declarou Barroso. O ministro preferiu não atacar diretamente o presidente Jair Bolsonaro, que já lançou suspeitas várias vezes sobre segurança das urnas.

O evento ocorreu um dia depois de a Câmara dos Deputados instalar uma comissão especial para discutir uma PEC (Proposta de Emenda à Constituição) que torna obrigatória a impressão. Em discurso ao lado de Bolsonaro no mesmo dia, em Maceió, o presidente da Câmara, Arthur Lira (MDB-AL), defendeu a aprovação do projeto.

Monitoramento externo

Barroso anunciou ainda que o TSE vai compor uma comissão externa para monitorar as eleições. Este grupo, segundo Barroso, será composto por universidades, entidades da área de tecnologia da informação, organismos da sociedade, órgãos de controle e o Congresso. A ideia é que o colegiado seja formado no segundo semestre desse ano para estar ativo nas eleições do ano que vem.

O carro-chefe da campanha lançada nesta sexta é um vídeo, com pouco menos de 15 minutos de duração, apresentado pelo próprio ministro. Na peça, ele afirma que o processo eleitoral já é auditável de várias maneiras e detalha nove medidas que já existem para auditar o resultado registrado nos equipamentos.

"Não há nenhuma comprovação razoável de fraude. É nisso que se quer mexer? Em time que está ganhando?", questionou o ministro a respeito da PEC do voto impresso, que será analisada no Congresso. De autoria da deputada bolsonarista Bia Kicis (PSL-DF), a proposta precisa ser aprovada por três quintos dos votos, tanto na Câmara quanto no Senado.

Barroso se disse abertamente contra o projeto. Ele argumentou, entre outros pontos, que a mudança custaria caro (cerca de R$ 2 bilhões, segundo estimativa do TSE), aumentaria os riscos de problemas técnicos no dia da eleição e abriria mais brechas para a judicialização dos resultados.