;(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

Esse conteúdo é antigo

Bolsonaro nega que precisa expor provas de fraude nas urnas e promete teste com hackers

Gustavo Côrtes e Matheus de Souza

Em São Paulo

02/07/2021 12h55Atualizada em 02/07/2021 14h49

O presidente Jair Bolsonaro (sem partido), de olho nas eleições de 2022, voltou a colocar em xeque a seguranças das urnas eletrônicas, e afirmou a apoiadores na saída do Palácio da Alvorada que está em contato com hackers para fazer uma demonstração pública, via redes sociais, sobre a segurança do sistema.

Em meio às diversas críticas ao governo devido a escândalos envolvendo a compra de vacinas, Bolsonaro tem evitado comentar o tema e aumentando o tom na afirmação de que haverá fraudes nas eleições do ano que vem.

"Eu pretendo, estou tentando, já fizemos contato com as pessoas que entendem do assunto, são hackers, para fazer uma demonstração pública. Lógico que a televisão não vai mostrar, mas vou fazer uma live", afirmou o presidente.

O voto impresso, que o presidente chama de "auditável", é uma das bandeiras de Bolsonaro, que já afirmou ter provas de que o pleito que o levou à Presidência teria sido fraudado.

Ele alega que teria vencido no primeiro turno em 2018. Em 24 de junho, o ministro do STF (Supremo Tribunal Federal) Gilmar Mendes deu 10 dias para que o chefe do Executivo apresentasse provas de suas alegações de irregularidades no sistema eleitoral.

Hoje, Bolsonaro comentou sobre o tema. "Apresento se eu quiser", disse. "Não tenho obrigação de apresentar prova para ninguém", declarou a apoiadores.

O discurso de fraude nas eleições do presidente vem acompanhado por ataques ao seu principal adversário político, o ex-presidente Luiz Inácio Lula da Silva (PT).

O que Bolsonaro tem falado a apoiadores é que existe uma "articulação" para colocar Lula de volta no Planalto através de fraude.

"O que um candidato aí está fazendo?", começou, evitando citar o nome de Lula. "Ele está reunindo alguns líderes partidários já loteando o futuro governo dele. Daí os caras começam a trabalhar contra o voto auditável. Esse cara só chega na fraude".