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

Ato pró-governo em Brasília tem 'via crúcis bolsonarista' e crítica ao STF

Hanrrikson de Andrade*

Do UOL, em Brasília

21/06/2020 10h50

Um ato a favor do presidente Jair Bolsonaro (sem partido) realizado na manhã de hoje em Brasília fez críticas ao STF (Supremo Tribunal Federal), pediu o impeachment do ministro da corte Alexandre de Moraes e rivalizou com um protesto convocado por torcidas organizadas de clubes de futebol que são contra o governo.

As duas manifestações ocorrem no mesmo local, porém uma de cada lado da Esplanada dos Ministérios. A Polícia Militar realizou um amplo esquema de segurança e revistou todas as pessoas que se aproximam da concentração, inclusive jornalistas. Até a publicação desta reportagem, os dois atos ocorriam de forma pacífica.

Com uma réplica em grandes proporções de uma cruz, símbolo cristão, bolsonaristas simularam uma "via crúcis" em defesa de Bolsonaro. O tom religioso foi constante durante o protesto. O trio elétrico que guiou a manifestação também exibia uma cruz e a mensagem "Jesus. A paz que liberta".

intervencao militar - Adriano Wilkson - Adriano Wilkson
Imagem: Adriano Wilkson
Diferentemente de atos anteriores em favor de Bolsonaro, não foi possível observar com facilidade faixas e cartazes dando voz a pautas antidemocráticas, como fechamento do STF e do Congresso. Porém, antes das movimentações, alguns cartazes com os dizerem "Intervenção militar com Bolsonaro no poder", "Intervenção militar já" e "Nova constituição anticomunista" foram flagrados pela reportagem.

Nem o presidente, nem nenhum representante do governo compareceu ao ato até a publicação desse texto.

Apoiadores do presidente Jair Bolsonao simulam uma via crúcis durante ato em Brasília - Hanrrikson Andrade/UOL - Hanrrikson Andrade/UOL
Apoiadores do presidente Bolsonaro simulam uma via crúcis durante ato em Brasília
Imagem: Hanrrikson Andrade/UOL

Os manifestantes carregam mensagens como "Supremo é o povo" e letreiros com pedidos de impeachment de Moraes, ministro que se tornou desafeto do presidente da República, e do chefe do Congresso, o senador Davi Alcolumbre (DEM-AP).

Do carro de som, também não houve, no início do ato, qualquer exaltação a mensagem antidemocrática. No entanto, em um dado momento, um homem fez uma homenagem a um militar que, segundo ele, foi "assassinado por comunistas" durante a ditadura, iniciada em 1964.

O mesmo homem chamou a ex-presidente Dilma Rousseff (PT) de "terrorista", assim como o ministro do Supremo Ricardo Lewandowski. Na sequência, pediu um toque militar em homenagem ao paraquedista que morreu ontem em um salto no Rio de Janeiro. Na manhã de hoje, Bolsonaro viajou à capital fluminense para acompanhar o enterro.

*Com colaboração de Adriano Wilkson.