;(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();
})();
Exército discutiu o envio de militares para receber Bolsonaro em aeroporto
29.mar.2023 - O ex-presidente Jair Bolsonaro (PL) chega ao aeroporto de Orlando, nos EUA, para embarcar em voo de volta ao Brasil Imagem: Reprodução/CNN Brasil
Do UOL, em São Paulo
30/03/2023 04h24
O Comando do Exército discutiu, ontem, o envio de militares para garantir a segurança no desembarque do ex-presidente Jair Bolsonaro (PL) prevista para a manhã de hoje em Brasília.
O que aconteceu:
Militares estariam à paisana no aeroporto de Brasília com objetivo de coibir quaisquer atos de violência na chegada de Bolsonaro no Brasil. A informação foi dada pelo portal Metrópole.
A missão chamada de "apronto operacional" gerou desconforto internamente entre alguns militares. Isso pelo fato de Bolsonaro não ser mais o Presidente da República.
A previsão é que Bolsonaro chegue ao Brasil por volta das 7h10 de hoje, após 89 dias nos Estados Unidos; o avião pousará no aeroporto de Brasília.
O que foi planejado:
A Esplanada dos Ministérios e o aeroporto estarão "permanentemente monitorados". A Secretaria de Segurança do DF afirma que estará a postos para fechar os os a esses espaços "em tempo curtíssimo".
Não existe previsão de desfile em carro aberto.
Bolsonaro não sairá pelo saguão normal, como medida de segurança e forma de desencorajar aglomerações, segundo a PF (Polícia Federal).
O delegado Cezar Luiz Busto de Souza afirmou que a PF tem força de lei para determinar por onde os cidadãos podem entrar e sair. Ele também ressaltou que quinta-feira "é o dia de maior movimento no aeroporto de Brasília", com cerca de 137 operações até as 10h. am pelo local, diariamente, 40 mil pessoas.
Não serão permitidas manifestações no saguão do aeroporto, segundo porta-vozes das forças de segurança. A PM (Polícia Militar) estará posicionada no local e checará as agens aéreas para liberar o o.
Para a PF (Polícia Federal), o interesse é "que não seja um caos no aeroporto de Brasília e na malha aérea brasileira". O delegado Cezar Luiz Busto de Souza ressaltou que eles trabalham para que voos não atrasem.
Bolsonaro terá prioridade em filas e atendimento pela Polícia Federal em área restrita, "como acontece para qualquer ex-presidente".
Novos acampamentos "não serão tolerados", especialmente em "determinados locais da cidade", segundo o secretário da Segurança Pública, Sandro Avelar.
As forças de segurança descartaram que haverá motociatas: "A gente vai garantir a segurança [de Bolsonaro] no deslocamento, fazendo uma escolta no modelo segurança e não naquele que permite flexibilidade maior".
A PRF (Polícia Rodoviária Federal) disse que "existe uma movimentação" de ônibus chegando à capital federal, mas não são caravanas, segundo o contato deles com a ANTT (Agência Nacional de Transportes Terrestres).
A PRF também confirmou que não haverá bloqueios em rodovias federais.
O objetivo é criar "o menor prejuízo possível ao fluxo da cidade".
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.