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

Bolsonaro diz que Orçamento tem corte 'bastante grande' para todos

Bolsonaro indicou que todos os ministérios devem sofrer cortes em suas despesas para assegurar o respeito ao teto de gastos - Reprodução
Bolsonaro indicou que todos os ministérios devem sofrer cortes em suas despesas para assegurar o respeito ao teto de gastos Imagem: Reprodução

Emilly Behnke, Nicholas Shores e Daniel Galvão

22/04/2021 20h36

A poucas horas do fim do prazo para a sanção do Orçamento de 2021, o presidente Jair Bolsonaro indicou que todos os ministérios devem sofrer cortes em suas despesas para assegurar o respeito ao teto de gastos (a regra que impede que as despesas cresçam em ritmo superior à inflação), mas não indicou o tamanho exato da tesourada. Em sua live semanal, ele disse apenas que o bloqueio será "bastante grande" para o tamanho do Orçamento.

O presidente evitou detalhar o assunto que, nos últimos dias, o colocou no centro de um ime entre a equipe econômica e o Congresso Nacional. A live durou pouco mais de 42 minutos, mas o presidente dedicou apenas 42 segundos ao tema do Orçamento e do endividamento do País. "A peça orçamentária para os 23 ministérios é bastante pequena e é reduzida ano após ano. Tivemos um problema no Orçamento no corrente ano, então tem um corte previsto bastante grande no meu entender, pelo tamanho do orçamento, para todos os ministérios. Todo mundo vai pagar um pouco a conta disso aí", disse Bolsonaro.

Na quarta-feira, como parte da solução do ime do Orçamento, Bolsonaro sancionou lei que permite descontar do cálculo da meta fiscal deste ano os gastos emergenciais com saúde, o programa de manutenção de empregos (BEm) e o programa de crédito a micro e pequenas empresas, o Pronampe. O texto não prevê limite de valor para essas ações. Segundo o Ministério da Economia, serão destinados R$ 10 bilhões ao programa de emprego e R$ 5 bilhões ao Pronampe. Mas o líder do DEM na Câmara, Efraim Filho (PB), que relatou o projeto sancionado hoje, disse ao Estado na segunda que o valor do Pronampe seria maior, de R$ 10 bilhões. O parlamentar adiantou ainda que eram esperados R$ 20 bilhões para a saúde.

Como o governo já havia liberado R$ 44 bilhões para o auxílio emergencial a vulneráveis nas mesmas condições excepcionais, a nova lei pode elevar a mais de R$ 125 bilhões os gastos de combate à pandemia de covid-19 fora da meta fiscal e do teto de gastos, como mostrou o Estadão/Broadcast. A conta considera R$ 33,7 bilhões em restos a pagar da covid-19 herdados de 2020, dos quais R$ 7,8 bilhões já foram pagos.

A mudança sancionada na quarta-feira ajuda a equipe econômica na resolução do ime em torno do Orçamento de 2021. Com o ato de Bolsonaro, a Lei de Diretrizes Orçamentária (LDO) a a permitir ao governo bloquear por decreto despesas discricionárias (que incluem custeio e investimentos) para recompor despesas obrigatórias, como benefícios previdenciários, seguro-desemprego e subsídios, que ficaram maquiadas em R$ 21,3 bilhões, segundo parecer de técnicos da Câmara com base em dados do Ministério da Economia.

O dispositivo vai abrir caminho ao remanejamento que já vinha sendo estudado desde a semana ada e que tinha como objetivo preservar ao máximo as indicações de emendas de parlamentares, ainda que à custa de gastos do próprio Executivo. Esse "corte na carne" do governo deve ficar em R$ 9,5 bilhões, mas os cálculos exatos ainda estão sendo finalizados.