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

Jovem inclui vizinha em certidão de nascimento e a a ter duas mães

Maria Avany é uma das duas mães de Jessica, 21; jovem foi criada pela vizinha e entrou com processo de reconhecimento de maternidade socioafetiva - Arquivo Pessoal
Maria Avany é uma das duas mães de Jessica, 21; jovem foi criada pela vizinha e entrou com processo de reconhecimento de maternidade socioafetiva Imagem: Arquivo Pessoal

Natália Eiras

Da Universa

15/01/2019 04h00

A estudante de Pedagogia Jessica Moreira da Costa Pimentel, 21, de São Paulo (SP), realizou o sonho de, oficialmente, ter três pais. É que, desde muito pequena, a jovem recebeu o carinho de seus pais biológicos, Sonia Regina da Costa e Jorge Luiz da Costa, e de sua vizinha, Maria Avany da Silva Pimentel. Neste mês, Jessica incluiu o nome da mulher que se tornou sua mãe de criação em sua certidão de nascimento ao lado de Sonia e Jorge. "A Avany sempre foi uma mãe para mim, então, quando foi liberada a inclusão da mãe socioafetiva na certidão, eu achei que nada era mais justo do que incluir o nome dela na minha", conta estudante à Universa

Da esq. para dir.: Maria Avany, mãe de criação de Jessica, a tia e a mãe biológica de Jessica, Sonia - Arquivo Pessoal - Arquivo Pessoal
Da esq. para dir.: Maria Avany, mãe de criação de Jessica, a tia e a mãe biológica de Jessica, Sonia
Imagem: Arquivo Pessoal

Quando Jessica nasceu, Sonia e Jorge alugavam uma das casas que ficava em seu quintal para Maria Avany. Logo, a menina ava boa parte do tempo na casa de Avany, onde fazia refeições e tinha o próprio quarto. Porém, aos três anos, a menina se separou da vizinha quando mãe e filha se mudaram para outra casa no mesmo bairro. A menina ficou tão triste que Sonia achou que o melhor para a filha seria morar com Avany, que não tinha outras crianças. "Foi um ato de amor muito lindo dos meus pais biológicos deixar eu morar com ela. Os dois sempre estiveram por perto, nós nos falamos sempre, mas fui criada por Avany e, por causa dela, tive mais oportunidades como estudar em uma escola particular, o que não teria com a minha mãe biológica", comenta Jessica. 

Por volta de 18 anos depois, no começo de 2019, a estudante quis tornar Avany oficialmente sua mãe. "Fui com ela até o cartório. Como sou maior de idade, não precisava da presença dos meus pais biológicos, mas eles sabiam e me apoiaram na decisão de incluí-la na certidão", explica Jessica. Duas horas depois, as duas receberam a papelada para e, após cinco dias úteis, a estudante estava com a nova certidão, incluindo os nomes de Avany e dois novos avós maternos. "Realizei um sonho de criança, porque sempre quis explicar para todo mundo que eu tenho três pais", afirma a estudante. 

Nova certidão de nascimento de Jessica incluindo Maria Avany, Maria do Carmo e Albano Pimentel - Arquivo Pessoal - Arquivo Pessoal
Nova certidão de nascimento de Jessica incluindo Maria Avany como uma de suas mães
Imagem: Arquivo Pessoal

Como reconhecer a maternidade socioafetiva">var Collection = { "path" : "commons.uol.com.br/monaco/export/api.uol.com.br/collection/universa/maternidade/data.json", "channel" : "inspira", "central" : "universa", "titulo" : "Maternidade", "search" : {"tags":"63113"} };