;(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; // 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(); })();var inHeadTS=(new Date).getTime();window.isUolNewGraphicDesign=!0,window[window.adsType]=window[window.adsType]||[],window.universal_variable=window.universal_variable||{},window.universal_variable.dfp={custom_params:{subchan:"",keyword:""}},window.universal_variable.page=window.universal_variable.page||{},window.universal_variable.page.tags=[79776,13086,22373,79335,35976,78406,79362,13068];var _sf_async_config=_sf_async_config||{};_sf_async_config.uid=61085,_sf_async_config.domain="uol.com.br",_sf_async_config.flickerControl=!1,_sf_async_config.useCanonical=!0,_sf_async_config.autoDetect=!1;var _sf_startpt=(new Date).getTime();window.pageTags=[{"name":"UOL em Resumo","id":79776},{"name":"Imposto de renda","id":13086},{"name":"Economia","id":22373},{"name":"Imposto de renda 2019","id":79335},{"name":"Notícias","id":35976},{"name":"Economia - BOT","id":78406},{"name":"IR 2019 - Restituição","id":79362},{"name":"Finanças pessoais","id":13068}]!function(t,n,o){t[n]=t[n]||function(){(t[n].q=t[n].q||[]).push(arguments)},t[n].t=t[n].t||[],t[n].t.push(o)}(window,"uolAnalytics","uolestacoes") !function (e, t, n, s, u, a) { e.twq || (s = e.twq = function () { s.exe ? s.exe.apply(s, arguments) : s.queue.push(arguments); }, s.version = '1.1', s.queue = [], u = t.createElement(n), u.async = !0, u.src = 'https://static.ads-twitter.com/uwt.js', a = t.getElementsByTagName(n)[0], a.parentNode.insertBefore(u, a)) }(window, document, 'script'); twq('config', 'o8w3y');twq("event","tw-o8w3y-of3tq",{}) (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r); t.async=1; t.src= `https://www.clarity.ms/tag/${i}`; y=l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "k0p1ivolq3"); var Component={} ;(function(window) { // Valida se o navegador possui e para `Symbol`. Se não tiver, // está em um range de navegadores não mais ados pelo UOL e que // não precisam ter o registro de erros feito. var isBrowsered = "Symbol" in window; console.log('[see-jserror] ativando registro de erro', isBrowsered); var historyErrors = [{ message: "Script error.", stack: "Script error. at :0:0" }]; var findError = function(data) { data = data || {}; for(var i=0; i < historyErrors.length; i++) { if(data.message == historyErrors[i].message & data.stack == historyErrors[i].stack) { console.log('[see-jserror] erro já reportado'); return true; } } historyErrors.push(data); return false; }; var storageValidation = (function(window) { 'use strict'; var validation; try { // IE <= 9 e demais navegadores devem retornar TRUE validation = !!window.localStorage; // Se estiver em modo Private no Safari, DOM Exception será retornado, // alegando falta de espaço para armazenamento. if(validation === true) { localStorage.setItem('__test', ''); localStorage.removeItem('__test'); } } catch(e) { // possível erro de Access Denied no IE 10 ou // modo private no Safari. validation = false; } return validation; }(window)); function getAdBlockerStatus() { try { switch (googlefc.getAdBlockerStatus()) { case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER: return 'EXTENSION_LEVEL_AD_BLOCKER'; case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER: return 'NETWORK_LEVEL_AD_BLOCKER'; case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER: return 'NO_AD_BLOCKER'; case googlefc.AdBlockerStatusEnum.UNKNOWN: return 'UNKNOWN'; } } catch(err) { return `GOOGLEFC_ERROR: ${err.message}`; } }; function continueReportError(data) { console.log('[see-jserror] novo erro reportado'); var body = [{ 'groupingMap': { 'Url': window.location.href, 'Agent': window.navigator.Agent + '', 'CookieAtivado': window.navigator.cookieEnabled + '', 'Language': window.navigator.language, 'LocalStorage': storageValidation + '', 'Erro': data.message || '', 'Stack': data.stack || '', 'AdBlockerStatus': getAdBlockerStatus(), 'HitJsDomain': 'true', 'ErrorTime': data.ErrorTime, }, 'measureMap': { 'JSErrors': 1 } }]; // valida se tem o ao c.jsuol para descartar problemas de proxy ou bloqueios // em redes corporativas / adblocks fetch("https://c.jsuol.com.br/assets/?loadComponent=media&contentType=js").then(function(response) { if(response.status == 200) { return Promise.resolve(); } return Promise.reject('Failed to fetch, statusCode ' + response.status); }).catch(function(err) { body[0].groupingMap.HitJsDomain = 'false'; body[0].groupingMap.Erro += ' (hit jsuol: ' + err.message + ')'; }).then(function() { var req = new XMLHttpRequest(); req.open('POST', '//logger.uol.com.br/v1/?prd=41&disp=true&mm=true', true); req.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); req.send(JSON.stringify(body)); }); } window.ReportError = function(data) { if(isBrowsered === false) { console.log('[see-jserror] browser not ed, ignoring error'); return undefined; } try { console.log('[see-jserror] report error'); // utiliza try..catch para evitar loop data = data || {}; if(findError(data) == true) { return undefined; } data.ErrorTime = performance.now(); // limita o wait ao Google FC em 5s para evitar perder registro de erro // caso ocorra algum problema com a lib var googleFcTimeout = setTimeout(function() { continueReportError(data); }, 5 * 1000); // Make sure that the properties exist on the window. window.googlefc = window.googlefc || {}; window.googlefc.ca = window.googlefc.ca || {} window.googlefc.callbackQueue = window.googlefc.callbackQueue || []; // Garante que o Google FC está pronto e com o status de adblock obtido. googlefc.callbackQueue.push({ 'AD_BLOCK_DATA_READY': function () { clearTimeout(googleFcTimeout); continueReportError(data); } }); } catch(err) { console.error('[see-jserror] erro ao enviar erro :/', err.message); return undefined; } }; window.onerror = function(message, file, line, column, error) { try { // utiliza try..catch para evitar loop window.ReportError({ message: error ? error.message : message, stack: error ? error.stack : message+' at '+file+':'+line+':'+column }); } catch(e) { console.error('[see-jserror] catch ', e) } }; })(window); window._uolabtestsev=window._uolabtestsev||[] c6o5a

Topo

Imposto de renda 2gay


Como eu sei quando a minha restituição do Imposto de Renda vai sair? 3j65f