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

Esse conteúdo é antigo

'Bloqueio do Telegram não tem amparo na Constituição', diz Bolsonaro

Presidente Jair Bolsonaro na cerimônia de lançamento do programa Renda e Oportunidade - Isac Nóbrega/Presidência da República
Presidente Jair Bolsonaro na cerimônia de lançamento do programa Renda e Oportunidade Imagem: Isac Nóbrega/Presidência da República

Weudson Ribeiro

Colaboração para o UOL, em Brasília

19/03/2022 15h34

O presidente Jair Bolsonaro voltou hoje a criticar a decisão do ministro Alexandre de Moraes, do STF (Supremo Tribunal Federal), para bloquear o Telegram no Brasil. "[Essa determinação] não encontra nenhum amparo no Marco Civil da Internet e [em] nenhum dispositivo da Constituição", disse.

A manifestação ocorreu no mesmo dia em que a AGU (Advocacia-Geral da União) protocolou na Corte um pedido de revogação da ordem de suspensão do aplicativo de troca de mensagens. Na mesma solicitação, o Ministério da Justiça e Segurança Pública aponta possível "descumprimento dos direitos do consumidor" na decisão de Moraes.

"Observa-se a violação dos direitos dos consumidores de o a serviço considerado essencial [...], em descumprimento dos direitos do consumidor, incluindo sua proteção prevista no Marco Civil da Internet, justamente por parte do Poder Judiciário, justamente a que deve zelar pela Constituição", diz a pasta em peça anexada aos autos do pedido de medida cautelar da AGU.

Ontem, durante participação em evento em Rio Branco (AC), Bolsonaro havia classificado o bloqueio do Telegram como "inissível".

Olha as consequências da decisão monocrática de um ministro do Supremo Tribunal Federal. É inissível uma decisão dessa magnitude. Porque ele não conseguiu atingir duas ou três pessoas, que, na cabeça dele deveriam ser banidas do Telegram... Ele atinge 70 milhões de pessoas, podendo, inclusive, causar óbitos no Brasil, a partir do banimento, por falta de um contato.
Presidente Jair Bolsonaro

PF alegou descumprimento de ordens judiciais

A determinação de Alexandre de Moraes para suspensão do Telegram atendeu a um pedido da Polícia Federal, que apontou o constante descumprimento de ordens judiciais pelo Telegram.

Segundo a PF, a empresa que controla o aplicativo é "notoriamente conhecida por sua postura de não cooperar com autoridades judiciais e policiais de diversos países, inclusive colocando essa atitude não colaborativa como uma vantagem em relação a outros aplicativos de comunicação, o que o torna um terreno livre para proliferação de diversos conteúdos, inclusive com repercussão na área criminal".

Para reverter o bloqueio, o Telegram deve cumprir uma série de medidas determinadas por Moraes:

  • informar os dados cadastrais dos perfis ligados a Allan dos Santos, inclusive os que já foram bloqueados;
  • tomar medidas para impedir que o blogueiro bolsonarista crie novos canais na plataforma;
  • cortar todas as formas de financiamento a Allan dos Santos por meio do app;
  • remover a publicação de Bolsonaro com o vazamento do inquérito sobre a invasão hacker ao TSE;
  • Bloquear a conta do jornalista Cláudio Lessa, conforme ordem emitida pelo STF em fevereiro.

O dono do Telegram, Pavel Durov, usou a plataforma para pedir desculpas pela "falha de comunicação" com a Suprema Corte. O executivo pediu prazo maior para atender aos pedidos do STF.

"Parece que tivemos um problema com e-mails entre nossos endereços corporativos do telegram.org e o STF do Brasil. Como resultado dessa falha de comunicação, a Corte decidiu banir o Telegram", justificou Durov. "Em nome de nossa equipe, peço desculpas ao STF por nossa negligência. Definitivamente, poderíamos ter feito um trabalho melhor."