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

São Paulo

São Paulo muda regra, e votação de estatuto será apenas virtual

Divulgação/São Paulo
Imagem: Divulgação/São Paulo

Brunno Carvalho e Pedro Lopes

Do UOL, em São Paulo

08/12/2021 19h54

O conselho deliberativo do São Paulo decidiu tornar totalmente virtual a reunião do dia 16 de dezembro, que votará a reforma do estatuto do clube. O encontro inicialmente seria híbrido, com os conselheiros podendo optar por comparecer à sede são-paulina ou acompanhar por vídeo. A justificativa para a mudança foi o risco da ômicron, nova variante da covid-19.

O presidente do conselho, Olten Ayres de Abreu Junior, pediu um parecer da Comissão de Notáveis da Divisão de Excelência Médica (DEM), que aconselhou que a reunião acontecesse virtualmente por causa da covid-19. A comissão é composta por profissionais da saúde e conselheiros e se reporta ao presidente Júlio Casares.

A mudança deve ter impacto no clima político do clube. Um protesto de torcedores estava marcado para acontecer nos arredores do Morumbi às 19h do dia 16 de dezembro, na mesma hora em que começaria a reunião.

Alguns conselheiros já haviam confirmado a presença na sede do clube. Membros da oposição chegaram a se inscrever para poderem discursar durante a reunião. Com a reunião acontecendo totalmente virtual, há a preocupação de possíveis cortes de microfone durante as falas.

No final da última semana, o conselheiro Fábio Castello Branco Mariz de Oliveira enviou um requerimento ao presidente do conselho pedindo para que a reunião fosse transmitida ao vivo, permitindo que torcedores e sócios acompanhassem a votação. No ofício enviado aos conselheiros, Olten Ayres de Abreu Junior reafirmou que "o ingresso à reunião será aos membros do Conselho Deliberativo, além de funcionários ou prepostos do São Paulo convocados a critério da Mesa do Conselho para a execução de atividades de apoio à reunião".

A votação do estatuto aconteceria no último dia 18 de novembro, mas acabou adiada por causa da má campanha do São Paulo no Brasileirão. Entre os pontos que serão votados estão a possibilidade de reeleição do presidente (atualmente é permitido apenas um mandato de três anos) e a diminuição do quadro de conselheiros. Caso mantida a obrigatoriedade de 55 s para a formação de uma chapa, essa última mudança no estatuto dificultaria candidaturas da oposição.

Apesar de mudar a reunião do estatuto por causa da preocupação com a covid-19, o São Paulo ainda sediará uma festa de pré-reveillon no dia 21 de dezembro, cinco dias depois da votação. O evento está sendo organizado por três diretorias são-paulinas.

Procurado pela reportagem, o São Paulo afirmou que os dois eventos são organizados por departamentos diferentes, que são autônomos para tomarem decisões. O clube também ressaltou que acompanha o avanço da pandemia e que a festa de pré-reveillon seguirá as recomendações das autoridades sanitárias.

São Paulo