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

Foi impedido de votar? Saiba como denunciar crimes eleitorais pelo celular

O aplicativo Pardal é o canal oficial para denúncias de crimes e irregularidades eleitorais - Getty Images
O aplicativo Pardal é o canal oficial para denúncias de crimes e irregularidades eleitorais Imagem: Getty Images

30/10/2022 15h46

Relatos de operações irregulares feitas pela PRF (Polícia Rodoviária Federal) em cidades brasileiras são destaque nas redes sociais neste domingo de votação. Eleitores que, por essa ou outras razões, foram impedidos de votar podem denunciar crimes eleitorais no aplicativo Pardal, do TSE (Tribunal Superior Eleitoral).

Na tarde deste domingo (30), após as inúmeras queixas de tentativa de impedimento de voto, o aplicativo e-Título notificou usuários que "quem impede a população de votar comete crime eleitoral", e que esse tipo de ação deve ser denunciado no Pardal.

O app foi desenvolvido para o registro de crimes eleitorais e irregularidades durante as eleições gerais. O usuário pode realizar a denúncia de forma anônima, acompanhar a tramitação e ar estatísticas de abrangência nacional. É necessário ter provas da suposta irregularidade, como fotos, áudios ou vídeos.

Como funciona. Ao ar o aplicativo Pardal, o eleitor tem as opções "fazer uma denúncia" ou "consultar uma denúncia", no caso de acompanhamento de registros já feitos.

Os usuários podem informar, por exemplo, "propaganda eleitoral irregular" por conteúdo ou forma; na aba "internet e outras irregularidades eleitorais", estão contempladas práticas como compra de voto, abuso de poder econômico, abuso de poder político, uso da máquina pública para fins eleitorais e outros.

O ícone "Orientações" reúne dúvidas sobre o que é permitido ou não nas propagandas eleitorais. As denúncias são encaminhadas diretamente para o link do Ministério Público do estado do denunciante.

No início, um promotor integrante do Ministério Público Estadual é responsável pela apuração da denúncia. Se o caso tiver provas concretas, a demanda é encaminhada a um procurador regional eleitoral ou ao procurador-geral eleitoral, se a acusação for relativa às eleições presidenciais.

Mais de 40 mil denúncias. Os dados mais recentes divulgados pelo TSE apontam que o aplicativo Pardal recebeu 43.074 denúncias até a segunda-feira (24).

De acordo com a Justiça Eleitoral, quase 26% dos registros deram origem a 12.352 processos que estão em tramitação no Processo Judicial Eletrônico.

O estado de São Paulo lidera em denúncias, com 6.268 registros, seguidos por Minas Gerais (4.526), Pernambuco (4.485), Rio Grande do Sul (3.480) e Rio de Janeiro (3.146).

App é de graça. O aplicativo Pardal é gratuito e está disponível para para o sistema Android, na Google Play Store, e também para iOS, na App Store. Outra opção é por meio de um formulário no site Pardal.

Acompanhe no Placar UOL a apuração completa dos votos em tempo real a partir das 17h. Além da disputa presidencial — que vale para todo o país —, também serão mostrados os resultados dos 12 estados em que os eleitores também votarão para governador neste 2º turno.