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

Mauro Cezar Pereira

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Fluminense e Flamengo analisarão, juntos, o edital de concessão do Maracanã

Mário Bittencourt, presidente do Fluminense - FluminenseFC/Flickr
Mário Bittencourt, presidente do Fluminense Imagem: FluminenseFC/Flickr

31/07/2022 12h31

Receba os novos posts desta coluna no seu e-mail

Email inválido

O Fluminense tem uma concessão provisória, temporária, do Maracanã para geri-lo com o Flamengo. Os dois desejam assumir o estádio por mais tempo, mas a publicação do edital pelo governo do Estado do Rio de Janeiro, na semana ada, assustou a muitos devido às suas cláusulas leoninas para os candidatos a istrar o palco da final da Copa do Mundo de 2014.

Além do o à Tribuna de Honra do Maracanã e do ginásio Maracanãzinho, o governo exige sete camarotes específicos, em todos os eventos, com buffet; 40 vagas de estacionamento, 200 ingressos, etc. Mas não é só. O edital deixa claro que, na prática, o Estado seguirá com poderes sobre o complexo esportivo, sem dar autonomia aos concessionários.

Na prática Fluminense e Flamengo poderão assumir as responsabilidades, financeiras inclusive, sobre o estádio, custos e manutenção. Mas se outro clube pedir para lá jogar, terá tal direito, mesmo que isso sacrifique o gramado e tal agremiação não assuma qualquer risco sobre o Maracanã. Como durante a pandemia, quando, sem público e receita, os dois bancaram a "arena".

O blog conversou com o presidente tricolor, Mário Bittencourt, sobre essa situação. Ele confirmou que segue ao lado dos rubro-negros na tentativa de obtenção da concessão do Maracanã, e adianta que os dois clubes se reunirão para analisar mais detalhadamente as regras impostas pelo governo do Rio de Janeiro.

O Fluminense continua interessado em assumir o Maracanã, mesmo com essas regras apresentadas pelo governo estadual?
O Fluminense está junto com o Flamengo, já assinado para participar juntos da licitação em outubro. Estamos juntos e seguiremos juntos.

E quanto ao edital?
Nós temos uma equipe que atua estudando essa questão desde o início e ela se reunirá ao longo da próxima semana para se aprofundar tecnicamente sobre o edital. Esta mesma equipe se reunirá também ao longo da semana para que possamos avaliar os termos do edital em conjunto com o Flamengo. O Fluminense participará da licitação ao lado do Flamengo e tem todo interesse em seguir no estádio por todo o tempo da concessão.

Leia também a entrevista com o presidente do Flamengo, Rodolfo Landim, sobre o edital de concessão do Maracanã

Além do item que trata de camarotes com buffet, vagas de estacionamento e ingressos, existem várias cláusulas que dão poder ao Estado sobre os concessionários, como o Fluminense vê essas questões?
Como disse, temos uma equipe que vai analisar tecnicamente o edital. Pessoas do clube e contratadas que são especialistas em editais deste porte. O edital é enorme e não vamos nos pronunciar sem uma avaliação técnica. Além disso, nossas manifestações serão feitas dentro do processo de licitação.

Essa análise tem previsão para que seja concluída?
Dentro dos prazos legais do edital.

Siga Mauro Cezar no Twitter

Siga Mauro Cezar no Instagram

Siga Mauro Cezar no Facebook

Inscreva-se no Canal Mauro Cezar no YouTube