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

STJ nega pedido de liberdade de Kat Torres, acusada de tráfico de pessoas

Kat Torres foi uma das influenciadoras que acusaram Yasmin Brunet de tráfico de pessoas - Divulgação
Kat Torres foi uma das influenciadoras que acusaram Yasmin Brunet de tráfico de pessoas Imagem: Divulgação

De Splash, em São Paulo

25/04/2023 09h14Atualizada em 25/04/2023 17h07

O ministro Rogerio Schietti Cruz, do STJ, negou nesta semana um pedido de liberdade de Katiuscia Torres, acusada de tráfico humano e de manter pessoas em condições análogas à escravidão.

Ela foi uma das três influenciadoras brasileiras presas nos Estados Unidos em novembro após acusarem Yasmin Brunet de tráfico de pessoas.

Katiuscia já teve um pedido de habeas corpus negado na Justiça do Rio de Janeiro. Ela recorreu ao STJ, que também negou: "Não identifico ilegalidade manifesta no ato", diz a decisão do ministro.

O MPF e a Polícia Federal investigam se Kat Torres criou uma seita para atrair brasileiras aos EUA e explorá-las de várias formas. De acordo com o jornal O Globo, ela foi acusada de usar a espiritualidade para manipular dezenas de jovens.

Kat Torres, Desirrê Freitas e Letícia Maia ainda respondem a um processo de calúnia, difamação e ameaça movido por Yasmin Brunet. A modelo afirma que entrou numa live de Desirrê após ver a campanha da família dizendo que a jovem estava desaparecida. Ela pediu que Desirrê mostrasse o quarto onde estava para provar que estava segura, e a partir daí ou a ser acusada de tráfico de pessoas pelas três.

Eu gostaria de pedir desculpas à Yasmin Brunet. Quando proferi aquelas palavras, foi novamente a mando de Katiuscia. Ela queria lançar uma cortina de fumaça acusando Yasmin Brunet de coisas que ela mesma realizava. Desirrê Freitas em entrevista ao jornal O Globo

Splash tentou contato com a equipe de Kat e Rodrigo Alves da Silva Menezes, advogado responsável pela defesa da modelo. O texto será atualizado caso uma das partes se posicione.