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

Diogo Schelp

OPINIÃO

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

Bolsonaristas, antes anticorrupção, normalizam rachadinhas e falcatruas

Presidente com três de seus filhos: Flávio, Eduardo e Carlos Bolsonaro - Reprodução
Presidente com três de seus filhos: Flávio, Eduardo e Carlos Bolsonaro Imagem: Reprodução

Colunista do UOL

23/09/2021 16h15

Certo dia, tempos atrás, quando o governo era outro, este colunista estava em um táxi a caminho da Assembleia Legislativa do Estado de São Paulo para palestrar a respeito do papel da imprensa no combate à corrupção.

No percurso, fui escutando a taxista reclamando que vivíamos em um país de corruptos e dizendo que a solução só podia ser exterminar todo mundo e repovoar o Brasil.

Enquanto ela falava, fiquei pensando no quanto suas palavras destoavam de sua conduta como motorista: em momento algum ela parou em faixas de pedestre quando havia alguém querendo atravessar. Afinal, a deslegitimação das leis é o primeiro o para uma cultura da corrupção.

Um dos fatores que empurram as pessoas para uma conduta corrupta é a percepção de que se trata de algo que todos fazem — uma atitude "normal", portanto. Há um pacto coletivo implícito, em que o sentimento de culpa individual por fazer algo errado ou ilegal se dilui no comportamento do grupo.

Não dar preferência a um pedestre na faixa é infração punível com multa e pontos da carteira de motorista, mas quase ninguém respeita a regra. Pedestres aceitam esse pacto, tanto que agradecem surpresos quando alguém lhes dá a preferência, e autoridades de trânsito não se dão o trabalho de fiscalizar.

De maneira similar, o argumento de que "isso é normal" e "todos fazem" tem sido usado por bolsonaristas para justificar ou minimizar as impressionantes revelações de desvio de dinheiro público por parte da família Bolsonaro através do confisco do salário de funcionários fantasmas.

"Essa prática é muito comum, mas só os filhos do presidente estão sendo investigados", escutei recentemente de um defensor ferrenho de Jair Bolsonaro. Segundo ele, portanto, estaria havendo uma perseguição política aos Bolsonaro.

Primeiro, o fato de ser comum não significa que um crime não deva ser investigado e punido. Na verdade, como no caso do desrespeito à faixa de pedestre, justamente por ser comum é que se deve aumentar a fiscalização.

Segundo, os Bolsonaro não são os únicos sob escrutínio por terem embolsado parte significativa do salário de assessores que nunca foram trabalhar. Há dezenas de deputados e ex-deputados em pelo menos oito estados sendo investigados pela prática da rachadinha.

Em 2018, Jair Bolsonaro recebeu o voto de muitos brasileiros que consideravam a pauta anticorrupção a mais importante para o país, a partir da qual todos os outros problemas se resolveriam.

Uma parcela significativa desses eleitores se desiludiu, ao perceber que a agenda anticorrupção nunca foi prioridade do novo presidente, e se descolou do bolsonarismo. Outros permanecem fieis, apegados à agenda supostamente conservadora e à crença de que o comunismo ameaça o Brasil.

A fidelidade ao bolsonarismo, no entanto, exigiu um ajuste de discurso na questão ética. De um lado, foram escolhidos novos alvos para a pecha de corruptos (os ministros do STF, por exemplo). De outro, práticas corruptas por excelência, como a rachadinha, quando praticadas por familiares do presidente ou pelo próprio, foram normalizadas.

Esquemas fraudulentos como os que a I da Covid-19 no Senado encontrou no Ministério da Saúde são chamados de "narrativas", como o faz frequentemente o senador Marcos Rogério (DEM-RO), e desprezados com a justificativa de que o pagamento de propina não se concretizou.

Como se fosse preciso atropelar o pedestre para que o desrespeito à sua prioridade na faixa seja considerado uma infração.