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

Em carta, Bolsonaro pede à Índia urgência para antecipar vacina de Oxford

Em carta, Bolsonaro pede à Índia urgência para antecipar vacina de Oxford -  Foto: Alan Santos/PR
Em carta, Bolsonaro pede à Índia urgência para antecipar vacina de Oxford Imagem: Foto: Alan Santos/PR

Tânia Monteiro

São Paulo

08/01/2021 22h11

O presidente Jair Bolsonaro enviou ao primeiro-ministro da Índia, Narendra Modi, uma carta pedindo a antecipação "com urgência" do fornecimento de dois milhões de doses da vacina contra o novo coronavírus.

A vacina, uma das principais apostas do governo brasileiro, é produzida pelo laboratório indiano Serum Institute, mas foi desenvolvida pela Universidade de Oxford em parceria com a AstraZeneca. Caso o pedido seja atendido, Bolsonaro espera dar início à vacinação ainda em janeiro, conforme anunciou nesta quinta, 7, o ministro da Saúde, Eduardo Pazuello.

Desde o início da semana, Bolsonaro já cogitava pedir ajuda ao governo indiano para que não houvesse empecilhos ou demora na venda das vacinas ao Brasil. O Planalto corre contra o tempo e quer evitar deixar o protagonismo da imunização nas mãos do seu principal inimigo político, no momento, o governador de São Paulo, João Doria (PSDB).

Na carta, enviada nesta sexta-feira, 8, o presidente Bolsonaro, ressalta que, para "possibilitar a imediata implementação do nosso Programa Nacional de Imunização, muito apreciaria poder contar com os bons ofícios de Vossa Excelência para antecipar o fornecimento ao Brasil, com a possível urgência e sem prejudicar o programa indiano de vacinação, de 2 milhões de doses do imunizante produzido pelo Serum Institute of India".

Lembra ainda que entre as vacinas selecionadas pelo governo brasileiro para imunizar sua população "encontram-se aquelas da empresa indiana Bharat Biotech International Limited (COVAXIN) e da AstraZeneca junto à Universidade de Oxford (COVISHIELD), também produzida pelo Serum Institute of India".

Mais adiante, Bolsonaro aproveita para reiterar os agradecimentos pela liberação das exportações dos insumos farmacêuticos produzidos na Índia, de extrema relevância para o abastecimento de nosso mercado e para a saúde do povo brasileiro".