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

José Dirceu: Lula e Ciro têm de se unir para derrotar Bolsonaro

Do UOL, em São Paulo

29/05/2020 14h40

O ex-deputado federal (PT-SP) e ex-ministro da Casa Civil do governo do ex-presidente Luiz Inácio Lula da Silva (2003-2010) José Dirceu defendeu a união entre Lula e Ciro Gomes (PDT) para derrotar o presidente Jair Bolsonaro (sem partido). A declaração foi feita hoje em participação no UOL Entrevista.

"Para enfrentar Bolsonaro, todos têm de se unir: Lula, Ciro... Por mais que haja divergência, se queremos impedir o pior para o Brasil, uma tragédia nacional", disse.

Seria possível uma frente ampla da esquerda para derrotar Bolsonaro? "Historicamente, as frentes amplas favoreceram FHC, Tancredo [Neves], [José] Sarney, Itamar Franco e para derrubar a Dilma."

"Proponho aliança para tirar o Bolsonaro, [mas] não para 2022. Teremos um candidato de centro-esquerda, seja quem for: Ciro, [Fernando] Haddad, Rui Costa, Flávio Dino. O Lula já disse que não quer ser candidato", afirmou Dirceu, que ressaltou que seu posicionamento era pessoal, e não em nome do PT.

"Não posso falar em nome do PT. O Lula declarou três vezes em 15 dias que não é candidato, que quer construir um programa da esquerda. O Ciro decidiu ser um candidato antipetista. Para a questão do Bolsonaro, espero que isso seja superado."

Centrão é 'Cavalo de Troia', diz Dirceu

Ainda na entrevista, Dirceu foi questionado se o centrão vai largar Bolsonaro. "Eles [o centrão] são um Cavalo de Troia. Aliás, já estão se dividindo por causa das operações contra os governadores. Amanhã, o centrão é o primeiro a pedir o impeachment [de Bolsonaro]. Você tem alguma dúvida? Bolsonaro está fazendo uma operação de alto risco", afirmou.

Golpe de Bolsonaro ou impeachment?

Segundo o ex-deputado, é necessário "resistir pacificamente" caso haja uma possível tentativa de golpe de Bolsonaro.

"Nós estamos resistindo. Temos que resistir pacificamente no Brasil. Temos que usar os instrumentos da luta política, social, judicial que temos. Sem elas, faremos resistência pacífica com a sociedade. Não subestime o povo brasileiro."

Dirceu aproveitou o tema para lembrar que no impeachment de Fernando Collor, o PT não fez uma oposição dura a seu sucessor direto, Itamar Franco.

"O PT não foi para o governo Itamar, [o partido] fez oposição, mas reconhecemos o direito dele de ser presidente. Sempre mantivemos um diálogo fazendo oposição. A [Luiza] Erundina [na época petista] foi ministra dele", recordou Dirceu.

Dirceu ainda argumentou que um possível pedido de impeachment contra Bolsonaro poderia ser organizado pela internet.

"A nossa força política está acumulada. Existe na base da sociedade, não está em movimento. Queremos o impeachment do Bolsonaro? Vamos fazer um abaixo-assinado pela internet. Não podemos levar 3 milhões de pessoas às ruas, mas vamos fazer pela internet", afirmou.

Participaram dessa cobertura Beatriz Sanz, Emanuel Colombari, Felipe Amorim, Gustavo Setti e Talyta Vespa (redação) e Diego Henrique de Carvalho (produção)