(function() { 'use strict'; // ========================================================================= // SECAO 1: CONFIGURACOES CENTRALIZADAS // ========================================================================= const CONFIG = { loaderControl: { manage: true, zIndex: 10000, fadeOutMs: 400, backdropColor: 'rgba(255,255,255,0.6)', blurPx: 10, }, // ------------------------------------------------------------------------- // MODO DE OPERACAO // enabled: true -> Modo RetryStep (1 bloco, ignora no-fill, timeout global) // enabled: false -> Modo Cascata (3 blocos em sequencia, no-fill pula bloco) // ------------------------------------------------------------------------- retryStep: { enabled: true, timeoutMs: 10000, logAttempts: true, }, // ------------------------------------------------------------------------- // BLOCO ATIVO // Usado apenas quando retryStep.enabled = true. // ------------------------------------------------------------------------- activePlacement: 'bloco2', // ------------------------------------------------------------------------- // ORDEM DE CASCATA // Usado apenas quando retryStep.enabled = false. // ------------------------------------------------------------------------- executionOrder: ['bloco2', 'bloco1', 'bloco3'], // ------------------------------------------------------------------------- // CADASTRO DE BLOCOS // ------------------------------------------------------------------------- placements: { 'bloco1': { cookieName: 'AutoRewardCompleted_1', placementId: 'vja_rewarded_gift', adUnitPath: 'vja_rewarded_gift', divId: 'vja_rewarded_gift', timeoutMs: 10000 }, 'bloco2': { cookieName: 'AutoRewardCompleted_2', placementId: 'av_rewarded', adUnitPath: 'vja_rewarded', divClass: 'av-rewarded', timeoutMs: 8000 }, 'bloco3': { cookieName: 'AutoRewardCompleted_3', placementId: 'vja_rewarded_quizz', adUnitPath: 'vja_rewarded_quizz', divId: 'vja_rewarded_quizz', timeoutMs: 8000 } }, // --- Cookies --- // Mesmo cookie para completo e abandonado; muda apenas a duracao. cookie: { duration_minutes: 60, duration_closed_minutes: 2, samesite: 'Lax', secure: false, }, // --- Loader Textos --- loader: { loader_text_element_id: 'av-loader__text', text: 'O conteudo sera liberado apos o anuncio.', text_initial: 'O conteudo sera liberado apos o anuncio.', text_fallback1:'O conteudo sera liberado apos o anuncio.', text_fallback2:'O conteudo sera liberado apos o anuncio.', loaderBloqueado: 'Carregando...', }, // --- Prevencao Contra Multi-Requests --- guard_flag: '__autoRewardRunning', // --- Rastreamento (Analytics GA4) --- analytics: { enable_ga4: false }, // --- Fallback Top --- fallbackTop: { targetWrapperId: 'vja_top_wrapper2', adElementId: 'vja_top', insertPosition: 'afterend', htmlTemplate: `

Anuncios

` } }; // ========================================================================= // SECAO 2: FUNCOES AUXILIARES E UI // ========================================================================= // ---- LOADER ---- let _rewardLoaderEl = null; let _fallbackTopInserido = false; function criarRewardLoader(text) { if (!CONFIG.loaderControl.manage) return; if (document.getElementById('av-reward-loader')) return; if (!document.getElementById('av-reward-loader-style')) { const style = document.createElement('style'); style.id = 'av-reward-loader-style'; style.innerHTML = ` #av-reward-loader { position: fixed; width: 100vw; height: 100vh; z-index: ${CONFIG.loaderControl.zIndex}; top: 0; left: 0; background-color: ${CONFIG.loaderControl.backdropColor}; backdrop-filter: blur(${CONFIG.loaderControl.blurPx}px); -webkit-backdrop-filter: blur(${CONFIG.loaderControl.blurPx}px); opacity: 0; animation: rl-fadeIn 0.4s forwards; display: flex; flex-direction: column; align-items: center; justify-content: center; } @keyframes rl-fadeIn { from { opacity: 0 } to { opacity: 1 } } @keyframes rl-fadeOut { from { opacity: 1 } to { opacity: 0 } } #av-reward-loader__spinner { width: 52px; height: 52px; border: 7px solid #f3f3f3; border-radius: 50%; border-top: 7px solid #808080; animation: rl-spin 0.9s linear infinite; } @keyframes rl-spin { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} } #av-reward-loader__text { margin-top: 18px; font-size: 17px; font-weight: bold; text-align: center; padding: 0 24px; color: #222; } `; document.head.appendChild(style); } const el = document.createElement('div'); el.id = 'av-reward-loader'; el.innerHTML = `
${text || ''}
`; document.body.appendChild(el); _rewardLoaderEl = el; window.scrollTo({ top: 0, behavior: 'smooth' }); } function setRewardLoaderText(text) { try { const avEl = document.getElementById(CONFIG.loader.loader_text_element_id); if (avEl) avEl.textContent = text; } catch(e) {} const el = document.getElementById('av-reward-loader__text'); if (el) el.textContent = text; } function fecharRewardLoader(motivo) { if (!CONFIG.loaderControl.manage) return; const el = document.getElementById('av-reward-loader'); if (!el) return; console.log(`[Reward Loader] Fechando loader. Motivo: ${motivo}`); el.style.animation = `rl-fadeOut ${CONFIG.loaderControl.fadeOutMs}ms forwards`; setTimeout(() => { el.remove(); _rewardLoaderEl = null; }, CONFIG.loaderControl.fadeOutMs + 50); } // ---- COOKIES ---- function setCookie(name, value, minutes) { const date = new Date(); date.setTime(date.getTime() + (minutes * 60 * 1000)); const expires = 'expires=' + date.toUTCString(); const samesite = 'SameSite=' + CONFIG.cookie.samesite; const secure = CONFIG.cookie.secure ? '; Secure' : ''; document.cookie = name + '=' + (value || '') + '; ' + expires + '; path=/; ' + samesite + secure; } function getCookie(name) { const nameEQ = name + '='; const ca = document.cookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i].trimStart(); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length); } return null; } function usuarioJaInteragiu(placement) { return !!(placement && getCookie(placement.cookieName)); } function motivoCookieAtivo(placement) { return usuarioJaInteragiu(placement) ? 'already_interacted' : null; } // ---- ANALYTICS ---- function getTrackerData() { const params = new URLSearchParams(window.location.search); const getVal = (paramName, storageKey) => { let val = params.get(paramName); if (val) return val; val = sessionStorage.getItem(storageKey); if (val) return val; val = localStorage.getItem(storageKey); if (val) return val; return ''; }; return { utm_source: getVal('utm_source', 'avUtmSource'), utm_medium: getVal('utm_medium', 'avUtmMedium'), utm_campaign: getVal('utm_campaign', 'avUtmCampaign'), utm_term: getVal('utm_term', 'avUtmTerm'), utm_content: getVal('utm_content', 'avUtmContent'), gclid: getVal('gclid', 'avGclid'), fbclid: getVal('fbclid', 'avFbclid'), tbclid: getVal('tbclid', 'avTbclid'), ttclid: getVal('ttclid', 'avTtclid'), user_id: localStorage.getItem('avUserId') || '', session_id: sessionStorage.getItem('avSessionId') || '', experiment: sessionStorage.getItem('avExperiment') || '', marketplace: sessionStorage.getItem('avMarketplace') || '' }; } function trackGA4(eventName, placement, extraParams = {}) { if (!CONFIG.analytics.enable_ga4) return; if (!window.dataLayer) window.dataLayer = []; const payload = { event: eventName, country: window.av?.country || sessionStorage.getItem('avCountry') || 'unknown', ...getTrackerData(), ...extraParams }; if (placement) payload.reward_block = placement.placementId; window.dataLayer.push(payload); console.log(`[GA4 Track] ${eventName}`, payload); } // ---- FALLBACK TOP ---- function inserirAnuncioTop(reason = 'unknown') { if (_fallbackTopInserido) { fecharRewardLoader(reason); return; } fecharRewardLoader(reason); const targetDiv = document.getElementById(CONFIG.fallbackTop.targetWrapperId); if (!targetDiv) { console.warn(`[Reward] Fallback (${CONFIG.fallbackTop.targetWrapperId}) nao encontrado.`); return; } if (document.getElementById(CONFIG.fallbackTop.adElementId)) { _fallbackTopInserido = true; return; } console.log(`[Reward] Inserindo fallback top. Motivo: ${reason}`); trackGA4('reward_ad_fallback_top', null, { fallback_reason: reason }); targetDiv.insertAdjacentHTML(CONFIG.fallbackTop.insertPosition, CONFIG.fallbackTop.htmlTemplate); _fallbackTopInserido = true; } // ---- DIV ISCA ---- function inserirDivGenerica(placement) { if (placement.divId) { if (document.getElementById(placement.divId)) return; const div = document.createElement('div'); div.id = placement.divId; div.style.display = 'none'; document.body.appendChild(div); } else if (placement.divClass) { if (document.querySelector('.' + placement.divClass)) return; const div = document.createElement('div'); div.className = placement.divClass; div.style.display = 'none'; if (placement.divClass === 'av-rewarded') { div.dataset.avRewarded = 'true'; div.setAttribute('aria-hidden', 'true'); } document.body.appendChild(div); } } // ========================================================================= // SECAO 3A: MOTOR RETRYSTEP // ========================================================================= let activePlacementAdUnitPath = null; let activePlacement = null; let grantOcorreu = false; let globalActiveCleanup = null; let activeOnFail = null; function limparEstadoReward() { activePlacementAdUnitPath = null; activePlacement = null; activeOnFail = null; grantOcorreu = false; } function executarRewardComRetry(placement) { console.log(`[Reward][RetryStep] Iniciando para bloco: '${placement.placementId}'`); activePlacementAdUnitPath = placement.adUnitPath; activePlacement = placement; grantOcorreu = false; activeOnFail = null; trackGA4('reward_ad_request', placement); inserirDivGenerica(placement); let timeoutHandle = null; let isResolved = false; const cleanup = () => { isResolved = true; if (timeoutHandle) clearTimeout(timeoutHandle); globalActiveCleanup = null; }; globalActiveCleanup = cleanup; timeoutHandle = setTimeout(() => { if (isResolved) return; cleanup(); console.warn(`[Reward][RetryStep] Timeout (${CONFIG.retryStep.timeoutMs}ms) esgotado. Abrindo top.`); trackGA4('reward_ad_timeout', placement); limparEstadoReward(); inserirAnuncioTop('timeout'); }, CONFIG.retryStep.timeoutMs); window.av.waitFor(() => { if (isResolved) return true; const slot = window.av?.definedSlots?.find(s => s.placement === placement.placementId); return slot && slot.lifecycle === 'ready'; }).then(() => { if (isResolved) return; cleanup(); const rewardedSlot = window.av.definedSlots.find(s => s.placement === placement.placementId); if (!rewardedSlot) { console.error(`[Reward][RetryStep] Slot ausente apos retry. Abrindo top.`); trackGA4('reward_ad_nofill', placement); limparEstadoReward(); inserirAnuncioTop('slot_missing'); return; } console.log(`[Reward][RetryStep] Slot VENDIDO. Exibindo...`); trackGA4('reward_ad_filled', placement); rewardedSlot.show(function() { console.log(`[Reward][RetryStep] Usuario assistiu tudo.`); trackGA4('reward_ad_completed', placement); setCookie(placement.cookieName, 'true', CONFIG.cookie.duration_minutes); limparEstadoReward(); inserirAnuncioTop('completed'); }); }); } // ========================================================================= // SECAO 3B: MOTOR CASCATA // ========================================================================= function tentarPlacement(placement, onFail) { console.log(`[Reward][Cascata] Tentando bloco: '${placement.placementId}'`); activeOnFail = onFail; activePlacementAdUnitPath = placement.adUnitPath; activePlacement = placement; grantOcorreu = false; trackGA4('reward_ad_request', placement); inserirDivGenerica(placement); let timeoutHandle = null; let isResolved = false; const cleanup = () => { isResolved = true; if (timeoutHandle) clearTimeout(timeoutHandle); globalActiveCleanup = null; }; globalActiveCleanup = cleanup; timeoutHandle = setTimeout(() => { if (isResolved) return; cleanup(); console.warn(`[Reward][Cascata] Timeout em '${placement.placementId}'. Pulando...`); onFail(); }, placement.timeoutMs || 10000); window.av.waitFor(() => { if (isResolved) return true; const slot = window.av?.definedSlots?.find(s => s.placement === placement.placementId); return slot && slot.lifecycle === 'ready'; }).then(() => { if (isResolved) return; cleanup(); const rewardedSlot = window.av.definedSlots.find(s => s.placement === placement.placementId); if (!rewardedSlot) { console.error(`[Reward][Cascata] Slot '${placement.placementId}' ausente. Pulando...`); onFail(); return; } console.log(`[Reward][Cascata] Anuncio '${placement.placementId}' PRONTO. Exibindo...`); trackGA4('reward_ad_filled', placement); rewardedSlot.show(function() { console.log(`[Reward][Cascata] Usuario assistiu tudo em '${placement.placementId}'.`); trackGA4('reward_ad_completed', placement); setCookie(placement.cookieName, 'true', CONFIG.cookie.duration_minutes); limparEstadoReward(); inserirAnuncioTop('completed'); }); }); } function determinarPontoDeEntrada() { for (let i = 0; i < CONFIG.executionOrder.length; i++) { const blockKey = CONFIG.executionOrder[i]; const placement = CONFIG.placements[blockKey]; if (placement && !usuarioJaInteragiu(placement)) return i; } return -1; } function executarCascata(startIndex) { const loaderTexts = [ CONFIG.loader.text_initial, CONFIG.loader.text_fallback1, CONFIG.loader.text_fallback2 ]; let cadeia = function() { limparEstadoReward(); inserirAnuncioTop('all_empty_or_timeout'); }; for (let i = CONFIG.executionOrder.length - 1; i >= startIndex; i--) { (function(index, nextFail) { const blockKey = CONFIG.executionOrder[index]; const placement = CONFIG.placements[blockKey]; const loaderText = loaderTexts[index] || CONFIG.loader.text_initial; const thisOnFail = function() { if (index < CONFIG.executionOrder.length - 1) { setRewardLoaderText(loaderTexts[index + 1] || CONFIG.loader.text_fallback2); } nextFail(); }; cadeia = function() { if (!placement) { console.error(`[Reward][Cascata] Bloco '${blockKey}' faltante. Queimando etapa.`); thisOnFail(); return; } if (usuarioJaInteragiu(placement)) { console.log(`[Reward][Cascata] Cookie ativo em '${placement.placementId}'. Pulando bloco.`); thisOnFail(); return; } setRewardLoaderText(loaderText); tentarPlacement(placement, thisOnFail); }; })(i, cadeia); } cadeia(); } // ========================================================================= // SECAO 4: INTEGRACAO GAM // ========================================================================= window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(function() { googletag.pubads().addEventListener('rewardedSlotGranted', function(event) { const adUnitPath = event.slot.getAdUnitPath(); if (activePlacementAdUnitPath && adUnitPath.includes(activePlacementAdUnitPath)) { grantOcorreu = true; } }); googletag.pubads().addEventListener('rewardedSlotClosed', function(event) { const adUnitPath = event.slot.getAdUnitPath(); if (!activePlacementAdUnitPath || !adUnitPath.includes(activePlacementAdUnitPath)) return; if (grantOcorreu) return; console.warn(`[Reward] Usuario fechou o reward sem completar.`); trackGA4('reward_ad_abandoned', activePlacement); if (globalActiveCleanup) globalActiveCleanup(); if (activePlacement) { setCookie(activePlacement.cookieName, 'true', CONFIG.cookie.duration_closed_minutes); } limparEstadoReward(); inserirAnuncioTop('abandoned'); }); googletag.pubads().addEventListener('slotRenderEnded', function(event) { if (!event.isEmpty) return; const adUnitPath = event.slot.getAdUnitPath(); if (!activePlacementAdUnitPath || !adUnitPath.includes(activePlacementAdUnitPath)) return; if (CONFIG.retryStep.enabled) { if (CONFIG.retryStep.logAttempts) { console.log(`[Reward][RetryStep] Tentativa sem fill em '${activePlacement?.placementId}'. Aguardando proximo retry...`); } trackGA4('reward_ad_retry_attempt', activePlacement); } else { trackGA4('reward_ad_nofill', activePlacement); if (globalActiveCleanup) globalActiveCleanup(); if (activeOnFail) { console.warn(`[Reward][Cascata] NO FILL. Pulando para proximo bloco...`); const fail = activeOnFail; activeOnFail = null; fail(); } } }); }); // ========================================================================= // SECAO 5: INICIALIZACAO // ========================================================================= document.addEventListener('DOMContentLoaded', function() { if (window[CONFIG.guard_flag]) { console.warn('[Reward] Execucao paralela abortada.'); return; } window[CONFIG.guard_flag] = true; if (window.av?.skipAds) { console.warn('[Reward] AdBlock detectado.'); inserirAnuncioTop('adblock'); return; } if (!window.av) { inserirAnuncioTop('av_not_loaded'); return; } window.av.waitFor(() => window.av.isSafe !== null).then(() => { if (!window.av.isSafe) { console.warn('[Reward] Bot / trafego invalido. Negando reward.'); inserirAnuncioTop('bot_traffic'); return; } if (CONFIG.retryStep.enabled) { const placement = CONFIG.placements[CONFIG.activePlacement]; if (!placement) { console.error(`[Reward] activePlacement '${CONFIG.activePlacement}' nao encontrado.`); inserirAnuncioTop('config_error'); return; } const cookieReason = motivoCookieAtivo(placement); if (cookieReason) { console.log(`[Reward][RetryStep] Cookie ativo. Abrindo top direto.`); trackGA4('reward_ad_already_interacted', placement); criarRewardLoader(CONFIG.loader.loaderBloqueado); setRewardLoaderText(CONFIG.loader.loaderBloqueado); inserirAnuncioTop(cookieReason); return; } criarRewardLoader(CONFIG.loader.text); setRewardLoaderText(CONFIG.loader.text); executarRewardComRetry(placement); } else { const pontoDeEntrada = determinarPontoDeEntrada(); if (pontoDeEntrada === -1) { console.log('[Reward][Cascata] Todos os cookies ativos. Abrindo top direto.'); trackGA4('reward_ad_already_interacted_all', null); criarRewardLoader(CONFIG.loader.loaderBloqueado); setRewardLoaderText(CONFIG.loader.loaderBloqueado); inserirAnuncioTop('already_interacted_all'); return; } criarRewardLoader(CONFIG.loader.text_initial); setRewardLoaderText(CONFIG.loader.text_initial); executarCascata(pontoDeEntrada); } }); }); })();

Minha Casa Minha Vida ou Casa Verde e Amarela? Compare os programas!

O programa Casa Verde e Amarela, foi criado para ficar no lugar do Minha Casa Minha Vida, ele traz novas regras que aprimoram o programa. O Casa Verde Amarela foi criado pelo atual Presidente da República Jair Messias Bolsonaro e traz inúmeras mudanças.

O programa Casa Verde e Amarela, não tem se mostrado fácil para as pessoas mais pobres, pois o programa não tem mais financiamento para as fixas de renda de até R$ 1.800 reais, ou seja, para famílias que recebem até esse valor.

No entanto o novo programa oferece verba para fazer reformas nas casas e também para regularização fundiária. Mesmo com todos esses benefícios, os brasileiros mais pobres, afirmam não conseguirem fazer o financiamento para a aquisição da casa própria, por causa do desemprego e o limite para uso do FGTS.

Anúncios

O intuito do programa é tornar regular cerca de 2 milhões de casa e apartamentos e oferecer melhorias em 400 mil, isso até o ano de 2024.

A regularização fundiária inclui diversas ações, como: garantir o direito de posse do imóvel das famílias que apresentam renda mensal de até R$ 5 mil.

O programa Casa Verde e Amarela é o primeiro que oferece renda para a regularização fundiária, nos municípios. Dessa forma as famílias que moravam em imóveis sem a garantia de ser proprietário poderão regularizar e se tornar donos dos mesmos.

Famílias que apresentam renda mensal no valor de até R$ 2 mil, serão selecionadas pelo poder público dos municípios, poderão fazer as melhorias necessárias, como construir um banheiro novo, fazer mais um quarto, ou mudar o telhado da casa.

Esse grupo de pessoas é o que mais necessita ter a casa própria, uma vez que, são os que vivem em situação de pobreza e necessitam pagar aluguel para ter um teto onde possa se abrigar e abrigar a sua família. Com as mudanças realizadas, o programa Casa Verde e Amarela ficou caracterizado apenas para pessoas que possuem maior renda.

Para ficar por dentro das mudanças que prejudicam as famílias carentes é preciso conhecer o que, de fato, mudou no programa. A primeira alteração feita foi a da faixa de renda para grupos, para dividir as condições para constituir o financiamento habitacional, que deve ser de acordo com a renda da família.

Como era no programa Minha Casa Minha Vida?

No programa Minha Casa Minha Vida a distribuição era feita em 4 faixas, o novo programa criado pelo presidente Bolsonaro, além de mudar o nome, também mudou a divisão que é só para três faixas de rendas. Veja abaixo como ficou comparando os dois programas:

MINHA CASA MINHA VIDA – 1º Grupo – Faixa de renda – Até R$ 1.8 mil

CASA VERDE E AMARELA – Não possui grupo para essa faixa de renda

MINHA CASA MINHA VIDA – Faixa 1,5 – Renda – Até R$ 2.6 mil

CASA VERDE E AMARELA – Renda Até R$ 2. Mil – Até R$ 2.6 mil (para o Norte e o Nordeste)

MINHA CASA MINHA VIDA – FAIXA 2 – Renda – Até R$ 4 mil

CASA VERDE E AMARELA – Faixa 2 – Renda – Até R$ 4 mil

MINHA CASA MINHA VIDA – Faixa 3 – Renda – Até R$ 4 mil

MINHA CASA MINHA VIDA – Faixa 3 – Até R$ 7 mil

CASA VERDE E AMARELA – Faixa 3 – Até R$ 7 mil

Outra mudança bem significativa entre os dois programas é que o Casa Verde Amarela, que apresenta juros diferenciados de acordo com cada financiamento. O que teve maior impacto na população carente foi ter acrescentado juros na faixa 1. Veja como era e como ficou:

MINHA CASA MINHA VIDA – grupo 1 – sem juros parcela de até R$ 270.

CASA VERDE AMARELA – Não possui esse grupo

MINHA CASA MINHA VIDA – Grupo 1,5 – Juros 5% (não cotistas do FGTS); 4,5% (cotistas do FGTS).

CASA VERDE E AMARELA – Grupo 1 -Juros 5% a 5,25% (cotista do FGTS), 4,5 a 4,75% (cotista).

MINHA CASA MINHA VIDA – Grupo 2 – Juros 5,5% a 7% (não cotista); 5% a 6,5% (cotista).

CASA VERDE E AMARELA – Grupo 2 – Juros 5,5% a 7% (não cotista); 5% a 6,5% (cotista)

MINHA CASA MINHA VIDA – Grupo 3 – Juros 8,16% (não cotista); 7,66% (cotista).

CASA VERDE E AMARELA – Grupo 3 – Juros 8, 16% (não cotista); 7,66% (cotista).

Para compensar as taxas e juros, o governo elaborou condições especiais para as duas regiões que mais apresentam pobreza no país, que são: Norte e Nordeste, que possuem juros mais baixos e condições especiais, como você pode ver no texto acima.

Esse comparativo mostra as mudanças feitas no programa do Presidente Bolsonaro, Casa Verde e Amarela, comprado ao programa do ex-presidente Lula. Algumas mudanças são bem significativas, pois agradarão a muitos e desagradarão também, a muitas pessoas.

Benefícios do programa

Mesmo com todas essas mudanças o programa Casa Verde e Amarela vem beneficiando milhares de pessoas em todo país, pois quem ainda não tinha conseguido adquirir a casa própria, hoje está podendo realizar o seu sonho.

As mudanças foram bem significativas para as faixas de renda mais baixas, que deixaram de existir, como é o caso da faixa de renda de até R$ 1.800 reais. Milhares de famílias não poderão realizar esse sonho, pelo menos por enquanto que o país enfrenta a maior crise financeira de todos os tempos, em decorrência da pandemia da Covide 19.

Milhares de pessoas ficaram desempregadas e sem condições, nem mesmo de alimentar as suas famílias, que dirá fazer um financiamento para a compra da casa própria. Ainda mais que as taxas de juros aumentaram e o valor das parcelas também.

Os brasileiros mais pobres, são os que mais sofrem com todas as mudanças, pois com o Minha Casa Minha Vida era bem melhor e o sonho da casa própria era mais palpável, ou seja, estava dentro dos seus planos com grandes chances de ser realizado.

redator
redator

Diariamente publicamos conteúdo em nosso site relacionadas a empresas de todos os portes, desde micro empresas a multinacionais.