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

Candidata da Rede não responde pergunta e pede para eleitor ir ao seu site

A candidata da Rede à Prefeitura de São Paulo, Marina Helou - Kelly Fuzaro/Band
A candidata da Rede à Prefeitura de São Paulo, Marina Helou Imagem: Kelly Fuzaro/Band

Do UOL, em São Paulo

01/10/2020 23h02

Marina Helou, candidata da Rede à prefeitura de São Paulo, não respondeu a primeira pergunta sobre geração de emprego, dirigida aos candidatos à prefeitura de São Paulo, e aproveitou o espaço para pedir ao eleitor que visite o seu site para conhecê-la melhor e para ver o que ela propõe em relação ao tema abordado. O primeiro debate com candidatos à prefeitura da capital paulista é realizado pela Band e e retransmitido pelo portal UOL.

"Você que esta em casa preocupado com São Paulo. Eu também estou e é por isso que precisamos sair da mesmice. De novas soluções para resolver nosso velhos problemas. Sou formada em istração pública, deputada estadual e adorei que a Band deu a você o poder de escolher essa pergunta, mas todos os 17 temas são muito importantes. Por isso gravei um vídeo contando minha ideia de como vou fazer diferente em cada um deles, inclusive em geração de trabalho e renda que estou postando agora em minhas redes sociais e em meu site, marinahelou18.com.br. Corre lá para ver que sim, São Paulo tem opção", disse ela, mas sem responder a questão.

Formada em istração Pública pela FGV (Fundação Getulio Vargas), Helou tem 33 anos e está em seu primeiro mandato como deputada estadual.

Em 2018, ela obteve pouco menos de 25 mil votos apenas na capital paulista. Em todo o estado, a parlamentar conquistou o apoio de cerca de 40 mil eleitores. Dois anos antes, em 2016, ela tentou ser vereadora na capital paulista, mas seus 16,2 mil votos não foram suficientes na ocasião. Helou, porém, foi a mais votada do partido.

Russomanno lidera

Celso Russomanno (Republicanos) aparece com 24% das intenções de voto à Prefeitura de São Paulo, segundo pesquisa divulgada pelo Ibope, em setembro. O prefeito Bruno Covas (PSDB), que busca a reeleição, tem 18%.

A margem de erro é de três pontos percentuais para mais ou para menos. Portanto, Russomanno e Covas estão tecnicamente empatados.

Em seguida, aparecem Guilherme Boulos (PSOL), com 8% das intenções e Márcio França (PSB), com 6%. Arthur "Mamãe Falei" do Val (Patriota) e Joice Hasselmann (PSL) têm 2% das preferências.

Andrea Matarazzo (PSD), que já esteve à frente da Subprefeitura da Sé, surge com 1% das intenções de voto, assim como Filipe Sabará (Novo).

O PT, que concorre com Jilmar Tatto, também tem 1% das intenções de voto. Outros candidatos com a mesma marca são Levy Fidelix (PRTB), Marina Helou (Rede), Orlando Silva (PCdoB) e Vera Lúcia (PSTU). O candidato do PCO, Antonio Carlos Silva, teve menos de 1% da intenção de votos, segundo reportagem do jornal O Estado de S. Paulo.

Brancos e nulos somam 23% das intenções de voto. E 10% dos entrevistados declararam que não sabem em quem votar ou não responderam.