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

Delegado que denunciou Salles pede investigação de imóvel de diretor da PF

Paulo Maiurino, delegado-geral da PF, adquiriu imóvel de 675 mil dólares na Flórida (EUA) - Reprodução/Alesp
Paulo Maiurino, delegado-geral da PF, adquiriu imóvel de 675 mil dólares na Flórida (EUA) Imagem: Reprodução/Alesp

Do UOL, em São Paulo

14/11/2021 10h35

O delegado da Polícia Federal Alexandre Saraiva pediu a investigação do diretor-geral da PF, Paulo Maiurino, pela compra de um imóvel de luxo em Miami, nos Estados Unidos. O pedido foi feito diretamente à Corregedoria Geral da instituição para evitar "eventuais retaliações" aos superiores de Saraiva, segundo ele próprio.

Em 2016, Maiurino adquiriu um apartamento de US$ 675 mil (cerca de R$ 3,6 milhões na cotação atual) em Miami, na Flórida.

O imóvel foi quitado em 16 meses, com financiamento de US$ 337,5 mil (R$ 1,8 milhão), conforme revelado pelo portal Metrópoles, que publicou que a forma de pagamento escolhida é incomum porque Mairuino pagou mais ao arcar com taxas e juros.

O salário líquido relativo ao cargo de Maiurino na PF é estimado em R$ 25 mil. A companheira dele, Renata Veit, assessora parlamentar do deputado federal Bacelar (Podemos-BA), ganha R$ 6.214,54.

No pedido feito à Corregedoria na sexta-feira (12), Saraiva cita a reportagem e aponta que, se confirmada, a prática pode configurar lavagem ou ocultação de bens, com penas que vão de três a dez anos de prisão.

O delegado também observa que o ofício enviado diretamente à Corregedoria foge ao caminho usual, que deveria ar por outros nomes na PF, para preservar seus superiores hierárquicos de "eventuais retaliações".

Foi Maiurino quem tirou Saraiva do comando da PF no Amazonas, em abril, no mesmo dia em que o delegado enviou ao STF uma notícia-crime contra o então ministro do Meio Ambiente Ricardo Salles.

O diretor-geral da PF também já fez outras substituições polêmicas, entre elas a do superintendente do DF que investigava dois inquéritos envolvendo família e aliados do presidente Jair Bolsonaro (sem partido).