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

Esse conteúdo é antigo

Gabriel Monteiro é transferido de delegacia para presídio de Benfica

Ex-vereador Gabriel Monteiro (PL) gravou um vídeo em frente ao 77ª DP (Delegacia de Polícia) - Reprodução/Instagram
Ex-vereador Gabriel Monteiro (PL) gravou um vídeo em frente ao 77ª DP (Delegacia de Polícia) Imagem: Reprodução/Instagram

Colaboração para o UOL, em Brasília

08/11/2022 09h46Atualizada em 08/11/2022 11h17

O vereador cassado Gabriel Monteiro (PL-RJ) foi transferido na manhã desta terça-feira (8) para o presídio de Benfica, na zona norte do Rio de Janeiro. Ele se apresentou ontem a uma delegacia do bairro de Icaraí, depois de a 34ª Vara Criminal determinar prisão sem tempo estipulado para soltura, por suspeita de estupro.

Segundo o Ministério Público do Rio de Janeiro, o ex-parlamentar teria apontado uma arma para uma mulher de 22 anos, com quem teria mantido relações sexuais não consensuais. Ele também teria tentado filmar o ato. A mulher afirma que Monteiro teria se recusado a usar preservativo, motivo pelo qual ela teria contraído HPV.

Segundo a denúncia, a mulher teria conhecido Gabriel Monteiro em uma boate, na Barra da Tijuca, e ido para a casa de um amigo do político, onde ela teria sido levada até um quarto. "O denunciado a empurrou de forma violenta sobre a cama e começo a ter relação sexual de forma violenta, mesmo sem preservativo, mesmo após os apelos da vítima para que não mantivesse relações sem camisinha", diz um trecho da denúncia.

"Verifica-se que o crime perpetrado pelo acusado causa enorme perplexidade na população geral e local, uma vez que, se solto, o sentimento de existência de máquina estatal a impedir o cometimento de tal delito fica extremamente prejudicado", diz o promotor Marcos Kac, da 1ª Promotoria de Investigação Penal.

Na segunda-feira (7), Gabriel Monteiro publicou um vídeo na sua conta no Instagram, em que diz que soube do mandado de prisão por meio de sua advogada.

"Respeito as autoridades, por isso estou vindo aqui. Não fui conduzido pela polícia", afirmou no vídeo. "Assim que fiquei sabendo, vim imediatamente me entregar para à Justiça, que acredito nela. Sei que minha inocência vai ficar comprovada, não só tecnicamente, mas para todo o Brasil, de forma que fique incontestável qualquer acusação contra mim", completou.

Em agosto deste ano, a Câmara Municipal do Rio de Janeiro cassou o mandato de Gabriel Monteiro por quebra de decoro parlamentar.

Gabriel Monteiro foi investigado no Conselho de Ética da Câmara por acusações de assédio sexual, por forjar vídeos para seu canal no YouTube e por filmar relações com uma adolescente de 15 anos, o que é crime previsto pelo Estatuto da Criança e do Adolescente (ECA).