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

Senado aprova projeto para anular decreto de armas de Bolsonaro

O presidente Jair Bolsonaro - Andre Coelho/Folhapress
O presidente Jair Bolsonaro Imagem: Andre Coelho/Folhapress

Hanrrikson de Andrade

Do UOL, em Brasília

18/06/2019 21h04Atualizada em 19/06/2019 09h19

O Senado aprovou hoje à noite, por 47 votos a 28, um projeto que anula o decreto das armas de Jair Bolsonaro (PSL), editado em janeiro para flexibilizar as normas de posse e porte de armas de fogo. O texto será remetido à Câmara dos Deputados, onde deverá ser distribuído às comissões e apreciado em plenário.

Se o Congresso aprovar o projeto, o decreto de Bolsonaro será sustado. Em outras palavras, deixarão de valer itens como permissão de uso de arma de fogo por proprietários rurais em seus terrenos e o aumento de 50 para 1.000 no número de cartuchos por ano autorizados para compra, por pessoa.

O texto votado pelo Senado hoje não avaliou o mérito do porte e da posse de armas. Mas questionou uma suposta "invasão de competência" por parte do governo, segundo líderes ouvidos pelo UOL.

Na avaliação deles, Bolsonaro desrespeitou uma atribuição do Congresso ao tentar "legislar por meio de um decreto presidencial".

Derrota esperada

Governistas já esperavam a derrota e apostam suas fichas em articulações na Câmara, onde o PSL tem 54 deputados e afinidade ideológica com outras bancadas.

Uma delas é a ruralista, com 225 parlamentares, também interessada na política armamentista devido a problemas no campo como invasões a fazendas e propriedades. Além disso, há a chamada bancada da bala, cujo coordenador, Capitão Augusto (PR-SP), faz um cálculo informal de 300 componentes.

No entanto, nenhum acordo foi construído e a instabilidade da base governista pode criar entraves para a manutenção do decreto das armas na Câmara. A matéria depende de inclusão na pauta, atribuição do presidente Rodrigo Maia (DEM-RJ).

Presidente Jair Bolsonaro defende população armada

UOL Notícias

Ciente das dificuldades no Senado, Bolsonaro e aliados tentaram agitar as redes sociais e criar um clima de pressão para que estados e municípios cobrassem seus respectivos parlamentares. Congressistas reclamam que a estratégia acabou provocando ameaças e mensagens intimidatórias.

"Nós sabemos por onde o senhor anda. Somos da segurança privada. Sabemos das suas viagens", disse o líder da oposição, Randolfe Rodrigues (Rede-AP), ao ler uma das ameaças recebidas por meio do WhatsApp.

O assunto levou o presidente da Casa, Davi Alcolumbre (DEM-AP), a determinar que a polícia legislativa faça investigações. Ao menos dois senadores registraram boletim de ocorrência.

Além da oposição, a maioria formada contra o decreto das armas no Senado abrange partidos e congressistas alinhados à direita e os que se dizem independentes.

No início da votação, Alcolumbre abriu a lista de inscrição dos oradores. Foram 24 discursos (alternando posições contrárias e favoráveis) antes da definição do pleito. Compareceram ao plenário 76 dos 81 membros titulares.

A primeira oradora, Kátia Abreu (PDT-TO), declarou ter lido a íntegra do ato de Bolsonaro e ficado "aterrorizada" e "escandalizada" com o excesso de "detalhes bárbaros". Telmário Mota (PROS-RR), que abriu a fila dos apoiadores do decreto presidencial, rebateu e disse que a população tem o direito legítimo de se defender.

Durante a tramitação na CCJ (Comissão de Constituição e Justiça), os senadores pró-flexibilização das armas foram vencidos duas vezes. Na primeira, correligionários de Bolsonaro tentaram marcar uma audiência pública antes da leitura do texto do relator, Marcos do Val (Cidadania-ES), e foram derrotados por 16 a 4.

Na semana seguinte, a proposição para derrubar o decreto de Bolsonaro --tramitando em conjunto com outros de mesmo teor-- foi colocada em votação. A maioria da CCJ decidiu dar aval ao voto em separado de Veneziano Vital do Rêgo (PSB-PB). O relator, entusiasta da política armamentista, foi derrotado por 15 a 9.

Entenda o decreto das armas

Band Notí­cias