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

Após dar água a golpistas, major não impede que levem extintor do Planalto

Do UOL, em Brasília e em São Paulo

23/04/2023 15h14Atualizada em 23/04/2023 16h03

Imagens de câmaras de segurança do Palácio do Planalto nos ataques de 8 de janeiro mostram que o mesmo militar que distribuiu água a invasores não esboçou reação quando um dos golpistas carrega consigo um extintor de incêndio do terceiro andar. O general Gonçalves Dias, então ministro do GSI, aparece instantes depois no local e se limita a entrar numa sala. Os vídeos foram recém-divulgados.

O que aconteceu

Eram 16h28 quando invasores começam a sair da antessala do gabinete do presidente Lula (PT). O major José Eduardo Natale de Paula Pereira está no local e não dá ordem de prisão a ninguém. No total, 11 pessoas deixam o local e um deles chega a voltar para a antessala presidencial, mostram as imagens.

Os golpistas se aglomeram no o à escada e um homem chuta a porta de o a outra sala. Natale nada faz novamente. O invasor insiste em entrar e o major tenta impedir, mas desiste ao ser empurrado. No governo de Jair Bolsnaro (PL), Natale integrava a equipe de viagens do ex-presidente e de seu vice-presidente, Hamilton Mourão Republicanos)

Na sequência, outro homem agacha e levanta o extintor e seu e. Apesar do potencial perigo que um objeto pesado de metal representa, o militar apenas observa. A única ação dele foi indicar aos manifestantes o caminho de saída do terceiro andar.

Natale foi afastado do cargo pelo GSI depois da invasão do Planalto. Em depoimento à Polícia Civil, ele justificou que o contingente para proteger a sede do Executivo era de 40 homens, insuficiente para fazer a segurança.

General só observa

O general Gonçalves Dias, então ministro do GSI (Gabinete de Segurança Institucional), é visto na imagens instantes depois. Ele confere se as portas foram arrombadas e entra na antessala da presidência da República digitando no celular.

Uma dupla de militares do GSI também aparece na gravação, entre eles está o major Natale — que foi exonerado da pasta em fevereiro. Eles deixam o local e outros três aparecem. Um homem tira foto da entrada da recepção da Presidência e outro usa o crachá para abrir a porta de vidro e ir ao encontro de Gonçalves Dias.

GSI divulgou íntegra dos vídeos da invasão

O GSI divulgou neste final de semana mais de 160 horas de gravação da invasão do Planalto. As imagens são provenientes de 33 câmeras de segurança do prédio.

As imagens foram liberadas por ordem do ministro Alexandre de Moraes, do STF. Na última sexta (21), ele retirou o sigilo das imagens que vinha sendo imposto pelo GSI e ordenou o envio delas ao Supremo em até 48 horas.

Na mesma decisão, Moraes mandou a Polícia Federal ouvir os agentes do GSI que estavam no Planalto no dia 8. Os depoimentos estão sendo tomados na tarde de hoje.