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

Lula deve revogar decretos de armas de Bolsonaro, diz Flávio Dino

Senador eleito pelo Maranhão Flavio Dino - Divulgação
Senador eleito pelo Maranhão Flavio Dino Imagem: Divulgação

Do UOL, em Brasília

17/11/2022 15h06Atualizada em 17/11/2022 15h06

O coordenador de Justiça da transição, senador eleito Flávio Dino (PSB-MA), disse hoje (17) considerar que o "escopo principal" do seu grupo técnico é analisar a possibilidade de revogação de decretos armamentistas editados por Bolsonaro nos últimos anos.

Nos anos de mandato, o candidato à reeleição derrotado nas urnas editou 17 decretos, 19 portarias, duas resoluções, três instruções normativas e dois projetos de lei que flexibilizam as regras de o a armas e munições. Os CACs (colecionadores, atiradores e caçadores) têm sido os principais beneficiados com uma série de normas.

Destino de armas. De acordo com o senador e ex-governador do Maranhão, poderá até ser feito o recolhimento de armas de grosso calibre que foram comercializadas por força dos decretos em vigor.

Na visão do grupo técnico de Justiça da transição, o porte de armas que foi facilitado pela política do atual governo não representa um direito adquirido.

"O tema daqui para trás exige algumas reflexões. Existe direito adquirido a faroeste? Não. Existe direito adquirido a andar com fuzil, metralhadora? Não também. Imaginemos uma situação de um medicamento que hoje é permitido e amanhã a a ser proibido. Alguém terá direito adquirido a continuar tomar esse medicamento? Resposta: não", disse.

"Então é possível que haja um efeito imediato, inclusive no que se refere aos arsenais já existentes? É possível. Agora a decisão de mérito o grupo ainda vai tratar, fazer uma proposta ao presidente da República", completou na chegada ao CCBB (Centro Cultural Banco do Brasil), local da transição em Brasília.

Clubes de tiro. Por outro lado, Dino afirmou que o futuro governo Lula não pretende fechar de forma indiscriminada clubes de tiro pelo Brasil —tais organizações são comumente associadas à militância bolsonarista.

"Vai haver fechamento generalizado de clubes de tiro? Não. Seguramente, não. Mas não pode ser algo descontrolado, não pode ser liberou geral, porque todos os dias se noticia tiros em lares, em vizinhança, em bares e restaurantes de pessoas e cuja observação estão lá nas matérias dos senhores, possuía registro de CAC."