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

Witzel faz mudanças no 1º escalão do governo após semana turbulenta

Governador do Rio, Wilson Witzel (PSC), deverá ser ouvido pela Polícia Federal nos próximos dias - Divulgação - ASCOM/GOVERNO DO RIO DE JANEIRO
Governador do Rio, Wilson Witzel (PSC), deverá ser ouvido pela Polícia Federal nos próximos dias Imagem: Divulgação - ASCOM/GOVERNO DO RIO DE JANEIRO

Gabriel Sabóia

Do UOL, no Rio

29/05/2020 12h05

Após uma semana marcada por operações policiais e suspeitas de chefiar estrutura ligada a supostas fraudes em contratações emergenciais para o combate à pandemia do coronavírus, o governador do Rio de Janeiro, Wilson Witzel (PSC), realizou trocas em duas das suas principais Secretarias.

O secretário da Casa Civil André Luis Dantas Ferreira e o secretário estadual de Fazenda Luiz Cláudio Rodrigues de Carvalho foram exonerados. No lugar de Ferreira, Witzel nomeou Raul Teixeira. Já para a Fazenda, o escolhido foi o economista Guilherme Mercês.

Ontem (28), após a Justiça ter suspendido a sua nomeação para a Secretaria Extraordinária de Acompanhamento da Covid-19, o ex-secretário de Saúde Edmar Santos anunciou a sua saída definitiva do governo.

Edmar também é alvo de investigações por supostos superfaturamentos em compras emergenciais de equipamentos para o combate ao coronavírus.

Nos bastidores do Palácio Guanabara, as exonerações são vistas como uma "resposta" de Witzel ao desgaste político vivido nos últimos dias.

Primeira-dama também é alvo de investigações

A Operação Placebo, autorizada pelo STJ (Superior Tribunal de Justiça) na última terça-feira (26) a pedido da PGR (Procuradoria-Geral da República), diz que o escritório de advocacia da primeira-dama do estado, Helena Witzel, recebeu pagamentos de empresa pertencente a dois presos pela Lava Jato —ambos apontados como operadores do empresário Mario Peixoto.

Com base na investigação da PGR, a decisão do ministro do STJ Benedito Gonçalves afirma que há indícios de "atividade delitiva" na relação do escritório de advocacia de Helena com empresa investigada na operação que apura fraudes em compras do governo do estado durante o combate à pandemia.

Gonçalves relata "vínculo bastante estreito e suspeito entre a primeira-dama Helena Witzel e as empresas de interesse de Mário Peixoto", o principal fornecedor do governo do estado, ao qual Witzel é associado desde a campanha eleitoral de 2018.

Helena teria firmado contratos "sem que a investigação tenha encontrado provas da prestação do respectivo serviço, o que explicita possível exercício profissional voltado à atividade delitiva".

Por meio de nota, a advogada informou que a HW Assessoria Jurídica prestou serviços para a empresa apontada na investigação, "tendo recebido honorários, emitido nota fiscal e declarado regularmente os valores na declaração de imposto de renda do escritório".

O STJ também autorizou apreensão e quebrou o sigilo dos dados contidos nos telefones e demais equipamentos eletrônicos de Witzel e Helena.

Helena Witzel fez coro ao discurso do marido e disse lamentar que "a operação tenha sido imbuída de indisfarçada motivação política, sendo sintomático, a esse respeito, que a ação foi antecipada na véspera por deputada federal aliada do presidente Jair Bolsonaro [sem partido]".