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

Contratos renovados por Crivella devem ser sustados, diz relator

O prefeito do Rio, Marcelo Crivella, é alvo de um processo de impeachment - Carl de Souza/AFP
O prefeito do Rio, Marcelo Crivella, é alvo de um processo de impeachment Imagem: Carl de Souza/AFP

Gabriel Sabóia

Do UOL, no Rio

26/04/2019 10h52

O vereador Luiz Carlos Ramos Filho (Podemos), relator do processo de impeachment contra o prefeito do Rio de Janeiro, Marcelo Crivella (PRB), afirmou ao UOL que há um entendimento na Câmara dos Vereadores de que os contratos renovados pelo chefe do executivo sem licitação precisam ser sustados imediatamente.

Os dois contratos prorrogaram o prazo de istração de anúncios em pontos de ônibus e outdoors da cidade e embasam o pedido de impeachment de Crivella.

De acordo com Ramos Filho, o relatório que será apresentado na tarde de hoje pela Comissão Processante do impeachment à Câmara dos Vereadores, que vai opinar sobre a continuidade do processo, trará a orientação à Casa para que vote um decreto legislativo que suste estes contratos.

A chamada Comissão Processante é formada pelos três vereadores: Willian Coelho (MDB), Luis Carlos Ramos Filho (Podemos) e Paulo Messina (PRB). Segundo o UOL apurou, o grupo deve ser favorável à continuidade das investigações contra o prefeito.

"Este é um consenso na Câmara [de que os contratos precisam ser sustados], entre vereadores de várias legendas. Esta medida deve ser aprovada por decreto legislativo. Este, inclusive, é um dos pedidos feitos na denúncia que motivou a abertura do processo de impeachment", afirma Ramos Filho.

Ele aponta a fragilidade do documento de defesa apresentado por Crivella como motivo para a suspensão imediata.

"Crivella não mostra no documento as especificações necessárias para a renovação dos contratos. No texto, ele parece mais interessado em julgar o mérito do voto de cada vereador e colocar tudo na conta da sua própria impopularidade", diz, sem revelar qual será o parecer da Comissão.

Possibilidades quanto ao parecer

Caso seja confirmada a tendência de continuidade da apuração, as investigações seguem até julho, quando se encerra o prazo para que a comissão tenha elaborado o parecer final e quando deve ser votado o impeachment. Para ser aprovada a deposição de Crivella, são necessários dois terços dos votos da Câmara.

Ainda que a comissão opte amanhã pelo arquivamento do processo de impeachment, esta decisão será votada pelo plenário da Câmara. Caso a Comissão não se manifeste, o presidente da Câmara, o vereador Jorge Felippe (MDB), submete a decisão de prosseguimento ao plenário da Câmara.

Impopularidade não pode motivar impeachment, diz Crivella

Em mais de 400 páginas apresentadas como sua defesa, Crivella se diz vítima de uma "denunciação caluniosa" e afirma que não cometeu ato de improbidade ao renovar os contratos de duas concessionárias que istravam anúncios publicitários em pontos de ônibus da cidade sem licitação.

O prefeito também questiona a legitimidade do processo de impeachment aberto.

Meras situações episódicas de impopularidade governamental ou perda de maioria parlamentar, per se, jamais possam ser tidas como motivos de ensejar a perda do mandato de um chefe do Executivo.
Marcelo Crivella (PRB), prefeito do Rio

Crivella põe em xeque o regimento interno da Câmara do Rio, que permite a abertura do processo de impeachment contra o prefeito, se os votos favoráveis ao projeto superarem 50% do plenário --no caso da Câmara do Rio, 25 vereadores.

Para ele, a Câmara do Rio deveria adotar critério igual ao da Câmara dos Deputados, que exige um mínimo de dois terços de votos favoráveis ao impeachment.

"A instauração de procedimento de cassação do alcaide exige quórum qualificado, o mesmo previsto para instauração de processo de impeachment do presidente da República", afirma.

Linha sucessória alterada pela morte do vice-prefeito

Se Crivella for cassado, o presidente da Câmara, Jorge Felippe (MDB), assumirá temporariamente a prefeitura. Isso porque o vice-prefeito eleito da cidade, Fernando Mac Dowell, morreu no ano ado, fazendo de Felippe o primeiro na linha sucessória do município.

O resultado da votação pela abertura de processo de impeachment mostrou, em números, a perda de apoio do prefeito na Câmara Municipal do Rio de Janeiro. É o quarto pedido analisado pela Casa desde 2016 para que ele tenha o mandato cassado, mas apenas o primeiro a ser acolhido.

Com a Câmara cheia, foram 35 votos favoráveis ao impeachment, mais que o dobro do registrado em duas votações anteriores, em 2018.

Entenda o pedido de impeachment

De acordo com o pedido de impeachment, o prefeito renovou no fim de 2018 um contrato com duas empresas, sem licitação. A medida teria beneficiado as concessionárias Adshel e Cemusa, ambas controladas por grupos estrangeiros.

As duas empresas tinham direito de explorar anúncios em pontos de ônibus e outdoors por 20 anos - o contrato havia sido firmado em 1999 e acabaria neste ano.

Depois desse período, os mobiliários urbanos ariam a pertencer ao município. Crivella teria, então, renovado a concessão sem licitação - o que causou prejuízos aos cofres públicos, segundo argumentou a denúncia.