;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Carla Araújo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Silva e Luna diz que indicações à Petrobras são 'técnicas' e 'excelentes'

General Joaquim Silva e Luna - Alan Santos/PR
General Joaquim Silva e Luna Imagem: Alan Santos/PR

Do UOL, em Brasília

06/04/2022 20h29Atualizada em 06/04/2022 21h11

Receba os novos posts desta coluna no seu e-mail

Email inválido

O ainda presidente da Petrobras, general Joaquim Silva e Luna, classificou as indicações feitas pelo presidente Jair Bolsonaro (PL) para o comando da Petrobras como muito boas. "As indicações são excelentes", disse o general à coluna.

Na noite desta quarta-feira (6), o Ministério de Minas e Energia (MME) indicou o nome de José Mauro Ferreira Coelho, ex-secretário de Petróleo, Gás Natural e Biocombustíveis do MME para presidência da Petrobras, após o nome do economista e consultor Adriano Pires ter enfrentado resistência dentro da estatal.

Além de Ferreira Coelho, o governo indicou Márcio Andrade Weber para o exercício da presidência do Conselho de istração. O cargo havia sido oferecido para o empresário Rodolfo Landim, que declinou também na última semana.

No próximo dia 13 de abril, o Conselho da Petrobras realizará assembleia onde terá que deliberar sobre os indicados pelo governo.

Silva e Luna afirmou que as escolhas anunciadas nesta noite mostram que o governo optou por uma "escolha técnica".

"O Márcio (Weber) já é Conselheiro da Petrobras e trabalhou muitos anos na empresa. O José Mauro estava no MME até o ano ado, como Secretário de Óleo, Gás e Biocombustíveis, e conhece profundamente o assunto", disse. "Foram escolhas técnicas", completou.

Silva e Luna foi demitido por Bolsonaro no fim de março, mas só deixará o cargo após a assembleia do dia 13.

Bolsonaro estava irritado com o general por conta da alta dos preços nos combustíveis e acabou decidindo por sua demissão em uma ação com caráter político, para demonstrar a busca de soluções para o problema.

Foi o ministro de Minas e Energia que comunicou a Silva e Luna a sua demissão.

Agora, apesar de o general ter aprovado as indicações, que foram costuradas novamente por Bento, os dois não conversaram sobre o assunto.

Solução caseira

A escolha de José Mauro Ferreira para a vaga atende a uma ordem de Bolsonaro para que Bento Albuquerque buscasse uma solução rápida para a crise.

Diante da dificuldades de encontrar nomes dispostos a assumir o posto, Bento teve que optar para o que está sendo chamado no governo de "solução caseira".

Auxiliares do presidente itiram que o episódio causou um "desgaste natural" para Albuquerque e que "sempre há um estresse" no processo decisório para cargos importantes como os da estatal.

Apesar disso, ministros ouvidos pelo UOL tentaram arrefecer uma crise em torno do ministro de Minas e Energia e afirmaram que ele segue gozando da confiança do presidente e que a relação pessoal entre ele e Bolsonaro não teria sido abalada.

Questionado pela coluna sobre as escolhas, Bento afirmou que "ele tem o perfil que buscávamos".