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

SP: Lula pede votos em Boulos para "restabelecer a democracia no Brasil"

Do UOL, em São Paulo

17/11/2020 12h32Atualizada em 17/11/2020 19h25

Após Jilmar Tatto (PT) ser derrotado no primeiro turno com 8,65% dos votos válidos, o ex-presidente Luiz Inácio Lula da Silva pediu hoje que "todos os eleitores e eleitoras que votam no PT" e são "progressistas" votem em Boulos por um "compromisso histórico".

"Todos que querem restabelecer a democracia no Brasil têm agora o compromisso histórico de votar no companheiro Guilherme Boulos para prefeito de São Paulo", disse em seu perfil no Twitter.

Pela manhã, o apoio anunciado ontem pelo PT e reiterado por Lula já rendeu efeitos visíveis. A quantidade de pessoas ao redor do candidato já é superior à presente na maior parte das caminhadas ao longo do primeiro turno.

No evento, era possível ouvir apoiadores dizerem frases como "agora ficou fácil escolher" e "PT agora é 50", em referência ao número de urna do PSOL. "A nossa esquerda unificada, nossa esquerda unificou", disse um dos apoiadores em um carro de som.

No domingo (15), o psolista obteve 20,24% dos votos válidos, contra 32,85% do tucano.

Dilma Rousseff

Também hoje, a ex-presidente petista Dilma Rousseff também pediu votos ao candidato do PSOL. "O voto em Boulos e Erundina representa a luta do campo progressista de São Paulo e do Brasil contra o ódio, a mentira e a intolerância", declarou.

No domingo (15), Fernando Haddad, ex-prefeito da cidade, foi a primeira liderança do PT a declarar apoio a Boulos. Derrotado no primeiro turno, Tatto, também manifestou seu apoio a Boulos no segundo turno.

"É necessário derrotar o projeto neoliberal representado por Bruno Covas, João Doria (PSDB) e Bolsonaro, motivo pelo qual o PT paulistano entende a importância de eleger Guilherme Boulos prefeito", disse o PT em nota ontem.

Em entrevista ao UOL, o presidente do PSOL, Juliano Medeiros, reconheceu que o apoio do PT é importante para a campanha e que "prescindir desse apoio seria suicídio".

"O PT tem muita rejeição, mas tem muitos apoiadores. Esses eleitores que votaram no PT são muito importantes, assim como quem votou no Orlando Silva, na Marina [Helou], ou quem não votou. No segundo turno há que se receber apoio."

Ciro e França

Hoje, Boulos confirmou ao UOL que anunciará amanhã anunciará suas alianças. "Não adiantei porque quero expressar com todos os nomes que temos conversado se manifestando", afirmou.

Além dos nomes petistas, Carlos Lupi, presidente do PDT, Ciro Gomes e Antonio Neto, vice na chapa de França, também defendem o apoio ao candidato do PSOL contra o atual prefeito Bruno Covas.

Hoje, eles se reúnem com a coligação da chapa de Márcio França (PSB), que dará a decisão final sobre o apoio. França terminou em terceiro lugar com 13,64% dos votos válidos no primeiro turno.

Por um lado, a eleição em Recife pode prejudicar uma aliança com o PSOL. Por outro, França empunhou uma bandeira anti-Doria por toda a sua campanha.

"Eles [Lula e Ciro] já se manifestaram publicamente. Já declararam apoio por entender que é um projeto de combate à desigualdade, que vai fazer de São Paulo uma cidade que preserva valores democráticos e de tolerância, em contraponto ao que o Bolsonaro representa no país e Doria no estado de São Paulo", afirmou o candidato do PSOL.

Orlando Silva

Também derrotado no primeiro turno, o candidato do PCdoB Orlando Silva também apoiará Boulos no segundo turno. Segundo ele, o resultado das urnas no último domingo (15) representa a derrota de Jair Bolsonaro na capital paulista. Orlando Silva terminou o primeiro turno com 0,23% dos votos válidos (12.254 votos).

"Tenho conversado com bastante gente de outros partidos. Meu esforço é construir uma frente que vai envolver lideranças políticas, partidos progressistas, movimentos sociais. Estamos fazendo a costura. Essa frente vai ser lançada amanhã", disse.