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

Negacionismo x máscara: as diferenças entre os atos pró e contra Bolsonaro

À esquerda, ato contra Bolsonaro na av. Paulista em 29/5; à direita, ato pró-Bolsonaro na altura do Parque Olímpico no Rio de Janeiro em 23/5 - Da direita para a esquerda: ROBERTO SUNGI/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO e DANIEL CASTELO BRANCO/AGÊNCIA O DIA/ESTADÃO CONTEÚDO
À esquerda, ato contra Bolsonaro na av. Paulista em 29/5; à direita, ato pró-Bolsonaro na altura do Parque Olímpico no Rio de Janeiro em 23/5 Imagem: Da direita para a esquerda: ROBERTO SUNGI/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO e DANIEL CASTELO BRANCO/AGÊNCIA O DIA/ESTADÃO CONTEÚDO

Leonardo Martins

Do UOL, em São Paulo

31/05/2021 04h00Atualizada em 31/05/2021 07h14

Diante de uma pandemia que matou mais de 460 mil pessoas, o Brasil assiste, pela primeira vez, a manifestações políticas contra o presidente Jair Bolsonaro (sem partido) e por mais vacinas contra a covid-19.

Esses atos, realizados no sábado (29) em todos os estados e no Distrito Federal, foram organizados por movimentos sociais e partidos de esquerda. Já as manifestações a favor de Bolsonaro aconteceram em 1º de maio em ao menos 11 estados e no DF e, no dia 23, no Rio de Janeiro, que sediou uma 'motociata' com participação do presidente e do general Eduardo Pazuello, ex-ministro da Saúde.

Apesar de ambas causarem aglomerações em um momento crítico da pandemia, há substanciais diferenças entre os dois atos, conforme explicam cientistas políticos ouvidos pelo UOL.

Pautas

Os temas cobrados pelos integrantes das duas manifestações são absolutamente diferentes.

Nos atos contrários ao presidente, em resumo, além do impeachment, manifestantes exigiram mais vacinas contra a covid-19 e condenaram as posturas negacionistas e anticientíficas de Bolsonaro ante a pandemia.

Na manifestação do sábado, foram lembradas as declarações do presidente chamando a covid-19 de "gripezinha" e dizendo que não era "coveiro", ao minimizar mortes por causa da doença. Também havia diversos cartazes condenando o atraso na compra das vacinas.

Já nos atos favoráveis a Bolsonaro, em geral, os manifestantes protestavam contra as medidas de restrição contra a covid-19 adotadas por governadores e prefeitos —imprescindíveis para controlar o número de casos e óbitos se adotadas da maneira certa.

Além disso, havia pedidos de fechamento do Congresso Nacional e do STF (Supremo Tribunal Federal), medidas antidemocráticas e autoritárias. Também foram vistos diversos cartazes e faixas em defesa de um golpe militar.

Recorte social

O perfil das pessoas que compareceram às duas manifestações também foi diferente, conforme cientistas políticos ouvidos pela reportagem.

Embora não haja um levantamento oficial de perfil do público que frequentou as duas manifestações, o professor de ciência política e istração pública da Fundação Getúlio Vargas Eduardo Grin diz que os atos de Bolsonaro são voltados atualmente ao público que sustenta a aprovação do presidente: homens brancos com boa renda mensal e moradores das regiões Sudeste e Sul do país.

"A escolha por fazer uma 'motociata' por Bolsonaro é intencional. É outro recorte social. Quem tem motocicletas ou boas motos, que foram exibidas? Não é toda população, certamente. Isso revela, além de uma questão geracional, um recorte social de quem tem renda mais alta", destacou.

"Já os segmentos que já vinham fazendo oposição ao Bolsonaro são mais jovens e, também, de renda mais baixa, setores apertados pela pandemia e pelo desemprego", concluiu.

A doutora em ciência política Graziella Testa analisa que, apesar de contar com apoio de partidos de esquerda, boa parte dos integrantes do ato contra Bolsonaro não tem qualquer relação com as legendas.

"Foi o primeiro ato com agenda central nas ruas contra Jair Bolsonaro. O ato reuniu um grupo de pessoas muito insatisfeito, de pessoas preocupadas com a pandemia. Politicamente, para elas saírem às ruas, é um ato muito mais claro do que alguém que já tenha uma posição negacionista", pontua a professora da Escola de Políticas Públicas e Governo, da FGV.

Postura dos manifestantes

Boa parte dos apoiadores de Bolsonaro não usava máscara, como comprovou a reportagem do UOL que esteve presente ao ato de 1º de maio na avenida Paulista. Não havia orientação dos organizadores quanto a medidas de prevenção contra covid, como lembrar do uso de máscaras e do distanciamento social.

Essa postura, inclusive, é encorajada pelo próprio presidente, que evita usar máscara e já foi visto sem a proteção em dezenas de aglomerações.

Já em manifestações contra o governo federal, os organizadores separaram equipes de distribuição de máscaras PFF2, a mais eficaz contra a covid, para quem fosse ao ato. A iniciativa foi verificada por exemplo na Avenida Paulista e em Brasília.

A cada intervalo entre as falas de líderes políticos nos carros elétricos, havia alertas para ajustar a máscara no rosto, evitar encostar as mãos nos olhos e manter o distanciamento social —apesar disso não ter acontecido.

O UOL também compareceu a atos contra o presidente no último sábado e comprovou que o uso de máscaras foi massivo. Pessoas retiravam contudo as máscaras para beber ou fumar no meio à aglomeração, o que não é recomendado por médicos.