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

Ex-ministro vai ao STF para derrubar ação sobre funcionários fantasmas

O ex-ministro do Desenvolvimento Regional, Rogério Marinho - Marcos Corrêa/PR
O ex-ministro do Desenvolvimento Regional, Rogério Marinho Imagem: Marcos Corrêa/PR

Do UOL, em São Paulo

11/05/2022 19h05Atualizada em 11/05/2022 19h26

O ex-ministro do Desenvolvimento Regional do governo Bolsonaro Rogério Marinho (PL) entrou com um pedido de habeas corpus no STF (Supremo Tribunal Federal), com tutela de urgência, para suspender liminarmente e, posteriormente, trancar o processo movido contra ele na Justiça do Rio Grande do Norte.

O inquérito apura a suposta prática de peculato por Marinho quando ele ocupava o cargo de vereador da CMN (Câmara Municipal de Natal), nos períodos de março de 2003 a março de 2004 e de maio de 2005 a dezembro de 2006.

A ação da defesa visa questionar a decisão da sexta turma do STJ (Superior Tribunal de Justiça), determinada no mês de abril, que decidiu manter o processo contra o ex-ministro e rejeitar o recurso. O ex-ministro deve concorrer ao Senado do Rio Grande do Norte e contará com o apoio do presidente Jair Bolsonaro (PL).

O envio do pedido de habeas corpus ao STF foi remetido para análise do ministro Dias Toffoli, pois o magistrado já foi o responsável pelo processo no STF, que iniciou o processo depois do envio a primeira instância de Natal.

Para a defesa, "uma vez que patente a inépcia da inicial acusatória e manifesta atipicidade dos fatos narrados, já que sequer existe imputação de que teria o paciente se 'apropriado' de valores decorrentes da remuneração de tais servidores".

"Isso porquanto a enviesada investigação que descambou na denúncia apresentada pelo Ministério Público do Rio Grande do Norte padecia de (i) inépcia, pela inexistência de descrição detalhada dos fatos, e de (ii) justa causa, pela ausência dos elementos exigidos à persecução criminal, mormente pela circunstância de que os fatos versados não configurariam ato típico instituído pela legislação penal", discorre a defesa de Marinho.

Os advogados ainda apontam que a "denúncia não aponta qualquer favorecimento pessoal do paciente com as nomeações que levou a efeito enquanto Presidente da CMN". Eles ainda esclareceram que os dois funcionários citados com ligações próximas a Marinho "não revelaram ter reado qualquer quantia a quem quer que fosse" para o ex-vereador.

"Em nenhum momento a denúncia aponta o tempo, o modo e os elementos mínimos (e não imaginários) acerca da existência desse prévio conhecimento - por parte do paciente, então Presidente da CMN — de que os nomeados pelos demais vereadores seriam "fantasmas" ou que não estariam prestando seus serviços."

*Com Estadão Conteúdo