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

Vereador Camilo Cristófaro já usou termo racialmente polêmico em outra ocasião

 "Coisa de preto", diz vereador Camilo Cristófaro em áudio vazado -  O Antagonista
"Coisa de preto", diz vereador Camilo Cristófaro em áudio vazado Imagem: O Antagonista

03/05/2022 18h23

O vereador de São Paulo Camilo Cristófaro (PSB) foi flagrado nesta terça-feira, 3, falando uma expressão racista durante a I dos Aplicativos na Câmara Municipal de São Paulo. Na frente de outros parlamentares, o áudio vazado dizia: "Olha só, lavando a calçada isso é coisa de preto". Essa, entretanto, não é a primeira polêmica do político na Casa Legislativa paulistana.

Em março deste ano, ele trocou farpas com o vereador Adilson Amadeu (União Brasil). Segundo Cristófaro, o colega o teria ofendido em um grupo de WhatsApp interno, durante uma discussão sobre a atuação parlamentar na Feirinha da Madrugada, área de comércio no centro da cidade de São Paulo. Cristófaro ingressou com uma representação na Corregedoria da Câmara Municipal de São Paulo contra Amadeu.

Em setembro de 2019, o vereador do PSB foi acusado em um outro caso de racismo. No plenário da Câmara Municipal, ele chamou o vereador Fernando Holiday (Novo) de "macaco de auditório". Na época, Holiday disse ao Estadão que se sentiu "revoltado" ao ouvir as falas. Cristófaro se defendeu dizendo que a "macaco de auditório" é uma "expressão popular".

Na legislatura anterior (2017-2020), Cristófaro foi condenado à sanção máxima pelo Tribunal Regional Eleitoral por fazer captação ilícita de recursos financeiros durante as eleições de 2016 e ainda foi acusado de receber verbas de campanha da mesma "laranja" que teria abastecido a candidatura de José Auricchio Jr. (PSDB), prefeito de São Caetano do Sul, na época. Na época, o vereador perdeu o mandato, mas conseguiu restituir seu cargo após uma decisão do ministro do STF Luiz Fachin.

Na sessão de volta à Casa, Cristófaro teve uma atitude transfóbica no plenário da Casa ao chamar o vereador Thammy Miranda (PL) no feminino. "Cumprimentar a Thammy, quem eu vi nascer. Filha da Maria Odete, amiga do Colégio Regina Mundi, da minha irmã... Filha, na época, da minha amiga Maria Odete, quando fui visitá-la na Aclimação", disse na época. Miranda era quem iria assumir o cargo de Cristófaro após a decisão do Tribunal Regional Eleitoral.

O Estadão entrou em contato com o vereador para questionar sobre o episódio desta terça-feira, na I dos Aplicativos, mas não obteve retorno até o fechamento essa matéria.