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

Conselheiro de Trump sobre covid defende "levante" contra restrições

O presidente dos Estados Unidos, Donald Trump                              - MANDEL NGAN/AFP
O presidente dos Estados Unidos, Donald Trump Imagem: MANDEL NGAN/AFP

Do UOL, em São Paulo

16/11/2020 11h42

O médico Scott Atlas, um dos integrantes da força-tarefa contra covid e conselheiros do presidente Donald Trump, disse para os moradores de Michigan "se levantarem" contra as restrições impostas pela istração estadual para tentar conter a transmissão do coronavírus.

"A única forma disso parar é se as pessoas se levantarem. Você recebe o que você aceita", escreveu ele em um tuíte neste domingo, mesmo dia em que a governadora do estado, a democrata Gretchen Whitmer, anunciou novas medidas de combate à covid. Atlas foi criticado pela escolha das palavras, mas disse hoje que "não estava defendendo a violência".

Os Estados Unidos vêm registrando um aumento de casos de coronavírus em todo o país. Na última sexta-feira, o presidente Donald Trump voltou a apostar suas fichas nas vacinas e descartou qualquer possibilidade de um novo confinamento no país.

Em pronunciamento, Whitmer disse que o estado "está à beira do precipício, no pior momento da pandemia" e que, o pior cenário previsto pelo comitê de saúde local, prevê mais de mil mortes por semana se nada for feito.

Por isso, pelas próximas três semanas, estão proibidas as aulas presenciais de escolas de ensino médio e universidades (que deverão ter apenas aulas a distância), os restaurantes e bares devem permanecer fechados para atendimento presencial em espaços fechados (apenas áreas abertas, entregas e retiradas) bem como cinemas, estádios, arenas, bingos, cassinos, locais de jogos e teatros.

Também foi solicitado às empresas que façam o máximo possível para que seus funcionários trabalhem de casa e estão vetadas as práticas de exercícios e de esportes em grupo - apenas liberados os esportes profissionais. Foram limitados os encontros de familiares e amigos para eventos em espaços abertos a 25 pessoas, mesmo número permitido para funerais.

De acordo com os dados da Universidade Johns Hopkins, o país ultraou a marca de 11 milhões de casos exatamente uma semana após ter batido os 10 milhões de contaminados. Até a manhã de hoje, o país contabilizava 246.224 mortos pela doença.