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

Chico Alves

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Acuado, Daniel Silveira foi de lobo a cordeiro muito rápido. Não convenceu

Daniel Silveira - Reprodução de vídeo
Daniel Silveira Imagem: Reprodução de vídeo

Colunista do UOL

19/02/2021 20h37

"O ser humano vai do zero ao cem muito rapidamente", alegou hoje o arrependido deputado Daniel Silveira (PSL-RJ) aos colegas da Câmara, antes da votação sobre a manutenção ou não da prisão determinada pelo Supremo Tribunal Federal.

O tom e os termos usados pelo parlamentar foram radicalmente diferentes dos que usou no vídeo em que ofendeu e ameaçou ministros do STF, além de defender o AI-5.

Acuado pela ameaça real de continuar preso, ao contrário do que imaginava, Silveira foi do cem ao zero muito rapidamente.

Mas talvez o lobo tenha se transmutado em cordeiro rapidamente demais.

No tempo que teve para fazer sua defesa, o pesselista preso itiu que se excedeu na fala, explicou que fez o vídeo em momento ional, reconheceu que as declarações não tiveram qualquer ponto positivo, pediu desculpas várias vezes.

Parecia ser uma outra pessoa, não aquele valentão que aos palavrões desafiou os ministros do Supremo e exaltou a Ditadura Militar.

Felizmente, logo depois da autodefesa feita por Silveira começou a leitura do irretocável texto da relatora do caso, deputada Magda Monfatto (PL-GO), que lembrou alguns dos seus excessos.

Foi citado o trecho em que chama o ministro Edson Fachin de "filho da puta" e defende contra ele uma "surra de gato morto". Também a parte em que se refere ao ministro Alexandre de Moraes como Xandão e o vincula ao PCC. Ainda o momento da apologia da ação discricionária da Ditadura.

Além disso, a relatora adicionou mais uma maldade ao rol de Daniel Silveira. "Mostra-se cristalina a intenção do parlamentar em criar animosidade entre a Corte Constitucional e as Forças Armadas", acusou.

"Não há regime democrático que, a partir do direito de liberdade de expressão ou qualquer outro direito fundamental, tolere a defesa de ditaduras, a discriminação de minorias e apologia explicita a ruptura da ordem constitucional", destacou Magda Monfatto..

Após a leitura do relatório, o pesselista voltou a falar. Ainda em tom de arrependimento, mas dessa vez argumentando que relativizar a imunidade parlamentar poderia ser um risco para todos da Casa. Como fez no início, citou um texto do ministro Alexandre de Moares sobre o tema.

Ao criticar sua prisão, falou até na preocupação com o "totalitarismo de um dos poderes", mencionou a preocupação de que o "ordenamento jurídico" seja jogado por terra.

Não convenceu. No fim, 364 deputados votaram para manter a prisão determinada pelo STF.

Desfecho bem diferente do que ele imaginou quando, ao chegar no Instituto Médico Legal na terça-feira à noite, foi perguntado sobre como a Câmara deveria reagir ao flagrante determinado por Alexandre de Moraes. Na ocasião, Silveira respondeu, tranquilo: "Vai revogar a prisão. É independente".

Como se viu, o deputado errou feio. Seus colegas não acreditaram que o lobo tivesse se tornado cordeiro e usaram a independência para mantê-lo preso.