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

Bolsonaro consulta militares e levanta tese de distúrbios por "maldade"

Do UOL, em São Paulo*

07/04/2021 12h00Atualizada em 07/04/2021 13h50

O presidente Jair Bolsonaro (sem partido) disse hoje que discutiu com as Forças Armadas se existe hoje contingente no país para conter distúrbios sociais no caso de um agravamento da crise causada pela epidemia de covid-19 e voltou a dizer que teme problemas "gravíssimos" causados pelas restrições de circulação.

Bolsonaro tem insistido na ideia de que pode haver saques e revoltas causadas pela falta de emprego e renda da população. Em seu discurso durante visita a Chapecó (SC), o presidente ainda levantou a tese, sem apresentar indícios, de que possa haver uma explosão — de caos social — por "maldade'.

"Não fico feliz em conceder auxílios, gostaria que não fosse preciso, mas é para evitar um mal maior. Temo problemas sociais gravíssimos no Brasil, converso com as nossas Forças Armadas... Se eclodir isso pelo Brasil, o que vamos fazer? Temos efetivo para conter a quantidade de problemas que podemos ter? E outra, é uma explosão por maldade ou por necessidade? O que devemos fazer para evitar isso aí? Como preparar?", disse.

Bolsonaro voltou a dizer que o Exército não será usado para obrigar as pessoas a ficarem em casa. Dessa vez, no entanto, o presidente não usou a expressão "meu exército", que foi muito criticada nas últimas semanas, mas "nosso exército".

Na última semana, Bolsonaro trocou o titular do Ministério da Defesa, com a substituição de Fernando Azevedo e Silva pelo general Walter Braga Netto. Na sequência, houve mudança conjunta no comando do Exército, Marinha e Aeronáutica.

Bolsonaro ainda disse que o "Exército não vai para a rua para manter o povo dentro de casa", recusando mais uma vez qualquer articulação por um lockdown nacional, como é recomendado por epidemiologistas para conter a transmissão do coronavirus no Brasil.

Ontem, o Brasil pela primeira vez superou a marca de 4 mil mortes por covid-19 registradas em 24 dias (4.211). Nos últimos sete dias, morreram, em média, 2.775 pessoas em decorrência da doença no país. Já são 75 dias em que a média fica acima de mil.

"Me lixando para 2022"

Bolsonaro ainda disse que está "se lixando para 2022", uma vez que "vai ter uma pancada de candidatos". Ele usou a expressão para dizer que não irá apoiar medidas restritivas mais duras durante a pandemia, mesmo que isso significasse mais votos.

Ao longo do discurso, Bolsonaro ainda fez ironia sobre ataques que têm recebido. "Daqui a pouco vão me chamar de negacionista ou terraplanista", disse ao mais uma vez defender o tratamento da covid-19 com medicamentos sem eficácia para a doença.

Falando para uma plateia visivelmente de apoiadores, com aplausos nos momentos de mais ênfase, Bolsonaro ainda usou expressões comuns em seu discurso, com a defesa de conceitos como liberdade.

"Liberdade acima de tudo. Nossa liberdade vale mais do que a nossa própria vida", disse na abertura do discurso.

*Com informações da Reuters