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

Joice presta depoimento e entrega objeto 'estranho' encontrado em casa

Do UOL, em São Paulo

26/07/2021 16h48Atualizada em 26/07/2021 21h40

Após denunciar suposto atentado, a deputada federal Joice Hasselmann (PSL-SP) disse hoje ter prestado depoimento à Polícia Civil e entregue um objeto que "apareceu" em seu apartamento funcional em Brasília e que, segundo a política, não pertence a ninguém que mora lá. Ela não especificou o que era, mas disse que o item foi encontrado debaixo do sofá.

"Foi bastante interessante porque, quando encontramos, tinham cinco pessoas em casa, foi logo na saída de vocês [imprensa]. Estava logo abaixo do sofá, um sofá que tem uma trava. Quando foi recolhido o objeto, estava lá na sala e entregamos [à polícia]", disse Joice ao deixar o 2º DP (Departamento de Polícia), na Asa Norte, em Brasília.

Ela ainda anunciou que vai fazer um exame de corpo de delito no IML (Instituto Médico Legal), apesar de os hematomas estarem "em uma fase de melhora". "Tenho exames que comprovam as lesões", acrescentou.

Todos estão à disposição. O MPF [Ministério Público Federal] foi acionado, não só eu acionei como a própria polícia acionou. O inquérito vai ser conduzido pelo MPF. (...) Não é um objeto que estava sujo de sangue, que tem marcas de sangue, nem nada disso. É simplesmente um objeto que não pertence a absolutamente ninguém da minha casa.
Joice Hasselmann, deputada federal

B.O. contra senador

Joice Hasselmann também registrou hoje um boletim de ocorrência contra o senador Styvenson Valentim (Podemos-RN). O parlamentar havia feito uma live insinuando que as agressões contra a deputada foram feitas ou pelo marido ou porque la teria feito uso de drogas.

Na transmissão ao vivo, o senador afirmou, sem provas, sobre o caso de Joice: "Aquilo ali, das duas uma. Ou duas de quinhentos [Styvenson leva as mãos à cabeça, fazendo chifres] ou uma carreira muito grande [inspira, como se cheirasse cocaína]. Aí ficou doida e pronto? saiu batendo em casa".

De acordo com a parlamentar, Styvenson é um "marmanjão de músculos, metido a delegado" que está cumprindo recomendações de pessoas do governo federal.

Além do crime de injúria, calúnia e difamação, ele está atribuindo a mim um ato criminoso. Ele está dizendo que usei algum tipo de droga, ele fala em cocaína, e ele está auxiliando essa narrativa que vem do governo, desvirtuando os fatos e me ofendendo de forma mais profunda. É mais que crime contra honra, (...) então ele realmente vai responder por isso e não vai custar barato.
Joice Hasselmann, deputada federal

Joice não citou diretamente o presidente Jair Bolsonaro (sem partido), mas, durante a conversa com jornalistas transmitida pela GloboNews, afirmou que "não é de hoje" que se tornou um desafeto da gestão federal e seus apoiadores.

O UOL entrou em contato com a assessoria de imprensa de Joice Hasselmann para mais detalhes sobre o caso e também com o senador Styvenson Valentim. Até o momento da publicação desta matéria, não tivemos retorno dos dois.