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

Covas diz que programa de desestatização será eixo de próxima gestão

Arquivo - O prefeito de São Paulo, Bruno Covas (PSDB), candidato à reeleição - Deyvid Edson / Estadão Conteúdo
Arquivo - O prefeito de São Paulo, Bruno Covas (PSDB), candidato à reeleição Imagem: Deyvid Edson / Estadão Conteúdo

Felipe Pereira

Do UOL, em São Paulo

29/09/2020 14h00

Candidato a reeleição em São Paulo, o prefeito Bruno Covas (PSDB) declarou hoje que pretende continuar com as desestatizações iniciadas em sua gestão e que transferiu a iniciativa privada espaços como o Pacaembu e o Ibirapuera. Ele declarou que manter este programa será uma das diretrizes de sua istração, caso vença as eleições.

"Ainda há muita parceira a ser feita com a iniciativa privada. Não tenho dúvida que este vai continuar a ser um dos grandes eixos da nossa gestão no ano que vem", disse durante participação no ciclo de debates da Associação Comercial de São Paulo.

Covas afirmou que durante a última gestão a cidade teve o maior programa de desestatização do país. Ele ressaltou que não defende estado mínimo ou estado máximo, mas estado necessário. Como exemplo, ressaltou que não adianta o poder público cuidar de estádio de futebol e não conseguir investir em educação, moradia, cultura e mobilidade.

O candidato elencou alguns setores que planeja ar para a iniciativa privada. Ressaltou que são projetos já aprovados pelos vereadores na atual gestão.

"Vários projetos que já foram aprovados pela Câmara e estão em andamento com a concessão do serviço funerário dos cemitérios aqui de São Paulo, dos terminais de ônibus, da manutenção dos piscinões que podem ser ados para iniciativa privada. Ou seja, projetos que já estão em andamento e vão ter continuidade na próxima gestão", disse à noite em um evento de campanha na Catedral de São Miguel Arcanjo.

Falando para uma entidade comercial, o candidato afirmou que vai melhorar o ambiente de negócios para que a cidade possa ser mais competitiva na atração de investimentos internacionais. Covas ainda aproveitou a ocasião para comentar a proposta de reforma tributária que é discutida no âmbito federal. Ele declarou que havia a esperança que seria menos Brasília e mais Brasil, mas que a proposta vai no sentido contrário a esta expectativa.

Ainda falando de economia, Covas defendeu a economia criativa como forma de gerar empregos, principalmente para jovens. Para cumprir este objetivo, defendeu polos de startups espalhados pela cidade para que jovens de periferia tenham as mesmas oportunidades que moradores da Faria Lima e Berrini.

No mesmo evento, o candidato também falou de volta as aulas. Como prefeito, será dele a palavra a respeito da data de retomada e Covas disse que não submeterá a pressões e que não tem medo de cara feia.