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

Torcida sem ingresso se mobiliza para invadir final; PM reforça segurança

Nas redes sociais circula foto de supostos ingressos falsos e áudio de mobilização tentativa de invasão - Reprodução / Redes sociais
Nas redes sociais circula foto de supostos ingressos falsos e áudio de mobilização tentativa de invasão Imagem: Reprodução / Redes sociais

Do UOL, no Rio de Janeiro

19/10/2022 13h07

O Batalhão Especializado de Policiamento em Estádios (Bepe) montou um esquema especial para a partida de hoje (19), às 21h30, no Maracanã (RJ), entre Flamengo e Corinthians, pela final da Copa do Brasil. Cientes das informações que circulam na internet sobre ingressos falsos e mobilizações para tentativas de invasões, o órgão aumentou o efetivo de policiais e adotou estratégias antifraudes.

No total, serão 1.200 homens do Bepe, além do Batalhão de Choque, da Cavalaria, de Ações com Cães, da segurança privada e até do Grupamento Aeromarítimo da PM, que utilizará drones para monitorar a movimentação dos torcedores.

Em grupos de WhatsApp e nas redes sociais, circulam imagens de supostos ingressos falsos e um áudio em que um homem detalha uma estratégia para tentar furar as barreiras de triagem com estes bilhetes, chegando até as catracas e iniciando a confusão para tentar forçar o arrombamento dos portões, assim como aconteceu na partida entre Flamengo e Atlético-MG pelas oitavas de final da Copa do Brasil.

Comandante do Bepe, o tenente-coronel Hilmar Faulhaber afirmou ao UOL Esporte que já está ciente destas informações e que trabalha com sua equipe para coibir estas ações.

"Desde antes destas informações, a Polícia Militar já tinha se reforçado esperando que fossem acabar surgindo estas situações. Estaremos aplicando no entorno do estádio 1.200 policiais para manter o perímetro de segurança", disse o comandante, complementando:

"Com relação a estas informações de ingressos falsos, todo policiamento será orientado para coibi-los, bem como toda a segurança privada".

Local que demanda mais atenção das autoridades, a entrada do setor Norte do Maracanã tem reforçado sua triagem desde os acontecimentos no jogo entre Flamengo e Atlético-MG. De lá para cá, o torcedor precisa ar por cerca de três barreiras antes de chegar à catraca para efetuar sua entrada no estádio. Até aqui, a estratégia deu certo e não ocorreram mais invasões.

Organizadas do Corinthians viajam com cerca de 40 ônibus

Caravana com cerca de 40 ônibus de torcedores do Corinthians é revistada na altura de Barra do Piraí (RJ) - Reprodução / Redes Sociais - Reprodução / Redes Sociais
Caravana com cerca de 40 ônibus de torcedores do Corinthians é revistada na altura de Barra do Piraí (RJ)
Imagem: Reprodução / Redes Sociais

As organizadas do Corinthians deixaram São Paulo na manhã desta quarta-feira (19) e estão sendo escoltadas pela Polícia Rodoviária Federal (PRF), o Batalhão de Choque e o Bepe. Segundo o tenente-coronel Hilmar Faulhaber, são cerca de 40 ônibus que já estão na altura de Barra do Piraí (RJ), onde foram paralisados para revistas em um procedimento comum da Polícia Militar do Rio de Janeiro para estes tipos de deslocamentos de torcidas de outros estados. Assim que forem liberados, os veículos serão acompanhados até o Maracanã.