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

Danilo Gentili chama Eduardo Bolsonaro de 'vagabundo': 'Pare de chorar'

Danilo Gentili mandou Eduardo Bolsonaro ir trabalhar em vez de ficar "choramingando" nas redes sociais - Reprodução
Danilo Gentili mandou Eduardo Bolsonaro ir trabalhar em vez de ficar "choramingando" nas redes sociais Imagem: Reprodução

Colaboração para Splash, em Maceió

23/11/2022 15h22

O apresentador Danilo Gentili chamou o deputado federal Eduardo Bolsonaro (PL-SP) de "vagabundo", e mandou o filho do presidente Jair Bolsonaro (PL) parar de ficar "chorando" nas redes sociais, em inconformismo pela derrota do pai nas eleições de outubro.

No Twitter, Gentili republicou um post de Eduardo, em que o parlamentar postou um vídeo do guru da extrema direita estadunidense Steve Bannon sobre os atos golpistas de bolsonaristas nas estradas do país. Os manifestantes não aceitam a vitória de Luiz Inácio Lula da Silva (PT).

Na legenda, Eduardo Bolsonaro, assim como o próprio Jair tem feito ao longo dos últimos meses, criticou as urnas eletrônicas, embora jamais tenha apresentado qualquer documento que comprove que houve irregularidades no sistema eleitoral brasileiro.

Ao criticar a postura de Eduardo Bolsonaro diante da derrota, Danilo Gentili mandou o parlamentar exercer suas funções legislativas em vez de ficar reclamando na internet.

"Para de chorar e vai trabalhar, vagabundo", escreveu o apresentador.

PL divulga relatório golpista

A atitude de mau perdedor afetou não apenas a família presidencial, mas também o presidente do PL, Valdemar da Costa Neto, que ontem divulgou um relatório golpista em que pede a invalidação de parte dos votos do pleito do último dia 30. Entretanto, conforme revelou a colunista do UOL Thaís Oyama, o documento foi uma iniciativa do próprio presidente derrotado Jair Bolsonaro, que se recusa a aceitar o fato de não ter sido reeleito.

Após o pedido do PL, o presidente do TSE (Tribunal Superior Eleitoral), Alexandre de Moraes, deu um prazo de 24 horas para que o partido apresente dados que englobem o resultado do primeiro turno. Segundo a colunista do UOL Carla Araújo, antes de responder ao magistrado, Valdemar se reuniu com o presidente da Câmara dos Deputados Arthur Lira (PP-AL).

Conforme o PL, houve uma suposta falha nos chamados "logs de urnas" — registros com dados dos equipamentos — em cinco dos seis modelos de urnas usados na votação. Contudo, o partido quer a anulação apenas do segundo turno, e não do primeiro, quando a legenda conseguiu eleger a maior bancada do Congresso.

Porém, Moraes afirmou que as mesmas urnas usadas no primeiro turno, foram utilizadas também no segundo. Na prática, caso queira dar prosseguimento ao pedido, o PL precisa questionar os votos dados aos deputados e senadores da própria sigla. Isso também comprometeria a vitória de aliados de Bolsonaro nos governos estaduais.

Ao UOL Notícias, o engenheiro eletrônico Carlos Rocha, autor do estudo técnico apresentado pelo PL sobre suposta fraude nas urnas, afirmou que seu trabalhou tratou se houve mau funcionamento de equipamento e não dos "votos" para as eleições presidenciais.