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

Manifestações e I podem fazer Centrão abandonar Bolsonaro, diz Boulos

Do UOL, em São Paulo

31/05/2021 10h35Atualizada em 31/05/2021 11h34

Líder do MTST (Movimento dos Trabalhadores Sem Teto) e coordenador da Frente Povo Sem Medo, Guilherme Boulos (PSOL) disse hoje que as manifestações de rua e a I da Covid-19 podem forçar o Centrão a abandonar o governo e viabilizar um processo de impeachment contra o presidente Jair Bolsonaro.

Em declaração ao UOL Entrevista, conduzido pela apresentadora Fabíola Cidral e pelo colunista Josias de Souza, Boulos disse que os protestos contra Bolsonaro no último sábado aceleram o que chama de "processo de degradação" do presidente.

Você pode assistir a toda a programação do Canal UOL aqui

"A I e as mobilizações de rua podem acelerar o processo de degradação do Bolsonaro e fazer com que esse setor [Centrão] que sustenta ele pule do barco. Ou você acha que o Centrão, pela primeira vez na história, vai ser fiel e afundar junto com o presidente que está afundando?", questionou.

Eu vejo chances reais [de um processo de impeachment] nesse cenário, com crise política, I, clima de perda de popularidade que tem a ver com a falta de saída da pandemia, crise econômica profunda, desemprego, fome. Somando isso às mobilizações de rua, acho que temos todas as condições de interromper o governo Bolsonaro.
Guilherme Boulos, líder do MTST

Candidato à presidência nas eleições de 2018 à prefeitura de São Paulo em 2020, Boulos foi uma das lideranças que promoveram e participaram das manifestações contra o presidente Jair Bolsonaro (sem partido) registradas em todos os estados e no Distrito Federal no último sábado (29).

Boulos esteve presente no ato com maior número de pessoas, na Avenida Paulista, em São Paulo, onde defendeu a realização do protesto, que, em vários momentos, teve aglomeração de pessoas em meio à pandemia do coronavírus. Ao convocar a manifestação em uma mensagem nas redes sociais no dia 20 de maio, Boulos disse que era difícil convocar mobilizações de rua num contexto de pandemia, mas que não existia outra alternativa. "O governo mata mais que o vírus", disse no vídeo.

Depois das manifestações, ele disse que mantém sua posição. "Com o Bolsonaro no governo, não tem saída a pandemia. Podemos ter uma terceira onda, podemos ter outras ondas. Essa política que estamos enfrentando, se seguir até o fim de 2022 o custo de vidas pode ser tremendo. E foi isso que nos levou à decisão de ir às ruas no último sábado", afirmou.

Manifestação com medidas sanitárias

Segundo Boulos, apesar de aglomerações terem ocorrido durante os protestos de sábado, não há como fazer uma relação com as manifestações a favor de Bolsonaro durante a pandemia.

"Não há comparação possível entre uma manifestação que segue protocolos sanitários e uma manifestação que desrespeita deliberadamente protocolos sanitários. O uso de máscara faz sim toda diferença, assim como a busca de distanciamento, a distribuição de álcool gel, as orientações sanitárias vindos da manifestação", disse.