1<!DOCTYPE html><html lang="pt-BR"><head><title>Novos Looks Originais | Moda Brasileira com Estilo</title><link rel="preconnect" href="https://decoims.com"/><link rel="dns-prefetch" href="https://decoims.com"/><link rel="preconnect" href="https://sgtm.farmrio.com.br"/><link rel="dns-prefetch" href="https://sgtm.farmrio.com.br"/><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="dns-prefetch" href="https://www.googletagmanager.com"/><link rel="preconnect" href="https://cdn.cookielaw.org"/><link rel="dns-prefetch" href="https://cdn.cookielaw.org"/><meta name="description" content="Explore a coleção com estampas autorais e designs únicos. Fácil de combinar com outras peças do guarda-roupa. Renove seu estilo agora mesmo!"/><meta name="theme-color"/><link rel="icon" href="https://decoims.com/farmrio/6bbddf19-2e39-4ef4-988d-6f96482fb81c/1742399969050-6ed6c185-096e-4dd9-af29-3e48eb76f4f1.png"/><meta property="twitter:title" content="Novos Looks Originais | Moda Brasileira com Estilo"/><meta property="twitter:description" content="Explore a coleção com estampas autorais e designs únicos. Fácil de combinar com outras peças do guarda-roupa. Renove seu estilo agora mesmo!"/><meta property="twitter:image" content="https://decoims.com/farmrio/6e2b56df-e143-47f0-9808-e5b3f61589f5/1742399970134-bccb96ce-a9c0-4a90-8c64-db91bbef46bc.png"/><meta property="twitter:card" content="summary"/><meta property="og:title" content="Novos Looks Originais | Moda Brasileira com Estilo"/><meta property="og:description" content="Explore a coleção com estampas autorais e designs únicos. Fácil de combinar com outras peças do guarda-roupa. Renove seu estilo agora mesmo!"/><meta property="og:type" content="website"/><meta property="og:image" content="https://decoims.com/farmrio/6e2b56df-e143-47f0-9808-e5b3f61589f5/1742399970134-bccb96ce-a9c0-4a90-8c64-db91bbef46bc.png"/><meta property="og:url" content="https://www.farmrio.com.br/"/><link rel="canonical" href="https://www.farmrio.com.br/"/><meta name="robots" content="index, follow"/>
1<script defer src="data:text/javascript,(live%3D%3E%7Bconst%20onKeydown%3De%3D%3E%7Bif(globalThis.window%3D%3D%3DglobalThis.window.parent%26%26e.target%3D%3D%3Ddocument.body%26%26!e.defaultPrevented%26%26(e.ctrlKey%26%26e.shiftKey%26%26%22E%22%3D%3D%3De.key%7C%7C%22.%22%3D%3D%3De.key))%7Be.preventDefault()%2Ce.stopPropagation()%3Bconst%20o%3D%60%2Fchoose-editor%3Fsite%3D%24%7BglobalThis.window.LIVE.site.name%7D%26domain%3D%24%7BglobalThis.window.location.origin%7D%26pageId%3D%24%7BglobalThis.window.LIVE.page.id%7D%60%2Ca%3Dnew%20URL(o%2C%22https%3A%2F%2Fadmin.deco.cx%22)%3Bif(a.searchParams.set(%22path%22%2CencodeURIComponent(%60%24%7BglobalThis.window.location.pathname%7D%24%7BglobalThis.window.location.search%7D%60))%2Ca.searchParams.set(%22pathTemplate%22%2CencodeURIComponent(globalThis.window.LIVE.page.pathTemplate%7C%7C%22%2F*%22))%2C(e.ctrlKey%7C%7Ce.metaKey)%26%26%22.%22%3D%3D%3De.key)return%20globalThis.window.open(a%2C%22_blank%22)%2Cvoid%200%3BglobalThis.window.location.href%3D%60%24%7Ba%7D%60%7D%7D%2ConMessage%3Devent%3D%3E%7Bconst%7Bdata%7D%3Devent%3Bif(%22editor%3A%3Ainject%22%3D%3D%3Ddata.type)return%20eval(data.args.script)%7D%3BglobalThis.window.LIVE%3D%7B...globalThis.window.LIVE%2C...live%7D%2Clive.avoidRedirectingToEditor%7C%7Cdocument.body.addEventListener(%22keydown%22%2ConKeydown)%2CaddEventListener(%22message%22%2ConMessage)%7D)(%7B%22page%22%3A%7B%22id%22%3A%22pages-home-c4bcbfb771e9%22%2C%22pathTemplate%22%3A%22%2F%22%7D%2C%22site%22%3A%7B%22id%22%3A0%2C%22name%22%3A%22farmrio%22%7D%2C%22flags%22%3A%5B%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.3.banners.0.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.3.banners.5.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.4.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.9.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.14.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Header%20Global%20%40navItems.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Header%20Global%20%40newMenu.variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.2.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.8.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.15.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.16.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.17.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cac
1heable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.18.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.19.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.25.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.26.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.10.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22benef%C3%ADcios%20app%20vers%C3%A3o%20att%40variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22benef%C3%ADcios%20app%20vers%C3%A3o%20att%40variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.value.categories.1.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.value.categories.4.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22variants.0.rule.matcher%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Minicart%40minicartProps.productShelf.productsLoader.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Minicart%40minicartProps.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.0%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.1.matchers.0%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.1%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Alerta%40variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Alerta%40variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%5D%7D)" nonce="16c268fd223f430b98c07279b4c2abab"></script>
1<script defer id="deco-events" src="data:text/javascript,((%7Bdeco%3A%7Bpage%3Ae%7D%2CsegmentCookie%3An%2CfeatureFlags%3At%7D)%3D%3E%7Bconst%20a%3Ddocument.cookie%2Co%3D%7B%7D%3Bif(null!%3D%3Da)%7Bconst%20e%3Da.split(%22%3B%22)%3Bfor(const%20n%20of%20e)%7Bconst%5Be%2C...t%5D%3Dn.split(%22%3D%22)%3Bo%5Be.trim()%5D%3Dt.join(%22%3D%22)%7D%7Dconst%20s%3D%5B%5D%3Bif(o%5Bn%5D)try%7Bconst%20e%3DJSON.parse(decodeURIComponent(atob(o%5Bn%5D)))%3Be.active%3F.forEach((e%3D%3Es.push(%7Bname%3Ae%2Cvalue%3A!0%7D)))%2Ce.inactiveDrawn%3F.forEach((e%3D%3Es.push(%7Bname%3Ae%2Cvalue%3A!1%7D)))%7Dcatch%7Bconsole.error(%22Error%20parsing%20deco_segment%20cookie%22)%7Dconst%20i%3Dnew%20EventTarget%2Cc%3De%3D%3E%7Bi.dispatchEvent(new%20CustomEvent(%22analytics%22%2C%7Bdetail%3Ae%7D))%7D%3BglobalThis.window.DECO_SITES_STD%3D%7BsendAnalyticsEvent%3Ac%7D%2CglobalThis.window.DECO%3D%7B...globalThis.window.DECO%2Cevents%3A%7Bdispatch%3Ac%2Csubscribe%3A(n%2Ct)%3D%3E%7Bconst%20a%3D(%7Bdetail%3Ae%7D)%3D%3En(e)%3Breturn%20n(%7Bname%3A%22deco%22%2Cparams%3A%7Bflags%3As%2Cpage%3Ae%7D%7D)%2Ci.addEventListener(%22analytics%22%2Ca%2Ct)%2C()%3D%3E%7Bi.removeEventListener(%22analytics%22%2Ca%2Ct)%7D%7D%7D%2CfeatureFlags%3At%7D%7D)(%7B%22deco%22%3A%7B%22flags%22%3A%5B%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.3.banners.0.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.3.banners.5.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.4.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.9.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.14.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Header%20Global%20%40navItems.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Header%20Global%20%40newMenu.variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.2.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.8.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.15.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.16.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.17.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.18.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.19.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cac
1heable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.25.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.26.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.10.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22benef%C3%ADcios%20app%20vers%C3%A3o%20att%40variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22benef%C3%ADcios%20app%20vers%C3%A3o%20att%40variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.value.categories.1.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22pages-home-c4bcbfb771e9%40sections.variants.1.value.27.section.variants.0.value.categories.4.variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22variants.0.rule.matcher%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Minicart%40minicartProps.productShelf.productsLoader.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Minicart%40minicartProps.section.variants.0.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.0%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.1.matchers.0%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%40matchers.1%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22ETC%20Segment%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Atrue%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Alerta%40variants.0.rule%22%2C%22value%22%3Afalse%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%2C%7B%22name%22%3A%22Alerta%40variants.1.rule%22%2C%22value%22%3Atrue%2C%22isSegment%22%3Afalse%2C%22sticky%22%3Afalse%2C%22cacheable%22%3Atrue%7D%5D%2C%22page%22%3A%7B%22id%22%3A%22pages-home-c4bcbfb771e9%22%2C%22pathTemplate%22%3A%22%2F%22%7D%7D%2C%22segmentCookie%22%3A%22deco_segment%22%2C%22featureFlags%22%3A%7B%22bypassDecoImageOptimization%22%3Afalse%2C%22cdnHost%22%3A%22https%3A%2F%2Fdecoims.com%22%7D%7D)" nonce="16c268fd223f430b98c07279b4c2abab"></script>
1<link rel="dns-prefetch" href="https://d.lilstts.com/events"/><link rel="preconnect" href="https://d.lilstts.com/events" crossorigin="anonymous"/>
1<script async id="tracker" data-autocollect="false" data-hash-routing="true" data-url="https://d.lilstts.com/events" src="https://s.lilstts.com/deco.js" nonce="16c268fd223f430b98c07279b4c2abab"></script>
1<script defer src="data:text/javascript,(()%3D%3E%7Bconst%20s%3D%7B%7D%2Ct%3D()%3D%3EglobalThis.window.stonks%3F.view%3F.(s)%2Ce%3Dhistory.pushState%3Be%26%26(history.pushState%3Dfunction()%7Be.apply(this%2Carguments)%2Ct()%7D%2CaddEventListener(%22popstate%22%2Ct))%3Bconst%20n%3Ds%3D%3E%60%24%7Bs%7D%60.slice(0%2C990)%3BglobalThis.window.DECO.events.subscribe((e%3D%3E%7Bif(e%26%26%22deco%22%3D%3D%3De.name)%7Bif(e.params)%7Bconst%7Bflags%3At%2Cpage%3Ao%7D%3De.params%3Bif(Array.isArray(t))for(const%20e%20of%20t)s%5Be.name%5D%3Dn(e.value.toString())%3Bs.pageId%3Dn(%60%24%7Bo.id%7D%60)%7DglobalThis.window.stonks%3Ft()%3Adocument.getElementById(%22tracker%22)%3F.addEventListener(%22load%22%2Ct%2C%7Bonce%3A!0%7D)%7D%7D))()%2CglobalThis.window.DECO.events.subscribe((t%3D%3E%7Bif(!t)return%3Bconst%7Bname%3Ae%2Cparams%3Ao%7D%3Dt%3Bif(!e%7C%7C!o%7C%7C%22deco%22%3D%3D%3De)return%3Bconst%20i%3D%7B...s%7D%3Bfor(const%20s%20in%20o)%7Bconst%20t%3Do%5Bs%5D%3Bnull!%3Dt%26%26(i%5Bs%5D%3Dn(%22object%22!%3Dtypeof%20t%3Ft%3AJSON.stringify(t)))%7DglobalThis.window.stonks%3F.event%3F.(e%2Ci)%7D))%7D)()" nonce="16c268fd223f430b98c07279b4c2abab"></script>
1<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/><style>@view-transition { navigation: auto; }</style><link href="/styles.css?revision=1790262301&__frsh_c=218f6e8a7a758c1b0d13ee86548a317d83210bdf" rel="stylesheet"/>
1<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(()=>{const a=new Image,e="https://s3-sa-east-1.amazonaws.com/frame-image-br/bg.png?x-id=1ddaf4ced98e314312ca90d80aeb70d9&x-r="+document.referrer+"&x-s="+globalThis.window.location.href;a.src=e})()</script>
1<link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com"/>
1<script type="text/javascript" id="vwoCode" nonce="16c268fd223f430b98c07279b4c2abab"> 2 window._vwo_code || 3(function () { 4var w=window, 5d=document; 6var account_id=1152482, 7version=2.2, 8settings_tolerance=2000, 9hide_element='body', 10hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important'; 11/* DO NOT EDIT BELOW THIS LINE */ 12if(f=!1,v=d.querySelector('#vwoCode'),cc={},-1<d.URL.indexOf('__vwo_disable__')||w._vwo_code)return;try{var e=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=e&&'object'==typeof e?e:{}}catch(e){}function r(t){try{return decodeURIComponent(t)}catch(e){return t}}var s=function(){var e={combination:[],combinationChoose:[],split:[],exclude:[],uuid:null,consent:null,optOut:null},t=d.cookie||'';if(!t)return e;for(var n,i,o=/(?:^|;s*)(?:(_vis_opt_exp_(d+)_combi=([^;]*))|(_vis_opt_exp_(d+)_combi_choose=([^;]*))|(_vis_opt_exp_(d+)_split=([^:;]*))|(_vis_opt_exp_(d+)_exclude=[^;]*)|(_vis_opt_out=([^;]*))|(_vwo_global_opt_out=[^;]*)|(_vwo_uuid=([^;]*))|(_vwo_consent=([^;]*)))/g;null!==(n=o.exec(t));)try{n[1]?e.combination.push({id:n[2],value:r(n[3])}):n[4]?e.combinationChoose.push({id:n[5],value:r(n[6])}):n[7]?e.split.push({id:n[8],value:r(n[9])}):n[10]?e.exclude.push({id:n[11]}):n[12]?e.optOut=r(n[13]):n[14]?e.optOut=!0:n[15]?e.uuid=r(n[16]):n[17]&&(i=r(n[18]),e.consent=i&&3<=i.length?i.substring(0,3):null)}catch(e){}return e}();function i(){var e=function(){if(w.VWO&&Array.isArray(w.VWO))for(var e=0;e<w.VWO.length;e++){var t=w.VWO[e];if(Array.isArray(t)&&('setVisitorId'===t[0]||'setSessionId'===t[0]))return!0}return!1}(),t='a='+account_id+'&u='+encodeURIComponent(w._vis_opt_url||d.URL)+'&vn='+version+'&ph=1'+('undefined'!=typeof platform?'&p='+platform:'')+'&st='+w.performance.now();e||((n=function(){var e,t=[],n={},i=w.VWO&&w.VWO.appliedCampaigns||{};for(e in i){var o=i[e]&&i[e].v;o&&(t.push(e+'-'+o+'-1'),n[e]=!0)}if(s&&s.combination)for(var r=0;r<s.combination.length;r++){var a=s.combination[r];n[a.id]||t.push(a.id+'-'+a.value)}return t.join('|')}())&&(t+='&c='+n),(n=function(){var e=[],t={};if(s&&s.combinationChoose)for(var n=0;n<s.combinationChoose.length;n++){var i=s.combinationChoose[n];e.push(i.id+'-'+i.value),t[i.id]=!0}if(s&&s.split)for(var o=0;o<s.split.length;o++)t[(i=s.split[o]).id]||e.push(i.id+'-'+i.value);return e.join('|')}())&&(t+='&cc='+n),(n=function(){var e={},t=[];if(w.VWO&&Array.isArray(w.VWO))for(var n=0;n<w.VWO.length;n++){var i=w.VWO[n];if(Array.isArray(i)&&'setVariation'===i[0]&&i[1]&&Array.isArray(i[1]))for(var o=0;o<i[1].length;o++){var r,a=i[1][o];a&&'object'==typeof a&&(r=a.e,a=a.v,r&&a&&(e[r]=a))}}for(r in e)t.push(r+'-'+e[r]);return t.join('|')}())&&(t+='&sv='+n)),s&&s.optOut&&(t+='&o='+s.optOut);var n=function(){var e=[],t={};if(s&&s.exclude)for(var n=0;n<s.exclude.length;n++){var i=s.exclude[n];t[i.id]||(e.push(i.id),t[i.id]=!0)}return e.join('|')}();return n&&(t+='&e='+n),s&&s.uuid&&(t+='&id='+s.uuid),s&&s.consent&&(t+='&consent='+s.consent),w.name&&-1<w.name.indexOf('_vis_preview')&&(t+='&pM=true'),w.VWO&&w.VWO.ed&&(t+='&ed='+w.VWO.ed),t}code={nonce:v&&v.nonce,library_tolerance:function(){return'undefined'!=typeof library_tolerance?library_tolerance:void 0},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){return performance.getEntriesByName('first-contentful-paint')[0]?'':'string'==typeof cc.hE?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){var t;f||(f=!0,(t=d.getElementById('_vis_opt_path_hides'))&&t.parentNode.removeChild(t),e&&((new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e))},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript',e.src?t.src=e.src:t.text=e.text,v&&t.setAttribute('nonce',v.nonce),d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){t=t||{};var n=new XMLHttpRequest;n.open('GET',e,!0),n.withCredentials=!t.dSC,n.responseType=t.responseType||'text',n.onload=function(){if(t.onloadCb)return t.onloadCb(n,e);200===n.status?_vwo_code.addScript({text:n.responseText}):_vwo_code.finish('&e=loading_failure:'+e)},n.onerror=function(){if(t.onerrorCb)return t.onerrorCb(e);_vwo_code.finish('&e=loading_failure:'+e)},n.send()},init:function(){var e,t=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish()}
12,t),'body'!==this.hide_element()?(n=d.createElement('style'),e=(t=this.hide_element())?t+this.hide_element_style():'',t=d.getElementsByTagName('head')[0],n.setAttribute('id','_vis_opt_path_hides'),v&&n.setAttribute('nonce',v.nonce),n.setAttribute('type','text/css'),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(d.createTextNode(e)),t.appendChild(n)):(n=d.getElementsByTagName('head')[0],(e=d.createElement('div')).style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;',e.setAttribute('id','_vis_opt_path_hides'),e.classList.add('_vis_hide_layer'),n.parentNode.insertBefore(e,n.nextSibling));var n='https://dev.visualwebsiteoptimizer.com/j.php?'+i();-1!==w.location.search.indexOf('_vwo_xhr')?this.addScript({src:n}):this.load(n+'&x=true',{l:1})}};w._vwo_code=code;code.init();})(); 13 </script>
13<script defer id="sizebay-vfr-v4" src="https://static.sizebay.technology/7664/prescript.js" nonce="16c268fd223f430b98c07279b4c2abab"></script>
13<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(()=>{try{fetch(new Request("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js")).catch((function(){return globalThis.window.DECO.events.dispatch({name:"AdBlocker"})}))}catch{globalThis.window.DECO.events.dispatch({name:"AdBlocker"})}})()</script>
13<script nonce="16c268fd223f430b98c07279b4c2abab">(t=>{if(t.length>0){if("complete"===document.readyState)return document.body.setAttribute("hx-ext",t.join(",")),void 0;globalThis.onload=()=>{document.body.setAttribute("hx-ext",t.join(","))}}})(["head-support"])</script>
13<script defer src="https://cdn.jsdelivr.net/npm/[email protected]" crossorigin="anonymous" nonce="16c268fd223f430b98c07279b4c2abab"></script>
13<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ext/head-support.js" crossorigin="anonymous" nonce="16c268fd223f430b98c07279b4c2abab"></script>
13<meta name="botify-site-verification" type="bVVisOw9FyGUu0ft2SXVJiADkIdLDdFr"/>
13<script defer src="https://cdn.jsdelivr.net/npm/@azzas/[email protected]/dist/mod.global.js" nonce="16c268fd223f430b98c07279b4c2abab"></script>
13<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(e=>{const t=new EventTarget;void addEventListener("load",(()=>{function e(e){const t=e?.getAttribute("data-sent"),i=e?.getAttribute("data-event"),n=e?.getAttribute("data-has-commerce");if(!i||t)return;e?.setAttribute("data-sent","true");const o=JSON.parse(decodeURIComponent(i)??{});globalThis.window?.DECO?.events?.dispatch({...o,hasCommerce:n})}function t(t){return t.stopPropagation(),e(t.currentTarget),!1}const i="undefined"!=typeof IntersectionObserver?new IntersectionObserver((t=>{for(const n of t){const{isIntersecting:t,target:o}=n;t&&(i.unobserve(o),e(o))}}),{rootMargin:"0px",threshold:.2}):null,n=n=>{const o=n.getAttribute("data-event-trigger"),r="click"===o?"click":"load"===o?"load":"view";return"click"===r?(n.addEventListener("click",t,{passive:!0}),void 0):"view"===r?(i?.observe(n),void 0):"load"===r?(e(n),void 0):void 0};document.body.querySelectorAll("[data-event]").forEach(n),document.body.addEventListener("htmx:load",(e=>{e.detail.elt.querySelectorAll("[data-event]").forEach(n)}))})),globalThis.window.STOREFRONT={CART:(()=>{let i=null;const n=()=>i&&JSON.parse(decodeURIComponent(i.querySelector('input[name="storefront-cart"]')?.value||"[]")),o={getCart:n,getQuantity:e=>i?.querySelector(`[data-item-id="${e}"] input[type="number"]`)?.valueAsNumber,setQuantity:(t,o,r)=>{const a=i?.querySelector(`[data-item-id="${t}"] input[type="number"]`),s=n()?.items.find((e=>e.item_id===t));return!(!a||!s)&&(0===o&&(o=1),-1===o&&(o=0),a.value=o.toString(),a.validity.valid&&(globalThis.window.DECO.events.dispatch({name:s.quantity<a.valueAsNumber?"add_to_cart":"remove_from_cart",params:{adapter:"ORDERFORM",meta:{region:"minicart"},orderForm:{...r||e,selected:s.sku,multipleRemove:-1===o,item_list_name:"minicart"}}}),a.dispatchEvent(new Event("change",{bubbles:!0}))),!0)},parseCurrency:e=>{const t=e.replace(/[^\d,]/g,"");if(t.includes(",")){const e=t.replace(",",".");return parseFloat(e)}return parseInt(t,10)},addToCart:(e,t,n,o,r,a,s)=>{const c=Array.isArray(e)?e:[e],d=c[0],l=i?.querySelector('input[name="add-to-cart"]'),m=i?.querySelector('button[name="action"][value="add-to-cart"]');if(!l||!m)return console.error("Missing add to cart button",{button:m,input:l}),!1;const[u="",p=""]=d?.item_variant?.split("-")??[],[y="",f=""]=[d?.item_category,d?.item_category2],g=r??d?.item_ref??"";if(!n){const e=e=>"image"in e&&"name"in e&&"price"in e&&"size"in e&&"stockQuantity"in e;d&&e(d)&&globalThis.window.STOREFRONT.NOTIFICATION.showProduct({image:d.image,name:d.name,price:d.price,size:d.size,stockQuantity:d.stockQuantity,color:d.color})}if(n&&a){const e=e=>"image"in e&&"name"in e&&"price"in e&&"size"in e;d&&e(d)&&globalThis.window.STOREFRONT.NOTIFICATION.showProductMobile({image:d.image,name:d.name,price:d.price,size:d.size})}if(s){const e=globalThis.window.AzzasTracker?.trackWebEvent,i=globalThis.window.location.pathname,n=o?.itemListName,r="compre_junto"===n?"minicart":"/wishlist"===i?"wishlist":["/","/farm-etc"].includes(i??"")?"home":i?.endsWith("/p")?"pdp":o?.region??o?.local??"";return e?.("ADD_TO_CART",{adapter:"DECO",meta:{region:r?.toLowerCase()},products:[{...s,item_list_name:n}]}),l.value=encodeURIComponent(JSON.stringify(t)),m.click(),!0}const h="number"==typeof d?.price?d.price:globalThis.window.STOREFRONT.CART.parseCurrency(d?.price??"0")??0,v="number"==typeof d?.listPrice?d?.listPrice:d?.listPrice?globalThis.window.STOREFRONT.CART.parseCurrency(d?.listPrice)??0:h,b=Number((v-h).toFixed(2)),E=c.filter(Boolean).map((e=>{const[t="",i=""]=e?.item_variant?.split("-")??[],[n="",r=""]=[e?.item_category,e?.item_category2],a="number"==typeof e?.price?e.price:globalThis.window.STOREFRONT.CART.parseCurrency(e?.price??"0")??0,s="number"==typeof e?.listPrice?e?.listPrice:e?.listPrice?globalThis.window.STOREFRONT.CART.parseCurrency(e?.listPrice)??0:a,c=Number((s-a).toFixed(2)),d=e?.item_ref??"";return{item_id:e?.item_group_id??"",item_sku:e?.item_id??"",item_ref:d,item_name:e?.item_name??"",item_brand:"farmrio",item_category:n,item_category2:r,item_variant:t,item_variant2:i.trim(),item_currency:"BRL",price:s??0,discount:c,quantity:e?.quantity??0,item_list_name:o?.itemListName??"",item_list_id:o?.itemListId??"",promotion_name:o?.promotionName??"",promotion_id:o?.promotionId??"",creative_name:o?.creativeName??"",creative_slot:o?.creativeSlot??""}})),w=E.reduce(((e,t)=>e+Number(t.price??0)),0);return globalThis.window.dataLayer.push({event:"add_to_cart",...o?.region?{}:{local:o?.local??""},ecommerce:{...o?.region?{region:o.region}:{},currency:"BRL",value:w||h||0,items:E.length>0?E:[{item_id:d?.item_group_id??"",item_sku:d?.item_id??"",item_ref:g,item_name:d?.item_name??"",item_brand:"farmrio",item_category:y,item_category2:f,item_variant:u,item_variant2:p.trim(),item_currency:"BRL",price:v??0,discount:b,quantity:d?.quantity??0,item_list_name:o?.itemListName??"",item_list_id:o?.itemListId??"",promotion_name:o?.promotionName??"",promotion_id:o?.promotionId??"",creative_name:o?.creativeName??"",creative_slot:o?.creativeSlot??""}]}}),l.value=encodeURIComponent(JSON.stringify(t)),m.click(),!0},addCoupon:e=>{const t=i?.querySelector('input[name="coupon"]'),n=i?.querySelector('button[name="action"][value="set-coupon"]');return!(!t||!n)&&(t.value=e,n.click(),document.getElementById("minicart-drawer")?.click(),!0)},updateCart:()=>{const e=i?.querySelector('input[name="action"][value="update-cart"]');e&&e.click()}
13,subscribe:(e,n)=>{t.addEventListener("cart",(()=>e(o)),n),i&&e(o)},dispatch:e=>{i=e,t.dispatchEvent(new Event("cart"))}};return o})(),USER:(()=>{let e=null;const i={getUser:()=>e,subscribe:(e,n)=>{t.addEventListener("person",(()=>e(i)),n),e(i)},dispatch:i=>{e=i,t.dispatchEvent(new Event("person"))}};return i})(),WISHLIST:(()=>{let e=null,i=new Set;const n={toggle:(t,i)=>e?(e.querySelector('input[name="product-id"]').value=t,e.querySelector('input[name="product-group-id"]').value=i,e.querySelector("button")?.click(),!0):(console.error("Missing wishlist Provider"),!1),inWishlist:e=>i.has(e),subscribe:(e,i)=>{t.addEventListener("wishlist",(()=>e(n)),i),e(n)},dispatch:n=>{e=n;const o=n.querySelector('script[type="application/json"]'),r=o?JSON.parse(o.innerText):null;i=new Set(r?.productIDs),t.dispatchEvent(new Event("wishlist"))},requestLogin:()=>{const e=document.getElementById("login-snackbar");e?.classList.contains("hidden")&&(e?.classList.remove("hidden"),setTimeout((()=>{e?.classList.add("hidden")}),5e3))}};return n})(),NOTIFICATION:(()=>{let e,t;const i=()=>{const i=document.getElementById("notify");i&&(e&&clearTimeout(e),t&&clearTimeout(t),e=setTimeout((()=>{i.classList.remove("fade-in"),i.classList.add("fade-out-notify"),t=setTimeout((()=>{i.classList.remove("fade-out-notify"),i.classList.add("hidden","opacity-0","fade-in")}),3e3)}),5e3))};return{showProduct:({image:n,name:o,price:r,size:a,stockQuantity:s,color:c})=>{e&&clearTimeout(e),t&&clearTimeout(t),document.getElementById("message-notify")?.classList.add("hidden");const d=document.getElementById("product-notify-list"),l=d?.querySelector("ul");d&&d.classList.add("hidden"),l&&(l.innerHTML="");const m={notify:{id:"notify",type:"element"},productNotify:{id:"product-notify",type:"element"},imageAnchor:{id:"image-product-anchor",attrs:{href:n.href||""}},imageProduct:{id:"image-product",attrs:{src:n.url,alt:n.alt||""}},name:{id:"name",text:o},stockQuantity:{id:"is-last-item",type:"element",notRemoveHidden:!0},price:{id:"notify-price",text:r},size:{id:"size",text:a},color:{id:"color",type:"element",notRemoveHidden:!c},colorImage:{id:"color-image",attrs:{src:c?.url||"",alt:c?.alt||""}}};(e=>{Object.values(e).forEach((e=>{document.getElementById(e.id)?.classList.add("hidden"),"is-last-item"===e.id&&document.getElementById(e.id)?.classList.remove("sm:flex")}))})(m);const u=Object.fromEntries(Object.entries(m).map((([e,t])=>[e,document.getElementById(t.id)])));if(Object.values(u).some((e=>!e)))return console.warn("Alguns elementos necessários não foram encontrados"),void 0;Object.entries(m).forEach((([e,t])=>{const i=u[e];t?.notRemoveHidden||i.classList.remove("hidden"),"attrs"in t&&t.attrs&&Object.entries(t.attrs).forEach((([e,t])=>{i.setAttribute(e,t||"")})),"text"in t&&t.text&&(i.innerText=t.text)})),s&&1===s&&(u.stockQuantity.classList.remove("hidden"),u.stockQuantity.classList.add("sm:flex")),u.notify.classList.remove("opacity-0","hidden"),i()},showProducts:n=>{if(!n||0===n.length)return;e&&clearTimeout(e),t&&clearTimeout(t),document.getElementById("message-notify")?.classList.add("hidden"),document.getElementById("product-notify")?.classList.add("hidden");const o=document.getElementById("product-notify-list"),r=o?.querySelector("ul"),a=document.getElementById("notify");if(!o||!r||!a)return console.warn("Alguns elementos necessarios nao foram encontrados"),void 0;r.innerHTML="";const s=n.slice(0,2),c=n.length-s.length;if(s.forEach((e=>{const t=document.createElement("li");t.className="flex relative flex-nowrap";const i=document.createElement("a");i.className="min-w-[50px] w-20 py-[2px] h-[118px] flex-shrink-0 flex-grow-0 basis-auto",e.image?.href&&i.setAttribute("href",e.image.href);const n=document.createElement("img");n.className="w-full h-full object-contain",n.src=e.image?.url||"",n.alt=e.image?.alt||"",i.appendChild(n),t.appendChild(i);const o=document.createElement("div");o.className="flex flex-wrap items-start pl-4";const a=document.createElement("div");a.className="w-[136px] text-sm font-bold flex-shrink-0 flex-grow-0 basis-auto text-ellipsis overflow-hidden leading-5",a.textContent=e.name??"";const s=document.createElement("div");s.className="h-[18px] w-full mb-5";const c=document.createElement("span");c.className="text-xs text-black font-medium",c.textContent=e.price??"",s.appendChild(c);const d=document.createElement("ul");d.className="flex";const l=document.createElement("li");if(l.className="ml-x w-[22px] h-[22px] text-xs font-semibold rounded-[22px] overflow-hidden flex items-center justify-center bg-white border border-primary text-gray-800",e.size?l.textContent=e.size:l.classList.add("hidden"),d.appendChild(l),e.color?.url){const t=document.createElement("li");t.className="ml-x w-5 h-5 rounded-[18px] overflow-hidden flex items-center justify-center";const i=document.createElement("img");i.className="w-[30px] h-[30px]",i.src=e.color.url,i.alt=e.color.alt||"",t.appendChild(i),d.appendChild(t)}o.appendChild(a),o.appendChild(s),o.appendChild(d),t.appendChild(o),r.appendChild(t)})),c>0){const e=document.createElement("div");e.className="mt-2 w-full rounded-md bg-[#F5F5F5] px-3 py-2 text-[13px] leading-[16
13px] font-bold text-[#333333] text-center",e.textContent=`+ ${c} ${1===c?"item":"itens"}`,r.appendChild(e)}o.classList.remove("hidden"),a.classList.remove("opacity-0","hidden"),i()},showProductMobile:({image:e,name:t,price:i,size:n})=>{const o={imageAnchor:{id:"image-product-anchor-mobile",attrs:{href:e.href||""}},imageProduct:{id:"image-product-mobile",attrs:{src:e.url,alt:e.alt||""}},name:{id:"name-mobile",text:t},price:{id:"price-mobile",text:i},size:{id:"size-mobile",text:n}},r=Object.fromEntries(Object.entries(o).map((([e,t])=>[e,document.getElementById(t.id)])));if(Object.values(r).some((e=>!e)))return console.warn("Alguns elementos necessários não foram encontrados"),void 0;Object.entries(o).forEach((([e,t])=>{const i=r[e];t?.notRemoveHidden||i.classList.remove("hidden"),"attrs"in t&&t.attrs&&Object.entries(t.attrs).forEach((([e,t])=>{i.setAttribute(e,t||"")})),"text"in t&&t.text&&(i.innerText=t.text)}))},showMessage:(e,t,n,o)=>{document.getElementById("product-notify")?.classList.add("hidden"),document.getElementById("product-notify-list")?.classList.add("hidden");const r={notify:{id:"notify",type:"element"},sessionNotify:{id:"message-notify",type:"element"},title:{id:"title-notify",text:e},message:{id:"description-notify",text:t},link:{id:"link-notify",attrs:{href:n}},linkText:{id:"link-notify-text",text:o}},a=Object.fromEntries(Object.entries(r).map((([e,t])=>[e,document.getElementById(t.id)])));if(Object.values(a).some((e=>!e)))return console.warn("Alguns elementos necessários não foram encontrados"),void 0;Object.entries(r).forEach((([e,t])=>{const i=a[e];i.classList.remove("hidden"),"attrs"in t&&Object.entries(t.attrs).forEach((([e,t])=>{i.setAttribute(e,t)})),"text"in t&&t.text&&(i.innerText=t.text)})),a.notify.classList.remove("opacity-0","hidden"),i()}}})(),AZZAS_TRACKER_WEB:{availableEvents:()=>{try{return globalThis.window.AzzasTracker?.EVENTS}catch(e){return console.error("[DT SDK] erro ao buscar os eventos disponÃveis:",e),null}},trackEvent:(e,t)=>{try{const i=globalThis.window.AzzasTracker?.trackWebEvent;if("function"!=typeof i)return console.error("[DT SDK] trackWebEvent não está pronto ainda."),void 0;i(e,{...t})}catch(e){console.error("[DT SDK] erro ao enviar evento:",e)}}}}})(null)</script>
13<script id="gtm-script-GTM-PP9SFNHJ" nonce="16c268fd223f430b98c07279b4c2abab">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 14new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 15j=d.createElement(s);j.async=true;j.src=i;f.parentNode.insertBefore(j,f); 16})(window,document,'script','dataLayer', 'https://sgtm.farmrio.com.br/gtm.js?id=GTM-PP9SFNHJ');</script>
16<style type="text/css" id="__DESIGN_SYSTEM_VARS-P0-2">* {--font-family: ;--p: 32% 0.00 0deg;--pc: 97% 0.00 0deg;--s: 32% 0.00 0deg;--sc: 100% 0.00 0deg;--a: 100% 0.00 0deg;--ac: 31% 0.00 0deg;--n: 92% 0.00 0deg;--nc: 100% 0.00 0deg;--b1: 100% 0.00 0deg;--b2: 100% 0.00 0deg;--b3: 92% 0.00 0deg;--bc: 68% 0.00 0deg;--su: 95% 0.05 163deg;--suc: 70% 0.15 162deg;--wa: 0% 0.00 0deg;--wac: 71% 0.18 26deg;--er: 93% 0.03 18deg;--erc: 64% 0.21 25deg;--in: 41% 0.00 0deg;--inc: 97% 0.00 0deg;--fallback-p: #333333;--fallback-pc: #F5F5F5;--fallback-s: #333;--fallback-sc: #ffffff;--fallback-a: #ffffff;--fallback-n: #e5e5e5;--fallback-nc: #ffffff;--fallback-b1: #ffffff;--fallback-b2: #ffffff;--fallback-b3: #e5e5e5;--fallback-bc: #999999;--fallback-in: #4a4a4a;--fallback-inc: #f5f5f5;--fallback-su: #d1fae5;--fallback-suc: #10b981;--fallback-wa: #000000;--fallback-wac: #fe6f66;--fallback-er: #fae2e2;--fallback-erc: #ef4444;--rounded-box: 1rem;--rounded-btn: 2rem;--rounded-badge: 1.9rem;--animation-btn: 0.25s;--animation-input: 0.2s;--btn-focus-scale: 1;--border-btn: 1px;--tab-border: 1px;--tab-radius: 0.5rem;--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif}</style>
16<script type="application/ld+json" nonce="16c268fd223f430b98c07279b4c2abab">{ 17 "@context": "https://schema.org", 18 "@type": "Organization", 19 "@id": "https://www.farmrio.com.br/", 20 "name": "FARM RIO", 21 "legalName": "CIDADE MARAVILHOSA INDUSTRIA E COMERCIO DE ROUPAS SA", 22 "description": "Descubra os novos looks originais FARM da coleção! Lançamentos de vestidos, macacões, calças, blusas e muito mais toda semana no site, lojas e app.", 23 "url": "https://www.farmrio.com.br/", 24 "logo": "https://cdn.codes.co.uk/img/merchants/149907/360-logo/v1/farm-rio-discount-codes.png", 25 "image": "https://cdn.codes.co.uk/img/merchants/149907/360-logo/v1/farm-rio-discount-codes.png", 26 "contactPoint": { 27 "@type": "ContactPoint", 28 "telephone": "(21) 3733-7701", 29 "email": "[email protected]" 30 }, 31 "address": { 32 "@type": "PostalAddress", 33 "streetAddress": "Av. Coronel Phidias Tavora 360, Blc 1 armazém 1", 34 "addressLocality": "Pavuna", 35 "addressRegion": "RJ", 36 "postalCode": "21535-959", 37 "addressCountry": "BR" 38 }, 39 "taxID": "09.611.669/0005-18", 40 "foundingDate": "2008", 41 "sameAs": [ 42 "https://www.facebook.com/adorofarm", 43 "https://www.instagram.com/adorofarm/", 44 "https://br.pinterest.com/adorofarm/", 45 "https://www.tiktok.com/@farmrio", 46 "https://www.youtube.com/user/farmrio" 47 ], 48 "hasOfferCatalog": { 49 "@type": "OfferCatalog", 50 "name": "Lojas Farm Rio", 51 "itemListElement": [ 52 { 53 "@type": "Offer", 54 "itemOffered": { 55 "@type": "LocalBusiness", 56 "name": "FARM INDEPENDÃNCIA", 57 "description": "Loja Farm Rio em JUIZ DE FORA, MG", 58 "telephone": "32 984717345", 59 "address": { 60 "@type": "PostalAddress", 61 "streetAddress": "AV INDEPENDÃNCIA, 3600, LJ 221", 62 "addressLocality": "JUIZ DE FORA", 63 "addressRegion": "MG", 64 "postalCode": "36025-290", 65 "addressCountry": "BR", 66 "addressNeighborhood": "SÃO MATEUS" 67 }, 68 "areaServed": { 69 "@type": "City", 70 "name": "JUIZ DE FORA", 71 "containedInPlace": { 72 "@type": "State", 73 "name": "MG" 74 } 75 } 76 } 77 }, 78 { 79 "@type": "Offer", 80 "itemOffered": { 81 "@type": "LocalBusiness", 82 "name": "FARM CONJUNTO NACIONAL BRASÃLIA", 83 "description": "Loja Farm Rio em BRASÃLIA, DF", 84 "telephone": "61 999761921", 85 "address": { 86 "@type": "PostalAddress", 87 "streetAddress": "SDN CNB - LUC T-62 - 1° piso, CONJUNTO A, LUC T-62 - 1° piso", 88 "addressLocality": "BRASÃLIA", 89 "addressRegion": "DF", 90 "postalCode": "70077-900", 91 "addressCountry": "BR", 92 "addressNeighborhood": "ASA NORTE" 93 }, 94 "areaServed": { 95 "@type": "City", 96 "name": "BRASÃLIA", 97 "containedInPlace": { 98 "@type": "State", 99 "name": "DF" 100 } 101 } 102 } 103 }, 104 { 105 "@type": "Offer", 106 "itemOffered": { 107 "@type": "LocalBusiness", 108 "name": "FARM RIO DESIGN BARRA", 109 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 110 "telephone": "21 996310190", 111 "address": { 112 "@type": "PostalAddress", 113 "streetAddress": "AV DAS AMÃRICAS, 7777, LJ 124/125", 114 "addressLocality": "RIO DE JANEIRO", 115 "addressRegion": "RJ", 116 "postalCode": "22793-081", 117 "addressCountry": "BR", 118 "addressNeighborhood": "BARRA DA TIJUCA" 119 }, 120 "areaServed": { 121 "@type": "City", 122 "name": "RIO DE JANEIRO", 123 "containedInPlace": { 124 "@type": "State", 125 "name": "RJ" 126 } 127 } 128 } 129 }, 130 { 131 "@type": "Offer", 132 "itemOffered": { 133 "@type": "LocalBusiness", 134 "name": "FARM BOULEVARD CAMPOS", 135 "description": "Loja Farm Rio em CAMPOS DOS GOYTACAZES, RJ", 136 "telephone": "22 997072280", 137 "address": { 138 "@type": "PostalAddress", 139 "streetAddress": "AV SILVIO BASTOS TAVARES, 330, LJ 106 A/B", 140 "addressLocality": "CAMPOS DOS GOYTACAZES", 141 "addressRegion": "RJ", 142 "postalCode": "28051-250", 143 "addressCountry": "BR", 144 "addressNeighborhood": "PARQUE JULIÃO NOGUEIRA" 145 }, 146 "areaServed": { 147 "@type": "City", 148 "name": "CAMPOS DOS GOYTACAZES", 149 "containedInPlace": { 150 "@type": "State", 151 "name": "RJ" 152 } 153 } 154 } 155 }, 156 { 157 "@type": "Offer", 158 "itemOffered": { 159 "@type": "LocalBusiness", 160 "name": "FARM BOTAFOGO PRAIA SHOPPING", 161 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 162 "telephone": "21 992039362", 163 "address": { 164 "@type": "PostalAddress", 165 "streetAddress": "PRAIA DE BOTAFOGO, 400, LJ 351", 166 "addressLocality": "RIO DE JANEIRO", 167 "addressRegion": "RJ", 168 "postalCode": "22250-910", 169 "addressCountry": "BR", 170 "addressNeighborhood": "BOTAFOGO" 171 }, 172 "areaServed": { 173 "@type": "City", 174 "name": "RIO DE JANEIRO", 175 "containedInPlace": { 176 "@type": "State", 177 "name": "RJ" 178 } 179 } 180 } 181 }, 182 { 183 "@type": "Offer", 184 "itemOffered": { 185 "@type": "LocalBusiness", 186 "name": "FARM PIRACICABA", 187 "description": "Loja Farm Rio em PIRACICABA, SP", 188 "telephone": "19 999461059", 189 "address": { 190 "@type": "PostalAddress", 191 "streetAddress": "AV LIMEIRA, 722, LJ 145", 192 "addressLocality": "PIRACICABA", 193 "addressRegion": "SP", 194 "postalCode": "13414-018", 195 "addressCountry": "BR", 196 "addressNeighborhood": "AREIAO" 197 }, 198 "areaServed": { 199 "@type": "City", 200 "name": "PIRACICABA", 201 "containedInPlace": { 202 "@type": "State", 203 "name": "SP" 204 } 205 } 206 } 207 }, 208 { 209 "@type": "Offer", 210 "itemOffered": { 211 "@type": "LocalBusiness", 212 "name": "FARM FRANCA", 213 "description": "Loja Farm Rio em FRANCA, SP", 214 "telephone": "16 997933961", 215 "address": { 216 "@type": "PostalAddress", 217 "streetAddress": "AV RIO NEGRO, 1100, LJ 314",
218 "addressLocality": "FRANCA", 219 "addressRegion": "SP", 220 "postalCode": "14406-901", 221 "addressCountry": "BR", 222 "addressNeighborhood": "JARDIM ROSELANDIA" 223 }, 224 "areaServed": { 225 "@type": "City", 226 "name": "FRANCA", 227 "containedInPlace": { 228 "@type": "State", 229 "name": "SP" 230 } 231 } 232 } 233 }, 234 { 235 "@type": "Offer", 236 "itemOffered": { 237 "@type": "LocalBusiness", 238 "name": "FARM SÃO JOSÃ DO RIO PRETO", 239 "description": "Loja Farm Rio em SÃO JOSÃ DO RIO PRETO, SP", 240 "telephone": "17 996744863", 241 "address": { 242 "@type": "PostalAddress", 243 "streetAddress": "AV PRESIDENTE JUSCELINO KUBITSCHEK DE OLIVEIRA, 5000, LJ 2068", 244 "addressLocality": "SÃO JOSÃ DO RIO PRETO", 245 "addressRegion": "SP", 246 "postalCode": "15093-340", 247 "addressCountry": "BR", 248 "addressNeighborhood": "IGUATEMI" 249 }, 250 "areaServed": { 251 "@type": "City", 252 "name": "SÃO JOSÃ DO RIO PRETO", 253 "containedInPlace": { 254 "@type": "State", 255 "name": "SP" 256 } 257 } 258 } 259 }, 260 { 261 "@type": "Offer", 262 "itemOffered": { 263 "@type": "LocalBusiness", 264 "name": "FARM OUTLET CAMPINAS", 265 "description": "Loja Farm Rio em ITUPEVA, SP", 266 "telephone": "11 941963556", 267 "address": { 268 "@type": "PostalAddress", 269 "streetAddress": "EST JOAQUIM BUENO NETO, 9999, LJ 14", 270 "addressLocality": "ITUPEVA", 271 "addressRegion": "SP", 272 "postalCode": "13295-000", 273 "addressCountry": "BR", 274 "addressNeighborhood": "RIO ABAIXO" 275 }, 276 "areaServed": { 277 "@type": "City", 278 "name": "ITUPEVA", 279 "containedInPlace": { 280 "@type": "State", 281 "name": "SP" 282 } 283 } 284 } 285 }, 286 { 287 "@type": "Offer", 288 "itemOffered": { 289 "@type": "LocalBusiness", 290 "name": "FARM MACEIÃ", 291 "description": "Loja Farm Rio em MACEIÃ, AL", 292 "telephone": "82 981337564", 293 "address": { 294 "@type": "PostalAddress", 295 "streetAddress": "AV COMENDADOR GUSTAVO PAIVA, 5945, LJ 2035/2036", 296 "addressLocality": "MACEIÃ", 297 "addressRegion": "AL", 298 "postalCode": "57035-635", 299 "addressCountry": "BR", 300 "addressNeighborhood": "CRUZ DAS ALMAS" 301 }, 302 "areaServed": { 303 "@type": "City", 304 "name": "MACEIÃ", 305 "containedInPlace": { 306 "@type": "State", 307 "name": "AL" 308 } 309 } 310 } 311 }, 312 { 313 "@type": "Offer", 314 "itemOffered": { 315 "@type": "LocalBusiness", 316 "name": "FARM BSB SHOPPING", 317 "description": "Loja Farm Rio em BRASÃLIA, DF", 318 "telephone": "61 998083969", 319 "address": { 320 "@type": "PostalAddress", 321 "streetAddress": "SCN QUADRA 5, BLOCO A, LJ 2L", 322 "addressLocality": "BRASÃLIA", 323 "addressRegion": "DF", 324 "postalCode": "70715-900", 325 "addressCountry": "BR", 326 "addressNeighborhood": "ASA NORTE" 327 }, 328 "areaServed": { 329 "@type": "City", 330 "name": "BRASÃLIA", 331 "containedInPlace": { 332 "@type": "State", 333 "name": "DF" 334 } 335 } 336 } 337 }, 338 { 339 "@type": "Offer", 340 "itemOffered": { 341 "@type": "LocalBusiness", 342 "name": "FARM RIOMAR ARACAJU", 343 "description": "Loja Farm Rio em ARACAJU, SE", 344 "telephone": "79 998534825", 345 "address": { 346 "@type": "PostalAddress", 347 "streetAddress": "AV DELMIRO GOUVEIA, 400, LJ 287/288", 348 "addressLocality": "ARACAJU", 349 "addressRegion": "SE", 350 "postalCode": "49035-500", 351 "addressCountry": "BR", 352 "addressNeighborhood": "JARDINS" 353 }, 354 "areaServed": { 355 "@type": "City", 356 "name": "ARACAJU", 357 "containedInPlace": { 358 "@type": "State", 359 "name": "SE" 360 } 361 } 362 } 363 }, 364 { 365 "@type": "Offer", 366 "itemOffered": { 367 "@type": "LocalBusiness", 368 "name": "FARM TERESINA", 369 "description": "Loja Farm Rio em TERESINA, PI", 370 "telephone": "86 981665906", 371 "address": { 372 "@type": "PostalAddress", 373 "streetAddress": "AV MARECHAL CASTELO BRANCO, 911, LJ 207 HI", 374 "addressLocality": "TERESINA", 375 "addressRegion": "PI", 376 "postalCode": "64000-810", 377 "addressCountry": "BR", 378 "addressNeighborhood": "CABRAL" 379 }, 380 "areaServed": { 381 "@type": "City", 382 "name": "TERESINA", 383 "containedInPlace": { 384 "@type": "State", 385 "name": "PI" 386 } 387 } 388 } 389 }, 390 { 391 "@type": "Offer", 392 "itemOffered": { 393 "@type": "LocalBusiness", 394 "name": "FARM FLAMBOYANT", 395 "description": "Loja Farm Rio em GOIÃNIA, GO", 396 "telephone": "62 996106294", 397 "address": { 398 "@type": "PostalAddress", 399 "streetAddress": "AV DEP. JAMEL CECÃLIO, 3300, LJ T-450", 400 "addressLocality": "GOIÃNIA", 401 "addressRegion": "GO", 402 "postalCode": "74810-907", 403 "addressCountry": "BR", 404 "addressNeighborhood": "JARDIM GOIÃS" 405 }, 406 "areaServed": { 407 "@type": "City", 408 "name": "GOIÃNIA", 409 "containedInPlace": { 410 "@type": "State", 411 "name": "GO" 412 } 413 } 414 } 415 }, 416 { 417 "@type": "Offer", 418 "itemOffered": { 419 "@type": "LocalBusiness", 420 "name": "FARM BELEM", 421 "description": "Loja Farm Rio em BELEM, PA", 422 "telephone": "91 992978802", 423 "address": { 424 "@type": "PostalAddress", 425 "streetAddress": "AV VISCONDE DE SOUZA FRANCO, 776, .", 426 "addressLocality": "BELEM", 427 "addressRegion": "PA", 428 "postalCode": "66053-000", 429 "addressCountry": "BR", 430 "addressNeighborhood": "REDUTO" 431 }, 432 "areaServed": { 433 "@type": "City", 434 "name": "BELEM", 435 "containedInPlace": { 436 "@type": "State", 437 "name": "PA" 438 } 439 } 440 } 441 }, 442 { 443 "@type": "Offer", 444 "itemOffered": { 445 "@type": "LocalBusiness", 446 "name": "FARM HARMONIA", 447 "description": "Loja Farm Rio em SÃO PAULO, SP", 448 "telephone": "11 998975097", 449 "address": { 450 "@type": "PostalAddress", 451 "streetAddress": "RUA HARMONIA, 57, .", 452 "addressLocality": "SÃO PAULO", 453 "addressRegion": "SP", 454 "postalCode": "05435-000", 455 "addressCountry": "BR", 456 "addressNeighborhood": "VILA MADALENA" 457 }, 458 "areaServed": { 459 "@type": "City", 460 "name": "SÃO PAULO", 461 "containedInPlace": { 462 "@type": "State", 463 "name": "SP" 464 } 465 } 466 } 467 }, 468 { 469 "@type": "Offer", 470 "itemOffered": { 471 "@type": "LocalBusiness", 472 "name": "FARM BAURU", 473 "description": "Loja Farm Rio em BAURU, SP", 474 "telephone": "14 981951351", 475 "address": { 476 "@type": "PostalAddress", 477 "streetAddress": "RUA GENERAL MARCONDES SALGADO, 11-39, LJ 317/318", 478 "addressLocality": "BAURU", 479 "addressRegion": "SP", 480 "postalCode": "17013-113", 481 "addressCountry": "BR", 482 "addressNeighborhood": "CHÃCARA DAS FLORES" 483 }, 484 "areaServed": { 485 "@type": "City", 486 "name": "BAURU", 487 "containedInPlace": { 488 "@type": "State", 489 "name": "SP" 490 } 491 } 492 } 493 }, 494 { 495 "@type": "Offer", 496 "itemOffered": { 497 "@type": "LocalBusiness", 498 "name": "FARM JARDIM SUL", 499 "description": "Loja Farm Rio em SÃO PAULO, SP", 500 "telephone": "11 972905487", 501 "address": { 502 "@type": "PostalAddress", 503 "streetAddress": "AV GIOVANNI GRONCHI, 5819, LJ 414/415", 504 "addressLocality": "SÃO PAULO", 505 "addressRegion": "SP", 506 "postalCode": "05724-003", 507 "addressCountry": "BR", 508 "addressNeighborhood": "VILA ANDRADE" 509 }, 510 "areaServed": { 511 "@type": "City", 512 "name": "SÃO PAULO", 513 "containedInPlace": { 514 "@type": "State", 515 "name": "SP" 516 } 517 } 518 } 519 }, 520 { 521 "@type": "Offer", 522 "itemOffered": { 523 "@type": "LocalBusiness", 524 "name": "FARM GALLERIA CAMPINAS", 525 "description": "Loja Farm Rio em CAMPINAS, SP", 526 "telephone": "19 998387573", 527 "address": { 528 "@type": "PostalAddress", 529 "streetAddress": "ROD. DOM PEDRO II - KM 131, 131, LJ 145/149", 530 "addressLocality": "CAMPINAS", 531 "addressRegion": "SP", 532 "postalCode": "13097-901", 533 "addressCountry": "BR", 534 "addressNeighborhood": "JARDIM DAS PALMEIRAS" 535 }, 536 "areaServed": { 537 "@type": "City", 538 "name": "CAMPINAS", 539 "containedInPlace": { 540 "@type": "State", 541 "name": "SP" 542 } 543 } 544 } 545 }, 546 { 547 "@type": "Offer", 548 "itemOffered": { 549 "@type": "LocalBusiness", 550 "name": "FARM POP UP PRAIA DE BELAS", 551 "description": "Loja Farm Rio em PORTO ALEGRE, RS", 552 "telephone": "51 998407051", 553 "address": { 554 "@type": "PostalAddress", 555 "streetAddress": "AV PRAIA DE BELAS, 1181, .", 556 "addressLocality": "PORTO ALEGRE", 557 "addressRegion": "RS", 558 "postalCode": "90110-001", 559 "addressCountry": "BR", 560 "addressNeighborhood": "PRAIA DE BELAS" 561 }, 562 "areaServed": { 563 "@type": "City", 564 "name": "PORTO ALEGRE", 565 "containedInPlace": { 566 "@type": "State", 567 "name": "RS" 568 } 569 } 570 } 571 }, 572 { 573 "@type": "Offer", 574 "itemOffered": { 575 "@type": "LocalBusiness", 576 "name": "FARM CASCAVEL", 577 "description": "Loja Farm Rio em CASCAVEL, PR", 578 "telephone": "45 991491785", 579 "address": { 580 "@type": "PostalAddress", 581 "streetAddress": "AV. TOLEDO, 432, LJ LUC 116", 582 "addressLocality": "CASCAVEL", 583 "addressRegion": "PR", 584 "postalCode": "85.810-230", 585 "addressCountry": "BR", 586 "addressNeighborhood": "CENTRO" 587 }, 588 "areaServed": { 589 "@type": "City", 590 "name": "CASCAVEL", 591 "containedInPlace": { 592 "@type": "State", 593 "name": "PR" 594 } 595 } 596 } 597 }, 598 { 599 "@type": "Offer", 600 "itemOffered": { 601 "@type": "LocalBusiness", 602 "name": "FARM CATARATAS", 603 "description": "Loja Farm Rio em FOZ DO IGUAÃU, PR", 604 "telephone": "45 991378115", 605 "address": { 606 "@type": "PostalAddress",
607 "streetAddress": "AV COSTA E SILVA, 185, LJ 137", 608 "addressLocality": "FOZ DO IGUAÃU", 609 "addressRegion": "PR", 610 "postalCode": "85863-801", 611 "addressCountry": "BR", 612 "addressNeighborhood": "JARDIM POLO CENTRO" 613 }, 614 "areaServed": { 615 "@type": "City", 616 "name": "FOZ DO IGUAÃU", 617 "containedInPlace": { 618 "@type": "State", 619 "name": "PR" 620 } 621 } 622 } 623 }, 624 { 625 "@type": "Offer", 626 "itemOffered": { 627 "@type": "LocalBusiness", 628 "name": "FARM FLORIANÃPOLIS", 629 "description": "Loja Farm Rio em FLORIANÃPOLIS, SC", 630 "telephone": "48 991092548", 631 "address": { 632 "@type": "PostalAddress", 633 "streetAddress": "ROD VIRGILIO VARZEA, 587, LJ 267", 634 "addressLocality": "FLORIANÃPOLIS", 635 "addressRegion": "SC", 636 "postalCode": "88032-001", 637 "addressCountry": "BR", 638 "addressNeighborhood": "SACO GRANDE" 639 }, 640 "areaServed": { 641 "@type": "City", 642 "name": "FLORIANÃPOLIS", 643 "containedInPlace": { 644 "@type": "State", 645 "name": "SC" 646 } 647 } 648 } 649 }, 650 { 651 "@type": "Offer", 652 "itemOffered": { 653 "@type": "LocalBusiness", 654 "name": "FARM NEUMARKT SHOPPING", 655 "description": "Loja Farm Rio em BLUMENAU, SC", 656 "telephone": "47 992642752", 657 "address": { 658 "@type": "PostalAddress", 659 "streetAddress": "RUA SETE DE SETEMBRO, 1213, LJ 84/85", 660 "addressLocality": "BLUMENAU", 661 "addressRegion": "SC", 662 "postalCode": "89010-911", 663 "addressCountry": "BR", 664 "addressNeighborhood": "CENTRO" 665 }, 666 "areaServed": { 667 "@type": "City", 668 "name": "BLUMENAU", 669 "containedInPlace": { 670 "@type": "State", 671 "name": "SC" 672 } 673 } 674 } 675 }, 676 { 677 "@type": "Offer", 678 "itemOffered": { 679 "@type": "LocalBusiness", 680 "name": "FARM LONDRINA", 681 "description": "Loja Farm Rio em LONDRINA, PR", 682 "telephone": "43 991153696", 683 "address": { 684 "@type": "PostalAddress", 685 "streetAddress": "ROD CELSO GARCIA CID, 5600, .", 686 "addressLocality": "LONDRINA", 687 "addressRegion": "PR", 688 "postalCode": "86050-901", 689 "addressCountry": "BR", 690 "addressNeighborhood": "GLEBA FAZENDA BARRA" 691 }, 692 "areaServed": { 693 "@type": "City", 694 "name": "LONDRINA", 695 "containedInPlace": { 696 "@type": "State", 697 "name": "PR" 698 } 699 } 700 } 701 }, 702 { 703 "@type": "Offer", 704 "itemOffered": { 705 "@type": "LocalBusiness", 706 "name": "FARM PRAIA DO CANTO", 707 "description": "Loja Farm Rio em VITÃRIA, ES", 708 "telephone": "27 996373591", 709 "address": { 710 "@type": "PostalAddress", 711 "streetAddress": "RUA JOAQUIM LIRIO, 62, .", 712 "addressLocality": "VITÃRIA", 713 "addressRegion": "ES", 714 "postalCode": "29055-460", 715 "addressCountry": "BR", 716 "addressNeighborhood": "PRAIA DO CANTO" 717 }, 718 "areaServed": { 719 "@type": "City", 720 "name": "VITÃRIA", 721 "containedInPlace": { 722 "@type": "State", 723 "name": "ES" 724 } 725 } 726 } 727 }, 728 { 729 "@type": "Offer", 730 "itemOffered": { 731 "@type": "LocalBusiness", 732 "name": "FARM ALPHAVILLE", 733 "description": "Loja Farm Rio em BARUERI, SP", 734 "telephone": "(11) 99896-6019", 735 "address": { 736 "@type": "PostalAddress", 737 "streetAddress": "AL RIO NEGRO, 111, LOJA 213 - PISO I", 738 "addressLocality": "BARUERI", 739 "addressRegion": "SP", 740 "postalCode": "06454-000", 741 "addressCountry": "BR",
742 "addressNeighborhood": "ALPHAVILLE INDUSTRIAL" 743 }, 744 "areaServed": { 745 "@type": "City", 746 "name": "BARUERI", 747 "containedInPlace": { 748 "@type": "State", 749 "name": "SP" 750 } 751 } 752 } 753 }, 754 { 755 "@type": "Offer", 756 "itemOffered": { 757 "@type": "LocalBusiness", 758 "name": "FARM SHOPPING DA BAHIA", 759 "description": "Loja Farm Rio em SALVADOR, BA", 760 "telephone": null, 761 "address": { 762 "@type": "PostalAddress", 763 "streetAddress": "AV TANCREDO NEVES, 148, LJ 48", 764 "addressLocality": "SALVADOR", 765 "addressRegion": "BA", 766 "postalCode": "41820-908", 767 "addressCountry": "BR", 768 "addressNeighborhood": "CAMINHO DAS ÃRVORES" 769 }, 770 "areaServed": { 771 "@type": "City", 772 "name": "SALVADOR", 773 "containedInPlace": { 774 "@type": "State", 775 "name": "BA" 776 } 777 } 778 } 779 }, 780 { 781 "@type": "Offer", 782 "itemOffered": { 783 "@type": "LocalBusiness", 784 "name": "FARM RUA DA QUITANDA", 785 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 786 "telephone": "21 998521668", 787 "address": { 788 "@type": "PostalAddress", 789 "streetAddress": "RUA DA QUITANDA, 86, LOJA 102", 790 "addressLocality": "RIO DE JANEIRO", 791 "addressRegion": "RJ", 792 "postalCode": "20091-005", 793 "addressCountry": "BR", 794 "addressNeighborhood": "CENTRO" 795 }, 796 "areaServed": { 797 "@type": "City", 798 "name": "RIO DE JANEIRO", 799 "containedInPlace": { 800 "@type": "State", 801 "name": "RJ" 802 } 803 } 804 } 805 }, 806 { 807 "@type": "Offer", 808 "itemOffered": { 809 "@type": "LocalBusiness", 810 "name": "FARM RIO PETRÃPOLIS", 811 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 812 "telephone": "21 996238331", 813 "address": { 814 "@type": "PostalAddress", 815 "streetAddress": "Estrada Rio Petrópolis, KM 109, km 109", 816 "addressLocality": "RIO DE JANEIRO", 817 "addressRegion": "RJ", 818 "postalCode": "25.230-480", 819 "addressCountry": "BR", 820 "addressNeighborhood": "DUQUE DE CAXIAS" 821 }, 822 "areaServed": { 823 "@type": "City", 824 "name": "RIO DE JANEIRO", 825 "containedInPlace": { 826 "@type": "State", 827 "name": "RJ" 828 } 829 } 830 } 831 }, 832 { 833 "@type": "Offer", 834 "itemOffered": { 835 "@type": "LocalBusiness", 836 "name": "FARM FASHION MALL", 837 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 838 "telephone": "21 999570228", 839 "address": { 840 "@type": "PostalAddress", 841 "streetAddress": "loja bazar FARM / ESTRADA DA GÃVEA, 899, LJ 122 A", 842 "addressLocality": "RIO DE JANEIRO", 843 "addressRegion": "RJ", 844 "postalCode": "22610-001", 845 "addressCountry": "BR", 846 "addressNeighborhood": "SÃO CONRADO" 847 }, 848 "areaServed": { 849 "@type": "City", 850 "name": "RIO DE JANEIRO", 851 "containedInPlace": { 852 "@type": "State", 853 "name": "RJ" 854 } 855 } 856 } 857 }, 858 { 859 "@type": "Offer", 860 "itemOffered": { 861 "@type": "LocalBusiness", 862 "name": "FARM BARRA SALVADOR", 863 "description": "Loja Farm Rio em SALVADOR, BA", 864 "telephone": "71 996700540", 865 "address": { 866 "@type": "PostalAddress", 867 "streetAddress": "AV CENTENARIO, 2992, LJ 454, L4", 868 "addressLocality": "SALVADOR", 869 "addressRegion": "BA", 870 "postalCode": "40155-150", 871 "addressCountry": "BR", 872 "addressNeighborhood": "CHAME-CHAME" 873 }, 874 "areaServed": { 875 "@type": "City", 876 "name": "SALVADOR", 877 "containedInPlace": { 878 "@type": "State", 879 "name": "BA" 880 } 881 } 882 } 883 }, 884 { 885 "@type": "Offer", 886 "itemOffered": { 887 "@type": "LocalBusiness", 888 "name": "FARM PLAZA", 889 "description": "Loja Farm Rio em NITERÃI, RJ", 890 "telephone": "21 995190934", 891 "address": { 892 "@type": "PostalAddress", 893 "streetAddress": "RUA QUINZE DE NOVEMBRO, 8, LJ 274/275/276", 894 "addressLocality": "NITERÃI", 895 "addressRegion": "RJ", 896 "postalCode": "24020125", 897 "addressCountry": "BR", 898 "addressNeighborhood": "CENTRO" 899 }, 900 "areaServed": { 901 "@type": "City", 902 "name": "NITERÃI", 903 "containedInPlace": { 904 "@type": "State", 905 "name": "RJ" 906 } 907 } 908 } 909 }, 910 { 911 "@type": "Offer", 912 "itemOffered": { 913 "@type": "LocalBusiness", 914 "name": "FARM BETIM", 915 "description": "Loja Farm Rio em BETIM, MG", 916 "telephone": "31 999978297", 917 "address": { 918 "@type": "PostalAddress", 919 "streetAddress": "RODOVIA FERNÃO DIAS, 601, LJ 3019/3020", 920 "addressLocality": "BETIM", 921 "addressRegion": "MG", 922 "postalCode": "32655-505", 923 "addressCountry": "BR", 924 "addressNeighborhood": "SÃO JOÃO" 925 }, 926 "areaServed": { 927 "@type": "City", 928 "name": "BETIM", 929 "containedInPlace": { 930 "@type": "State", 931 "name": "MG" 932 } 933 } 934 } 935 }, 936 { 937 "@type": "Offer", 938 "itemOffered": { 939 "@type": "LocalBusiness", 940 "name": "FARM DEL REY", 941 "description": "Loja Farm Rio em BELO HORIZONTE, MG", 942 "telephone": "31 997406138", 943 "address": { 944 "@type": "PostalAddress", 945 "streetAddress": "AV. PRESIDENTE CARLOS LUZ, 3001, LJ 3073", 946 "addressLocality": "BELO HORIZONTE", 947 "addressRegion": "MG", 948 "postalCode": "31250-010", 949 "addressCountry": "BR", 950 "addressNeighborhood": "PAMPULHA" 951 }, 952 "areaServed": { 953 "@type": "City", 954 "name": "BELO HORIZONTE", 955 "containedInPlace": { 956 "@type": "State", 957 "name": "MG" 958 } 959 } 960 } 961 }, 962 { 963 "@type": "Offer", 964 "itemOffered": { 965 "@type": "LocalBusiness", 966 "name": "FARM BH SHOPPING", 967 "description": "Loja Farm Rio em MG, MG", 968 "telephone": "31 997970965", 969 "address": { 970 "@type": "PostalAddress", 971 "streetAddress": "BR 356, 3049, LJ 72 ABC", 972 "addressLocality": "MG", 973 "addressRegion": "MG", 974 "postalCode": "30320-900", 975 "addressCountry": "BR", 976 "addressNeighborhood": "BELVEDERE" 977 }, 978 "areaServed": { 979 "@type": "City", 980 "name": "MG", 981 "containedInPlace": { 982 "@type": "State", 983 "name": "MG" 984 } 985 } 986 } 987 }, 988 { 989 "@type": "Offer", 990 "itemOffered": { 991 "@type": "LocalBusiness", 992 "name": "FARM UBERLÃNDIA", 993 "description": "Loja Farm Rio em UBERLÃNDIA, MG", 994 "telephone": "34 998079152", 995 "address": { 996 "@type": "PostalAddress", 997 "streetAddress": "AV JOÃO NAVES DE AVILA, 1331, LJ 1244", 998 "addressLocality": "UBERLÃNDIA", 999 "addressRegion": "MG", 1000 "postalCode": "38405-140", 1001 "addressCountry": "BR", 1002 "addressNeighborhood": "TIBERY" 1003 }, 1004 "areaServed": { 1005 "@type": "City", 1006 "name": "UBERLÃNDIA", 1007 "containedInPlace": { 1008 "@type": "State", 1009 "name": "MG" 1010 } 1011 } 1012 } 1013 }, 1014 { 1015 "@type": "Offer", 1016 "itemOffered": { 1017 "@type": "LocalBusiness", 1018 "name": "FARM BOULEVARD VITÃRIA DA CONQUISTA", 1019 "description": "Loja Farm Rio em Vitória da Conquista, BA", 1020 "telephone": "-", 1021 "address": { 1022 "@type": "PostalAddress", 1023 "streetAddress": "Av. Olivia Flores, 2500, LOJAS 1056/1057", 1024 "addressLocality": "Vitória da Conquista", 1025 "addressRegion": "BA", 1026 "postalCode": "45028-610", 1027 "addressCountry": "BR", 1028 "addressNeighborhood": "Candeias" 1029 }, 1030 "areaServed": { 1031 "@type": "City", 1032 "name": "Vitória da Conquista", 1033 "containedInPlace": { 1034 "@type": "State", 1035 "name": "BA" 1036 } 1037 } 1038 } 1039 }, 1040 { 1041 "@type": "Offer", 1042 "itemOffered": { 1043 "@type": "LocalBusiness", 1044 "name": "FARM CATUAà SHOPPING MARINGÃ", 1045 "description": "Loja Farm Rio em MARINGÃ, PR", 1046 "telephone": "-", 1047 "address": { 1048 "@type": "PostalAddress",
1049 "streetAddress": "Av. Colombo, 9161, LOJA LUC SCM00126", 1050 "addressLocality": "MARINGÃ", 1051 "addressRegion": "PR", 1052 "postalCode": "87070-000", 1053 "addressCountry": "BR", 1054 "addressNeighborhood": "Gleba Patrimônio Maringá" 1055 }, 1056 "areaServed": { 1057 "@type": "City", 1058 "name": "MARINGÃ", 1059 "containedInPlace": { 1060 "@type": "State", 1061 "name": "PR" 1062 } 1063 } 1064 } 1065 }, 1066 { 1067 "@type": "Offer", 1068 "itemOffered": { 1069 "@type": "LocalBusiness", 1070 "name": "FARM SHOPPING LEBLON", 1071 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1072 "telephone": "21 995651828", 1073 "address": { 1074 "@type": "PostalAddress", 1075 "streetAddress": "AV AFRANIO DE MELO FRANCO, 290, Lj 310", 1076 "addressLocality": "RIO DE JANEIRO", 1077 "addressRegion": "RJ", 1078 "postalCode": "22430-060", 1079 "addressCountry": "BR", 1080 "addressNeighborhood": "LEBLON" 1081 }, 1082 "areaServed": { 1083 "@type": "City", 1084 "name": "RIO DE JANEIRO", 1085 "containedInPlace": { 1086 "@type": "State", 1087 "name": "RJ" 1088 } 1089 } 1090 } 1091 }, 1092 { 1093 "@type": "Offer", 1094 "itemOffered": { 1095 "@type": "LocalBusiness", 1096 "name": "CASA FARM", 1097 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1098 "telephone": "21 992308168", 1099 "address": { 1100 "@type": "PostalAddress", 1101 "streetAddress": "Av Epitácio Pessoa, 1210, .", 1102 "addressLocality": "RIO DE JANEIRO", 1103 "addressRegion": "RJ", 1104 "postalCode": "22410-090", 1105 "addressCountry": "BR", 1106 "addressNeighborhood": "LAGOA" 1107 }, 1108 "areaServed": { 1109 "@type": "City", 1110 "name": "RIO DE JANEIRO", 1111 "containedInPlace": { 1112 "@type": "State", 1113 "name": "RJ" 1114 } 1115 } 1116 } 1117 }, 1118 { 1119 "@type": "Offer", 1120 "itemOffered": { 1121 "@type": "LocalBusiness", 1122 "name": "FARM BARRA SHOPPING", 1123 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1124 "telephone": "-", 1125 "address": { 1126 "@type": "PostalAddress", 1127 "streetAddress": "Av. das Américas, 4666, LJ 202B nÃvel américas", 1128 "addressLocality": "RIO DE JANEIRO", 1129 "addressRegion": "RJ", 1130 "postalCode": "22640-102", 1131 "addressCountry": "BR", 1132 "addressNeighborhood": "BARRA DA TIJUCA" 1133 }, 1134 "areaServed": { 1135 "@type": "City", 1136 "name": "RIO DE JANEIRO", 1137 "containedInPlace": { 1138 "@type": "State", 1139 "name": "RJ" 1140 } 1141 } 1142 } 1143 }, 1144 { 1145 "@type": "Offer", 1146 "itemOffered": { 1147 "@type": "LocalBusiness", 1148 "name": "FARM RIO VILLAGIO SHOPPING CAXIAS", 1149 "description": "Loja Farm Rio em Caxias do Sul, RS", 1150 "telephone": null, 1151 "address": { 1152 "@type": "PostalAddress", 1153 "streetAddress": "ROD RSC 453, 2780, LUC SIC00371", 1154 "addressLocality": "Caxias do Sul", 1155 "addressRegion": "RS", 1156 "postalCode": "95110-900", 1157 "addressCountry": "BR", 1158 "addressNeighborhood": "Sanvitto" 1159 }, 1160 "areaServed": { 1161 "@type": "City", 1162 "name": "Caxias do Sul", 1163 "containedInPlace": { 1164 "@type": "State", 1165 "name": "RS" 1166 } 1167 } 1168 } 1169 }, 1170 { 1171 "@type": "Offer", 1172 "itemOffered": { 1173 "@type": "LocalBusiness", 1174 "name": "FARM ETC RIO DESIGN BARRA", 1175 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1176 "telephone": null, 1177 "address": { 1178 "@type": "PostalAddress", 1179 "streetAddress": "Av. das Américas, 7777, LOJAS 253/254", 1180 "addressLocality": "RIO DE JANEIRO", 1181 "addressRegion": "RJ", 1182 "postalCode": "22793-081", 1183 "addressCountry": "BR", 1184 "addressNeighborhood": "BARRA DA TIJUCA" 1185 }, 1186 "areaServed": { 1187 "@type": "City", 1188 "name": "RIO DE JANEIRO", 1189 "containedInPlace": { 1190 "@type": "State", 1191 "name": "RJ" 1192 } 1193 } 1194 } 1195 }, 1196 { 1197 "@type": "Offer", 1198 "itemOffered": { 1199 "@type": "LocalBusiness", 1200 "name": "FARM ÃGUAS CLARAS", 1201 "description": "Loja Farm Rio em BRASÃLIA, DF", 1202 "telephone": null, 1203 "address": { 1204 "@type": "PostalAddress", 1205 "streetAddress": "Rua CopaÃba, Lote 01, S/N, Shopping DF Plaza, 2o andar", 1206 "addressLocality": "BRASÃLIA", 1207 "addressRegion": "DF", 1208 "postalCode": "71919-540", 1209 "addressCountry": "BR", 1210 "addressNeighborhood": "Ãguas Claras" 1211 }, 1212 "areaServed": { 1213 "@type": "City", 1214 "name": "BRASÃLIA", 1215 "containedInPlace": { 1216 "@type": "State", 1217 "name": "DF" 1218 } 1219 } 1220 } 1221 }, 1222 { 1223 "@type": "Offer", 1224 "itemOffered": { 1225 "@type": "LocalBusiness", 1226 "name": "FARM SHOPPING METRà SANTA CRUZ", 1227 "description": "Loja Farm Rio em SÃO PAULO, SP", 1228 "telephone": null, 1229 "address": { 1230 "@type": "PostalAddress", 1231 "streetAddress": "RUA DOMINGOS DE MORAIS, 2564, L1 loja SMSL 1005", 1232 "addressLocality": "SÃO PAULO", 1233 "addressRegion": "SP", 1234 "postalCode": "04036-100", 1235 "addressCountry": "BR", 1236 "addressNeighborhood": "VILA MARIANA" 1237 }, 1238 "areaServed": { 1239 "@type": "City", 1240 "name": "SÃO PAULO", 1241 "containedInPlace": { 1242 "@type": "State", 1243 "name": "SP" 1244 } 1245 } 1246 } 1247 }, 1248 { 1249 "@type": "Offer", 1250 "itemOffered": { 1251 "@type": "LocalBusiness", 1252 "name": "FARM RIO CARLOS GOMES", 1253 "description": "Loja Farm Rio em PORTO ALEGRE, RS", 1254 "telephone": null, 1255 "address": { 1256 "@type": "PostalAddress", 1257 "streetAddress": "AV. CARLOS GOMES, 707, Primeiro piso", 1258 "addressLocality": "PORTO ALEGRE", 1259 "addressRegion": "RS", 1260 "postalCode": "90480-001", 1261 "addressCountry": "BR", 1262 "addressNeighborhood": "MONT SERRAT" 1263 }, 1264 "areaServed": { 1265 "@type": "City", 1266 "name": "PORTO ALEGRE", 1267 "containedInPlace": { 1268 "@type": "State", 1269 "name": "RS" 1270 } 1271 } 1272 } 1273 }, 1274 { 1275 "@type": "Offer", 1276 "itemOffered": { 1277 "@type": "LocalBusiness", 1278 "name": "FARM PARKSHOPPING CANOAS", 1279 "description": "Loja Farm Rio em CANOAS, RS", 1280 "telephone": null, 1281 "address": { 1282 "@type": "PostalAddress", 1283 "streetAddress": "RUA FARROUPILHA, 4545, LJ 3005", 1284 "addressLocality": "CANOAS", 1285 "addressRegion": "RS", 1286 "postalCode": "92020-475", 1287 "addressCountry": "BR", 1288 "addressNeighborhood": "MARECHAL RONDON" 1289 }, 1290 "areaServed": { 1291 "@type": "City", 1292 "name": "CANOAS", 1293 "containedInPlace": { 1294 "@type": "State", 1295 "name": "RS" 1296 } 1297 } 1298 } 1299 }, 1300 { 1301 "@type": "Offer", 1302 "itemOffered": { 1303 "@type": "LocalBusiness", 1304 "name": "FARM RIO PETROPOLIS", 1305 "description": "Loja Farm Rio em DUQUE DE CAXIAS, RJ", 1306 "telephone": null, 1307 "address": { 1308 "@type": "PostalAddress", 1309 "streetAddress": "AV. DONA TEREZA CRISTINA, 2000, LJ. 2030 E 2031", 1310 "addressLocality": "DUQUE DE CAXIAS", 1311 "addressRegion": "RJ", 1312 "postalCode": "25230-480", 1313 "addressCountry": "BR", 1314 "addressNeighborhood": "CHÃCARA RIO PETRÃPOLIS" 1315 }, 1316 "areaServed": { 1317 "@type": "City", 1318 "name": "DUQUE DE CAXIAS", 1319 "containedInPlace": { 1320 "@type": "State", 1321 "name": "RJ" 1322 } 1323 } 1324 } 1325 }, 1326 { 1327 "@type": "Offer", 1328 "itemOffered": { 1329 "@type": "LocalBusiness", 1330 "name": "FARM IPANEMA", 1331 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1332 "telephone": "21 998344486", 1333 "address": { 1334 "@type": "PostalAddress", 1335 "streetAddress": "RUA VISCONDE DE PIRAJA, 365, .", 1336 "addressLocality": "RIO DE JANEIRO", 1337 "addressRegion": "RJ", 1338 "postalCode": "22410-003", 1339 "addressCountry": "BR", 1340 "addressNeighborhood": "IPANEMA" 1341 }, 1342 "areaServed": { 1343 "@type": "City", 1344 "name": "RIO DE JANEIRO", 1345 "containedInPlace": { 1346 "@type": "State", 1347 "name": "RJ" 1348 } 1349 } 1350 } 1351 }, 1352 { 1353 "@type": "Offer", 1354 "itemOffered": { 1355 "@type": "LocalBusiness", 1356 "name": "FARM BELA VISTA", 1357 "description": "Loja Farm Rio em SÃO PAULO, SP", 1358 "telephone": "11 978711126", 1359 "address": { 1360 "@type": "PostalAddress", 1361 "streetAddress": "RUA CINCINATO BRAGA, 106, .", 1362 "addressLocality": "SÃO PAULO", 1363 "addressRegion": "SP", 1364 "postalCode": "01333-010", 1365 "addressCountry": "BR", 1366 "addressNeighborhood": "BELA VISTA" 1367 }, 1368 "areaServed": { 1369 "@type": "City", 1370 "name": "SÃO PAULO", 1371 "containedInPlace": { 1372 "@type": "State", 1373 "name": "SP" 1374 } 1375 } 1376 } 1377 }, 1378 { 1379 "@type": "Offer", 1380 "itemOffered": { 1381 "@type": "LocalBusiness", 1382 "name": "FARM SÃO BERNARDO", 1383 "description": "Loja Farm Rio em SÃO BERNARDO, SP", 1384 "telephone": "11 941173611", 1385 "address": { 1386 "@type": "PostalAddress", 1387 "streetAddress": "AV KENNEDY, 700, LJ 209", 1388 "addressLocality": "SÃO BERNARDO", 1389 "addressRegion": "SP", 1390 "postalCode": "09726-252", 1391 "addressCountry": "BR", 1392 "addressNeighborhood": "JARDIM DO MAR" 1393 }, 1394 "areaServed": { 1395 "@type": "City", 1396 "name": "SÃO BERNARDO", 1397 "containedInPlace": { 1398 "@type": "State", 1399 "name": "SP" 1400 } 1401 } 1402 } 1403 }, 1404 { 1405 "@type": "Offer", 1406 "itemOffered": { 1407 "@type": "LocalBusiness", 1408 "name": "FARM PLAZA SUL SP", 1409 "description": "Loja Farm Rio em SÃO PAULO, SP", 1410 "telephone": "11 918685393", 1411 "address": { 1412 "@type": "PostalAddress", 1413 "streetAddress": "PRAÃA LEONOR KAUPA, 100, LJ 312/313", 1414 "addressLocality": "SÃO PAULO", 1415 "addressRegion": "SP", 1416 "postalCode": "041511-900", 1417 "addressCountry": "BR", 1418 "addressNeighborhood": "BOSQUE DA SAÃDE" 1419 }, 1420 "areaServed": { 1421 "@type": "City", 1422 "name": "SÃO PAULO", 1423 "containedInPlace": { 1424 "@type": "State", 1425 "name": "SP" 1426 } 1427 } 1428 } 1429 }, 1430 { 1431 "@type": "Offer", 1432 "itemOffered": { 1433 "@type": "LocalBusiness", 1434 "name": "FARM BUZIOS", 1435 "description": "Loja Farm Rio em ARMAÃÃO DOS BÃZIOS, RJ", 1436 "telephone": "22 997143625", 1437 "address": { 1438 "@type": "PostalAddress", 1439 "streetAddress": "Avenida José Bento Ribeiro Dantas, 73, lj 4/5/11", 1440 "addressLocality": "ARMAÃÃO DOS BÃZIOS", 1441 "addressRegion": "RJ", 1442 "postalCode": "28950-000", 1443 "addressCountry": "BR", 1444 "addressNeighborhood": "Mangue" 1445 }, 1446 "areaServed": { 1447 "@type": "City", 1448 "name": "ARMAÃÃO DOS BÃZIOS", 1449 "containedInPlace": { 1450 "@type": "State", 1451 "name": "RJ" 1452 } 1453 } 1454 } 1455 }, 1456 { 1457 "@type": "Offer", 1458 "itemOffered": { 1459 "@type": "LocalBusiness", 1460 "name": "FARM NOVA AMÃRICA", 1461 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1462 "telephone": "21 999477990", 1463 "address": { 1464 "@type": "PostalAddress", 1465 "streetAddress": "AV PASTOR MARTIN LUTHER KING JR, 126, LJ 123", 1466 "addressLocality": "RIO DE JANEIRO", 1467 "addressRegion": "RJ", 1468 "postalCode": "20765-000", 1469 "addressCountry": "BR", 1470 "addressNeighborhood": "DEL CASTILHO" 1471 }, 1472 "areaServed": { 1473 "@type": "City", 1474 "name": "RIO DE JANEIRO", 1475 "containedInPlace": { 1476 "@type": "State", 1477 "name": "RJ" 1478 } 1479 } 1480 } 1481 }, 1482 { 1483 "@type": "Offer", 1484 "itemOffered": { 1485 "@type": "LocalBusiness", 1486 "name": "FARM ICARAà TAVARES", 1487 "description": "Loja Farm Rio em NITERÃI, RJ", 1488 "telephone": "21 967480577", 1489 "address": { 1490 "@type": "PostalAddress", 1491 "streetAddress": "RUA TAVARES DE MACEDO, 175, LOJA 101", 1492 "addressLocality": "NITERÃI", 1493 "addressRegion": "RJ", 1494 "postalCode": "24220-215", 1495 "addressCountry": "BR", 1496 "addressNeighborhood": "ICARAÃ" 1497 }, 1498 "areaServed": { 1499 "@type": "City", 1500 "name": "NITERÃI", 1501 "containedInPlace": { 1502 "@type": "State", 1503 "name": "RJ" 1504 } 1505 } 1506 } 1507 }, 1508 { 1509 "@type": "Offer", 1510 "itemOffered": { 1511 "@type": "LocalBusiness", 1512 "name": "FARM PÃTIO SAVASSI RBX", 1513 "description": "Loja Farm Rio em BELO HORIZONTE, MG", 1514 "telephone": "31 995908746", 1515 "address": { 1516 "@type": "PostalAddress",
1517 "streetAddress": "AV DO CONTORNO, 6061, LJ 336 A", 1518 "addressLocality": "BELO HORIZONTE", 1519 "addressRegion": "MG", 1520 "postalCode": "30110-929", 1521 "addressCountry": "BR", 1522 "addressNeighborhood": "SANTA EFIGÃNIA" 1523 }, 1524 "areaServed": { 1525 "@type": "City", 1526 "name": "BELO HORIZONTE", 1527 "containedInPlace": { 1528 "@type": "State", 1529 "name": "MG" 1530 } 1531 } 1532 } 1533 }, 1534 { 1535 "@type": "Offer", 1536 "itemOffered": { 1537 "@type": "LocalBusiness", 1538 "name": "FARM NATAL", 1539 "description": "Loja Farm Rio em NATAL, RN", 1540 "telephone": "84 981523948", 1541 "address": { 1542 "@type": "PostalAddress", 1543 "streetAddress": "AV SENADOR SALGADO FILHO, 2234, LJ 211/212/213/214/ 215", 1544 "addressLocality": "NATAL", 1545 "addressRegion": "RN", 1546 "postalCode": "59064-900", 1547 "addressCountry": "BR", 1548 "addressNeighborhood": "CANDELÃRIA" 1549 }, 1550 "areaServed": { 1551 "@type": "City", 1552 "name": "NATAL", 1553 "containedInPlace": { 1554 "@type": "State", 1555 "name": "RN" 1556 } 1557 } 1558 } 1559 }, 1560 { 1561 "@type": "Offer", 1562 "itemOffered": { 1563 "@type": "LocalBusiness", 1564 "name": "FARM CAMPO GRANDE", 1565 "description": "Loja Farm Rio em CAMPO GRANDE, MS", 1566 "telephone": "67 998079716", 1567 "address": { 1568 "@type": "PostalAddress", 1569 "streetAddress": "AV. AFONSO PENA, 4909, LOJA 2027/2029 A", 1570 "addressLocality": "CAMPO GRANDE", 1571 "addressRegion": "MS", 1572 "postalCode": "79031-900", 1573 "addressCountry": "BR", 1574 "addressNeighborhood": "SANTA FE" 1575 }, 1576 "areaServed": { 1577 "@type": "City", 1578 "name": "CAMPO GRANDE", 1579 "containedInPlace": { 1580 "@type": "State", 1581 "name": "MS" 1582 } 1583 } 1584 } 1585 }, 1586 { 1587 "@type": "Offer", 1588 "itemOffered": { 1589 "@type": "LocalBusiness", 1590 "name": "FARM VILLAGE MALL", 1591 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1592 "telephone": "21 998399493", 1593 "address": { 1594 "@type": "PostalAddress", 1595 "streetAddress": "AV DAS AMERICAS, 3900, LUC 144", 1596 "addressLocality": "RIO DE JANEIRO", 1597 "addressRegion": "RJ", 1598 "postalCode": "22631-003", 1599 "addressCountry": "BR", 1600 "addressNeighborhood": "BARRA DA TIJUCA" 1601 }, 1602 "areaServed": { 1603 "@type": "City", 1604 "name": "RIO DE JANEIRO", 1605 "containedInPlace": { 1606 "@type": "State", 1607 "name": "RJ" 1608 } 1609 } 1610 } 1611 }, 1612 { 1613 "@type": "Offer", 1614 "itemOffered": { 1615 "@type": "LocalBusiness", 1616 "name": "FARM PARK SHOPPING BSB", 1617 "description": "Loja Farm Rio em BRASÃLIA, DF", 1618 "telephone": "61 996058885", 1619 "address": { 1620 "@type": "PostalAddress", 1621 "streetAddress": "ST SAI/SO, AREA 6580, LUC 132", 1622 "addressLocality": "BRASÃLIA", 1623 "addressRegion": "DF", 1624 "postalCode": "70200-610", 1625 "addressCountry": "BR", 1626 "addressNeighborhood": "GUARÃ" 1627 }, 1628 "areaServed": { 1629 "@type": "City", 1630 "name": "BRASÃLIA", 1631 "containedInPlace": { 1632 "@type": "State", 1633 "name": "DF" 1634 } 1635 } 1636 } 1637 }, 1638 { 1639 "@type": "Offer", 1640 "itemOffered": { 1641 "@type": "LocalBusiness", 1642 "name": "FARM DOWNTOWN", 1643 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1644 "telephone": "21 999341756", 1645 "address": { 1646 "@type": "PostalAddress", 1647 "streetAddress": "AV DAS AMERICAS, 500, BLOCO 20, LJ 112", 1648 "addressLocality": "RIO DE JANEIRO", 1649 "addressRegion": "RJ", 1650 "postalCode": "22640-100", 1651 "addressCountry": "BR", 1652 "addressNeighborhood": "BARRA DA TIJUCA" 1653 }, 1654 "areaServed": { 1655 "@type": "City", 1656 "name": "RIO DE JANEIRO", 1657 "containedInPlace": { 1658 "@type": "State", 1659 "name": "RJ" 1660 } 1661 } 1662 } 1663 }, 1664 { 1665 "@type": "Offer", 1666 "itemOffered": { 1667 "@type": "LocalBusiness", 1668 "name": "FARM RIO DESIGN LEBLON", 1669 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 1670 "telephone": "21 999204805", 1671 "address": { 1672 "@type": "PostalAddress", 1673 "streetAddress": "AV. ATAULFO DE PAIVA, 270, LJ 313/ 314", 1674 "addressLocality": "RIO DE JANEIRO", 1675 "addressRegion": "RJ", 1676 "postalCode": "22440-033", 1677 "addressCountry": "BR", 1678 "addressNeighborhood": "LEBLON" 1679 }, 1680 "areaServed": { 1681 "@type": "City", 1682 "name": "RIO DE JANEIRO", 1683 "containedInPlace": { 1684 "@type": "State", 1685 "name": "RJ" 1686 } 1687 } 1688 } 1689 }, 1690 { 1691 "@type": "Offer", 1692 "itemOffered": { 1693 "@type": "LocalBusiness", 1694 "name": "FARM PRUDEN SHOPPING", 1695 "description": "Loja Farm Rio em PRESIDENTE PRUDENTE, SP", 1696 "telephone": "17 996761841", 1697 "address": { 1698 "@type": "PostalAddress", 1699 "streetAddress": "AV. MANOEL GOURLART, 2400, lj 1019 e 1020", 1700 "addressLocality": "PRESIDENTE PRUDENTE", 1701 "addressRegion": "SP", 1702 "postalCode": "19.060-000", 1703 "addressCountry": "BR", 1704 "addressNeighborhood": "VILA SANTA HELENA" 1705 }, 1706 "areaServed": { 1707 "@type": "City", 1708 "name": "PRESIDENTE PRUDENTE", 1709 "containedInPlace": { 1710 "@type": "State", 1711 "name": "SP" 1712 } 1713 } 1714 } 1715 }, 1716 { 1717 "@type": "Offer", 1718 "itemOffered": { 1719 "@type": "LocalBusiness", 1720 "name": "FARM IGUATEMI CAMPINAS", 1721 "description": "Loja Farm Rio em CAMPINAS, SP", 1722 "telephone": "19 999591290", 1723 "address": { 1724 "@type": "PostalAddress", 1725 "streetAddress": "AV IGUATEMI, 777, LJ 136", 1726 "addressLocality": "CAMPINAS", 1727 "addressRegion": "SP", 1728 "postalCode": "13092-500", 1729 "addressCountry": "BR", 1730 "addressNeighborhood": "VILA BRANDINA" 1731 }, 1732 "areaServed": { 1733 "@type": "City", 1734 "name": "CAMPINAS", 1735 "containedInPlace": { 1736 "@type": "State", 1737 "name": "SP" 1738 } 1739 } 1740 } 1741 }, 1742 { 1743 "@type": "Offer", 1744 "itemOffered": { 1745 "@type": "LocalBusiness", 1746 "name": "FARM VILA NOVA CONCEICAO", 1747 "description": "Loja Farm Rio em SÃO PAULO, SP", 1748 "telephone": "11 995309791", 1749 "address": { 1750 "@type": "PostalAddress", 1751 "streetAddress": "RUA JOÃO LOURENÃO, 483, .", 1752 "addressLocality": "SÃO PAULO", 1753 "addressRegion": "SP", 1754 "postalCode": "04508-030", 1755 "addressCountry": "BR", 1756 "addressNeighborhood": "VILA NOVA CONCEIÃÃO" 1757 }, 1758 "areaServed": { 1759 "@type": "City", 1760 "name": "SÃO PAULO", 1761 "containedInPlace": { 1762 "@type": "State", 1763 "name": "SP" 1764 } 1765 } 1766 } 1767 }, 1768 { 1769 "@type": "Offer", 1770 "itemOffered": { 1771 "@type": "LocalBusiness", 1772 "name": "FARM CENTER VALE", 1773 "description": "Loja Farm Rio em SÃO JOSà DOS CAMPOS, SP", 1774 "telephone": "12 996797207", 1775 "address": { 1776 "@type": "PostalAddress", 1777 "streetAddress": "AV. DEP. BENEDITO MATARAZZO, 9403, LJ S612", 1778 "addressLocality": "SÃO JOSà DOS CAMPOS", 1779 "addressRegion": "SP", 1780 "postalCode": "012.216-580", 1781 "addressCountry": "BR", 1782 "addressNeighborhood": "OSWALDO CRUZ" 1783 }, 1784 "areaServed": { 1785 "@type": "City", 1786 "name": "SÃO JOSà DOS CAMPOS", 1787 "containedInPlace": { 1788 "@type": "State", 1789 "name": "SP" 1790 } 1791 } 1792 } 1793 }, 1794 { 1795 "@type": "Offer", 1796 "itemOffered": { 1797 "@type": "LocalBusiness", 1798 "name": "FARM JOÃO CACHOEIRA", 1799 "description": "Loja Farm Rio em SÃO PAULO, SP", 1800 "telephone": "11 978708300", 1801 "address": { 1802 "@type": "PostalAddress", 1803 "streetAddress": "RUA JOÃO CACHOEIRA, 1132, .", 1804 "addressLocality": "SÃO PAULO", 1805 "addressRegion": "SP", 1806 "postalCode": "04535-004", 1807 "addressCountry": "BR", 1808 "addressNeighborhood": "VILA NOVA CONCEIÃÃO" 1809 }, 1810 "areaServed": { 1811 "@type": "City", 1812 "name": "SÃO PAULO", 1813 "containedInPlace": { 1814 "@type": "State", 1815 "name": "SP" 1816 } 1817 } 1818 } 1819 }, 1820 { 1821 "@type": "Offer", 1822 "itemOffered": { 1823 "@type": "LocalBusiness", 1824 "name": "FARM SHOPPING TAMBORÃ", 1825 "description": "Loja Farm Rio em BARUERI, SP", 1826 "telephone": "11 941496379", 1827 "address": { 1828 "@type": "PostalAddress", 1829 "streetAddress": "Avenida Piracema, 669, lj 0469", 1830 "addressLocality": "BARUERI", 1831 "addressRegion": "SP", 1832 "postalCode": "06460-030", 1833 "addressCountry": "BR", 1834 "addressNeighborhood": "Tamboré" 1835 }, 1836 "areaServed": { 1837 "@type": "City", 1838 "name": "BARUERI", 1839 "containedInPlace": { 1840 "@type": "State", 1841 "name": "SP" 1842 } 1843 } 1844 } 1845 }, 1846 { 1847 "@type": "Offer", 1848 "itemOffered": { 1849 "@type": "LocalBusiness", 1850 "name": "FARM CURITIBA", 1851 "description": "Loja Farm Rio em CURITIBA, PR", 1852 "telephone": "41 991786315", 1853 "address": { 1854 "@type": "PostalAddress", 1855 "streetAddress": "AV CANDIDO DE ABREU, 127, LJ 05/08", 1856 "addressLocality": "CURITIBA", 1857 "addressRegion": "PR", 1858 "postalCode": "80530-000", 1859 "addressCountry": "BR", 1860 "addressNeighborhood": "CENTRO CÃVICO" 1861 }, 1862 "areaServed": { 1863 "@type": "City", 1864 "name": "CURITIBA", 1865 "containedInPlace": { 1866 "@type": "State", 1867 "name": "PR" 1868 } 1869 } 1870 } 1871 }, 1872 { 1873 "@type": "Offer", 1874 "itemOffered": { 1875 "@type": "LocalBusiness", 1876 "name": "FARM VILLA ROMANA", 1877 "description": "Loja Farm Rio em FLORIANÃPOLIS, SC", 1878 "telephone": "48 991622024", 1879 "address": { 1880 "@type": "PostalAddress", 1881 "streetAddress": "AV MADRE BENVENUTA, 687, SALA 215/216", 1882 "addressLocality": "FLORIANÃPOLIS", 1883 "addressRegion": "SC", 1884 "postalCode": "88035-000", 1885 "addressCountry": "BR", 1886 "addressNeighborhood": "SANTA MÃNICA" 1887 }, 1888 "areaServed": { 1889 "@type": "City", 1890 "name": "FLORIANÃPOLIS", 1891 "containedInPlace": { 1892 "@type": "State", 1893 "name": "SC" 1894 } 1895 } 1896 } 1897 }, 1898 { 1899 "@type": "Offer", 1900 "itemOffered": { 1901 "@type": "LocalBusiness", 1902 "name": "FARM CONTINENTE", 1903 "description": "Loja Farm Rio em SÃO JOSÃ, SC", 1904 "telephone": "48 991264956", 1905 "address": { 1906 "@type": "PostalAddress", 1907 "streetAddress": "RODOVIA BR 101, KM 211, LJ 122/123", 1908 "addressLocality": "SÃO JOSÃ", 1909 "addressRegion": "SC", 1910 "postalCode": "88104-801", 1911 "addressCountry": "BR", 1912 "addressNeighborhood": "DISTRITO INDUSTRIAL" 1913 }, 1914 "areaServed": { 1915 "@type": "City", 1916 "name": "SÃO JOSÃ", 1917 "containedInPlace": { 1918 "@type": "State", 1919 "name": "SC" 1920 } 1921 } 1922 } 1923 }, 1924 { 1925 "@type": "Offer", 1926 "itemOffered": { 1927 "@type": "LocalBusiness", 1928 "name": "FARM GARTEN", 1929 "description": "Loja Farm Rio em JOINVILLE, SC", 1930 "telephone": "47988974991", 1931 "address": { 1932 "@type": "PostalAddress", 1933 "streetAddress": "AV. ROLF WIEST, 333, LJ 130", 1934 "addressLocality": "JOINVILLE", 1935 "addressRegion": "SC", 1936 "postalCode": "89223-005", 1937 "addressCountry": "BR", 1938 "addressNeighborhood": "BOM RETIRO" 1939 }, 1940 "areaServed": { 1941 "@type": "City", 1942 "name": "JOINVILLE", 1943 "containedInPlace": { 1944 "@type": "State", 1945 "name": "SC" 1946 } 1947 } 1948 } 1949 }, 1950 { 1951 "@type": "Offer", 1952 "itemOffered": { 1953 "@type": "LocalBusiness", 1954 "name": "FARM MARINGA PARK", 1955 "description": "Loja Farm Rio em MARINGÃ, PR", 1956 "telephone": "44 991263373", 1957 "address": { 1958 "@type": "PostalAddress",
1959 "streetAddress": "AV SAO PAULO, 1099, LJ 230", 1960 "addressLocality": "MARINGÃ", 1961 "addressRegion": "PR", 1962 "postalCode": "87013-040", 1963 "addressCountry": "BR", 1964 "addressNeighborhood": "ZONA 1" 1965 }, 1966 "areaServed": { 1967 "@type": "City", 1968 "name": "MARINGÃ", 1969 "containedInPlace": { 1970 "@type": "State", 1971 "name": "PR" 1972 } 1973 } 1974 } 1975 }, 1976 { 1977 "@type": "Offer", 1978 "itemOffered": { 1979 "@type": "LocalBusiness", 1980 "name": "FARM BEIRA MAR", 1981 "description": "Loja Farm Rio em FLORIANÃPOLIS, SC", 1982 "telephone": "48 991527432", 1983 "address": { 1984 "@type": "PostalAddress", 1985 "streetAddress": "RUA BOCAIUVA, 2468, LJ 346", 1986 "addressLocality": "FLORIANÃPOLIS", 1987 "addressRegion": "SC", 1988 "postalCode": "88015-902", 1989 "addressCountry": "BR", 1990 "addressNeighborhood": "CENTRO" 1991 }, 1992 "areaServed": { 1993 "@type": "City", 1994 "name": "FLORIANÃPOLIS", 1995 "containedInPlace": { 1996 "@type": "State", 1997 "name": "SC" 1998 } 1999 } 2000 } 2001 }, 2002 { 2003 "@type": "Offer", 2004 "itemOffered": { 2005 "@type": "LocalBusiness", 2006 "name": "FARM VILA VELHA", 2007 "description": "Loja Farm Rio em VILA VELHA, ES", 2008 "telephone": "27 999938701", 2009 "address": { 2010 "@type": "PostalAddress", 2011 "streetAddress": "R LUCIANO DAS NEVES, 2418, LJ 2095", 2012 "addressLocality": "VILA VELHA", 2013 "addressRegion": "ES", 2014 "postalCode": "29100-200", 2015 "addressCountry": "BR", 2016 "addressNeighborhood": "CENTRO" 2017 }, 2018 "areaServed": { 2019 "@type": "City", 2020 "name": "VILA VELHA", 2021 "containedInPlace": { 2022 "@type": "State", 2023 "name": "ES" 2024 } 2025 } 2026 } 2027 }, 2028 { 2029 "@type": "Offer", 2030 "itemOffered": { 2031 "@type": "LocalBusiness", 2032 "name": "FARM SHOPPING VITORIA", 2033 "description": "Loja Farm Rio em VITÃRIA, ES", 2034 "telephone": "27 998882031", 2035 "address": { 2036 "@type": "PostalAddress", 2037 "streetAddress": "AV AMERICO BUAIZ, 200, LJ 509", 2038 "addressLocality": "VITÃRIA", 2039 "addressRegion": "ES", 2040 "postalCode": "29050-902", 2041 "addressCountry": "BR", 2042 "addressNeighborhood": "ENSEADA DO SUÃ" 2043 }, 2044 "areaServed": { 2045 "@type": "City", 2046 "name": "VITÃRIA", 2047 "containedInPlace": { 2048 "@type": "State", 2049 "name": "ES" 2050 } 2051 } 2052 } 2053 }, 2054 { 2055 "@type": "Offer", 2056 "itemOffered": { 2057 "@type": "LocalBusiness", 2058 "name": "FARM ETC GARCIA D'ÃVILA", 2059 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2060 "telephone": "-", 2061 "address": { 2062 "@type": "PostalAddress", 2063 "streetAddress": "Rua Garcia D'ávila, 110", 2064 "addressLocality": "RIO DE JANEIRO", 2065 "addressRegion": "RJ", 2066 "postalCode": "22421-010", 2067 "addressCountry": "BR", 2068 "addressNeighborhood": "IPANEMA" 2069 }, 2070 "areaServed": { 2071 "@type": "City", 2072 "name": "RIO DE JANEIRO", 2073 "containedInPlace": { 2074 "@type": "State", 2075 "name": "RJ" 2076 } 2077 } 2078 } 2079 }, 2080 { 2081 "@type": "Offer", 2082 "itemOffered": { 2083 "@type": "LocalBusiness", 2084 "name": "FARM ETC BARRA SHOPPING", 2085 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2086 "telephone": "-", 2087 "address": { 2088 "@type": "PostalAddress", 2089 "streetAddress": "Av. das Américas, 4666", 2090 "addressLocality": "RIO DE JANEIRO", 2091 "addressRegion": "RJ", 2092 "postalCode": "22640-102", 2093 "addressCountry": "BR", 2094 "addressNeighborhood": "BARRA DA TIJUCA" 2095 }, 2096 "areaServed": { 2097 "@type": "City", 2098 "name": "RIO DE JANEIRO", 2099 "containedInPlace": { 2100 "@type": "State", 2101 "name": "RJ" 2102 } 2103 } 2104 } 2105 }, 2106 { 2107 "@type": "Offer", 2108 "itemOffered": { 2109 "@type": "LocalBusiness", 2110 "name": "FARM LOURDES", 2111 "description": "Loja Farm Rio em BELO HORIZONTE, MG", 2112 "telephone": "31 995604818", 2113 "address": { 2114 "@type": "PostalAddress", 2115 "streetAddress": "RUA SÃO PAULO, 2159, .", 2116 "addressLocality": "BELO HORIZONTE", 2117 "addressRegion": "MG", 2118 "postalCode": "30170-135", 2119 "addressCountry": "BR", 2120 "addressNeighborhood": "LOURDES" 2121 }, 2122 "areaServed": { 2123 "@type": "City", 2124 "name": "BELO HORIZONTE", 2125 "containedInPlace": { 2126 "@type": "State", 2127 "name": "MG" 2128 } 2129 } 2130 } 2131 }, 2132 { 2133 "@type": "Offer", 2134 "itemOffered": { 2135 "@type": "LocalBusiness", 2136 "name": "FARM SÃO LUIS", 2137 "description": "Loja Farm Rio em SAO LUÃS, MA",
2138 "telephone": "98 991208154", 2139 "address": { 2140 "@type": "PostalAddress", 2141 "streetAddress": "AV DANIEL DE LA TOUCHE, 987, LJ 304 K", 2142 "addressLocality": "SAO LUÃS", 2143 "addressRegion": "MA", 2144 "postalCode": "65074 115", 2145 "addressCountry": "BR", 2146 "addressNeighborhood": "COHAMA" 2147 }, 2148 "areaServed": { 2149 "@type": "City", 2150 "name": "SAO LUÃS", 2151 "containedInPlace": { 2152 "@type": "State", 2153 "name": "MA" 2154 } 2155 } 2156 } 2157 }, 2158 { 2159 "@type": "Offer", 2160 "itemOffered": { 2161 "@type": "LocalBusiness", 2162 "name": "CASA RECIFE", 2163 "description": "Loja Farm Rio em RECIFE, PE", 2164 "telephone": "81 981500290", 2165 "address": { 2166 "@type": "PostalAddress", 2167 "streetAddress": "AV CONSELHEIRO AGUIAR, 2360, .", 2168 "addressLocality": "RECIFE", 2169 "addressRegion": "PE", 2170 "postalCode": "51020-020", 2171 "addressCountry": "BR", 2172 "addressNeighborhood": "BOA VIAGEM" 2173 }, 2174 "areaServed": { 2175 "@type": "City", 2176 "name": "RECIFE", 2177 "containedInPlace": { 2178 "@type": "State", 2179 "name": "PE" 2180 } 2181 } 2182 } 2183 }, 2184 { 2185 "@type": "Offer", 2186 "itemOffered": { 2187 "@type": "LocalBusiness", 2188 "name": "FARM RIOMAR FORTALEZA", 2189 "description": "Loja Farm Rio em FORTALEZA, CE", 2190 "telephone": "85 981982468", 2191 "address": { 2192 "@type": "PostalAddress", 2193 "streetAddress": "RUA DESEMBARGADOR LAURO NOGUEIRA, 1500, .", 2194 "addressLocality": "FORTALEZA", 2195 "addressRegion": "CE", 2196 "postalCode": "60175-055", 2197 "addressCountry": "BR", 2198 "addressNeighborhood": "PAPICU" 2199 }, 2200 "areaServed": { 2201 "@type": "City", 2202 "name": "FORTALEZA", 2203 "containedInPlace": { 2204 "@type": "State", 2205 "name": "CE" 2206 } 2207 } 2208 } 2209 }, 2210 { 2211 "@type": "Offer", 2212 "itemOffered": { 2213 "@type": "LocalBusiness", 2214 "name": "FARM SALVADOR", 2215 "description": "Loja Farm Rio em SALVADOR, BA", 2216 "telephone": "71 999687919", 2217 "address": { 2218 "@type": "PostalAddress", 2219 "streetAddress": "AV TANCREDO NEVES, 3133, LJ 2011", 2220 "addressLocality": "SALVADOR", 2221 "addressRegion": "BA", 2222 "postalCode": "41820-021", 2223 "addressCountry": "BR", 2224 "addressNeighborhood": "CAMINHO DAS ARVORES" 2225 }, 2226 "areaServed": { 2227 "@type": "City", 2228 "name": "SALVADOR", 2229 "containedInPlace": { 2230 "@type": "State", 2231 "name": "BA" 2232 } 2233 } 2234 } 2235 }, 2236 { 2237 "@type": "Offer", 2238 "itemOffered": { 2239 "@type": "LocalBusiness", 2240 "name": "Partage Arapiraca Shopping", 2241 "description": "Loja Farm Rio em Arapiraca, AL", 2242 "telephone": null, 2243 "address": { 2244 "@type": "PostalAddress", 2245 "streetAddress": "Rua Jose Jailson Nunes, 493", 2246 "addressLocality": "Arapiraca", 2247 "addressRegion": "AL", 2248 "postalCode": "57310-400", 2249 "addressCountry": "BR", 2250 "addressNeighborhood": "Santa Edwiges" 2251 }, 2252 "areaServed": { 2253 "@type": "City", 2254 "name": "Arapiraca", 2255 "containedInPlace": { 2256 "@type": "State", 2257 "name": "AL" 2258 } 2259 } 2260 } 2261 }, 2262 { 2263 "@type": "Offer", 2264 "itemOffered": { 2265 "@type": "LocalBusiness", 2266 "name": "FARM JOÃO PESSOA", 2267 "description": "Loja Farm Rio em JOÃO PESSOA, PB", 2268 "telephone": "83 994022584", 2269 "address": { 2270 "@type": "PostalAddress", 2271 "streetAddress": "AV GOVERNADOR FLAVIO RIBEIRO COUTINHO, 805, .", 2272 "addressLocality": "JOÃO PESSOA", 2273 "addressRegion": "PB", 2274 "postalCode": "58102-835", 2275 "addressCountry": "BR", 2276 "addressNeighborhood": "MANAÃRA" 2277 }, 2278 "areaServed": { 2279 "@type": "City", 2280 "name": "JOÃO PESSOA", 2281 "containedInPlace": { 2282 "@type": "State", 2283 "name": "PB" 2284 } 2285 } 2286 } 2287 }, 2288 { 2289 "@type": "Offer", 2290 "itemOffered": { 2291 "@type": "LocalBusiness", 2292 "name": "FARM MANAUARA", 2293 "description": "Loja Farm Rio em MANAUS, AM", 2294 "telephone": "92 991846697", 2295 "address": { 2296 "@type": "PostalAddress", 2297 "streetAddress": "AV MARIO YPIRANGA, 1300, LJ 267", 2298 "addressLocality": "MANAUS", 2299 "addressRegion": "AM", 2300 "postalCode": "69057-002", 2301 "addressCountry": "BR", 2302 "addressNeighborhood": "ADRIANOPOLIS" 2303 }, 2304 "areaServed": { 2305 "@type": "City", 2306 "name": "MANAUS", 2307 "containedInPlace": { 2308 "@type": "State", 2309 "name": "AM" 2310 } 2311 } 2312 } 2313 }, 2314 { 2315 "@type": "Offer", 2316 "itemOffered": { 2317 "@type": "LocalBusiness", 2318 "name": "FARM SHOPPING RECIFE", 2319 "description": "Loja Farm Rio em RECIFE, PE", 2320 "telephone": "81 981664848", 2321 "address": { 2322 "@type": "PostalAddress", 2323 "streetAddress": "RUA PADRE CARAPUCEIRO, 777, LJ 105", 2324 "addressLocality": "RECIFE", 2325 "addressRegion": "PE", 2326 "postalCode": "51020-900", 2327 "addressCountry": "BR", 2328 "addressNeighborhood": "BOA VIAGEM" 2329 }, 2330 "areaServed": { 2331 "@type": "City", 2332 "name": "RECIFE", 2333 "containedInPlace": { 2334 "@type": "State", 2335 "name": "PE" 2336 } 2337 } 2338 } 2339 }, 2340 { 2341 "@type": "Offer", 2342 "itemOffered": { 2343 "@type": "LocalBusiness", 2344 "name": "FARM FORTALEZA", 2345 "description": "Loja Farm Rio em FORTALEZA, CE", 2346 "telephone": "85 8141-4768", 2347 "address": { 2348 "@type": "PostalAddress", 2349 "streetAddress": "AV WASHINGTON SOARES, 85, LJ 520", 2350 "addressLocality": "FORTALEZA", 2351 "addressRegion": "CE", 2352 "postalCode": "60811-340", 2353 "addressCountry": "BR", 2354 "addressNeighborhood": "EDSON QUEIROZ" 2355 }, 2356 "areaServed": { 2357 "@type": "City", 2358 "name": "FORTALEZA", 2359 "containedInPlace": { 2360 "@type": "State", 2361 "name": "CE" 2362 } 2363 } 2364 } 2365 }, 2366 { 2367 "@type": "Offer", 2368 "itemOffered": { 2369 "@type": "LocalBusiness", 2370 "name": "FARM RIOMAR RECIFE", 2371 "description": "Loja Farm Rio em RECIFE, PE", 2372 "telephone": "81 981447444", 2373 "address": { 2374 "@type": "PostalAddress", 2375 "streetAddress": "AV REPUBLICA DO LIBANO, 251, LJ 2158/2159", 2376 "addressLocality": "RECIFE", 2377 "addressRegion": "PE", 2378 "postalCode": "51110-160", 2379 "addressCountry": "BR", 2380 "addressNeighborhood": "PINA" 2381 }, 2382 "areaServed": { 2383 "@type": "City", 2384 "name": "RECIFE", 2385 "containedInPlace": { 2386 "@type": "State", 2387 "name": "PE" 2388 } 2389 } 2390 } 2391 }, 2392 { 2393 "@type": "Offer", 2394 "itemOffered": { 2395 "@type": "LocalBusiness", 2396 "name": "FARM PANTANAL", 2397 "description": "Loja Farm Rio em CUIABÃ, MT", 2398 "telephone": "65 996381804", 2399 "address": { 2400 "@type": "PostalAddress", 2401 "streetAddress": "AV HISTORIADOR RUBENS DE MENDONÃA, 3.300, LJ 2.171", 2402 "addressLocality": "CUIABÃ", 2403 "addressRegion": "MT", 2404 "postalCode": "78050-280", 2405 "addressCountry": "BR", 2406 "addressNeighborhood": "JARDIM ACLIMAÃÃO" 2407 }, 2408 "areaServed": { 2409 "@type": "City", 2410 "name": "CUIABÃ", 2411 "containedInPlace": { 2412 "@type": "State", 2413 "name": "MT" 2414 } 2415 } 2416 } 2417 }, 2418 { 2419 "@type": "Offer", 2420 "itemOffered": { 2421 "@type": "LocalBusiness", 2422 "name": "FARM GÃVEA", 2423 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2424 "telephone": "21 971809755", 2425 "address": { 2426 "@type": "PostalAddress", 2427 "streetAddress": "RUA MARQUES DE SAO VICENTE, 52, LJ 166/167", 2428 "addressLocality": "RIO DE JANEIRO", 2429 "addressRegion": "RJ", 2430 "postalCode": "22451-040", 2431 "addressCountry": "BR", 2432 "addressNeighborhood": "GÃVEA" 2433 }, 2434 "areaServed": { 2435 "@type": "City", 2436 "name": "RIO DE JANEIRO", 2437 "containedInPlace": { 2438 "@type": "State", 2439 "name": "RJ" 2440 } 2441 } 2442 } 2443 }, 2444 { 2445 "@type": "Offer", 2446 "itemOffered": { 2447 "@type": "LocalBusiness", 2448 "name": "FARM GOIÃNIA SHOPPING", 2449 "description": "Loja Farm Rio em GOIÃNIA, GO", 2450 "telephone": "62 999373179", 2451 "address": { 2452 "@type": "PostalAddress", 2453 "streetAddress": "AV T 10, 1300, LJ 153", 2454 "addressLocality": "GOIÃNIA", 2455 "addressRegion": "GO", 2456 "postalCode": "74223-900", 2457 "addressCountry": "BR", 2458 "addressNeighborhood": "SETOR BUENO" 2459 }, 2460 "areaServed": { 2461 "@type": "City", 2462 "name": "GOIÃNIA", 2463 "containedInPlace": { 2464 "@type": "State", 2465 "name": "GO" 2466 } 2467 } 2468 } 2469 }, 2470 { 2471 "@type": "Offer", 2472 "itemOffered": { 2473 "@type": "LocalBusiness", 2474 "name": "FARM RIO SUL", 2475 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2476 "telephone": "21 995200392", 2477 "address": { 2478 "@type": "PostalAddress", 2479 "streetAddress": "AV LAURO SODRÃ, 445, LJ 201", 2480 "addressLocality": "RIO DE JANEIRO", 2481 "addressRegion": "RJ", 2482 "postalCode": "22290-070", 2483 "addressCountry": "BR", 2484 "addressNeighborhood": "BOTAFOGO" 2485 }, 2486 "areaServed": { 2487 "@type": "City", 2488 "name": "RIO DE JANEIRO", 2489 "containedInPlace": { 2490 "@type": "State", 2491 "name": "RJ" 2492 } 2493 } 2494 } 2495 }, 2496 { 2497 "@type": "Offer", 2498 "itemOffered": { 2499 "@type": "LocalBusiness", 2500 "name": "FARM SOROCABA", 2501 "description": "Loja Farm Rio em VOTORANTIM, SP", 2502 "telephone": "15 996374096", 2503 "address": { 2504 "@type": "PostalAddress", 2505 "streetAddress": "AV GISELI COSTANTINO, 1850, LJ 269", 2506 "addressLocality": "VOTORANTIM", 2507 "addressRegion": "SP",
2508 "postalCode": "18110-650", 2509 "addressCountry": "BR", 2510 "addressNeighborhood": "PARQUE BELA VISTA" 2511 }, 2512 "areaServed": { 2513 "@type": "City", 2514 "name": "VOTORANTIM", 2515 "containedInPlace": { 2516 "@type": "State", 2517 "name": "SP" 2518 } 2519 } 2520 } 2521 }, 2522 { 2523 "@type": "Offer", 2524 "itemOffered": { 2525 "@type": "LocalBusiness", 2526 "name": "FARM DOM PEDRO", 2527 "description": "Loja Farm Rio em CAMPINAS, SP", 2528 "telephone": "19 997934412", 2529 "address": { 2530 "@type": "PostalAddress", 2531 "streetAddress": "AV GUILHERME CAMPOS, 500, LJ 298", 2532 "addressLocality": "CAMPINAS", 2533 "addressRegion": "SP", 2534 "postalCode": "13087-901", 2535 "addressCountry": "BR", 2536 "addressNeighborhood": "JARDIM SANTA GENEBRA" 2537 }, 2538 "areaServed": { 2539 "@type": "City", 2540 "name": "CAMPINAS", 2541 "containedInPlace": { 2542 "@type": "State", 2543 "name": "SP" 2544 } 2545 } 2546 } 2547 }, 2548 { 2549 "@type": "Offer", 2550 "itemOffered": { 2551 "@type": "LocalBusiness", 2552 "name": "FARM NAÃÃES SHOPPING", 2553 "description": "Loja Farm Rio em CRICIÃMA, SC", 2554 "telephone": "48 991270891", 2555 "address": { 2556 "@type": "PostalAddress", 2557 "streetAddress": "AV. JORGE ELIAS DE LUCCA, 677, LJ 129", 2558 "addressLocality": "CRICIÃMA", 2559 "addressRegion": "SC", 2560 "postalCode": "88.813-390", 2561 "addressCountry": "BR", 2562 "addressNeighborhood": "NOSSA SRA. DA SALETE" 2563 }, 2564 "areaServed": { 2565 "@type": "City", 2566 "name": "CRICIÃMA", 2567 "containedInPlace": { 2568 "@type": "State", 2569 "name": "SC" 2570 } 2571 } 2572 } 2573 }, 2574 { 2575 "@type": "Offer", 2576 "itemOffered": { 2577 "@type": "LocalBusiness", 2578 "name": "FARM BARRA SUL", 2579 "description": "Loja Farm Rio em PORTO ALEGRE, RS", 2580 "telephone": "51 996129739", 2581 "address": { 2582 "@type": "PostalAddress", 2583 "streetAddress": "AV DIÃRIO DAS NOTÃCIAS, 300, LJ 1074", 2584 "addressLocality": "PORTO ALEGRE", 2585 "addressRegion": "RS", 2586 "postalCode": "90810-080", 2587 "addressCountry": "BR", 2588 "addressNeighborhood": "CRISTAL" 2589 }, 2590 "areaServed": { 2591 "@type": "City", 2592 "name": "PORTO ALEGRE", 2593 "containedInPlace": { 2594 "@type": "State", 2595 "name": "RS" 2596 } 2597 } 2598 } 2599 }, 2600 { 2601 "@type": "Offer", 2602 "itemOffered": { 2603 "@type": "LocalBusiness", 2604 "name": "FARM PORTO ALEGRE", 2605 "description": "Loja Farm Rio em PORTO ALEGRE, RS", 2606 "telephone": "51 995880155", 2607 "address": { 2608 "@type": "PostalAddress", 2609 "streetAddress": "RUA OLAVO BARRETO VIANNA, 36, LJ 108/109", 2610 "addressLocality": "PORTO ALEGRE", 2611 "addressRegion": "RS", 2612 "postalCode": "90570-070", 2613 "addressCountry": "BR", 2614 "addressNeighborhood": "MOINHOS DE VENTO" 2615 }, 2616 "areaServed": { 2617 "@type": "City", 2618 "name": "PORTO ALEGRE", 2619 "containedInPlace": { 2620 "@type": "State", 2621 "name": "RS" 2622 } 2623 } 2624 } 2625 }, 2626 { 2627 "@type": "Offer", 2628 "itemOffered": { 2629 "@type": "LocalBusiness", 2630 "name": "FARM SHOPPING PÃTIO BATEL", 2631 "description": "Loja Farm Rio em CURITIBA, PR", 2632 "telephone": "41 991037542", 2633 "address": { 2634 "@type": "PostalAddress", 2635 "streetAddress": "AV DO BATEL, 1868, LJ 304", 2636 "addressLocality": "CURITIBA", 2637 "addressRegion": "PR", 2638 "postalCode": "80420-090", 2639 "addressCountry": "BR", 2640 "addressNeighborhood": "BATEL" 2641 }, 2642 "areaServed": { 2643 "@type": "City", 2644 "name": "CURITIBA", 2645 "containedInPlace": { 2646 "@type": "State", 2647 "name": "PR" 2648 } 2649 } 2650 } 2651 }, 2652 { 2653 "@type": "Offer", 2654 "itemOffered": { 2655 "@type": "LocalBusiness", 2656 "name": "FARM SANTA MARIA", 2657 "description": "Loja Farm Rio em RIO GRANDE DO SUL, RS", 2658 "telephone": "55 997297623", 2659 "address": { 2660 "@type": "PostalAddress", 2661 "streetAddress": "RODOVIA BR-287, 2885, lj 1032-1033 e 1034", 2662 "addressLocality": "RIO GRANDE DO SUL", 2663 "addressRegion": "RS", 2664 "postalCode": "97020-405", 2665 "addressCountry": "BR", 2666 "addressNeighborhood": "PATRONATO" 2667 }, 2668 "areaServed": { 2669 "@type": "City", 2670 "name": "RIO GRANDE DO SUL", 2671 "containedInPlace": { 2672 "@type": "State", 2673 "name": "RS" 2674 } 2675 } 2676 } 2677 }, 2678 { 2679 "@type": "Offer", 2680 "itemOffered": { 2681 "@type": "LocalBusiness", 2682 "name": "FARM BALNEÃRIO CAMBORIÃ", 2683 "description": "Loja Farm Rio em BALNEÃRIO CAMBORIÃ, SC", 2684 "telephone": "47 992064585", 2685 "address": { 2686 "@type": "PostalAddress", 2687 "streetAddress": "AV SANTA CATARINA, 1, LJ 208", 2688 "addressLocality": "BALNEÃRIO CAMBORIÃ", 2689 "addressRegion": "SC", 2690 "postalCode": "88339-005", 2691 "addressCountry": "BR", 2692 "addressNeighborhood": "ESTADOS" 2693 }, 2694 "areaServed": { 2695 "@type": "City", 2696 "name": "BALNEÃRIO CAMBORIÃ", 2697 "containedInPlace": { 2698 "@type": "State", 2699 "name": "SC" 2700 } 2701 } 2702 } 2703 }, 2704 { 2705 "@type": "Offer", 2706 "itemOffered": { 2707 "@type": "LocalBusiness", 2708 "name": "FARM IGUATEMI PORTO ALEGRE", 2709 "description": "Loja Farm Rio em PORTO ALEGRE, RS", 2710 "telephone": "51 996129389", 2711 "address": { 2712 "@type": "PostalAddress", 2713 "streetAddress": "AV JOAO WALLING, 1800, LJ 2276", 2714 "addressLocality": "PORTO ALEGRE", 2715 "addressRegion": "RS", 2716 "postalCode": "91349-900", 2717 "addressCountry": "BR", 2718 "addressNeighborhood": "PASSO DA AREIA" 2719 }, 2720 "areaServed": { 2721 "@type": "City", 2722 "name": "PORTO ALEGRE", 2723 "containedInPlace": { 2724 "@type": "State", 2725 "name": "RS" 2726 } 2727 } 2728 } 2729 }, 2730 { 2731 "@type": "Offer", 2732 "itemOffered": { 2733 "@type": "LocalBusiness", 2734 "name": "FARM ESTAÃÃO CUIABÃ", 2735 "description": "Loja Farm Rio em CUIABÃ, MT", 2736 "telephone": "65 96880898", 2737 "address": { 2738 "@type": "PostalAddress", 2739 "streetAddress": "AV MIGUEL SUTIL, 9300, LJ 2005", 2740 "addressLocality": "CUIABÃ", 2741 "addressRegion": "MT", 2742 "postalCode": "78020-160", 2743 "addressCountry": "BR", 2744 "addressNeighborhood": "SANTA ROSA" 2745 }, 2746 "areaServed": { 2747 "@type": "City", 2748 "name": "CUIABÃ", 2749 "containedInPlace": { 2750 "@type": "State", 2751 "name": "MT" 2752 } 2753 } 2754 } 2755 }, 2756 { 2757 "@type": "Offer", 2758 "itemOffered": { 2759 "@type": "LocalBusiness", 2760 "name": "LOJA CENTER NORTE", 2761 "description": "Loja Farm Rio em SÃO JOSÃ DOS CAMPOS, SP", 2762 "telephone": null, 2763 "address": { 2764 "@type": "PostalAddress", 2765 "streetAddress": "AV. DEP. BENEDITO MATARAZZO, 9403, .", 2766 "addressLocality": "SÃO JOSÃ DOS CAMPOS", 2767 "addressRegion": "SP", 2768 "postalCode": "12215-900", 2769 "addressCountry": "BR", 2770 "addressNeighborhood": "JARDIM OSWALDO CRUZ" 2771 }, 2772 "areaServed": { 2773 "@type": "City", 2774 "name": "SÃO JOSÃ DOS CAMPOS", 2775 "containedInPlace": { 2776 "@type": "State", 2777 "name": "SP" 2778 } 2779 } 2780 } 2781 }, 2782 { 2783 "@type": "Offer", 2784 "itemOffered": { 2785 "@type": "LocalBusiness", 2786 "name": "FARM BOSSA NOVA", 2787 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2788 "telephone": "21 971782942", 2789 "address": { 2790 "@type": "PostalAddress", 2791 "streetAddress": "ALMIRANTE SILVIO DE NORONHA, 365, LJ 101C", 2792 "addressLocality": "RIO DE JANEIRO", 2793 "addressRegion": "RJ", 2794 "postalCode": "20021-010", 2795 "addressCountry": "BR", 2796 "addressNeighborhood": "CENTRO" 2797 }, 2798 "areaServed": { 2799 "@type": "City", 2800 "name": "RIO DE JANEIRO", 2801 "containedInPlace": { 2802 "@type": "State", 2803 "name": "RJ" 2804 } 2805 } 2806 } 2807 }, 2808 { 2809 "@type": "Offer", 2810 "itemOffered": { 2811 "@type": "LocalBusiness", 2812 "name": "FARM CENTRO", 2813 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2814 "telephone": "(21) 97180-9991", 2815 "address": { 2816 "@type": "PostalAddress", 2817 "streetAddress": "Senador Dantas, 1, Loja A", 2818 "addressLocality": "RIO DE JANEIRO", 2819 "addressRegion": "RJ", 2820 "postalCode": "22224-523", 2821 "addressCountry": "BR", 2822 "addressNeighborhood": "CENTRO" 2823 }, 2824 "areaServed": { 2825 "@type": "City", 2826 "name": "RIO DE JANEIRO", 2827 "containedInPlace": { 2828 "@type": "State", 2829 "name": "RJ" 2830 } 2831 } 2832 } 2833 }, 2834 { 2835 "@type": "Offer", 2836 "itemOffered": { 2837 "@type": "LocalBusiness", 2838 "name": "FARM SANTOS", 2839 "description": "Loja Farm Rio em SANTOS, SP", 2840 "telephone": "13 997575859", 2841 "address": { 2842 "@type": "PostalAddress", 2843 "streetAddress": "RUA AZEVEDO SODRE, 56, .", 2844 "addressLocality": "SANTOS", 2845 "addressRegion": "SP", 2846 "postalCode": "11055-050", 2847 "addressCountry": "BR", 2848 "addressNeighborhood": "BOQUEIRÃO" 2849 }, 2850 "areaServed": { 2851 "@type": "City", 2852 "name": "SANTOS", 2853 "containedInPlace": { 2854 "@type": "State", 2855 "name": "SP" 2856 } 2857 } 2858 } 2859 }, 2860 { 2861 "@type": "Offer", 2862 "itemOffered": { 2863 "@type": "LocalBusiness", 2864 "name": "FARM ELDORADO", 2865 "description": "Loja Farm Rio em SÃO PAULO, SP", 2866 "telephone": "11 954724324", 2867 "address": { 2868 "@type": "PostalAddress", 2869 "streetAddress": "AV REBOUÃAS, 3970, LJ 373", 2870 "addressLocality": "SÃO PAULO", 2871 "addressRegion": "SP", 2872 "postalCode": "05402-600", 2873 "addressCountry": "BR", 2874 "addressNeighborhood": "PINHEIROS" 2875 }, 2876 "areaServed": { 2877 "@type": "City", 2878 "name": "SÃO PAULO", 2879 "containedInPlace": { 2880 "@type": "State", 2881 "name": "SP" 2882 } 2883 } 2884 } 2885 }, 2886 { 2887 "@type": "Offer", 2888 "itemOffered": { 2889 "@type": "LocalBusiness", 2890 "name": "FARM VILA BOIM", 2891 "description": "Loja Farm Rio em SÃO PAULO, SP", 2892 "telephone": "11 996535480", 2893 "address": { 2894 "@type": "PostalAddress", 2895 "streetAddress": "PRAÃA VILABOIM, 89, .", 2896 "addressLocality": "SÃO PAULO", 2897 "addressRegion": "SP", 2898 "postalCode": "01241-010", 2899 "addressCountry": "BR", 2900 "addressNeighborhood": "HIGIENÃPOLIS" 2901 }, 2902 "areaServed": { 2903 "@type": "City", 2904 "name": "SÃO PAULO", 2905 "containedInPlace": { 2906 "@type": "State", 2907 "name": "SP" 2908 } 2909 } 2910 } 2911 }, 2912 { 2913 "@type": "Offer", 2914 "itemOffered": { 2915 "@type": "LocalBusiness", 2916 "name": "FARM ILHA BELA", 2917 "description": "Loja Farm Rio em SÃO PAULO, SP", 2918 "telephone": "12 997463325", 2919 "address": { 2920 "@type": "PostalAddress", 2921 "streetAddress": "RUA PADROEIRA, 125, .", 2922 "addressLocality": "SÃO PAULO", 2923 "addressRegion": "SP", 2924 "postalCode": "11630-000", 2925 "addressCountry": "BR", 2926 "addressNeighborhood": "ILHA BELA" 2927 }, 2928 "areaServed": { 2929 "@type": "City", 2930 "name": "SÃO PAULO", 2931 "containedInPlace": { 2932 "@type": "State", 2933 "name": "SP" 2934 } 2935 } 2936 } 2937 }, 2938 { 2939 "@type": "Offer", 2940 "itemOffered": { 2941 "@type": "LocalBusiness", 2942 "name": "FARM MOOCA", 2943 "description": "Loja Farm Rio em SÃO PAULO, SP", 2944 "telephone": "11 918682286", 2945 "address": { 2946 "@type": "PostalAddress", 2947 "streetAddress": "RUA CAPITÃO PACHECO E CHAVES, 313, LJ 1060", 2948 "addressLocality": "SÃO PAULO", 2949 "addressRegion": "SP", 2950 "postalCode": "03126-000", 2951 "addressCountry": "BR", 2952 "addressNeighborhood": "VILA PRUDENTE" 2953 }, 2954 "areaServed": { 2955 "@type": "City", 2956 "name": "SÃO PAULO", 2957 "containedInPlace": { 2958 "@type": "State", 2959 "name": "SP" 2960 } 2961 } 2962 } 2963 }, 2964 { 2965 "@type": "Offer", 2966 "itemOffered": { 2967 "@type": "LocalBusiness", 2968 "name": "FARM CIDADE SP", 2969 "description": "Loja Farm Rio em SÃO PAULO, SP", 2970 "telephone": "11 995047592", 2971 "address": { 2972 "@type": "PostalAddress", 2973 "streetAddress": "AV PAULISTA, 1230, LJ 2210", 2974 "addressLocality": "SÃO PAULO", 2975 "addressRegion": "SP", 2976 "postalCode": "01310-100", 2977 "addressCountry": "BR", 2978 "addressNeighborhood": "BELA VISTA" 2979 }, 2980 "areaServed": { 2981 "@type": "City", 2982 "name": "SÃO PAULO", 2983 "containedInPlace": { 2984 "@type": "State", 2985 "name": "SP" 2986 } 2987 } 2988 } 2989 }, 2990 { 2991 "@type": "Offer", 2992 "itemOffered": { 2993 "@type": "LocalBusiness", 2994 "name": "FARM SHOPPING TIJUCA", 2995 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 2996 "telephone": "21 967448646", 2997 "address": { 2998 "@type": "PostalAddress", 2999 "streetAddress": "AV MARACANA, 987, LJ 2051/2052/2053", 3000 "addressLocality": "RIO DE JANEIRO", 3001 "addressRegion": "RJ", 3002 "postalCode": "20511-000", 3003 "addressCountry": "BR", 3004 "addressNeighborhood": "TIJUCA" 3005 }, 3006 "areaServed": { 3007 "@type": "City", 3008 "name": "RIO DE JANEIRO", 3009 "containedInPlace": { 3010 "@type": "State", 3011 "name": "RJ" 3012 } 3013 } 3014 } 3015 }, 3016 { 3017 "@type": "Offer", 3018 "itemOffered": { 3019 "@type": "LocalBusiness", 3020 "name": "FARM FEIRA DE SANTANA", 3021 "description": "Loja Farm Rio em FEIRA DE SANTANA, BA", 3022 "telephone": "77 999211738", 3023 "address": { 3024 "@type": "PostalAddress", 3025 "streetAddress": "AV. JOÃO DURVAL CARNEIRO, 3665, TÃRREO", 3026 "addressLocality": "FEIRA DE SANTANA", 3027 "addressRegion": "BA", 3028 "postalCode": "44090-008", 3029 "addressCountry": "BR", 3030 "addressNeighborhood": "CASEB" 3031 }, 3032 "areaServed": { 3033 "@type": "City", 3034 "name": "FE
3034IRA DE SANTANA", 3035 "containedInPlace": { 3036 "@type": "State", 3037 "name": "BA" 3038 } 3039 } 3040 } 3041 }, 3042 { 3043 "@type": "Offer", 3044 "itemOffered": { 3045 "@type": "LocalBusiness", 3046 "name": "FARM CENTER NORTE", 3047 "description": "Loja Farm Rio em SÃO PAULO, SP", 3048 "telephone": "11 918687919", 3049 "address": { 3050 "@type": "PostalAddress", 3051 "streetAddress": "AV OTTO BAUMGART, 500, LJ 1160B", 3052 "addressLocality": "SÃO PAULO", 3053 "addressRegion": "SP", 3054 "postalCode": "02049-900", 3055 "addressCountry": "BR", 3056 "addressNeighborhood": "VILA GUILHERME" 3057 }, 3058 "areaServed": { 3059 "@type": "City", 3060 "name": "SÃO PAULO", 3061 "containedInPlace": { 3062 "@type": "State", 3063 "name": "SP" 3064 } 3065 } 3066 } 3067 }, 3068 { 3069 "@type": "Offer", 3070 "itemOffered": { 3071 "@type": "LocalBusiness", 3072 "name": "FARM NORTE SHOPPING", 3073 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 3074 "telephone": "21 967156226", 3075 "address": { 3076 "@type": "PostalAddress", 3077 "streetAddress": "AV DOM HÃLDER CÃMARA, 5474, LJ 2205/2206", 3078 "addressLocality": "RIO DE JANEIRO", 3079 "addressRegion": "RJ", 3080 "postalCode": "20771-900", 3081 "addressCountry": "BR", 3082 "addressNeighborhood": "CACHAMBI" 3083 }, 3084 "areaServed": { 3085 "@type": "City", 3086 "name": "RIO DE JANEIRO", 3087 "containedInPlace": { 3088 "@type": "State", 3089 "name": "RJ" 3090 } 3091 } 3092 } 3093 }, 3094 { 3095 "@type": "Offer", 3096 "itemOffered": { 3097 "@type": "LocalBusiness", 3098 "name": "FARM VILA DA SERRA", 3099 "description": "Loja Farm Rio em NOVA LIMA, MG", 3100 "telephone": "31 995605296", 3101 "address": { 3102 "@type": "PostalAddress", 3103 "streetAddress": "ALAMEDA OSCAR NIEMEYER, 1369, LJ 08/09", 3104 "addressLocality": "NOVA LIMA", 3105 "addressRegion": "MG", 3106 "postalCode": "34006-065", 3107 "addressCountry": "BR", 3108 "addressNeighborhood": "VILA DA SERRA" 3109 }, 3110 "areaServed": { 3111 "@type": "City", 3112 "name": "NOVA LIMA", 3113 "containedInPlace": { 3114 "@type": "State", 3115 "name": "MG" 3116 } 3117 } 3118 } 3119 }, 3120 { 3121 "@type": "Offer", 3122 "itemOffered": { 3123 "@type": "LocalBusiness", 3124 "name": "FARM UBERABA", 3125 "description": "Loja Farm Rio em UBERABA, MG", 3126 "telephone": "34 999319604", 3127 "address": { 3128 "@type": "PostalAddress", 3129 "streetAddress": "AV SANTA BEATRIZ DA SILVA, 1501, LJ 408", 3130 "addressLocality": "UBERABA", 3131 "addressRegion": "MG", 3132 "postalCode": "38020-433", 3133 "addressCountry": "BR", 3134 "addressNeighborhood": "SÃO BENEDITO" 3135 }, 3136 "areaServed": { 3137 "@type": "City", 3138 "name": "UBERABA", 3139 "containedInPlace": { 3140 "@type": "State", 3141 "name": "MG" 3142 } 3143 } 3144 } 3145 }, 3146 { 3147 "@type": "Offer", 3148 "itemOffered": { 3149 "@type": "LocalBusiness", 3150 "name": "FARM SHOPPING PARKJACAREPAGUÃ", 3151 "description": "Loja Farm Rio em RIO DE JANEIRO, RJ", 3152 "telephone": null, 3153 "address": { 3154 "@type": "PostalAddress", 3155 "streetAddress": "ESTRADA JACAREPAGUÃ, 6069, LJ 235B", 3156 "addressLocality": "RIO DE JANEIRO", 3157 "addressRegion": "RJ", 3158 "postalCode": "22753-045", 3159 "addressCountry": "BR", 3160 "addressNeighborhood": "ANIL" 3161 }, 3162 "areaServed": { 3163 "@type": "City", 3164 "name": "RIO DE JANEIRO", 3165 "containedInPlace": { 3166 "@type": "State", 3167 "name": "RJ" 3168 } 3169 } 3170 } 3171 }, 3172 { 3173 "@type": "Offer", 3174 "itemOffered": { 3175 "@type": "LocalBusiness", 3176 "name": "FARM ETC PARKSHOPPING BRASÃLIA", 3177 "description": "Loja Farm Rio em BRASÃLIA, DF", 3178 "telephone": null, 3179 "address": { 3180 "@type": "PostalAddress", 3181 "streetAddress": "ParkShopping BrasÃlia, SMAS Trecho 1, SIN, loja 149 C/149 D", 3182 "addressLocality": "BRASÃLIA", 3183 "addressRegion": "DF", 3184 "postalCode": "71219-900", 3185 "addressCountry": "BR", 3186 "addressNeighborhood": "Zona Industrial (Guará)" 3187 }, 3188 "areaServed": { 3189 "@type": "City", 3190 "name": "BRASÃLIA", 3191 "containedInPlace": { 3192 "@type": "State", 3193 "name": "DF" 3194 } 3195 } 3196 } 3197 }, 3198 { 3199 "@type": "Offer", 3200 "itemOffered": { 3201 "@type": "LocalBusiness", 3202 "name": "FARM ETC RIBEIRÃO SHOPPING", 3203 "description": "Loja Farm Rio em RIBEIRÃO PRETO, SP", 3204 "telephone": null, 3205 "address": { 3206 "@type": "PostalAddress", 3207 "streetAddress": "AV CORONEL FERNANDO FERREIRA LEITE, 1540, LOJA 248/249", 3208 "addressLocality": "RIBEIRÃO PRETO", 3209 "addressRegion": "SP", 3210 "postalCode": "14.026-900", 3211 "addressCountry": "BR", 3212 "addressNeighborhood": "JARDIM CALIFORNIA" 3213 }, 3214 "areaServed": { 3215 "@type": "City", 3216 "name": "RIBEIRÃO PRETO", 3217 "containedInPlace": { 3218 "@type": "State", 3219 "name": "SP" 3220 } 3221 } 3222 } 3223 }, 3224 { 3225 "@type": "Offer", 3226 "itemOffered": { 3227 "@type": "LocalBusiness", 3228 "name": "FARM TRANCOSO", 3229 "description": "Loja Farm Rio em PORTO SEGURO, BA", 3230 "telephone": null, 3231 "address": { 3232 "@type": "PostalAddress", 3233 "streetAddress": "PRAÃA SÃO JOÃO, 366", 3234 "addressLocality": "PORTO SEGURO", 3235 "addressRegion": "BA", 3236 "postalCode": "45810-000", 3237 "addressCountry": "BR", 3238 "addressNeighborhood": null 3239 }, 3240 "areaServed": { 3241 "@type": "City", 3242 "name": "PORTO SEGURO", 3243 "containedInPlace": { 3244 "@type": "State", 3245 "name": "BA" 3246 } 3247 } 3248 } 3249 }, 3250 { 3251 "@type": "Offer", 3252 "itemOffered": { 3253 "@type": "LocalBusiness", 3254 "name": "FARM VILLA LOBOS", 3255 "description": "Loja Farm Rio em SÃO PAULO, SP", 3256 "telephone": "11 999104105", 3257 "address": { 3258 "@type": "PostalAddress", 3259 "streetAddress": "Av. Dra. Ruth Cardoso, 4777, LJ 263/264", 3260 "addressLocality": "SÃO PAULO", 3261 "addressRegion": "SP", 3262 "postalCode": "05477-000", 3263 "addressCountry": "BR", 3264 "addressNeighborhood": "Jardim Universidade Pinheiros" 3265 }, 3266 "areaServed": { 3267 "@type": "City", 3268 "name": "SÃO PAULO", 3269 "containedInPlace": { 3270 "@type": "State", 3271 "name": "SP" 3272 } 3273 } 3274 } 3275 } 3276 ] 3277 } 3278}</script>
3278<link rel="preload" as="image" href="https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg" imagesrcset="https://decoims.com/image?fit=cover&width=412&height=534&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 412w, https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 824w" imagesizes="100vw" fetchpriority="high" media="(max-width: 767px)"/><link rel="preload" as="image" href="https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F23_BANNER-PRIMAVERA-20-10%2F23-09-26-home-banner-1-tv-primavera-25-10-desktop-.jpg%3Fauthuser%3D0" imagesrcset="https://decoims.com/image?fit=cover&width=1440&height=720&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F23_BANNER-PRIMAVERA-20-10%2F23-09-26-home-banner-1-tv-primavera-25-10-desktop-.jpg%3Fauthuser%3D0 1440w, https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F23_BANNER-PRIMAVERA-20-10%2F23-09-26-home-banner-1-tv-primavera-25-10-desktop-.jpg%3Fauthuser%3D0 2880w" imagesizes="100vw" fetchpriority="high" media="(min-width: 768px)"/></head><body><section id="2602763839-0" data-manifest-key="website/sections/Seo/SeoV2.tsx"></section><section id="1753571943-0" data-manifest-key="site/sections/PageAssets.tsx">
3278<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(()=>addEventListener("load",(()=>{navigator&&navigator.serviceWorker&&navigator.serviceWorker.getRegistrations().then((e=>{for(const r of e)r.unregister()}))})))()</script>
3278</section><section id="1158317325-0" data-manifest-key="site/sections/Theme/Fonts.tsx"></section><section id="3359664452-0" data-manifest-key="site/sections/Tracking/OnePixel.tsx"></section><section id="3617539200-0" data-manifest-key="site/sections/Tracking/Dito.tsx"><div></div></section><section id="1564831294-0" data-manifest-key="site/sections/VWO.tsx"></section><section id="1609252039-0" data-manifest-key="site/sections/Sizebay.tsx"></section><section id="684817977-0" data-manifest-key="site/sections/Analytics/AllPages.tsx">
3278<script src="data:text/javascript,(e%3D%3E%7B(()%3D%3E%7Bconst%20o%3Dnew%20URL(e.url).pathname%3Bif(globalThis.window.dataLayer%3DglobalThis.window.dataLayer%7C%7C%5B%5D%2C%22%2F%22%3D%3D%3Do)return%20globalThis.window.dataLayer.push(%7Blocal%3A%22home%22%2Cpage_category%3A%22home%22%7D)%2Cvoid%200%3Bconst%20a%3Ddocument.querySelector(%22script%5Btype%3D'application%2Fld%2Bjson'%5D%22)%2Ct%3Da%3F.textContent%3Bif(!t)return%20globalThis.window.dataLayer.push(%7Blocal%3A%22other%22%7D)%2Cvoid%200%3Bconst%20r%3DJSON.parse(t)%3Bif(%22ProductDetailsPage%22%3D%3D%3Dr%5B%22%40type%22%5D)%7Bconst%20e%3Dr%3Breturn%20globalThis.window.dataLayer.push(%7Blocal%3A%22PDP%22%2Cpage_category%3A%22pdp%22%2Cseller_id%3Ae.product%3F.offers%3F.offers%3F.%5B0%5D%3F.seller%2Cseller_ids%3Ae.product%3F.offers%3F.offers%3F.map((e%3D%3Ee.seller)).join(%22%2C%22)%2Cproduct_reference_id%3Ae.product%3F.productID%2Csku_stocks%3Ae.product%3F.isVariantOf%3F.hasVariant%3F.map((e%3D%3E(%7B%5Be.productID%5D%3Ae.offers%3F.offers%3F.%5B0%5D%3F.inventoryLevel.value%7D)))%7D)%2Cvoid%200%7Dif(%22ProductListingPage%22%3D%3D%3Dr%5B%22%40type%22%5D)%7Bconst%20e%3Dr%3Breturn%20globalThis.window.dataLayer.push(%7Blocal%3A%22PLP%22%2Cpage_category%3A%22lista-produtos%22%2Cpage_department%3Ae.seo%3F.title%7D)%2Cvoid%200%7DglobalThis.window.dataLayer.push(%7Blocal%3A%22other%22%7D)%7D)()%7D)(%7B%22url%22%3A%22https%3A%2F%2Fwww.farmrio.com.br%2F%22%7D)" nonce="16c268fd223f430b98c07279b4c2abab"></script>
3278</section><section id="558325882-0" data-manifest-key="site/sections/Tracking/DetectAdBlocker.tsx"></section><section id="757239036-0" data-manifest-key="htmx/sections/htmx.tsx"></section><section id="681525367-0" data-manifest-key="site/sections/Tracking/Bofity.tsx"></section><section id="1191440989-0" data-manifest-key="site/sections/Miscellaneous/ScrollToTop.tsx"><div id="scrollToTop" hx-on:click="window.scrollTo({ top: 0, behavior: 'smooth' })" hx-swap="outerHTML swap:1s" style="display:none;" class="fixed right-10 bottom-32 text-center size-12 cursor-pointer rounded-full z-10 bg-[#fff]"><div class="w-full h-full relative"><svg width="32" height="32" stroke-width="1" class="inline-block align-middle mt-1"><use href="/sprites.svg?__deco_c=2#ArrowTop"></use></svg><span class="absolute bottom-2 left-3 text-x block">Topo</span></div></div>
3278<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(()=>{const l=document.getElementById("scrollToTop"),e=globalThis.window.location.href,o=document.getElementById("checkbox-buttons-group"),s=s=>{!s||e.includes("account#")||e.includes("wishlist")||o&&o.checked?l.style.display="none":l.style.display="block"},n=()=>{const l=globalThis.scrollY>globalThis.innerHeight;s(l)};globalThis.addEventListener("scroll",(()=>{const l=globalThis.scrollY>globalThis.innerHeight;s(l)})),o&&o.addEventListener("change",n),l.addEventListener("click",(l=>{l.preventDefault(),globalThis.scrollTo({top:0,behavior:"smooth"})}));const t=globalThis.scrollY>globalThis.innerHeight;s(t)})()</script>
3278</section><section id="1038799682-0" data-manifest-key="site/sections/Miscellaneous/ButtonHelp.tsx"><div id="help-button" class="right-2 md:right-10 bottom-8 md:bottom-10 z-40 fixed flex items-end transition-all duration-300 ease-out"><div class="z-50 flex-col w-full transition-all duration-1000 swap flex "><input id="checkbox-buttons-group" type="checkbox"/><div class="flex-col justify-end items-end space-y-2 h-full [#help-button:has(#checkbox-buttons-group:checked)_&]:flex hidden pointer-events-none"><button style="--delay:400ms;" hx-trigger="click" hx-on:click="(function toggleInputs({id:t,exchangeReturn:e,orderStatus:r,helpButtons:i}){const s=t=>document.getElementById(t),n=t=>document.getElementsByClassName(t),c=t=>s(t),o=c(t),a=s(`${t}-button`),d=n(`${t}-icon-input`),h=Array.from(document.getElementsByClassName("input-buttons"));if(!o||0===h.length)return;h.forEach((t=>t.checked=!0));const l=c(e),m=s(`${e}-button`),b=n(`${e}-icon-input`),u=c(r),g=s(`${r}-button`),L=n(`${r}-icon-input`),p=s(i);e!==t&&l&&(l.checked=!1,m&&(m.classList.add("btn-outline","btn","bg-white","border-neutral"),m.classList.remove("btn-outline-hover","bg-primary","border-primary","text-white"),b.item(0)?.classList.remove("text-white"))),r!==t&&u&&(u.checked=!1,g&&(g.classList.add("btn-outline","btn","bg-white","border-neutral"),g.classList.remove("btn-outline-hover","bg-primary","border-primary","text-white"),L.item(0)?.classList.remove("text-white"))),o.checked=!o.checked,o.checked?(a?.classList.remove("btn-outline","btn","bg-white","border-neutral"),a?.classList.add("md:btn-outline-hover","bg-primary","border-primary","text-white"),d.item(0)?.classList.add("md:text-white")):(a?.classList.add("btn-outline","btn","bg-white","border-neutral"),a?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),d.item(0)?.classList.remove("md:text-white")),l?.checked||u?.checked||h.forEach((t=>t.checked=!1)),p&&(o.checked?(p.classList.remove("right-2","md:right-10"),p.classList.add("right-120")):(p.classList.add("right-2","md:right-10"),p.classList.remove("right-120")))})({"id":"drawer-help-button-order-exchange-return","exchangeReturn":"drawer-help-button-order-exchange-return","orderStatus":"drawer-help-button-order-status","helpButtons":"help-button"})" id="drawer-help-button-order-exchange-return-button" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22global%3Afloating%3Aajuda%3ATroca%20e%20devolu%C3%A7%C3%A3o%22%7D" data-event-trigger="click" class="relative group has-[input:checked]:w-[56px] has-[input:checked]:justify-center has-[input:checked]:flex has-[input:checked]:items-center h-[56px] min-w-min btn btn-circle btn-primary btn-outline px-5 swap border border-solid border-neutral bg-white transition-[opacity,transform,background-color,color,border-color] duration-300 [#help-button:has(#checkbox-buttons-group:checked)_&]:translate-y-0 translate-y-2 [#help-button:has(#checkbox-buttons-group:checked)_&]:opacity-100 opacity-0 [#help-button:has(#checkbox-buttons-group:checked)_&]:pointer-events-auto pointer-events-none [#help-button:has(#checkbox-buttons-group:checked)_&]:delay-[var(--delay),var(--delay),0ms,0ms,0ms,0ms] delay-0"><input type="checkbox" class="input-buttons"/><p class="group-has-[input:checked]:hidden text-sm md:text-base font-light text-primary whitespace-nowrap group-hover:md:text-white ">Troca e devolução</p><svg width="16" height="24" stroke-width="16" class="absolute hidden group-has-[input
3278:checked]:block drawer-help-button-order-exchange-return-icon-input"><use href="/sprites.svg?__deco_c=2#Replacement"></use></svg></button><button style="--delay:300ms;" hx-trigger="click" hx-on:click="(function toggleInputs({id:t,exchangeReturn:e,orderStatus:r,helpButtons:i}){const s=t=>document.getElementById(t),n=t=>document.getElementsByClassName(t),c=t=>s(t),o=c(t),a=s(`${t}-button`),d=n(`${t}-icon-input`),h=Array.from(document.getElementsByClassName("input-buttons"));if(!o||0===h.length)return;h.forEach((t=>t.checked=!0));const l=c(e),m=s(`${e}-button`),b=n(`${e}-icon-input`),u=c(r),g=s(`${r}-button`),L=n(`${r}-icon-input`),p=s(i);e!==t&&l&&(l.checked=!1,m&&(m.classList.add("btn-outline","btn","bg-white","border-neutral"),m.classList.remove("btn-outline-hover","bg-primary","border-primary","text-white"),b.item(0)?.classList.remove("text-white"))),r!==t&&u&&(u.checked=!1,g&&(g.classList.add("btn-outline","btn","bg-white","border-neutral"),g.classList.remove("btn-outline-hover","bg-primary","border-primary","text-white"),L.item(0)?.classList.remove("text-white"))),o.checked=!o.checked,o.checked?(a?.classList.remove("btn-outline","btn","bg-white","border-neutral"),a?.classList.add("md:btn-outline-hover","bg-primary","border-primary","text-white"),d.item(0)?.classList.add("md:text-white")):(a?.classList.add("btn-outline","btn","bg-white","border-neutral"),a?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),d.item(0)?.classList.remove("md:text-white")),l?.checked||u?.checked||h.forEach((t=>t.checked=!1)),p&&(o.checked?(p.classList.remove("right-2","md:right-10"),p.classList.add("right-120")):(p.classList.add("right-2","md:right-10"),p.classList.remove("right-120")))})({"id":"drawer-help-button-order-status","exchangeReturn":"drawer-help-button-order-exchange-return","orderStatus":"drawer-help-button-order-status","helpButtons":"help-button"})" id="drawer-help-button-order-status-button" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22global%3Afloating%3Aajuda%3AStatus%20do%20pedido%22%7D" data-event-trigger="click" class="relative group has-[input:checked]:w-[56px] has-[input:checked]:justify-center has-[input:checked]:flex has-[input:checked]:items-center h-[56px] min-w-min btn btn-circle btn-primary btn-outline px-5 swap border border-solid border-neutral bg-white transition-[opacity,transform,background-color,color,border-color] duration-300 [#help-button:has(#checkbox-buttons-group:checked)_&]:translate-y-0 translate-y-2 [#help-button:has(#checkbox-buttons-group:checked)_&]:opacity-100 opacity-0 [#help-button:has(#checkbox-buttons-group:checked)_&]:pointer-events-auto pointer-events-none [#help-button:has(#checkbox-buttons-group:checked)_&]:delay-[var(--delay),var(--delay),0ms,0ms,0ms,0ms] delay-0"><input type="checkbox" class="input-buttons"/><p class="group-has-[input:checked]:hidden text-sm md:text-base font-light text-primary whitespace-nowrap group-hover:md:text-white ">Status do pedido</p><svg width="16" height="24" stroke-width="16" class="absolute hidden group-has-[input:checked]:block drawer-help-button-order-status-icon-input"><use href="/sprites.svg?__deco_c=2#Box"></use></svg></button><a style="--delay:200ms;" target="_blank" href="https://api.whatsapp.com/send/?phone=552137337701&text&type=phone_number&app_absent=0" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22global%3Afloating%3Aajuda%3AWhatsapp%22%7D" data-event-trigger="click" class="relative group has-[input
3278:checked]:w-[56px] has-[input:checked]:justify-center has-[input:checked]:flex has-[input:checked]:items-center h-[56px] min-w-min btn btn-circle btn-primary btn-outline px-5 swap border border-solid border-neutral bg-white transition-[opacity,transform,background-color,color,border-color] duration-300 [#help-button:has(#checkbox-buttons-group:checked)_&]:translate-y-0 translate-y-2 [#help-button:has(#checkbox-buttons-group:checked)_&]:opacity-100 opacity-0 [#help-button:has(#checkbox-buttons-group:checked)_&]:pointer-events-auto pointer-events-none [#help-button:has(#checkbox-buttons-group:checked)_&]:delay-[var(--delay),var(--delay),0ms,0ms,0ms,0ms] delay-0"><input type="checkbox" class="input-buttons"/><p class="group-has-[input:checked]:hidden text-sm md:text-base font-light text-primary whitespace-nowrap group-hover:md:text-white">Whatsapp</p><svg width="16" height="24" stroke-width="1" class="absolute hidden group-has-[input:checked]:block"><use href="/sprites.svg?__deco_c=2#WhatsApp"></use></svg></a><a style="--delay:100ms;" target="_blank" href="https://www.farmrio.com.br/fala-farm" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22global%3Afloating%3Aajuda%3AFala%20Farm%22%7D" data-event-trigger="click" class="relative group has-[input:checked]:w-[56px] has-[input:checked]:justify-center has-[input:checked]:flex has-[input:checked]:items-center h-[56px] min-w-min btn btn-circle btn-primary btn-outline px-5 swap border border-solid border-neutral bg-white transition-[opacity,transform,background-color,color,border-color] duration-300 [#help-button:has(#checkbox-buttons-group:checked)_&]:translate-y-0 translate-y-2 [#help-button:has(#checkbox-buttons-group:checked)_&]:opacity-100 opacity-0 [#help-button:has(#checkbox-buttons-group:checked)_&]:pointer-events-auto pointer-events-none [#help-button:has(#checkbox-buttons-group:checked)_&]:delay-[var(--delay),var(--delay),0ms,0ms,0ms,0ms] delay-0"><input type="checkbox" class="input-buttons"/><p class="group-has-[input:checked]:hidden text-sm md:text-base font-light text-primary whitespace-nowrap group-hover:md:text-white">Fala Farm</p><svg width="16" height="24" stroke-width="1" class="absolute hidden group-has-[input:checked]:block"><use href="/sprites.svg?__deco_c=2#Help"></use></svg></a></div><div class="flex flex-col justify-end items-end"><label aria-label="Botão de Ajuda" class="z-50 mt-2 w-[99px] relative has-[input:checked]:w-[56px] has-[input:checked]:justify-center has-[input:checked]:flex has-[input:checked]:items-center h-[56px] min-w-min btn btn-circle btn-outline btn-primary border border-neutral px-4 swap bg-white transition-all duration-300 group"><input id="check-help" type="checkbox" hx-trigger="click" hx-on:click="(function closeDrawer(e,t,c,n){const s=document.getElementById(e),o=document.getElementById(t),d=Array.from(document.getElementsByClassName("input-buttons"));if(!s||!o||!d.length)return;if(n){const e=document.getElementById("checkbox-buttons-group"),t=document.getElementById(c);d.some((e=>e.checked))||s?.checked&&t?.checked?t&&e&&(t.checked=!1,e.checked=!1):document?.getElementById("checkbox-buttons-group")?.click()}d.forEach((e=>e.checked=!1));const m=document.getElementById(`${e}-button`),r=document.getElementsByClassName(`${e}-icon-input`),i=document.getElementById(`${c}-button`),l=document.getElementsByClassName(`${c}-icon-input`);i?.classList.add("btn-outline","btn","bg-white","border-neutral"),i?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),l?.item(0)?.classList.remove("md:text-white"),m?.classList.add("btn-outline","btn","bg-white","border-neutral"),m?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),r?.item(0)?.classList.remove("md:text-white"),s.checked=!1,s?.checked?(o.classList.remove("right-2","md:right-10"),o.classList.add("right-120")):(o.classList.add("right-2","md:right-10"),o.classList.remove("right-120"))})("
3278drawer-help-button-order-status", "help-button", "drawer-help-button-order-exchange-return", true)" class="right-120"/><p class="group-has-[input:checked]:hidden text-base font-light text-primary whitespace-nowrap group-hover:md:text-white">Ajuda?</p><svg width="14" height="17" stroke-width="16" class="absolute hidden group-has-[input:checked]:block text-primary"><use href="/sprites.svg?__deco_c=2#XMarkFarm"></use></svg></label></div></div><div class="drawer drawer-end"><input id="drawer-help-button-order-status" name="drawer-help-button-order-status" type="checkbox" aria-label="closed drawer" class="drawer-toggle"/><div class="drawer-content"></div><aside data-aside="true" class="drawer-side h-full z-40 overflow-hidden [[data-aside]&_section]:contents"><label hx-on:click="(function closeDrawer(e,t,c,n){const s=document.getElementById(e),o=document.getElementById(t),d=Array.from(document.getElementsByClassName("input-buttons"));if(!s||!o||!d.length)return;if(n){const e=document.getElementById("checkbox-buttons-group"),t=document.getElementById(c);d.some((e=>e.checked))||s?.checked&&t?.checked?t&&e&&(t.checked=!1,e.checked=!1):document?.getElementById("checkbox-buttons-group")?.click()}d.forEach((e=>e.checked=!1));const m=document.getElementById(`${e}-button`),r=document.getElementsByClassName(`${e}-icon-input`),i=document.getElementById(`${c}-button`),l=document.getElementsByClassName(`${c}-icon-input`);i?.classList.add("btn-outline","btn","bg-white","border-neutral"),i?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),l?.item(0)?.classList.remove("md:text-white"),m?.classList.add("btn-outline","btn","bg-white","border-neutral"),m?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),r?.item(0)?.classList.remove("md:text-white"),s.checked=!1,s?.checked?(o.classList.remove("right-2","md:right-10"),o.classList.add("right-120")):(o.classList.add("right-2","md:right-10"),o.classList.remove("right-120"))})("drawer-help-button-order-status", "help-button", "drawer-help-button-order-exchange-return")" class="drawer-overlay"></label><div id="help-button-drawer-container" class="relative h-full flex flex-col bg-white w-110 px-10 pt-10"><div class="flex w-full pt-2 text-primary justify-end"><button type="button" hx-on:click="(function closeDrawer(e,t,c,n){const s=document.getElementById(e),o=document.getElementById(t),d=Array.from(document.getElementsByClassName("input-buttons"));if(!s||!o||!d.length)return;if(n){const e=document.getElementById("checkbox-buttons-group"),t=document.getElementById(c);d.some((e=>e.checked))||s?.checked&&t?.checked?t&&e&&(t.checked=!1,e.checked=!1):document?.getElementById("checkbox-buttons-group")?.click()}d.forEach((e=>e.checked=!1));const m=document.getElementById(`${e}-button`),r=document.getElementsByClassName(`${e}-icon-input`),i=document.getElementById(`${c}-button`),l=document.getElementsByClassName(`${c}-icon-input`);i?.classList.add("btn-outline","btn","bg-white","border-neutral"),i?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),l?.item(0)?.classList.remove("md:text-white"),m?.classList.add("btn-outline","btn","bg-white","border-neutral"),m?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),r?.item(0)?.classList.remove("md:text-white"),s.checked=!1,s?.checked?(o.classList.remove("right-2","md:right-10"),o.classList.add("right-120")):(o.classList.add("right-2","md:right-10"),o.classList.remove("right-120"))})("
3278drawer-help-button-order-status", "help-button", "drawer-help-button-order-exchange-return", false)" class="size-8 flex justify-center items-center"><svg width="15" height="15" stroke-width="16"><use href="/sprites.svg?__deco_c=2#XMarkFarm"></use></svg></button></div><div style="height:calc(100% - 200px);" hx-get="/deco/render?props=%7B%22props%22%3A%7B%22mode%22%3A%22eager%22%7D%2C%22component%22%3A%22%2Fcomponents%2Fui%2Fhelp-elements%2Fdrawer%2FOrderStatus.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881" hx-trigger="intersect" hx-target="this" hx-select="section>*" hx-swap="outerHTML" class="h-full"><p class="text-2xl">seus pedidos</p><div style="height:100%;" class="w-full flex justify-center items-center"><span class="loading loading-spinner"></span></div></div></div></aside></div>
3278<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(e=>{addEventListener("keydown",(d=>{if("Escape"!==d.key&&27!==d.keyCode)return;const n=document.getElementById(e);n&&(n.checked=!1)}))})("drawer-help-button-order-status")</script>
3278<div class="drawer drawer-end"><input id="drawer-help-button-order-exchange-return" name="drawer-help-button-order-exchange-return" type="checkbox" aria-label="closed drawer" class="drawer-toggle"/><div class="drawer-content"></div><aside data-aside="true" class="drawer-side h-full z-40 overflow-hidden [[data-aside]&_section]:contents"><label hx-on:click="(function closeDrawer(e,t,c,n){const s=document.getElementById(e),o=document.getElementById(t),d=Array.from(document.getElementsByClassName("input-buttons"));if(!s||!o||!d.length)return;if(n){const e=document.getElementById("checkbox-buttons-group"),t=document.getElementById(c);d.some((e=>e.checked))||s?.checked&&t?.checked?t&&e&&(t.checked=!1,e.checked=!1):document?.getElementById("checkbox-buttons-group")?.click()}d.forEach((e=>e.checked=!1));const m=document.getElementById(`${e}-button`),r=document.getElementsByClassName(`${e}-icon-input`),i=document.getElementById(`${c}-button`),l=document.getElementsByClassName(`${c}-icon-input`);i?.classList.add("btn-outline","btn","bg-white","border-neutral"),i?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),l?.item(0)?.classList.remove("md:text-white"),m?.classList.add("btn-outline","btn","bg-white","border-neutral"),m?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),r?.item(0)?.classList.remove("md:text-white"),s.checked=!1,s?.checked?(o.classList.remove("right-2","md:right-10"),o.classList.add("right-120")):(o.classList.add("right-2","md:right-10"),o.classList.remove("right-120"))})("drawer-help-button-order-exchange-return", "help-button", "drawer-help-button-order-status")" class="drawer-overlay"></label><div id="help-button-drawer-container" class="relative h-full flex flex-col bg-white w-110 px-10 pt-10"><div class="flex w-full pt-2 text-primary justify-between"><label for="drawer-exchange-select-shop" class="flex justify-center items-center size-10 cursor-pointer [#help-button-drawer-container:has(#drawer-exchange-select-shop:not(:checked))_&]:invisible"><svg width="36" height="36" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><button type="button" hx-on:click="(function closeDrawer(e,t,c,n){const s=document.getElementById(e),o=document.getElementById(t),d=Array.from(document.getElementsByClassName("input-buttons"));if(!s||!o||!d.length)return;if(n){const e=document.getElementById("checkbox-buttons-group"),t=document.getElementById(c);d.some((e=>e.checked))||s?.checked&&t?.checked?t&&e&&(t.checked=!1,e.checked=!1):document?.getElementById("checkbox-buttons-group")?.click()}d.forEach((e=>e.checked=!1));const m=document.getElementById(`${e}-button`),r=document.getElementsByClassName(`${e}-icon-input`),i=document.getElementById(`${c}-button`),l=document.getElementsByClassName(`${c}-icon-input`);i?.classList.add("btn-outline","btn","bg-white","border-neutral"),i?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),l?.item(0)?.classList.remove("md:text-white"),m?.classList.add("btn-outline","btn","bg-white","border-neutral"),m?.classList.remove("md:btn-outline-hover","bg-primary","border-primary","text-white"),r?.item(0)?.classList.remove("md:text-white"),s.checked=!1,s?.checked?(o.classList.remove("right-2","md:right-10"),o.classList.add("right-120")):(o.classList.add("right-2","md:right-10"),o.classList.remove("right-120"))})("drawer-help-button-order-exchange-return", "help-button", "
3278drawer-help-button-order-status", false)" class="size-8 flex justify-center items-center"><svg width="15" height="15" stroke-width="16"><use href="/sprites.svg?__deco_c=2#XMarkFarm"></use></svg></button></div><div class="overflow-auto flex-grow hide-scrollbar"><input type="checkbox" id="drawer-exchange-select-shop" class="peer hidden"/><div class="peer-checked:hidden font-light text-sm leading-4 mt-9"><p class="text-2xl mb-6 text-primary leading-none lg:font-medium">Quero trocar minha compra</p><p class="mb-4 lg:mb-6 text-[#999999]">Você tem até trinta dias para trocar produtos comprados no e-FARM em uma de nossas lojas fÃsicas.</p><p class="mb-4 lg:mb-6 text-[#999999]">BenefÃcio exclusivo nas lojas: se o valor da sua nova compra for maior do que o valor da peça devolvida, você ganha 10%OFF na diferença. lembra de levar a nota fiscal, tá bem?!</p><p class="mb-4 lg:mb-6 text-[#999999]">Mas fica de olho, produtos do bazar, me leva ou produtos entregues por parceiros, marketplace e OFF premium não poderão ser trocados, ok?</p><p class="!mb-0 mb-4 lg:mb-6 text-[#999999]">
3278Somente devolvido no prazo de até 07 dias corridos do recebimento, caso opte por estorno. caso opte por receber créditos, o prazo será de até 14 dias após o recebimento do pedido.</p><label role="button" for="drawer-exchange-select-shop" class="btn btn-primary mt-6 mb-12 w-full font-md text-white max-w-80 lg:max-w-87 font-light">Troca em loja</label><p class="text-2xl mb-6 text-primary leading-none lg:font-medium">Quero devolver minha compra</p><p class="mb-4 lg:mb-6 text-[#999999]">Você pode optar em receber <span class="font-medium">créditos</span> No site ou app como reembolso da sua devolução. eles são super rápidos e, em até uma semana, ficam disponÃveis para uso na sua carteira digital, localizada no perfil.</p><p class="mb-4 lg:mb-6 text-[#999999]">Nesse caso, você tem até 14 dias corridos desde o recebimento do produto para realizar a solicitação. se preferir o estorno, o prazo é de 7 dias corridos, contados a partir da data do recebimento do pedido.</p><p class="!mb-0 mb-4 lg:mb-6 text-[#999999]">Para solicitar a sua devolução <a href="/_secure/account#/orders" class="underline">clique aqui</a>, faça login e escolha a modalidade de sua preferência.</p><a href="https://farmrio.troque.app.br" target="_blank" rel="noopener noreferrer" class="btn btn-primary mt-6 mb-12 w-full font-md text-white max-w-80 lg:max-w-87 font-light">Devolução no site</a></div><div class="hidden peer-checked:block text-sm text-light leading-4 mt-9 max-w-80 lg:max-w-full w-full mx-auto lg:pr-1.5"><p class="!leading-8 text-2xl mb-6 text-primary leading-none lg:font-medium">Encontre a FARM mais próxima</p><p class="mb-4 lg:mb-6 text-[#999999]">Selecione seu estado e cidade para saber qual é a nossa loja mais próxima de você. lembra que os produtos vendidos por parceiros não podem ser trocados nas nossas lojas.</p><div class="mt-2 mb-8 md:mb-14 px-6 py-3 flex items-center gap-4 lg:gap-5 rounded-lg bg-[#F1FCF9] text-[#23A484]"><svg width="18" height="18" stroke-width="16" class="shrink-0 size-4.5 lg:size-5"><use href="/sprites.svg?__deco_c=2#Info"></use></svg><p>Para trocar seu produto, lembre de pegar a nota fiscal na aba de pedidos</p></div><div class="text-lg lg:text-sm pb-10"><div hx-post="/deco/render?props=%7B%22props%22%3A%7B%22mode%22%3A%22eager%22%7D%2C%22component%22%3A%22%2Fcomponents%2Fui%2Fhelp-elements%2Fselect%2FSelectState.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881" hx-trigger="intersect" hx-target="this" hx-select="section>*" hx-swap="outerHTML" class="relative"><select hx-post="/deco/render?props=%7B%22component%22%3A%22%2Fcomponents%2Fui%2Fhelp-elements%2Fselect%2FSelectCity.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881" hx-disabled-elt="this" hx-target="#shop-city" hx-select="section>*" hx-swap="outerHTML" name="state" class="px-8 py-5 rounded-full w-full border border-neutral h-16 text-primary font-light appearance-none outline-none disabled:pointer-events-none disabled:opacity-50 disabled:bg-neutral"><option selected disabled>selecione um estado</option></select><svg stroke-width="16" class="absolute size-6 md:size-8 right-4 md:right-8 top-1/2 -translate-y-1/2"><use href="/sprites.svg?__deco_c=2#ChevronDown"></use></svg></div><div id="shop-city"><div class="relative mt-5 md:mt-3"><select hx-post="/deco/render?props=%7B%22component%22%3A%22%2Fcomponents%2Fui%2Fhelp-elements%2Fselect%2FCityStores.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881" hx-swap="outerHTML" hx-select="section>*" hx-target="#city-stores" hx-indicator="#city-stores" name="city" disabled class="px-8 py-5 rounded-full w-full border border-neutral h-16 text-primary font-light appearance-none outline-none disabled:pointer-events-none disabled:opacity-50 disabled:bg-neutral"><option selected disabled>selecione uma cidade</option></select><svg stroke-width="16" class="absolute size-6 md:size-8 right-4 md:right-8 top-1/2 -translate-y-1/2"><use href="/sprites.svg?__deco_c=2#ChevronDown"></use></svg></div></div>
3278<script nonce="16c268fd223f430b98c07279b4c2abab">(()=>{function e(){if(!navigator.geolocation)return alert("Seu navegador não suporta Geolocalização."),void 0;const e=document.getElementById("geo-form"),o=document.getElementById("geo-form-button");e&&o&&(o.classList.add("htmx-request"),navigator.geolocation.getCurrentPosition((o=>{e.querySelector('input[name="lat"]').value=o.coords.latitude.toString(),e.querySelector('input[name="lng"]').value=o.coords.longitude.toString(),htmx.trigger(e,"geo-ready")}),(e=>{o.classList.remove("htmx-request");let t="Não foi possÃvel obter sua localização.";e.code===e.PERMISSION_DENIED&&(t="Permissão de localização negada. Por favor, permita o acesso à sua localização."),alert(t)})))}globalThis.document&&document.addEventListener("DOMContentLoaded",(()=>{const o=document.getElementById("geo-form-button");o&&o.addEventListener("click",e)}))})()</script>
3278<form id="geo-form" hx-post="/deco/render?props=%7B%22component%22%3A%22%2Fcomponents%2Fui%2Fhelp-elements%2Fselect%2FCityStores.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881" hx-trigger="geo-ready from:body" hx-target="#city-stores" hx-swap="outerHTML" hx-indicator="#geo-form-button" class="pl-[10px] mb-5 mt-6"><input type="hidden" name="lat"/><input type="hidden" name="lng"/><button id="geo-form-button" type="button" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" class="h-6 w-6"><path d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="underline cursor-pointer">ache a loja mais próxima</span></button></form><ul id="city-stores" class="border-t border-neutral-200 md:block md:h-48 overflow-y-auto scrollbar-thin mt-5"></ul></div></div></div></div></aside></div>
3278<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(e=>{addEventListener("keydown",(d=>{if("Escape"!==d.key&&27!==d.keyCode)return;const n=document.getElementById(e);n&&(n.checked=!1)}))})("drawer-help-button-order-exchange-return")</script>
3278</div></section><section id="3610934567-0" data-manifest-key="site/sections/Session.tsx"><div hx-trigger="load" hx-post="/deco/render?props=%7B%22minicartProps%22%3A%7B%22productShelf%22%3A%7B%22productsLoader%22%3A%7B%22data%22%3A%7B%22__resolveType%22%3A%22vtex%2Floaders%2FintelligentSearch%2FproductList.ts%22%2C%22props%22%3A%7B%22simulationBehavior%22%3A%22default%22%2C%22collection%22%3A%221791%22%2C%22count%22%3A12%7D%7D%2C%22__resolveType%22%3A%22resolved%22%7D%2C%22hide%22%3Afalse%2C%22products%22%3A%7B%22__resolveType%22%3A%22vtex%2Floaders%2FintelligentSearch%2FproductList.ts%22%2C%22props%22%3A%7B%22simulationBehavior%22%3A%22default%22%2C%22collection%22%3A%221791%22%2C%22count%22%3A12%7D%7D%7D%2C%22alert%22%3A%7B%22bgAlert%22%3A%22%23333333%22%2C%22fontColorAlert%22%3A%22%23ffffff%22%2C%22hideAlert%22%3Afalse%2C%22alert%22%3A%7B%22hoverItem%22%3A%7B%22position%22%3A%22right%22%7D%7D%7D%2C%22emptyCart%22%3A%7B%22title%22%3A%22Sua+mochila+est%C3%A1+vazia%22%2C%22buttonLabel%22%3A%22Escolher+produtos%22%2C%22href%22%3A%22https%3A%2F%2Fwww.farmrio.com.br%2Fnovidades%22%7D%2C%22section%22%3A%7B%22__resolveType%22%3A%22site%2Fsections%2FContent%2FAlertMinicart.tsx%22%2C%22bgAlert%22%3A%22%23ECFB00%22%2C%22hideAlert%22%3Afalse%2C%22fontColorAlert%22%3A%22%2333333%22%2C%22hideOnlyPDP%22%3Afalse%2C%22message%22%3A%22bazar+Etc%3A+chegou+muita+coisa+nova+por+aqui+e+tudo+com+30%25+OFF%21%22%7D%2C%22sectionShelf%22%3A%7B%22productsLoader%22%3A%7B%7D%7D%2C%22partnerModal%22%3A%7B%22partnerButton%22%3A%7B%22title%22%3A%22vendido+por+parceiro+FARM%22%2C%22label%22%3A%22%3Cp%3Esaiba+mais%3C%2Fp%3E%22%2C%22secondaryTitle%22%3A%22produto+vendido+por+parceiro+FARM%22%2C%22text%22%3A%22%3Cp%3E%3Cspan%3Evendido+por+parceiro.+n%C3%A3o+eleg%C3%ADvel+a+promo%C3%A7%C3%B5es.+condi%C3%A7%C3%B5es+de+entrega+e+pagamento+podem+variar.%3C%2Fspan%3E%3C%2Fp%3E%22%2C%22triggerText%22%3A%22%3Cp%3E%3Cu%3Esaiba+mais%3C%2Fu%3E%3C%2Fp%3E%22%7D%2C%22titlePartnerModal%22%3A%7B%22title%22%3A%22Pol%C3%ADticas+parceiras%22%2C%22subtitle%22%3A%22%3Cp%3EEm+produtos+vendidos+por+parceiro%2C+as+condi%C3%A7%C3%B5es+de+entrega+e+pagamento+podem+variar%3C%2Fp%3E%22%7D%2C%22partnerModal%22%3A%5B%7B%22title%22%3A%22Frete%22%2C%22description%22%3A%22%3Cp%3EO+frete+gr%C3%A1tis+a+partir+de+R%24399+com+c%C3%B3digo+de+vendedor*+%C3%A9+v%C3%A1lido+apenas+para+produtos+vendidos+e+entregues+pela+FARM+Rio%2C+n%C3%A3o+sendo+eleg%C3%ADvel+para+itens+vendidos+ou+entregues+por+parceiros.+o+custo+de+envio+pode+sofrer+altera%C3%A7%C3%B5es+de+acordo+com+as+pol%C3%ADticas+de+entrega.+verifique+todos+os+detalhes+direto+na+sua+mochila+antes+de+finalizar+a+compra.%3C%2Fp%3E%22%7D%2C%7B%22title%22%3A%22Troca+e+devolu%C3%A7%C3%A3o%22%2C%22description%22%3A%22%3Cp%3EOs+produtos+dos+parceiros+FARM+n%C3%A3o+podem+ser+trocados+em+loja%2C+nas+compras+feitas+pelo+site+voc%C3%AA+pode+solicitar+apenas+a+devolu%C3%A7%C3%A3o+via+postagem+dos+correios%2C+com+o+prazo+de+at%C3%A9+07+dias+corridos+ap%C3%B3s+o+recebimento.%3C%2Fp%3E%22%7D%2C%7B%22title%22%3A%22Promo%C3%A7%C3%B5es%22%2C%22description%22%3A%22%3Cp%3EOs+produtos+de+parceria+nem+sempre+participam+das+promo%C3%A7%C3%B5es+vigentes+no+site.+fique+de+olho+nas+regras+de+cada+promo%C3%A7%C3%A3o+para+descobrir+se+o+item+que+voc%C3%AA+deseja+%C3%A9+aplic%C3%A1vel+%C3%A0+promo%C3%A7%C3%A3o.%3C%2Fp%3E%22%7D%2C%7B%22title%22%3A%22Forma+de+pagamento+e+parcelamento%22%2C%22description%22%3A%22%3Cp%3ES%C3%B3+%C3%A9+aceito+pix+e+cart%C3%A3o+de+cr%C3%A9dito.+N%C3%A3o+s%C3%A3o+aceitos+pagamento+com+vale+troca+e+GIFTCARD+da+FARM.%3C%2Fp%3E%22%7D%5D%2C%22bottomPartnerModal%22%3A%7B%22title%22%3A%22%3Cp%3Eem+caso+de+d%C3%BAvidas+com+os+pedidos+de+parcerias%2C+voc%C3%AA+pode+entrar+em+contato+com+os+nossos+canais+de+atendimento.+boas+compras%21%3C%2Fp%3E%22%2C%22description%22%3A%22%3Cp%3E%3Ca+target%3D%5C%22_blank%5C%22+rel%3D%5C%22noopener+noreferrer+nofollow%5C%22+href%3D%5C%22http%3A%2F%2Fwa.me%2F552137337701%5C%22%3E%3Cu%3Efalar+no+whatsapp%3C%2Fu%3E%3C%2Fa%3E%3C%2Fp%3E%22%7D%7D%7D%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&
3278renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fflags%2Fmultivariate%2Fsection.ts%22%2C0%2C%22variants%22%2C0%2C%220%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C1%2C%22Minicart%22%5D"></div>
3278<script data-global-scripts="true" nonce="16c268fd223f430b98c07279b4c2abab">var onLoadWishlist = (id, productID)=>globalThis.window.STOREFRONT.WISHLIST.subscribe((sdk)=>{ 3279 const button = document.getElementById(id); 3280 const inWishlist = sdk.inWishlist(productID); 3281 button.disabled = false; 3282 button.classList.remove("htmx-request"); 3283 button.querySelector("svg")?.setAttribute("fill", inWishlist ? "black" : "none"); 3284 if (inWishlist) { 3285 button.removeAttribute("data-event"); 3286 button.removeAttribute("data-event-trigger"); 3287 button.removeAttribute("data-has-commerce"); 3288 button.removeAttribute("data-sent"); 3289 } 3290 const p = button.querySelector("p"); 3291 if (p) { 3292 p.innerHTML = inWishlist ? "remover da lista de desejos" : "adicionar aos desejos"; 3293 } 3294 }); 3295var onClickWishlist = (productID, productGroupID)=>{ 3296 event?.stopPropagation(); 3297 event?.preventDefault(); 3298 const button = event?.currentTarget; 3299 const user = globalThis.window.STOREFRONT.USER.getUser(); 3300 const sdk = globalThis.window.STOREFRONT.WISHLIST; 3301 const inWishlist = sdk.inWishlist(productID); 3302 if (user?.email) { 3303 button.classList.add("htmx-request"); 3304 globalThis.window.STOREFRONT.WISHLIST.toggle(productID, productGroupID); 3305 } else { 3306 globalThis.window.STOREFRONT.WISHLIST.requestLogin(); 3307 } 3308 const p = button.querySelector("p"); 3309 if (p) { 3310 button.querySelector("svg")?.setAttribute("fill", inWishlist ? "black" : "none"); 3311 p.innerHTML = inWishlist ? "remover da lista de desejos" : "adicionar aos desejos"; 3312 } 3313}; 3314var addToCart = function addToCartGlobal(params) { 3315 event?.preventDefault(); 3316 event?.stopPropagation(); 3317 const { isPLP, isPDPShelf, isMobile, itemListName, region, itemListId, promotionName, promotionId, creativeName, creativeSlot, isFarmEtc, item: _item, product: _product, seller: _seller, sku: _sku, refId: _refId, etcNotification, isFixedBar, updateAddedSummary = true } = params; 3318 let lastBannerClicked = null; 3319 try { 3320 const stored = localStorage.getItem("lastClickedBanner"); 3321 if (stored) { 3322 const parsed = JSON.parse(stored); 3323 // Check if data has expired 3324 if (parsed.expiresAt && parsed.expiresAt > Date.now()) { 3325 lastBannerClicked = parsed; 3326 } else { 3327 // Remove expired data 3328 localStorage.removeItem("lastClickedBanner"); 3329 } 3330 } 3331 } catch (_e) { 3332 // Ignore errors (e.g., invalid JSON or localStorage unavailable) 3333 } 3334 if (isFarmEtc && isMobile && etcNotification) { 3335 const { imageURL, name, size, price, listPrice, quantity } = etcNotification; 3336 const addedToCart = document.getElementById("plp-added-to-cart"); 3337 if (!addedToCart) { 3338 console.error('Elemento "plp-added-to-cart" não encontrado'); 3339 return; 3340 } 3341 if (imageURL && imageURL !== "") { 3342 const image = document.getElementById("plp-added-to-cart-image"); 3343 if (!image) { 3344 console.error('Elemento "plp-added-to-cart-image" não encontrado'); 3345 } else { 3346 image.src = imageURL; 3347 } 3348 } 3349 if (name && name !== "") { 3350 const nameElement = document.getElementById("plp-added-to-cart-name"); 3351 if (!nameElement) { 3352 console.error('Elemento "plp-added-to-cart-name" não encontrado'); 3353 } else { 3354 nameElement.textContent = name; 3355 } 3356 } 3357 if (size && size !== "") { 3358 const sizeElement = document.getElementById("plp-added-to-cart-size"); 3359 if (!sizeElement) { 3360 console.error('Elemento "plp-added-to-cart-size" não encontrado'); 3361 } else { 3362 sizeElement.textContent = size; 3363 } 3364 } 3365 if (price && price !== "") { 3366 const priceElement = document.getElementById("plp-added-to-cart-price"); 3367 if (!priceElement) { 3368 console.error('Elemento "plp-added-to-cart-price" não encontrado'); 3369 return; 3370 } 3371 priceElement.textContent = price; 3372 } 3373 if (quantity && quantity !== 0) { 3374 const quantityElement = document.getElementById("plp-added-to-cart-quantity"); 3375 if (!quantityElement) { 3376 console.error('Elemento "plp-added-to-cart-quantity" não encontrado'); 3377 } else { 3378 quantityElement.textContent = quantity.toString(); 3379 } 3380 } 3381 if (listPrice && listPrice !== "") { 3382 const listPriceElement = document.getElementById("plp-added-to-cart-list-price"); 3383 if (!listPriceElement) { 3384 console.error('Elemento "plp-added-to-cart-list-price" não encontrado'); 3385 } else { 3386 listPriceElement.textContent = listPrice; 3387 } 3388 } 3389 addedToCart.click(); 3390 } 3391 if (isPLP && !isFarmEtc) { 3392 const button = event?.currentTarget; 3393 const container = button.closest("button[data-cart-item]"); 3394 const { item, platformProps } = JSON.parse(decodeURIComponent(container.getAttribute("data-cart-item"))); 3395 return globalThis.window.STOREFRONT.CART.addToCart(item, platformProps, isMobile, { 3396 local: region ?? "PDC", 3397 itemListName, 3398 itemListId, 3399 promotionName: lastBannerClicked?.promotion_name || promotionName, 3400 promotionId: lastBannerClicked?.promotion_id || promotionId, 3401 creativeName: lastBannerClicked?.creative_name || creativeName, 3402 creativeSlot: lastBannerClicked?.creative_slot || creativeSlot 3403 }, undefined, params.mobileNotification, _product); 3404 } 3405 if (!isPLP && isPDPShelf && !isFarmEtc) { 3406 const button = event?.currentTarget; 3407 const container = button.closest("button[data-cart-item]"); 3408 const { item, platformProps } = JSON.parse(decodeURIComponent(container.getAttribute("data-cart-item"))); 3409 return globalThis.window.STOREFRONT.CART.addToCart(item, platformProps, isMobile, { 3410 local: "PDP", 3411 itemListName, 3412 itemListId, 3413 promotionName: lastBannerClicked?.promotion_name || promotionName, 3414 promotionId: lastBannerClicked?.promotion_id || promotionId, 3415 creativeName: lastBannerClicked?.creative_name || creativeName, 3416 creativeSlot: lastBannerClicked?.creative_slot || creativeSlot 3417 }, undefined, params.mobileNotification, _product); 3418 } 3419 const selectedSku = document.querySelector("input[name=sku]:checked"); 3420 if (!selectedSku && (!_item || !_refId)) { 3421 const variantSelectorModalCheckbox = document.getElementById(params.variantSelectorModalId); 3422 if (variantSelectorModalCheckbox) { 3423 variantSelectorModalCheckbox.checked = true; 3424 } 3425 const selectSizeWarning = document.getElementById("select-size-warning"); 3426 if (selectSizeWarning) { 3427 selectSizeWarning.classList.remove("hidden"); 3428 } 3429 return; 3430 } 3431 const item = _item || JSON.parse(selectedSku?.getAttribute("data-item") || "{}"); 3432 const product = _product || JSON.parse(selectedSku?.getAttribute("data-product") || "{}"); 3433 const refId = _refId || product?.additionalProperty?.find((prop)=>prop.name === "RefId")?.value || ""; 3434 const seller = _seller || selectedSku?.getAttribute("data-seller") || "1"; 3435 const sku = _sku || selectedSku?.value; 3436 if (params.addedToCartModalId) { 3437 const sellerName = product?.offers?.offers?.find((offer)=>offer.seller === seller)?.sellerName ?? product?.offers?.offers?.[0]?.sellerName; 3438 const addedModalInput = document.getElementById(params.addedToCartModalId); 3439 const modalRoot = addedModalInput?.closest?.(".added-to-cart-teste-modal,.added-to-cart-modal,.added-to-cart-look-modal") ?? document; 3440 const partnerBox = modalRoot.querySelector(".partner-info-box"); 3441 if (partnerBox) { 3442 if (sellerName && sellerName !== "FARM") { 3443 partnerBox.classList.remove("hidden"); 3444 } else { 3445 partnerBox.classList.add("hidden"); 3446 } 3447 } 3448 } 3449 if (updateAddedSummary) { 3450 const addedModalInput = params.addedToCartModalId ? document.getElementById(params.addedToCartModalId) : null; 3451 const summaryRoot = addedModalInput?.closest?.("[data-added-summary-root]") ?? (params.addedToCartModalId ? document.querySelector(`[data-added-summary-root] #${params.addedToCartModalId}`)?.closest?.("[data-added-summary-root]") : null) ?? document; 3452 const addedImage = summaryRoot.querySelector("[data-added-summary='image']"); 3453 const addedName = summaryRoot.querySelector("[data-added-summary='name']"); 3454 const addedPrice = summaryRoot.querySelector("[data-added-summary='price']"); 3455 const addedSku = summaryRoot.querySelector("[data-added-summary='sku']"); 3456 const addedSize = item?.size || document.querySelector(`label[for="size-${sku}"]`)?.textContent?.trim() || sku; 3457 const productName = item?.name || product?.isVariantOf?.name || product?.name; 3458 const productPrice = typeof item?.price === "string" ? item.price : formatPrice(product?.offers?.offers?.[0]?.price ?? 0, product?.offers?.priceCurrency); 3459 if (addedImage && (item?.imageUrl || product?.image?.[0]?.url)) { 3460 addedImage.src = item?.imageUrl || product?.image?.[0]?.url || ""; 3461 } 3462 if (addedName && productName) { 3463 addedName.textContent = productName; 3464 } 3465 if (addedPrice && productPrice) { 3466 addedPrice.textContent = productPrice; 3467 } 3468 if (addedSku && addedSize) { 3469 addedSku.textContent = addedSize; 3470 } 3471 } 3472 const added = globalThis.window.STOREFRONT.CART.addToCart(item, { 3473 orderItems: [ 3474 { 3475 id: sku, 3476 quantity: 1, 3477 seller 3478 } 3479 ] 3480 }, isMobile, { 3481 local: region ?? undefined, 3482 itemListName, 3483 itemListId, 3484 promotionName: lastBannerClicked?.promotion_name || promotionName, 3485 promotionId: lastBannerClicked?.promotion_id || promotionId, 3486 creativeName: lastBannerClicked?.creative_name || creativeName, 3487 creativeSlot: lastBannerClicked?.creative_slot || creativeSlot 3488 }, refId, params.mobileNotification, _product); 3489 if (!params.isMobile) { 3490 const buttonNotifySKU = document.getElementById(`button-notify-${sku}`); 3491 buttonNotifySKU?.click(); 3492 } 3493 if (added && params.showModal && params.addedToCartModalId) { 3494 const modal = document.getElementById(params.addedToCartModalId); 3495 if (modal) { 3496 modal.checked = true; 3497 } 3498 const lookModals = document.querySelectorAll('input[id^="look-variant-selector-"], input[id^="look-slider-variant-selector-"]');
3499 lookModals.forEach((input)=>{ 3500 input.checked = false; 3501 }); 3502 } 3503 // Fixed bar button feedback 3504 if (isFixedBar && added) { 3505 const addToCartButton = event?.currentTarget; 3506 if (addToCartButton) { 3507 const originalText = addToCartButton.textContent; 3508 addToCartButton.textContent = "Produto adicionado"; 3509 addToCartButton.disabled = true; 3510 setTimeout(()=>{ 3511 addToCartButton.textContent = originalText; 3512 addToCartButton.disabled = false; 3513 }, 2000); 3514 } 3515 } 3516}; 3517var hiddenErrorBtnFB = (id)=>{ 3518 const spanError = document.getElementById(id); 3519 if (spanError) { 3520 spanError.checked = false; 3521 } 3522}; 3523var showErrorBtnFB = (id)=>{ 3524 event?.preventDefault(); 3525 const spanError = document.getElementById(id); 3526 if (spanError) { 3527 spanError.checked = true; 3528 } 3529};</script>
3529</section><section id="3908055738-0" data-manifest-key="site/sections/Seller/SellerCookie.tsx">
3529<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function onLoad({title:e,message:i,link:n,linkText:o}){e&&i&&n&&o&&globalThis.window.STOREFRONT?.NOTIFICATION?.showMessage(e,i,n,o)})({})</script>
3529</section><section id="2396462607-0" data-manifest-key="site/sections/Content/Alert.tsx"><div data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22creative_slot%22%3A%22tipbar%3A0%3A0%22%2C%22promotion_name%22%3A%22s%C3%B3%20aqui%20voc%C3%AA%20encontra%20looks%20selecionados%20com%20desconto%20EXTRA.%20cupom%20EXTRA10%20pra%20voc%C3%AA!%20%22%2C%22region%22%3A%22header%22%2C%22creative_name%22%3A%22Alert%20Tipbar%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true"><div id="P0-1"><div id="header-alert-close::P0-011129" style="background-color:#ECFB00;transition:top 0.3s ease-in-out;" class="h-10 flex flex-row items-center w-full z-30 top-0 left-0 fixed alert-component"><div style="color:#333333;" class="text-sm font-light flex justify-center items-center w-full mr-5 pl-5"><div class="flex md:flex-row py-2 gap-2 md:w-full md:justify-center md:items-center "><p class="text-xs">só aqui você encontra looks selecionados com desconto EXTRA. cupom EXTRA10 pra você! </p><a href="/produtos/mais-verao" data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22header%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fmais-verao%22%2C%22promotion_name%22%3A%22s%C3%B3%20aqui%20voc%C3%AA%20encontra%20looks%20selecionados%20com%20desconto%20EXTRA.%20cupom%20EXTRA10%20pra%20voc%C3%AA!%20%22%2C%22creative_slot%22%3A%22tipbar%22%2C%22creative_name%22%3A%22Alert%20Tipbar%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true" class="text-xs underline">clica</a></div></div></div></div></div></section><section id="3786382891-0" data-manifest-key="site/sections/Analytics/SiteAnalytics.tsx"><noscript><iframe src="https://sgtm.farmrio.com.br/ns.html?id=GTM-PP9SFNHJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3529<script defer id="analytics-script" src="data:text/javascript,(()%3D%3E%7BglobalThis.window.DECO.events.subscribe((e%3D%3E%7Bif(globalThis.window.dataLayer%3DglobalThis.window.dataLayer%7C%7C%5B%5D%2Ce%26%26globalThis.window.dataLayer%26%26%22function%22%3D%3Dtypeof%20globalThis.window.dataLayer.push)return%22deco%22%3D%3D%3De.name%3F(globalThis.window.dataLayer.push(%7Bevent%3Ae.name%2Cdeco%3Ae.params%7D)%2Cvoid%200)%3A(!function(e)%7Bconst%20a%3DglobalThis.window%3F.STOREFRONT%3F.AZZAS_TRACKER_WEB%3Bif(!a)return%20console.error(%22%5BDT%5D%20SDK%20de%20tracking%20n%C3%A3o%20encontrado%22)%2Cvoid%200%3Bconst%20o%3Da.availableEvents()%7C%7Cnull%3Bif(Object.values(o).find((a%3D%3Ea%3F.name%3D%3D%3De.name))%7C%7Cconsole.warn(%22%5BDT%5D%3A%20not%20azzas%20tracker%20event%3A%20%22%2Ce.name%7C%7CJSON.stringify(e))%2C%5B%22view_promotion%22%2C%22select_promotion%22%2C%22select_content%22%2C%22search%22%2C%22select_item%22%2C%22view_item%22%2C%22view_item_list%22%2C%22add_to_wishlist%22%2C%22add_to_cart%22%2C%22remove_from_cart%22%2C%22custom_view_cart%22%2C%22search_zipcode%22%2C%22notify_me%22%2C%22refine_results%22%2C%22custom_user_info%22%2C%22grid_size%22%5D.includes(e.name))a.trackEvent(e.name.toUpperCase()%2C%7B...e.params%2Cwindow%3AglobalThis.window%7D)%3Belse%20if(e.hasCommerce)globalThis.window.dataLayer.push(%7Bevent%3Ae.name%2Cecommerce%3Ae.params%7D)%3Belse%7Bconst%7BhasCommerce%3Aa%2C...o%7D%3De%3BglobalThis.window%3F.dataLayer%3F.push(%7B...o%7D)%7D%7D(e)%2Cvoid%200)%7D))%7D)()" nonce="16c268fd223f430b98c07279b4c2abab"></script>
3529</section><section id="3133777178-0" data-manifest-key="site/sections/Content/ModalRoletaPremiada.tsx"></section><section id="525191454-0" data-manifest-key="site/sections/ConsentManagement.tsx">
3529<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="0d29dbec-fc3f-423f-ac63-88a9c616963c" nonce="16c268fd223f430b98c07279b4c2abab"></script>
3529<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(()=>{})()</script>
3529</section><section id="1645792083-0" data-manifest-key="site/sections/Tapume.tsx"></section><section id="3964323672-76" data-manifest-key="site/sections/Theme/Theme.tsx"></section><section id="1177560847-0" data-manifest-key="site/sections/Tracking/Organization.tsx"></section><section id="2731220391-0" data-manifest-key="site/sections/Header/Header.tsx"><header data-header="true" class="transition-[height] duration-300 ease-in-out relative header-desktop"><div data-header-container="true" class="fixed top-0 left-0 w-full z-30 header-container"><div class="bg-base-100 relative w-full"><nav data-scrolled="false" data-navbar="true" class="transition-[height] duration-300 ease-in-out h-16 flex justify-between items-center px-10 xl:px-16 group/navbar"><div class="flex items-center gap-2"><label data-qa-menu-trigger="true" aria-label="open menu" for="sidemenu-drawer" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aabrir-menu%22%7D%7D%7D" data-event-trigger="click" class="size-10 flex items-center justify-center cursor-pointer relative"><svg stroke-width="1" class="w-5 h-4 [body:has(#sidemenu-drawer:checked)_&]:rotate-90 [body:has(#sidemenu-drawer:checked)_&]:opacity-0 transition-all absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"><use href="/sprites.svg?__deco_c=2#Bars3"></use></svg><svg stroke-width="1" class="size-7 opacity-0 rotate-90 [body:has(#sidemenu-drawer:checked)_&]:rotate-180 [body:has(#sidemenu-drawer:checked)_&]:opacity-100 transition-all absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"><use href="/sprites.svg?__deco_c=2#XMark"></use></svg></label><a href="/" aria-label="Farm Rio" class="block w-[142px] [body:has(#sidemenu-drawer:checked)_&]:opacity-0 group-data-[scrolled=false]/navbar:opacity-0 group-data-[scrolled=false]/navbar:pointer-events-none transition-opacity duration-300 ease-in-out" data-current="true" aria-current="page"><img src="https://decoims.com/farmrio/13206080-1314-4ea2-8421-44cc11851e18/logo.svg" width="122" height="25" style="margin-left:0px;margin-right:0px;margin-bottom:0px;" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=122&height=25&quality=high&src=farmrio%2F13206080-1314-4ea2-8421-44cc11851e18%2Flogo.svg 122w, https://decoims.com/image?fit=cover&width=244&height=50&quality=high&src=farmrio%2F13206080-1314-4ea2-8421-44cc11851e18%2Flogo.svg 244w" loading="lazy"/></a></div><div class="justify-end flex mr-[-19px] items-center"><div class="flex items-center text-xs font-thin"><label aria-label="open search" hx-target="#searchbar-desktop" hx-swap="outerHTML" hx-trigger="click once" hx-get="/deco/render?props=%7B%22variant%22%3A%22search-desktop%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%221%22%2C1%2C%22Header+Global+%22%5D" hx-on:click="(function openDesktopSearch(e,t,c){const n=document.getElementById(e);n&&(n.checked=!n.checked);let l,o=null;n?.checked||(l=setInterval((()=>{o=document.querySelector(".search-input"),o?.focus(),o&&l&&clearInterval(l)}),300));const a=document.getElementById(t);!a||a.children.length>0||globalThis.htmx?.ajax("GET",c,{target:`#${t}`,swap:"outerHTML"})})("searchbar-container-input", "searchbar-ab-desktop", "/deco/render?props=%7B%22variant%22%3A%22search-ab-desktop%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%221%22%2C1%2C%22Header+Global+%22%5D")" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alink%3Abuscar%22%7D%7D%7D" data-event-trigger="click" class="p-2 px-1 pt-1 cursor-pointer pb-[6px]"><svg width="16" height="30" stroke-width="1" class="mr-[11px]"><use href="/sprites.svg?__deco_c=2#MagnifyingGlass"></use></svg></label></div><div class="flex items-center text-xs font-thin"><label id="bly-search-trigger" for="searchbar-container-input" aria-label="open search" hidden class="p-2 px-1 pt-1 cursor-pointer pb-[6px]"><svg width="16" height="30" stroke-width="1" class="mr-[11px]"><use href="/sprites.svg?__deco_c=2#MagnifyingGlass"></use></svg></label></div><div class="flex ml-[5px] flex-col items-end justify-center h-full cursor-pointer group/menu px-1 py-5"><a hx-on:click="window.vtexid.start()" aria-label="Account" hx-on:mouseenter="(e=>{const c=document.getElementById(e);if(c){c.checked=!0;document.querySelector(".search-input").value=""}})("searchbar-container-input")" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alogin%3Aentrar%22%7D%7D%7D" data-event-trigger="click" class="flex items-center text-sm font-light relative "><svg width="19" height="16" stroke-width="1" class="text-primary -scale-x-100 mb-[2px]"><use href="/sprites.svg?__deco_c=2#Login"></use></svg><span class="ml-2.5 mr-[5px]">Entrar</span></a></div><label data-qa-cart-icon="true" for="minicart-drawer" aria-label="open cart" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aminicart%3Acarrinho%22%7D%7D%7D" data-event-trigger="click" class="indicator md:py-2 md:p-0 flex items-center md:h-auto md:w-auto relative cursor-pointer"><div class="relative px-0 py-0 md:px-[5px] md:py-[5px]"><span id="P0-3780753" data-qa-cart-count="true" hx-get="/deco/render?props=%7B%22component%22%3A%22%2Fcomponents%2Fheader%2FBagCount.tsx%22%2C%22__resolveType%22%3A%22site%2Fsections%2FHTMX%2FComponent.tsx%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&
3529renderSalt=0&__cb=3902806881" hx-trigger="load once" hx-swap="innerHTML" class="pb-[3px] md:top-[28px] md:right-[27px] indicator-item pt-[2px] right-[6px] top-[18px] transition-all duration-300 sm:right-[0.688rem] text-xxs rounded-full h-3 w-3 sm:h-3.5 sm:w-3.5 badge badge-primary badge-xs text-white">0</span><svg width="32" height="32" stroke-width="1" class="hidden md:block mb-[6px] mr-x"><use href="/sprites.svg?__deco_c=2#Backpack"></use></svg><svg width="23" height="22" stroke-width="1" class="md:hidden block pr-[3px]"><use href="/sprites.svg?__deco_c=2#BackpackMobile"></use></svg></div><div id="notify" style="max-height:calc(100vh - 60px);overscroll-behavior-y:contain;" class=" hidden absolute bg-white top-full -mt-1 right-0 w-[300px] p-5 z-10 custom-arrow border border-neutral opacity-0 fade-in"><button type="button" hx-on:click="(d=>{const t=document.getElementById(d);t&&t.classList.add("hidden","opacity-0")})("notify")" class="absolute top-0 right-0 w-10 h-10 flex items-center justify-center"><svg width="14" height="14" stroke-width="1"><use href="/sprites.svg?__deco_c=2#XMarkFarm"></use></svg></button><div id="product-notify"><ul class="flex"><li data-item-id="333642" class="flex relative flex-nowrap"><a id="image-product-anchor" class="hidden min-w-[50px] w-20 py-[2px] h-[118px] flex-shrink-0 flex-grow-0 basis-auto"><img id="image-product" src alt class="w-full h-full object-contain"/></a><div class="flex flex-wrap items-start pl-4"><div id="name" class="w-[136px] text-sm font-bold flex-shrink-0 flex-grow-0 basis-auto text-ellipsis overflow-hidden leading-5"></div><span id="is-last-item" class="border text-xs rounded-[4px] text-warning-content border-warning-content hidden w-[84px] justify-center">última peça</span><div class="h-[18px] w-full mb-5"><span id="notify-price" class="hidden text-xs text-black font-medium"></span></div><ul class="flex"><li id="size" class=" hidden ml-x w-[22px] h-[22px] text-xs font-semibold rounded-[22px] overflow-hidden flex items-center justify-center bg-white border border-primary text-gray-800"></li><li id="color" class="hidden ml-x w-5 h-5 rounded-[18px] overflow-hidden flex items-center justify-center"><img id="color-image" src alt class="w-[30px] h-[30px]"/></li></ul></div></li></ul></div><div id="product-notify-list" class="hidden"><ul class="flex flex-col gap-4"></ul></div><div id="message-notify"><div id="title-notify" class="text-sm m-1 font-bold hidden"></div><div id="description-notify" class=" text-xs m-1 hidden"></div><a id="link-notify" class="text-sm m-1 underline font-bold hidden"><span id="link-notify-text"></span></a></div></div></label>
3529<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(t=>globalThis.window.STOREFRONT?.CART?.subscribe((e=>{const r=document.getElementById(t),n=e.getCart()?.items;if(!r||!Array.isArray(n))return;const i=n.reduce(((t,e)=>t+e.quantity),0);r.innerText=i.toString()})))("P0-3780753")</script>
3529<div data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aswitch%3Amarca%22%7D%7D%7D" data-event-trigger="click" style="background:linear-gradient(90deg,#DEE35E,#FF9491,#875E8F,#99C9B5,#DEE35E);background-size:3200% 3200%;animation:gradient-etc 4s linear infinite;" class="rounded-full h-[42px] pr-1 group active:pr-0 active:ml-1 transition-all duration-200 mr-3"><div style="background:linear-gradient(90deg,#E6EB7E,#FF9491,#865E90,#99C9B5,#E6EB7E);background-size:3200% 3200%;animation:gradient-etc 4s linear infinite;" class="rounded-full p-px -mt-1 -ml-1 w-fit group-active:mt-0 group-active:-ml-1 transition-all duration-200"><a type="button" aria-label="Ir para Farm ETC" href="https://www.farmrio.com.br/farm-etc" class="bg-white rounded-full h-10 px-5 flex items-center justify-center gap-2 transition-all duration-200"><span class="flex items-center"><svg stroke-width="16" class="h-10 w-[29px]"><use href="/sprites.svg?__deco_c=2#switch-brand-etc-logo"></use></svg></span><span class="flex items-center"><svg width="23" height="23" stroke-width="16"><use href="/sprites.svg?__deco_c=2#switch-brand-arrow-right"></use></svg></span></a></div></div></div></nav><div id="login-snackbar" class="fixed z-10 top-[72px] md:top-[136px] left-1/2 transform -translate-x-1/2 rounded-full px-6 py-1 bg-etc-t2-pure h-14 flex items-center gap-[10px] leading-[16px] text-[13px] hidden"><span class="text-white min-w-[233px] h-full flex items-center">Entre em uma conta para<br/>adicionar peças aos seus desejos!</span><button type="button" hx-on:click="window.vtexid.start()" class="text-white min-w-[68px] h-full flex items-center underline">fazer login</button></div></div></div><img src="https://decoims.com/farmrio/97ef4da2-c2e8-4ba8-bd5d-4a3e247f142f/Layer_1.png" width="405" height="60" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=405&height=60&quality=high&src=farmrio%2F97ef4da2-c2e8-4ba8-bd5d-4a3e247f142f%2FLayer_1.png 405w, https://decoims.com/image?fit=cover&width=810&height=120&quality=high&src=farmrio%2F97ef4da2-c2e8-4ba8-bd5d-4a3e247f142f%2FLayer_1.png 810w" loading="lazy" class="desktop-floating-logo block absolute left-[50px] xl:left-[74px] z-[1] transition-opacity [body:has(#sidemenu-drawer:checked)_&]:opacity-0"/></header><div id="old-menu-ab-desktop"><div><input id="sidemenu-drawer" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="sidemenu-drawer" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip desktop-menu-container left-4 xl:left-[42px] bg-white rounded-3xl w-[400px] fixed max-h-[630px] p-4 h-full flex flex-col"><div class="px-4 py-3"><img src="https://decoims.com/farmrio/13206080-1314-4ea2-8421-44cc11851e18/logo.svg" width="405" height="60" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=405&height=60&quality=high&src=farmrio%2F13206080-1314-4ea2-8421-44cc11851e18%2Flogo.svg 405w, https://decoims.com/image?fit=cover&width=810&height=120&quality=high&src=farmrio%2F13206080-1314-4ea2-8421-44cc11851e18%2Flogo.svg 810w" loading="lazy"/></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip mt-3 relative flex-grow h-[60%]"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atudo%20com%2025%25%20off%22%7D%7D%7D" data-event-trigger="click" href="/produtos-promo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tudo com 25% OFF</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%22%7D%7D%7D" data-event-trigger="click" for="P0-52014
352917" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Novidades</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-5201417" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-5201417" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-5201417" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Novidades</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/novidades" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%3Anuvem%20de%20algod%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/produtos/novo-drop" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Nuvem de algodão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%3Acuradoria%20farm%22%7D%7D%7D" data-event-trigger="click" href="/produtos/curadoria-farm" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Curadoria FARM</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%3Aas%20cariocas%22%7D%7D%7D" data-event-trigger="click" href="/cariocas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">As Cariocas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anovidades%3At%C3%A1%20na%20vitrine%22%7D%7D%7D" data-event-trigger="click" href="/ta-na-vitrine" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tá na vitrine</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%22%7D%7D%7D" data-event-trigger="click" for="P0-650569" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Roupas</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-650569" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-650569" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-650569" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Roupas</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Avestidos%22%7D%7D%7D" data-event-trigger="click" for="P0-23907709" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestidos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-23907709" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-23907709" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-23907709" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Vestidos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Alongo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-longo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Longo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Acurto%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-curto" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Curto</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Amidi%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-midi" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Midi</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Aliso%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-liso" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Liso</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Avestidos%3Acom%20manga%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-com-manga" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Com manga</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3At-shirts%22%7D%7D%7D" data-event-trigger="click" href="/produtos/t-shirt" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">T-shirts</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Ablusas%22%7D%7D%7D" data-event-trigger="click" for="P0-25304016" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Blusas</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-25304016" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-25304016" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-25304016" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Blusas</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/blusa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Abata%22%7D%7D%7D" data-event-trigger="click" href="/produtos/bata" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bata</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Aregata%22%7D%7D%7D" data-event-trigger="click" href="/produtos/regata" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Regata</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Acamisa%22%7D%7D%7D" data-event-trigger="click" href="/produtos/camisa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Camisa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Atop%22%7D%7D%7D" data-event-trigger="click" href="/produtos/top" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Top</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Amanga%20longa%22%7D%7D%7D" data-event-trigger="click" href="/produtos/blusa-manga-longa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Manga longa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Acolete%22%7D%7D%7D" data-event-trigger="click" href="/produtos/coletes" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Colete</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Akimono%22%7D%7D%7D" data-event-trigger="click" href="/produtos/kimono" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Kimono</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3At%C3%BAnica%22%7D%7D%7D" data-event-trigger="click" href="/produtos/tunicas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Túnica</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ablusas%3Abody%22%7D%7D%7D" data-event-trigger="click" href="/produtos/body" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Body</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Acasacos%22%7D%7D%7D" data-event-trigger="click" for="P0-26918676" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Casacos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-26918676" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-26918676" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-26918676" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Casacos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/casaco" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Apelinho%22%7D%7D%7D" data-event-trigger="click" href="/produtos/pelinhos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pelinho</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Atricot%22%7D%7D%7D" data-event-trigger="click" href="/produtos/casaco-tricot" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tricot</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Ajaqueta%22%7D%7D%7D" data-event-trigger="click" href="/produtos/jaquetas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jaqueta</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Acardigan%22%7D%7D%7D" data-event-trigger="click" href="/produtos/cardigan" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Cardigan</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acasacos%3Amoletom%22%7D%7D%7D" data-event-trigger="click" href="/produtos/moletom" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Moletom</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Asaias%22%7D%7D%7D" data-event-trigger="click" for="P0-27466628" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Saias</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-27466628" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-27466628" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-27466628" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Saias</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asaias%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/saia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asaias%3Alonga%22%7D%7D%7D" data-event-trigger="click" href="/produtos/saia-longa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Longa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asaias%3Acurta%22%7D%7D%7D" data-event-trigger="click" href="/produtos/saia-curta" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Curta</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asaias%3Amidi%22%7D%7D%7D" data-event-trigger="click" href="/produtos/saia-midi" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Midi</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Acal%C3%A7as%22%7D%7D%7D" data-event-trigger="click" for="P0-28611654" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calças</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-28611654" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-28611654" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-28611654" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Calças</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input
3529:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Aestampada%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-estampada" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Estampada</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Apantalona%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-pantalona" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pantalona</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Ajeans%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-jeans" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jeans</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Aaladim%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-aladim" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Aladim</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Acapri%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-capri" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Capri</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7as%3Aalfaiataria%20%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calca-alfaiataria" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Alfaiataria </span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Ashorts%22%7D%7D%7D" data-event-trigger="click" for="P0-29479330" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Shorts</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-29479330" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-29479330" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-29479330" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Shorts</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/short" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Aestampado%22%7D%7D%7D" data-event-trigger="click" href="/produtos/short-estampado" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Estampado</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Ajeans%22%7D%7D%7D" data-event-trigger="click" href="/produtos/short-jeans" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jeans</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Abermuda%22%7D%7D%7D" data-event-trigger="click" href="/produtos/bermuda" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bermuda</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Ashort%20saia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/short-saia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Short saia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ashorts%3Aalfaiataria%22%7D%7D%7D" data-event-trigger="click" href="/produtos/short-alfaiataria" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Alfaiataria</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Aconjuntos%22%7D%7D%7D" data-event-trigger="click" href="/produtos/conjuntos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Conjuntos</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Alisos%22%7D%7D%7D" data-event-trigger="click" for="P0-31291869" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lisos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-31291869" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-31291869" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-31291869" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Lisos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/lisos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Avestido%22%7D%7D%7D" data-event-trigger="click" href="/produtos/vestido-liso" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestido</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Ablusa%22%7D%7D%7D" data-event-trigger="click" href="/produtos/partes-de-cima-lisas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Blusa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Apartes%20de%20baixo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/partes-de-baixo-lisas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Partes de baixo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Acasaco%22%7D%7D%7D" data-event-trigger="click" href="/produtos/casaco-liso" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Casaco</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alisos%3Amacac%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/produtos/macacao-liso" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Macacão</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Ajeans%22%7D%7D%7D" data-event-trigger="click" href="/produtos/jeans-refarm" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jeans</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Amacac%C3%A3o%22%7D%7D%7D" data-event-trigger="click" for="P0-33894491" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Macacão</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-33894491" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-33894491" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-33894491" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Macacão</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Amacac%C3%A3o%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/macacao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Amacac%C3%A3o%3Alongo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/macacao-longo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Longo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Amacac%C3%A3o%3Acurto%22%7D%7D%7D" data-event-trigger="click" href="/produtos/macaquinho" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Curto</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Apraia%22%7D%7D%7D" data-event-trigger="click" for="P0-34972017" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-34972017" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-34972017" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-34972017" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Praia</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apraia%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apraia%3Abiqu%C3%ADni%22%7D%7D%7D" data-event-trigger="click" href="/produtos/praia/biquinis" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">BiquÃni</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apraia%3Amai%C3%B4%22%7D%7D%7D" data-event-trigger="click" href="/produtos/praia/maios" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Maiô</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apraia%3Asa%C3%ADda%20de%20praia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/roupas-de-praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">SaÃda de praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apraia%3A
3529canga%22%7D%7D%7D" data-event-trigger="click" href="/produtos/praia/cangas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Canga</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Atricot%22%7D%7D%7D" data-event-trigger="click" href="/produtos/tricot" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tricot</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%22%7D%7D%7D" data-event-trigger="click" for="P0-7370341" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bazar </span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-7370341" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-7370341" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-7370341" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Bazar </p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/bazar" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3App%22%7D%7D%7D" data-event-trigger="click" href="/bazar/tamanho-pp" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">PP</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Ap%22%7D%7D%7D" data-event-trigger="click" href="/bazar/tamanho-p" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">P</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Am%22%7D%7D%7D" data-event-trigger="click" href="/bazar/tamanho-m" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">M</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Ag%22%7D%7D%7D" data-event-trigger="click" href="/bazar/tamanho-g" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">G</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Agg%22%7D%7D%7D" data-event-trigger="click" href="/bazar/tamanho-gg" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">
3529GG</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abazar%20%3Avestidos%22%7D%7D%7D" data-event-trigger="click" href="/bazar/vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestidos</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%22%7D%7D%7D" data-event-trigger="click" for="P0-8165140" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">FARM Etc</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-8165140" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-8165140" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-8165140" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">FARM Etc</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ver-tudo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Abazar%20%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/bazar" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bazar </span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Aprodutos%22%7D%7D%7D" data-event-trigger="click" for="P0-98428272" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Produtos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-98428272" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-98428272" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input
3529:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-98428272" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Produtos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ver-tudo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acopo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/copo-termico" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Copo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Agarrafa%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/garrafa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Garrafa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Abolsa%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/bolsa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bolsa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Amochila%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/mochila" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mochila</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Achaveiro%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/chaveiro" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Chaveiro</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Apra%20cabelo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/para-cabelo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pra cabelo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aalmofada%20de%20viagem%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/almofada-v
3529iagem" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Almofada de viagem</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Abike%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/lev" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bike</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aboia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/boia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Boia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Abola%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/bola" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bola</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Abon%C3%A9%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/bone" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Boné</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acaderno%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/caderno" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Caderno</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acaixa%20de%20metal%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/caixa-de-metal" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Caixa de metal</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acaixinha%20de%20som%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/caixinha-de-som" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Caixinha de som</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acamping%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/camping" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Camping</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acanga%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/canga" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Canga</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acart%C3%A3o%20postal%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/cartao-postal" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Cartão postal</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acarteira%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/carteira" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Carteira</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acooler%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/cooler" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Cooler</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Acorda%20de%20celular%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/corda-celular" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Corda de celular</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aespelho%20de%20bolsa%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/espelho" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Espelho de bolsa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aestojo%20%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estojo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Estojo </span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Afone%20e%20headphone%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/fone-de-ouvido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Fone e headphone</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Afrescobol%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/frescobol" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Frescobol</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Alancheira%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/lancheira" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lancheira</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Alen%C3%A7o%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/lenco" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lenço</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Amala%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/mala" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mala</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Ameia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/meia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Meia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Anecessaire%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/necessaire" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Necessaire</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3A%C3%B3culos%20de%20sol%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/zerezes" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ãculos de sol</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Apin%20e%20patch%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/pin-e-patch" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pin e patch</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aplanner%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/planner" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Planner</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Apochete%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/pochete" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pochete</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aporta%20incenso%20e%20incens%C3%A1rio%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/incensario" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Porta incenso e incensário</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Aporta%20isqueiro%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/porta-isqueiro" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Porta isqueiro</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Asabonete%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/sabonete" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Sabonete</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Askate%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/skate" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Skate</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Asling%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/sling" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Sling</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Atoalha%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/toalha" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Toalha</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Atravesseiro%20%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/trav
3529esseiro" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Travesseiro </span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%3Avela%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/vela" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vela</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Aroupas%22%7D%7D%7D" data-event-trigger="click" for="P0-99650717" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Roupas</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-99650717" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-99650717" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-99650717" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Roupas</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/roupas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Aconjunto%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/conjuntos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Conjunto</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Apartes%20de%20cima%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/partes-de-cima" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Partes de cima</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Apartes%20de%20baixo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/partes-de-baixo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Partes de baixo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Acasacos%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/casaco" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Casacos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/biquini-canga" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aroupas%3Ape%C3%A7a%20%C3%BAnica%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Peça única</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Acollabs%22%7D%7D%7D" data-event-trigger="click" for="P0-100791379" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Collabs</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-100791379" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-100791379" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-100791379" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Collabs</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/parcerias" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Arip%20curl%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/rip-curl" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Rip Curl</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Abic%22%7D%7D%7D" data-event-trigger="click" href="/conheca-bic" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bic</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Amatte%20le%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/matte-leao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Matte Leão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Acorona%22%7D%7D%7D" data-event-trigger="click" href="/produtos/corona" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Corona</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Azee%20dog%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/zeedog" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Zee dog</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Alev%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/lev" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">LEV</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Aem%20alta%22%7D%7D%7D" data-event-trigger="click" for="P0-101368039" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Em alta</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-101368039" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-101368039" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-101368039" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Em alta</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Ablusas%2C%20t-shirts%20e%20%2B%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/partes-de-cima" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Blusas, t-shirts e +</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Acopos%20e%20garrafas%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/garrafas-e-copos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Copos e garrafas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Amais%20vendidos%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/mais-vendidos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mais vendidos</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Apor%20estampa%22%7D%7D%7D" data-event-trigger="click" for="P0-102739028" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Por estampa</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-102739028" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-102739028" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-102739028" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Por estampa</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apor%20estampa%3Arelevo%20carioca%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estampa-relevo-carioca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Relevo Carioca</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apor%20estampa%3Apedra%20da%20g%C3%A1vea%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estampa-pedra-da-gavea" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pedra da Gávea</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apor%20estampa%3Amundo%20azul%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estampa-mundo-azul" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mundo Azul</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apor%20estampa%3Axadrez%20multi%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estampa-xadrez-multi" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Xadrez Multi</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apor%20estampa%3Aon%C3%A7a%20bandana%20%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/estampa-onca-bandana" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Onça Bandana </span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Alifestyle%22%7D%7D%7D" data-event-trigger="click" for="P0-103201767" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lifestyle</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-103201767" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-103201767" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-103201767" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Lifestyle</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Acamping%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/camping" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Camping</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Aestudante%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/volta-as-aulas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Estudante</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Aessenciais%20do%20dia%20a%20dia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/essenciais-do-dia-a-dia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Essenciais do dia a dia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Acolecion%C3%A1veis%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/colecionaveis" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Colecionáveis</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Aesporte%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/esporte" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Esporte</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Aviagem%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/viagem" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Viagem</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Abem-estar%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/bem-estar" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bem-estar</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alifestyle%3Aurbano%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/urbano" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Urbano</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Atem%20de%20tudo%22%7D%7D%7D" data-event-trigger="click" for="P0-104628483" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tem de tudo</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-104628483" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-104628483" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-104628483" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Tem de tudo</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ver-tudo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Aetc%20e%20tal%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/etc-e-tal" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Etc e tal</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Apra%20levar%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/mochilas-bolsas-carteiras" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pra levar</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Aviagem%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/viagem" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Viagem</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3At%C3%A9rmicos%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/termicos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Térmicos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Apapelaria%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/papelaria" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Papelaria</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Adecora%C3%A7%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/decoracao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Decoração</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atem%20de%20tudo%3Aesporte%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/esporte" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Esporte</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Afarm%20etc%3Apresentes%22%7D%7D%7D" data-event-trigger="click" for="P0-105279322" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Presentes</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-105279322" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-105279322" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-105279322" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Presentes</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/presentes-etc-ver-tudo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Aat%C3%A9%20r%2450%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ate-50" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Até R$50</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Aat%C3%A9%20r%24100%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ate-100" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Até R$100</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Aat%C3%A9%20r%24200%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ate-200" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Até R$200</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Aat%C3%A9%20r%24300%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/ate-300" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Até R$300</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Acolecion%C3%A1veis%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/colecionaveis" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Colecionáveis</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Apresentes%3Acl%C3%A1ssicos%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/presentes-classicos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Clássicos</span></span></a></li></ul></div></div></div></div></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%22%7D%7D%7D" data-event-trigger="click" for="P0-9106023" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Collabs</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div>
3529<input id="P0-9106023" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-9106023" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-9106023" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Collabs</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/parcerias" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Astanley%201913%22%7D%7D%7D" data-event-trigger="click" href="/produtos/stanley" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Stanley 1913</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Arip%20curl%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/rip-curl" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Rip Curl</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Abic%22%7D%7D%7D" data-event-trigger="click" href="/conheca-bic" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bic</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Ahavaianas%22%7D%7D%7D" data-event-trigger="click" href="/produtos/havaianas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Havaianas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Aadidas%22%7D%7D%7D" data-event-trigger="click" href="/produtos/adidas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">adidas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Amatte%20le%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/matte-leao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Matte Leão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Acorona%22%7D%7D%7D" data-event-trigger="click" href="/produtos/corona" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Corona</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Azerezes%22%7D%7D%7D" data-event-trigger="click" href="/farm-etc/zerezes" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Zerezes</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acollabs%3Ayawanawa%20%22%7D%7D%7D" data-event-trigger="click" href="/produtos/yawanawa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Yawanawa </span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%22%7D%7D%7D" data-event-trigger="click" for="P0-1051285" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Linhas</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-1051285" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-1051285" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-1051285" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Linhas</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Aartesanais%22%7D%7D%7D" data-event-trigger="click" href="/produtos/artesanais" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Artesanais</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Alisos%22%7D%7D%7D" data-event-trigger="click" href="/produtos/lisos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lisos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Are-farm%20jeans%22%7D%7D%7D" data-event-trigger="click" href="/produtos/jeans-refarm" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Re-farm jeans</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Aocasi%C3%B5es%20especiais%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ocasioes-especiais" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ocasiões especiais</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Aquero%22%7D%7D%7D" data-event-trigger="click" href="/linhas/quero" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Quero</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Aachadinhos%22%7D%7D%7D" data-event-trigger="click" href="/produtos/achadinhos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Achadinhos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Amesa%20posta%22%7D%7D%7D" data-event-trigger="click" href="/produtos/mesa-posta" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mesa posta</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Afantasia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/fantasias" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Fantasia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Ame%20leva!%22%7D%7D%7D" data-event-trigger="click" href="/linhas/me-leva" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Me leva!</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Arespons%C3%A1veis%22%7D%7D%7D" data-event-trigger="click" href="/produtos/responsaveis" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Responsáveis</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Aglobais%22%7D%7D%7D" data-event-trigger="click" href="/produtos/farm-global" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Globais</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Apra%20sua%20casa%22%7D%7D%7D" data-event-trigger="click" href="/pra-sua-casa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Pra sua casa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Alinhas%3Afarm%20futura%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/teen" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Farm futura</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%22%7D%7D%7D" data-event-trigger="click" for="P0-11412683" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Em alta</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-11412683" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-11412683" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-11412683" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Em alta</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Atend%C3%AAncias%22%7D%7D%7D" data-event-trigger="click" for="P0-219429237" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tendências</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-219429237" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-219429237" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-219429237" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Tendências</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atend%C3%AAncias%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/tendencias" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atend%C3%AAncias%3Atule%22%7D%7D%7D" data-event-trigger="click" href="/produtos/tule" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tule</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atend%C3%AAncias%3Arenda%22%7D%7D%7D" data-event-trigger="click" href="/produtos/renda" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Renda</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Atend%C3%AAncias%3Anovo%20navy%22%7D%7D%7D" data-event-trigger="click" href="/produtos/navy" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Novo navy</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Amais%20vendidos%22%7D%7D%7D" data-event-trigger="click" href="/mais-vendidos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mais vendidos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aem%20alta%3Alooks%20pro%20trabalho%22%7D%7D%7D" data-event-trigger="click" href="/produtos/looks-pra-trabalho" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Looks pro trabalho</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%22%7D%7D%7D" data-event-trigger="click" for="P0-12649183" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calçados</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-12649183" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-12649183" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-12649183" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Calçados</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ape" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%3Asand%C3%A1lia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ape-sandalia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Sandália</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%3Achinelo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ape-chinelo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Chinelo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%3Arasteira%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ape-rasteira" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Rasteira</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acal%C3%A7ados%3Ajelly%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ape-jelly" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jelly</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%22%7D%7D%7D" data-event-trigger="click" for="P0-13359606" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Acessórios</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-13359606" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-13359606" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-13359606" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Acessórios</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/produtos/acessorios" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Abolsa%22%7D%7D%7D" data-event-trigger="click" href="/produtos/acessorios/bolsas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bolsa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Adeu%20praia%22%7D%7D%7D" data-event-trigger="click" href="/produtos/acessorios-praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Deu praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Acal%C3%A7ados%22%7D%7D%7D" data-event-trigger="click" href="/produtos/calcados" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calçados</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Alen%C3%A7o%20%22%7D%7D%7D" data-event-trigger="click" href="/produtos/lencos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lenço </span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Agarrafa%22%7D%7D%7D" data-event-trigger="click" href="/produtos/acessorios/garrafas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Garrafa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Acopo%20t%C3%A9rmico%22%7D%7D%7D" data-event-trigger="click" href="/produtos/ace
3529ssorios/copos-termicos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Copo térmico</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Aachadinhos%22%7D%7D%7D" data-event-trigger="click" href="/produtos/achadinhos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Achadinhos</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%22%7D%7D%7D" data-event-trigger="click" for="P0-14860666" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Infantil & teen </span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-14860666" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-14860666" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-14860666" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Infantil & teen </p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/verao-27" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Aver%C3%A3o%2027%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/verao-27" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Verão 27</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Abazar%20%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/bazar" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bazar </span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3At%C3%A1%20na%20vitrine%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/ta-na-vitrine" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Tá na vitrine</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Abeb%C3%AAs%22%7D%7D%7D" data-event-trigger="click" for="P0-243858689" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bebês</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-243858689" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-243858689" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-243858689" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Bebês</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abeb%C3%AAs%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/bebe" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abeb%C3%AAs%3Avestido%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/bebe-vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestido</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abeb%C3%AAs%3Amacac%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/bebe-macacao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Macacão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Abeb%C3%AAs%3Acal%C3%A7a%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/bebe-calca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calça</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Ameninas%22%7D%7D%7D" data-event-trigger="click" for="P0-244733393" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Meninas</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-244733393" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-244733393" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-244733393" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Meninas</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input
3529:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Avestido%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestido</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Amacac%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-macacao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Macacão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Ablusa%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-blusa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Blusa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Asaia%20e%20short%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-saia-short" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Saia e short</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Acal%C3%A7a%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-calca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calça</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Acasaco%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-casaco" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Casaco</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Afantasia%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-fantasia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Fantasia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninas%3Aacess%C3%B3rio%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninas-acessorios" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Acessório</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Ameninos%22%7D%7D%7D" data-event-trigger="click" for="P0-245220782" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Meninos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-245220782" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-245220782" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-245220782" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Meninos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninos%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninos%3Acamiseta%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninos-camiseta" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Camiseta</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninos%3Acamisa%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninos-camisa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Camisa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninos%3Abermuda%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninos-bermuda" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Bermuda</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ameninos%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/meninos-praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Ateen%20(8%20a%2014%20anos)%22%7D%7D%7D" data-event-trigger="click" for="P0-246948109" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Teen (8 a 14 anos)</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-246948109" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-246948109" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-246948109" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Teen (8 a 14 anos)</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Avestido%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-vestido" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Vestido</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Amacac%C3%A3o%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-macacao" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Macacão</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Ablusa%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-blusa-bata-tshirt" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Blusa</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Ashort%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-short" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Short</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Asaia%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-saia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Saia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Acal%C3%A7a%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-calca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Calça</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Acasaco%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-casaco" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Casaco</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Ajeans%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-jeans" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jeans</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Apraia%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-praia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Praia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ateen%20(8%20a%2014%20anos)%3Aacess%C3%B3rio%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/farmfutura-acessorios" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Acessório</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Ainfantil%20%26%20teen%20%3Aacess%C3%B3rios%22%7D%7D%7D" data-event-trigger="click" for="P0-247823387" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Acessórios</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-247823387" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-247823387" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-247823387" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Acessórios</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Aver%20tudo%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/acessorio?O=OrderByReleaseDateDESC" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Ver tudo</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Apapelaria%20%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/fabula-cicero" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Papelaria </span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aacess%C3%B3rios%3Azumzum%22%7D%7D%7D" data-event-trigger="click" href="/fabula-e-bento/zumzum" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Zumzum</span></span></a></li></ul></div></div></div></div></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asustentabilidade%22%7D%7D%7D" data-event-trigger="click" for="P0-15697317" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Sustentabilidade</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-15697317" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-15697317" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-15697317" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Sustentabilidade</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%22%7D%7D%7D" data-event-trigger="click" for="P0-281512014" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Nosso compromisso</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-281512014" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-281512014" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-281512014" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Nosso compromisso</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Afarm%20do%20futuro%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Farm do futuro</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Arelat%C3%B3rio%202024%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/relatorio-24" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Relatório 2024</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Asomos%20selo%20b%22%7D%7D%7D" data-event-trigger="click" href="/selo-b" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Somos Selo B</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Agente%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/gente" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Gente</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Acultura%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/cultura" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Cultura</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Anatureza%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/natureza" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Natureza</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3A
3529circularidade%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/circularidade" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Circularidade</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Anosso%20compromisso%3Atranspar%C3%AAncia%22%7D%7D%7D" data-event-trigger="click" href="/transparencia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Transparência</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asustentabilidade%3Aprojetos%22%7D%7D%7D" data-event-trigger="click" for="P0-282258458" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Projetos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-282258458" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-282258458" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-282258458" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Projetos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Abuena%20gente%22%7D%7D%7D" data-event-trigger="click" href="/buena-gente" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Buena Gente</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Aamazonikas%22%7D%7D%7D" data-event-trigger="click" href="/amazonikas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Amazonikas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Acora%C3%A7%C3%A3o%20da%20floresta%22%7D%7D%7D" data-event-trigger="click" href="/coracao-da-floresta" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Coração da floresta</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Are-farm%20cria%22%7D%7D%7D" data-event-trigger="click" href="/re-farm-cria" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Re-Farm cria</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Amil%20%C3%A1rvores%20por%20dia%22%7D%7D%7D" data-event-trigger="click" href="/sustentabilidade/mil-arvores-por-dia" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Mil árvores por dia</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Ayawanawa%22%7D%7D%7D" data-event-trigger="click" href="/yawanawa" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Yawanawa</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asustentabilidade%3Aprodutos%20%2B%20respons%C3%A1veis%22%7D%7D%7D" data-event-trigger="click" for="P0-283232085" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Produtos + responsáveis</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-283232085" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-283232085" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-283232085" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Produtos + responsáveis</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%20%2B%20respons%C3%A1veis%3Aroupas%22%7D%7D%7D" data-event-trigger="click" href="/roupas-responsaveis" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Roupas</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprodutos%20%2B%20respons%C3%A1veis%3Ajeans%22%7D%7D%7D" data-event-trigger="click" href="/produtos/jeans-refarm" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Jeans</span></span></a></li></ul></div></div></div></div></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%22%7D%7D%7D" data-event-trigger="click" for="P0-165989" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Sobre a FARM</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-165989" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-165989" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-165989" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Sobre a FARM</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Acheirinho%20farm%20rio%22%7D%7D%7D" data-event-trigger="click" href="/cheirinho-farm-rio" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Cheirinho FARM Rio</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Aas%20cariocas%22%7D%7D%7D" data-event-trigger="click" href="/cariocas" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">AS CARIOCAS</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Aapp%20farm%20rio%22%7D%7D%7D" data-event-trigger="click" href="/app-farm" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">App FARM Rio</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Alojix%22%7D%7D%7D" data-event-trigger="click" href="/lojix" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Lojix</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Ado%20brasil%20pro%20mundo%22%7D%7D%7D" data-event-trigger="click" href="/do-brasil-pro-mundo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Do Brasil pro mundo</span></span></a></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Aprojetos%22%7D%7D%7D" data-event-trigger="click" for="P0-305478179" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Projetos</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-305478179" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-305478179" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:
3529pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-305478179" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Projetos</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Acarnaval%20carioca%22%7D%7D%7D" data-event-trigger="click" href="/saiba-mais-carnaval-carioca" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">CARNAVAL CARIOCA</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Aadidas%20%3C3%20farm%3A%2010%20anos%22%7D%7D%7D" data-event-trigger="click" href="/parcerias/adidas-10-anos" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Adidas <3 FARM: 10 anos</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Aprojetos%3Aadidas%20%3C3%20flamengo%22%7D%7D%7D" data-event-trigger="click" href="/parcerias/adidas-flamengo" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Adidas <3 Flamengo</span></span></a></li></ul></div></div></div></div></li><li class="px-6 h-15"><label data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Asobre%20a%20farm%3Acole%C3%A7%C3%B5es%22%7D%7D%7D" data-event-trigger="click" for="P0-306281731" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Coleções</span></span><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></label><div><input id="P0-306281731" type="checkbox" class="hidden peer"/><label aria-label="Fechar menu" for="P0-306281731" class="fixed inset-0 cursor-pointer pointer-events-none peer-checked:pointer-events-auto z-50"></label><div id="desktop-menu-container" class="opacity-0 pointer-events-none peer-checked:opacity-100 peer-checked:pointer-events-auto transition-opacity duration-300 ease-in-out z-[51] overscroll-contain has-[input:checked]:overflow-y-clip absolute inset-0 overflow-y-auto overscroll-contain bg-white"><div class="flex flex-col relative h-full"><div class="p-6 flex w-full items-center gap-2"><label for="P0-306281731" class="flex justify-center items-center rounded-full border border-etc-n1-medium size-8 cursor-pointer"><svg width="24" height="24" stroke-width="1"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></label><p class="text-[19px]">Coleções</p></div><div class="flex flex-col bg-white overscroll-contain overflow-y-auto has-[input:checked]:overflow-y-clip"><ul><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acole%C3%A7%C3%B5es%3Aver%C3%A3o%2027%22%7D%7D%7D" data-event-trigger="click" href="/verao-27" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Verão 27</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acole%C3%A7%C3%B5es%3Aalto%20inverno%2026%22%7D%7D%7D" data-event-trigger="click" href="/alto-inverno-26" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Alto Inverno 26</span></span></a></li><li class="px-6 h-15"><a data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22menu%3Aheader%3Acole%C3%A7%C3%B5es%3Ainverno%2026%22%7D%7D%7D" data-event-trigger="click" href="/inverno-26" class="flex justify-between items-center h-full text-[17px] cursor-pointer border-b border-etc-n1-light"><span class="flex items-center gap-2"><span class="relative">Inverno 26</span></span></a></li></ul></div></div></div></div></li></ul></div></div></div></div></li></ul><ul class="mt-4 flex flex-col gap-2 text-base lg:text-sm"><li class="flex justify-between items-center gap-2 h-10 px-6"><a href="/nossas-lojas" class="flex items-center gap-2 w-full"><img width="64" height="64" src="https://decoims.com/farmrio/9c2c8f1f-fde7-4d48-a5e7-a687fcf0578a/store-(1).png" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=64&height=64&quality=high&src=farmrio%2F9c2c8f1f-fde7-4d48-a5e7-a687fcf0578a%2Fstore-%281%29.png 64w, https://decoims.com/image?fit=cover&width=128&height=128&quality=high&src=farmrio%2F9c2c8f1f-fde7-4d48-a5e7-a687fcf0578a%2Fstore-%281%29.png 128w" loading="lazy" class="size-8"/>Nossas lojas</a><svg width="22" height="22" stroke-width="16"><use href="/sprites.svg?__deco_c=2#ThinArrowRight"></use></svg></li></ul></div></div></div></div><div id="new-menu-ab" data-new-menu-desktop="true" style="top:var(--new-menu-top, var(--header-desktop-height, 64px));height:var(--new-menu-height, calc(100vh - var(--header-desktop-height, 64px)));" class="fixed left-0 right-0 z-[51] bg-white opacity-0 pointer-events-none transition-opacity duration-300 ease-in-out [body:has(#sidemenu-drawer:checked)_&]:opacity-100 [body:has(#sidemenu-drawer:checked)_&]:pointer-events-auto">
3529<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function updateNewMenuPosition(e){const t=document.querySelector("[data-header-container]");if(!t)return;let i=0;const n=()=>{cancelAnimationFrame(i),i=requestAnimationFrame((()=>{const i=document.getElementById(e);if(!i)return;const n=t.firstElementChild,s=Math.max(0,(n??t).getBoundingClientRect().bottom),r=globalThis.visualViewport?.height??globalThis.innerHeight;i.style.setProperty("--new-menu-top",`${s}px`),i.style.setProperty("--new-menu-height",`${Math.max(0,r-s)}px`)}))};n(),globalThis.addEventListener("resize",n),globalThis.addEventListener("scroll",n,{passive:!0}),globalThis.visualViewport?.addEventListener("resize",n),globalThis.visualViewport?.addEventListener("scroll",n),"ResizeObserver"in globalThis&&new ResizeObserver(n).observe(t),"MutationObserver"in globalThis&&new MutationObserver(n).observe(document.body,{attributes:!0,childList:!0,subtree:!0})})("new-menu-ab")</script>
3529<div id="nmP0313554360" style="color:#333333;" class="font-montserrat text-[#333333] h-full w-full bg-white"><style>#nmP0313554360 .nm-panels > div{display:none;}#nmP0313554360 .no-scrollbar::-webkit-scrollbar{display:none;}#nmP0313554360 .no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}#nmP0313554360 .nm-desktop-sections-scroll{scrollbar-width:none;-ms-overflow-style:none;}#nmP0313554360 .nm-desktop-sections-scroll::-webkit-scrollbar{display:none;}#nmP0313554360 .nm-desktop-scrollbar-thumb{min-height:48px;}#nmP0313554360 .nm-dot{height:4px;width:4px;border-radius:9999px;background:#333333;transition:width .2s ease,background .2s ease;}#nmP0313554360 .nm-dot[disabled]{width:32px;height:4px;background:#333333;} 3530#nmP0313554360 .nm-input-0:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-0"]{color:rgba(51, 51, 51, 1)!important;} 3531#nmP0313554360 .nm-input-0:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-0{display:flex;} 3532#nmP0313554360 .nm-input-1:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-1"]{color:rgba(51, 51, 51, 1)!important;} 3533#nmP0313554360 .nm-input-1:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-1{display:flex;} 3534#nmP0313554360 .nm-input-2:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-2"]{color:rgba(51, 51, 51, 1)!important;} 3535#nmP0313554360 .nm-input-2:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-2{display:flex;} 3536#nmP0313554360 .nm-input-3:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-3"]{color:rgba(51, 51, 51, 1)!important;} 3537#nmP0313554360 .nm-input-3:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-3{display:flex;} 3538#nmP0313554360 .nm-input-4:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-4"]{color:rgba(51, 51, 51, 1)!important;} 3539#nmP0313554360 .nm-input-4:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-4{display:flex;} 3540#nmP0313554360 .nm-input-5:checked ~ .nm-desktop-layout .nm-nav label[for="nmP0313554360-tab-5"]{color:rgba(51, 51, 51, 1)!important;} 3541#nmP0313554360 .nm-input-5:checked ~ .nm-desktop-layout .nm-panels > .nm-panel-5{display:flex;}</style>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupDesktopMenuScrollbars(e){const t=document.getElementById(e);if(!t)return;t.querySelectorAll("[data-nm-desktop-scroll]").forEach((e=>{const t=e.parentElement?.querySelector("[data-nm-scrollbar]"),n=t?.querySelector("[data-nm-scrollbar-thumb]");if(!t||!n)return;let r=!1,i=0,l=0;const o=()=>{const r=e.scrollHeight-e.clientHeight,i=r>1;if(t.style.display=i?"block":"none",!i)return;const l=Math.max(48,e.clientHeight/e.scrollHeight*e.clientHeight),o=(e.clientHeight-l)*(e.scrollTop/r);n.style.height=`${l}px`,n.style.transform=`translateY(${o}px)`},s=e=>{r=!1,n.releasePointerCapture(e.pointerId)};e.addEventListener("scroll",o,{passive:!0}),n.addEventListener("pointerdown",(t=>{t.preventDefault(),r=!0,i=t.clientY,l=e.scrollTop,n.setPointerCapture(t.pointerId)})),n.addEventListener("pointermove",(t=>{if(!r)return;const o=n.offsetHeight,s=e.clientHeight-o,c=e.scrollHeight-e.clientHeight,a=t.clientY-i,d=s>0?a/s*c:0;e.scrollTop=l+d})),n.addEventListener("pointerup",s),n.addEventListener("pointercancel",s),t.addEventListener("pointerdown",(r=>{if(r.target===n)return;const i=t.getBoundingClientRect(),l=n.offsetHeight,o=e.clientHeight-l,s=e.scrollHeight-e.clientHeight,c=Math.min(Math.max(r.clientY-i.top-l/2,0),o);e.scrollTop=o>0?c/o*s:0})),globalThis.addEventListener("resize",o),"ResizeObserver"in globalThis&&new ResizeObserver(o).observe(e),requestAnimationFrame(o)}))})("nmP0313554360")</script>
3541<input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-0" checked class="nm-input-0 hidden"/><input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-1" class="nm-input-1 hidden"/><input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-2" class="nm-input-2 hidden"/><input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-3" class="nm-input-3 hidden"/><input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-4" class="nm-input-4 hidden"/><input type="radio" name="nmP0313554360-tab" id="nmP0313554360-tab-5" class="nm-input-5 hidden"/><div class="nm-desktop-layout mx-auto grid h-full w-full max-w-[1440px] grid-cols-[240px_minmax(0,1fr)] px-10 py-8"><div class="nm-nav flex flex-col pr-8"><label for="nmP0313554360-tab-0" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">FARM Rio</label><label for="nmP0313554360-tab-1" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">FARM Etc</label><label for="nmP0313554360-tab-2" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">Infantil & Teen</label><label for="nmP0313554360-tab-3" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">Bazar</label><label for="nmP0313554360-tab-4" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">Sustentabilidade</label><label for="nmP0313554360-tab-5" style="color:rgba(153, 153, 153, 1);" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%22%7D" data-event-trigger="click" class="cursor-pointer py-2 text-[15px] font-medium">Sobre</label></div><div class="nm-panels min-h-0 h-full"><div class="nm-panel-0 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/novidades" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Anovidades%22%7D" data-event-trigger="click" class="w-fit font-normal">Novidades</a></div><div class="flex-1 flex flex-col gap-2"><a href="/novidades" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Anovidades%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/produtos/novo-drop" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Anovidades%3Anuvem%20de%20algod%C3%A3o%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Nuvem de algodão</span></a><a href="/produtos/curadoria-farm" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Anovidades%3Acuradoria%20farm%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Curadoria FARM</span></a><a href="/ta-na-vitrine" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Anovidades%3At%C3%A1%20na%20vitrine%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Tá na vitrine</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/produtos" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%22%7D" data-event-trigger="click" class="w-fit font-normal">Coleção</a></div><div class="flex-1 flex flex-col gap-2"><a href="/produtos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/produtos/vestido" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Avestidos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Vestidos</span></a><a href="/produtos/macacao" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Amacac%C3%B5es%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Macacões</span></a><a href="/produtos/sobreposicoes" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Acasacos%20%7C%20sobreposi%C3%A7%C3%A3o%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Casacos | Sobreposição</span></a><a href="/produtos/blusa-camisa" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Ablusas%20%7C%20camisas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Blusas | Camisas</span></a><a href="/produtos/calca" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Acal%C3%A7as%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Calças</span></a><a href="/produtos/short-e-saia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Asaias%20%7C%20shorts%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Saias | shorts</span></a><a href="/produtos/jeans-refarm" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Ajeans%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Jeans</span></a><a href="/produtos/tricot" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Atricots%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Tricots</span></a><a href="/produtos/artesanais" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Aartesanais%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Artesanais</span></a><a href="/produtos/conjuntos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Aconjuntos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Conjuntos</span></a><a href="/produtos/praia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acole%C3%A7%C3%A3o%3Apraia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Praia</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/produtos/acessorios" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aacess%C3%B3rios%22%7D" data-event-trigger="click" class="w-fit font-normal">Acessórios</a></div><div class="flex-1 flex flex-col gap-2"><a href="/produtos/acessorios" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aacess%C3%B3rios%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/produtos/acessorios/bolsas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aacess%C3%B3rios%3Abolsas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Bolsas</span></a><a href="/produtos/acessorios-praia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aacess%C3%B3rios%3Apraia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Praia</span></a><a href="/linhas/quero" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aacess%C3%B3rios%3Aquero%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Quero</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/produtos/ape" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acal%C3%A7ados%22%7D" data-event-trigger="click" class="w-fit font-normal">Calçados</a></div><div class="flex-1 flex flex-col gap-2"><a href="/produtos/ape" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acal%C3%A7ados%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/produtos/ape-sandalia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acal%C3%A7ados%3Asand%C3%A1lias%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Sandálias</span></a><a href="/produtos/ape-chinelo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Acal%C3%A7ados%3Achinelos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Chinelos</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/produtos/parcerias" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%22%7D" data-event-trigger="click" class="w-fit font-normal">Parcerias</a></div><div class="flex-1 flex flex-col gap-2"><a href="/produtos/parcerias" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-
3541px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/produtos/stanley" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Astanley%201913%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Stanley 1913</span></a><a href="/farm-etc/rip-curl" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Arip%20curl%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Rip Curl</span></a><a href="/conheca-bic" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Abic%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Bic</span></a><a href="/produtos/adidas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Aadidas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">adidas</span></a><a href="/farm-etc/matte-leao" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Amatte%20le%C3%A3o%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Matte Leão</span></a><a href="/produtos/havaianas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Ahavaianas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Havaianas</span></a><a href="/produtos/corona" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Acorona%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Corona</span></a><a href="/farm-etc/zerezes" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Azerezes%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Zerezes</span></a><a href="/produtos/yawanawa" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20rio%3Aparcerias%3Ayawanawa%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Yawanawa</span></a></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-0" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/sl
3541ider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/mais-vendidos" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fmais-vendidos%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20mais%20vendidos%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20mais%20vendidos%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/mais-vendidos","promotion_name":"[farm rio] [banner novo menu mais vendidos]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu mais vendidos]:banner:1","url":"/mais-vendidos","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/mais-vendidos\",\"promotion_name\":\"[farm rio] [banner novo menu mais vendidos]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu mais vendidos]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/f4b8f1b9-67ce-4840-8e99-6229b4170ccc/04-08-26-home-banner-menu-mais-vendidos-desktop.jpg"/><img src="https://decoims.com/farmrio/e1a29bbc-b65d-4b2c-a681-83f2d6913ac3/04-08-26-home-banner-menu-mais-vendidos-mobile.jpg" alt="[farm rio] [banner novo menu mais vendidos]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Mais vendidos</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/novidades" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fnovidades%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20novidades%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20novidades%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/novidades","promotion_name":"[farm rio] [banner novo menu novidades]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu novidades]:banner:2","url":"/novidades","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/novidades\",\"promotion_name\":\"[farm rio] [banner novo menu novidades]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu novidades]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/f406f18d-e68b-4429-a006-0cb621224f44/04-08-26-home-banner-menu-novidades-desktop.jpg"/><img src="https://decoims.com/farmrio/eb76cec0-6465-4e90-bd33-3706a1e6b5f2/04-08-26-home-banner-menu-novidades-mobile.jpg" alt="[farm rio] [banner novo menu novidades]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Novidades</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/produtos/vestido" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20vestidos%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20vestidos%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/produtos/vestido","promotion_name":"[farm rio] [banner novo menu vestidos]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu vestidos]:banner:3","url":"/produtos/vestido","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/produtos/vestido\",\"promotion_name\":\"[farm rio] [banner novo menu vestidos]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu vestidos]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/13ad2612-a12b-43de-9ce8-69cf133f8d55/04-08-26-home-banner-menu-vestidos-desktop.jpg"/><img src="https://decoims.com/farmrio/380f03f0-76fd-4afc-854b-11ed6a674d1d/04-08-26-home-banner-menu-vestidos-mobile.jpg" alt="[farm rio] [banner novo menu vestidos]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Vestidos</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2"><button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci0wIiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-0", "sidemenu-drawer")</script>
3541</div></div></div></div></div><div class="nm-panel-1 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/novidades" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Anovidades%22%7D" data-event-trigger="click" class="w-fit font-normal">Novidades</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/novidades" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Anovidades%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/ta-na-vitrine" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Anovidades%3At%C3%A1%20na%20vitrine%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Tá na vitrine</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/ver-tudo" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%22%7D" data-event-trigger="click" class="w-fit font-normal">Produtos</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/ver-tudo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/mochilas-bolsas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Abolsas%20%7C%20mochilas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Bolsas | Mochilas</span></a><a href="/farm-etc/garrafas-e-copos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Acopos%20%7C%20garrafas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Copos | Garrafas</span></a><a href="/farm-etc/para-cabelo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Apra%20cabelo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Pra Cabelo</span></a><a href="/farm-etc/viagem" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Aviagens%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Viagens</span></a><a href="/farm-etc/necessaire" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Anecessaires%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Necessaires</span></a><a href="/farm-etc/lancheira-e-cooler" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Alancheiras%20%7C%20coolers%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Lancheiras | Coolers</span></a><a href="/farm-etc/etc-e-tal" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Aacess%C3%B3rios%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Acessórios</span></a><a href="/farm-etc/esporte" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Aesportes%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Esportes</span></a><a href="/farm-etc/praia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Apraia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Praia</span></a><a href="/farm-etc/papelaria" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aprodutos%3Apapelaria%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Papelaria</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/roupas" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%22%7D" data-event-trigger="click" class="w-fit font-normal">Roupas</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/roupas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/partes-de-cima" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Apartes%20de%20cima%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de cima</span></a><a href="/farm-etc/conjuntos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Aconjuntos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Conjuntos</span></a><a href="/farm-etc/biquini-canga" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Apraia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Praia</span></a><a href="/farm-etc/vestido" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Ape%C3%A7as%20%C3%BAnicas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Peças únicas</span></a><a href="/farm-etc/partes-de-baixo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aroupas%3Apartes%20de%20baixo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de baixo</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/presentes-etc-ver-tudo" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%22%7D" data-event-trigger="click" class="w-fit font-normal">Presentes</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/presentes-etc-ver-tudo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/ate-50" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%3Aat%C3%A9%20r%24%2050%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Até R$ 50</span></a><a href="/farm-etc/ate-100" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%3Aat%C3%A9%20r%24%20100%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Até R$ 100</span></a><a href="/farm-etc/ate-200" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%3Aat%C3%A9%20r%24%20200%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Até R$ 200</span></a><a href="/farm-etc/ate-300" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Apresentes%3Aat%C3%A9%20r%24%20300%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Até R$ 300</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/parcerias" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%22%7D" data-event-trigger="click" class="w-fit font-normal">Parcerias</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/parcerias" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/rip-curl" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Arip%20curl%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Rip Curl</span></a><a href="/conheca-bic" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Abic%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Bic</span></a><a href="/farm-etc/matte-leao" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Amatte%20le%C3%A3o%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Matte Leão</span></a><a href="/produtos/corona" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Acorona%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Corona</span></a><a href="/farm-etc/zerezes" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Azerezes%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Zerezes</span></a><a href="/farm-etc/zeedog" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Azee%20dog%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Zee dog</span></a><a href="/farm-etc/lev" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Afarm%20etc%3Aparcerias%3Alev%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">LEV</span></a></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-1" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/sl
3541ider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/farm-etc/mochilas-bolsas-carteiras" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmetc%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffarm-etc%2Fmochilas-bolsas-carteiras%22%2C%22promotion_name%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20mochilas%20bolsas%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20mochilas%20bolsas%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/farm-etc/mochilas-bolsas-carteiras","promotion_name":"[farm etc] [banner novo menu etc mochilas bolsas]","creative_name":"banner_novo_menu","creative_slot":"[farm etc] [banner novo menu etc mochilas bolsas]:banner:1","url":"/farm-etc/mochilas-bolsas-carteiras","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmetc\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/farm-etc/mochilas-bolsas-carteiras\",\"promotion_name\":\"[farm etc] [banner novo menu etc mochilas bolsas]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm etc] [banner novo menu etc mochilas bolsas]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/3e1f91c4-f656-4409-a478-a15152676aee/11-08-26-home-banner-menu-etc-mochilas-bolsas-desktop.jpg"/><img src="https://decoims.com/farmrio/5ea61859-9903-446a-9da4-9fc13ead2421/11-08-26-home-banner-menu-etc-mochilas-bolsas-mobile.jpg" alt="[farm etc] [banner novo menu etc mochilas bolsas]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Mochilas | Bolsas</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/farm-etc/mais-vendidos" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmetc%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffarm-etc%2Fmais-vendidos%22%2C%22promotion_name%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20mais%20vendidos%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20mais%20vendidos%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/farm-etc/mais-vendidos","promotion_name":"[farm etc] [banner novo menu etc mais vendidos]","creative_name":"banner_novo_menu","creative_slot":"[farm etc] [banner novo menu etc mais vendidos]:banner:2","url":"/farm-etc/mais-vendidos","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmetc\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/farm-etc/mais-vendidos\",\"promotion_name\":\"[farm etc] [banner novo menu etc mais vendidos]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm etc] [banner novo menu etc mais vendidos]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/aac59eb8-27db-4de3-b6e3-8e3d7faf2d05/11-08-26-home-banner-menu-etc-mais-vendidos-desktop.jpg"/><img src="https://decoims.com/farmrio/711169a5-14a3-44c9-98a1-06d4a608c529/11-08-26-home-banner-menu-etc-mais-vendidos-mobile.jpg" alt="[farm etc] [banner novo menu etc mais vendidos]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Mais vendidos</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/farm-etc/termicos" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmetc%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffarm-etc%2Ftermicos%22%2C%22promotion_name%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20termico%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20etc%5D%20%5Bbanner%20novo%20menu%20etc%20termico%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/farm-etc/termicos","promotion_name":"[farm etc] [banner novo menu etc termico]","creative_name":"banner_novo_menu","creative_slot":"[farm etc] [banner novo menu etc termico]:banner:3","url":"/farm-etc/termicos","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmetc\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/farm-etc/termicos\",\"promotion_name\":\"[farm etc] [banner novo menu etc termico]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm etc] [banner novo menu etc termico]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/12cc6c4d-1a4b-447a-9c03-1ae65cbd91dc/11-08-26-home-banner-menu-etc-termico-desktop.jpg"/><img src="https://decoims.com/farmrio/7992e156-07b1-494d-928f-7dc897730c8f/11-08-26-home-banner-menu-etc-termico-mobile.jpg" alt="[farm etc] [banner novo menu etc termico]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Térmicos</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2"><button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci0xIiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-1", "sidemenu-drawer")</script>
3541</div></div></div></div></div><div class="nm-panel-2 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/fabula-e-bento/verao-27" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Anovidades%22%7D" data-event-trigger="click" class="w-fit font-normal">Novidades</a></div><div class="flex-1 flex flex-col gap-2"><a href="/fabula-e-bento/verao-27" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Anovidades%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/fabula-e-bento/ta-na-vitrine" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Anovidades%3At%C3%A1%20na%20vitrine%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Tá na vitrine</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/fabula-e-bento/farmfutura" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%22%7D" data-event-trigger="click" class="w-fit font-normal">Teen</a></div><div class="flex-1 flex flex-col gap-2"><a href="/fabula-e-bento/farmfutura" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/fabula-e-bento/farmfutura-vestido" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%3Avestido%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Vestido</span></a><a href="/fabula-e-bento/farmfutura-blusa-bata-tshirt" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%3Apartes%20de%20cima%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de cima</span></a><a href="/fabula-e-bento/farmfutura-partes-de-baixo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%3Apartes%20de%20baixo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de baixo</span></a><a href="/fabula-e-bento/farmfutura-acessorios" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ateen%3Aacess%C3%B3rios%20%7C%20kits%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Acessórios | Kits</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/fabula-e-bento-ver-tudo" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%22%7D" data-event-trigger="click" class="w-fit font-normal">Infantil</a></div><div class="flex-1 flex flex-col gap-2"><a href="/fabula-e-bento-ver-tudo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/fabula-e-bento-vestidos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%3Avestidos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Vestidos</span></a><a href="/fabula-e-bento/meninas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%3Ameninas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Meninas</span></a><a href="/fabula-e-bento/meninos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%3Ameninos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Meninos</span></a><a href="/fabula-e-bento-acessorios" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Ainfantil%3Aacess%C3%B3rios%20%7C%20kits%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Acessórios | Kits</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/fabula-e-bento/bebe" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Abeb%C3%AAs%22%7D" data-event-trigger="click" class="w-fit font-normal">Bebês</a></div><div class="flex-1 flex flex-col gap-2"><a href="/fabula-e-bento/bebe" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Ainfantil%20%26%20teen%3Abeb%C3%AAs%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-2" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/sl
3541ider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/fabula-e-bento/verao-27" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffabula-e-bento%2Fverao-27%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20novidades%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20novidades%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/fabula-e-bento/verao-27","promotion_name":"[farm rio] [banner novo menu infantil teen novidades]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu infantil teen novidades]:banner:1","url":"/fabula-e-bento/verao-27","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/fabula-e-bento/verao-27\",\"promotion_name\":\"[farm rio] [banner novo menu infantil teen novidades]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu infantil teen novidades]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/a9808efd-bdc2-4baa-b005-59432308605c/12-08-26-home-banner-menu-novidades-desktop.png"/><img src="https://decoims.com/farmrio/2a1479ba-6bb8-4b2c-ba04-2c15298226db/12-08-26-home-banner-menu-novidades-mobile.png" alt="[farm rio] [banner novo menu infantil teen novidades]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Novidades</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/fabula-e-bento/farmfutura" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffabula-e-bento%2Ffarmfutura%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20futura%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20futura%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/fabula-e-bento/farmfutura","promotion_name":"[farm rio] [banner novo menu infantil teen futura]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu infantil teen futura]:banner:2","url":"/fabula-e-bento/farmfutura","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/fabula-e-bento/farmfutura\",\"promotion_name\":\"[farm rio] [banner novo menu infantil teen futura]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu infantil teen futura]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/18c9a246-76e8-443f-ab3b-2e7389cf1ef2/12-08-26-home-banner-menu-futura-desktop.png"/><img src="https://decoims.com/farmrio/49346a98-3205-45c2-9742-364bebb374f0/12-08-26-home-banner-menu-futura-mobile.png" alt="[farm rio] [banner novo menu infantil teen futura]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">FARM Futura</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/fabula-e-bento-ver-tudo" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffabula-e-bento-ver-tudo%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20fabula%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20infantil%20teen%20fabula%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/fabula-e-bento-ver-tudo","promotion_name":"[farm rio] [banner novo menu infantil teen fabula]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu infantil teen fabula]:banner:3","url":"/fabula-e-bento-ver-tudo","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/fabula-e-bento-ver-tudo\",\"promotion_name\":\"[farm rio] [banner novo menu infantil teen fabula]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu infantil teen fabula]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/a39660bf-f697-4601-a8d5-b4603f4f16f6/12-08-26-home-banner-menu-fabula-desktop.png"/><img src="https://decoims.com/farmrio/16433835-c473-4932-b66c-15f6ea734793/12-08-26-home-banner-menu-fabula-mobile.png" alt="[farm rio] [banner novo menu infantil teen fabula]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Fábula</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2"><button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci0yIiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-2", "sidemenu-drawer")</script>
3541</div></div></div></div></div><div class="nm-panel-3 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/bazar" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%22%7D" data-event-trigger="click" class="w-fit font-normal">Farm</a></div><div class="flex-1 flex flex-col gap-2"><a href="/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/bazar/vestido" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Avestidos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Vestidos</span></a><a href="/bazar/macacao" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Amacac%C3%B5es%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Macacões</span></a><a href="/bazar/acessorios" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Aacess%C3%B3rios%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Acessórios</span></a><a href="/bazar/partes-de-cima" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Apartes%20de%20cima%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de cima</span></a><a href="/bazar/partes-de-baixo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%3Apartes%20de%20baixo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Partes de baixo</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/farm-etc/bazar" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%20etc.%22%7D" data-event-trigger="click" class="w-fit font-normal">Farm Etc.</a></div><div class="flex-1 flex flex-col gap-2"><a href="/farm-etc/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%20etc.%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/farm-etc/roupa-bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%20etc.%3Aroupas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Roupas</span></a><a href="/farm-etc/ver-tudo-bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Afarm%20etc.%3Aprodutos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Produtos</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/fabula-e-bento/bazar" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Ainfantil%20%26%20teen%22%7D" data-event-trigger="click" class="w-fit font-normal">Infantil & Teen</a></div><div class="flex-1 flex flex-col gap-2"><a href="/fabula-e-bento/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Ainfantil%20%26%20teen%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a><a href="/fabula-e-bento/teen/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Ainfantil%20%26%20teen%3Ateen%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Teen</span></a><a href="/fabula-e-bento/infantil/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Ainfantil%20%26%20teen%3Ainfantil%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Infantil</span></a><a href="/fabula-e-bento/bebe/bazar" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Abazar%3Ainfantil%20%26%20teen%3Abeb%C3%AAs%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Bebês</span></a></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-3" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/slider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/bazar/vestido" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fbazar%2Fvestido%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20vestidos%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20vestidos%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/bazar/vestido","promotion_name":"[farm rio] [banner novo menu bazar vestidos]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu bazar vestidos]:banner:1","url":"/bazar/vestido","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/bazar/vestido\",\"promotion_name\":\"[farm rio] [banner novo menu bazar vestidos]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu bazar vestidos]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/45b13651-606f-479e-888b-b3370c5bae15/11-08-26-home-banner-menu-bazar-vestidos-desktop.jpg"/><img src="https://decoims.com/farmrio/f54f64cc-a862-4e07-9140-e9bc7ab68094/11-08-26-home-banner-menu-bazar-vestidos-mobile.jpg" alt="[farm rio] [banner novo menu bazar vestidos]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Vestidos</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/bazar/destaques" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fbazar%2Fdestaques%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20destaques%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20destaques%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/bazar/destaques","promotion_name":"[farm rio] [banner novo menu bazar destaques]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu bazar destaques]:banner:2","url":"/bazar/destaques","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/bazar/destaques\",\"promotion_name\":\"[farm rio] [banner novo menu bazar destaques]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu bazar destaques]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/6a0468f9-0d27-48c6-8bbd-ec82be079ddc/11-08-26-home-banner-menu-bazar-destaques-desktop.jpg"/><img src="https://decoims.com/farmrio/ac1863c4-5976-44cf-8d20-e139ea9d6771/11-08-26-home-banner-menu-bazar-destaques-mobile.jpg" alt="[farm rio] [banner novo menu bazar destaques]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Destaques</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/farm-etc/ver-tudo-bazar" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Ffarm-etc%2Fver-tudo-bazar%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20acessorios%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20bazar%20acessorios%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/farm-etc/ver-tudo-bazar","promotion_name":"[farm rio] [banner novo menu bazar acessorios]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu bazar acessorios]:banner:3","url":"/farm-etc/ver-tudo-bazar","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/farm-etc/ver-tudo-bazar\",\"promotion_name\":\"[farm rio] [banner novo menu bazar acessorios]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu bazar acessorios]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/0c38e572-e770-43c9-8521-19bb5d81d29f/11-08-26-home-banner-menu-bazar-acessorios-desktop.jpg"/><img src="https://decoims.com/farmrio/865acf0e-daec-4228-a3be-90805ee4a776/11-08-26-home-banner-menu-bazar-acessorios-mobile.jpg" alt="[farm rio] [banner novo menu bazar acessorios]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Acessórios</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2"><button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci0zIiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-3", "sidemenu-drawer")</script>
3541</div></div></div></div></div><div class="nm-panel-4 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6">Nosso compromisso</div><div class="flex-1 flex flex-col gap-2"><a href="/sustentabilidade" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Afarm%20do%20futuro%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Farm do futuro</span></a><a href="/sustentabilidade/relatorio-24" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Arelat%C3%B3rio%202024%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Relatório 2024</span></a><a href="/selo-b" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Asomos%20selo%20b%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Somos Selo B</span></a><a href="/sustentabilidade/gente" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Agente%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Gente</span></a><a href="/sustentabilidade/cultura" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Acultura%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Cultura</span></a><a href="/sustentabilidade/natureza" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Anatureza%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Natureza</span></a><a href="/sustentabilidade/circularidade" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Acircularidade%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Circularidade</span></a><a href="/transparencia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Anosso%20compromisso%3Atranspar%C3%AAncia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Transparência</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6">Projetos</div><div class="flex-1 flex flex-col gap-2"><a href="/buena-gente" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Abuena%20gente%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Buena Gente</span></a><a href="/amazonikas" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Aamazonikas%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Amazonikas</span></a><a href="/coracao-da-floresta" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Acora%C3%A7%C3%A3o%20da%20floresta%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Coração da floresta</span></a><a href="/re-farm-cria" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Are-farm%20cria%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Re-farm cria</span></a><a href="/sustentabilidade/mil-arvores-por-dia" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Amil%20%C3%A1rvores%20por%20dia%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Mil árvores por dia</span></a><a href="/yawanawa" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprojetos%3Ayawanawa%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Yawanawa</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/produtos/responsaveis" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprodutos%20%2B%20respons%C3%A1veis%22%7D" data-event-trigger="click" class="w-fit font-normal">Produtos + responsáveis</a></div><div class="flex-1 flex flex-col gap-2"><a href="/produtos/responsaveis" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asustentabilidade%3Aprodutos%20%2B%20respons%C3%A1veis%3Aver%20tudo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal font-medium"><span class="relative flex items-center gap-2">Ver tudo</span><svg width="14" height="14" stroke-width="16" class="ml-1 shrink-0 -translate-y-px"><use href="/sprites.svg?__deco_c=2#ChevronRight"></use></svg></a></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-4" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/slider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/sustentabilidade/mil-arvores-por-dia" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fsustentabilidade%2Fmil-arvores-por-dia%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20mil%20arvores%20por%20dia%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20mil%20arvores%20por%20dia%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/sustentabilidade/mil-arvores-por-dia","promotion_name":"[farm rio] [banner novo menu sustentabilidade mil arvores por dia]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sustentabilidade mil arvores por dia]:banner:1","url":"/sustentabilidade/mil-arvores-por-dia","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/sustentabilidade/mil-arvores-por-dia\",\"promotion_name\":\"[farm rio] [banner novo menu sustentabilidade mil arvores por dia]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sustentabilidade mil arvores por dia]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/c7d00a73-3c45-47a3-87c9-40d7ca448726/11-08-26-home-banner-menu-sustentabilidade-mil-arvores-desktop.jpg"/><img src="https://decoims.com/farmrio/725d9af3-4beb-43e5-82ce-83388b58e952/11-08-26-home-banner-menu-sustentabilidade-mil-arvores-mobile.jpg" alt="[farm rio] [banner novo menu sustentabilidade mil arvores por dia]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Mil árvores por dia</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/sustentabilidade/cultura" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fsustentabilidade%2Fcultura%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20cultura%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20cultura%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/sustentabilidade/cultura","promotion_name":"[farm rio] [banner novo menu sustentabilidade cultura]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sustentabilidade cultura]:banner:2","url":"/sustentabilidade/cultura","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/sustentabilidade/cultura\",\"promotion_name\":\"[farm rio] [banner novo menu sustentabilidade cultura]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sustentabilidade cultura]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/4063b984-f1ab-4992-8aeb-7144b7d98db4/11-08-26-home-banner-menu-sustentabilidade-cultura-desktop.jpg"/><img src="https://decoims.com/farmrio/b678ca7a-c835-4852-b941-9c9c1883d795/11-08-26-home-banner-menu-sustentabilidade-cultura-mobile.jpg" alt="[farm rio] [banner novo menu sustentabilidade cultura]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Cultura</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/buena-gente" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fbuena-gente%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20buena%20gente%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sustentabilidade%20buena%20gente%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/buena-gente","promotion_name":"[farm rio] [banner novo menu sustentabilidade buena gente]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sustentabilidade buena gente]:banner:3","url":"/buena-gente","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/buena-gente\",\"promotion_name\":\"[farm rio] [banner novo menu sustentabilidade buena gente]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sustentabilidade buena gente]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/33b316a4-f262-49df-8a07-86d029e25d17/11-08-26-home-banner-menu-sustentabilidade-buena-gente-desktop.jpg"/><img src="https://decoims.com/farmrio/af9c1b3f-184b-4b40-89fb-dbdf331b8aff/11-08-26-home-banner-menu-sustentabilidade-buena-gente-mobile.jpg" alt="[farm rio] [banner novo menu sustentabilidade buena gente]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/>
3541</picture><span style="color:#333333;" class="text-[11px]">Buena Gente</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2"><button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci00Iiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-4", "sidemenu-drawer")</script>
3541</div></div></div></div></div><div class="nm-panel-5 h-full min-h-0"><div class="grid h-full grid-cols-[minmax(340px,430px)_minmax(0,1fr)]"><div class="px-10 flex min-h-0 flex-col"><div class="relative min-h-0 flex-1"><div data-nm-desktop-scroll="true" class="nm-desktop-sections-scroll h-full min-h-0 overflow-y-auto overscroll-contain pr-8"><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/cheirinho-farm-rio" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Acheirinho%20farm%20rio%22%7D" data-event-trigger="click" class="w-fit font-normal">Cheirinho FARM Rio</a></div><div class="flex-1 flex flex-col gap-2"></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/cariocas" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Aas%20cariocas%22%7D" data-event-trigger="click" class="w-fit font-normal">AS CARIOCAS</a></div><div class="flex-1 flex flex-col gap-2"></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/app-farm" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Aapp%20farm%20rio%22%7D" data-event-trigger="click" class="w-fit font-normal">App FARM Rio</a></div><div class="flex-1 flex flex-col gap-2"></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/lojix" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Alojix%22%7D" data-event-trigger="click" class="w-fit font-normal">Lojix</a></div><div class="flex-1 flex flex-col gap-2"></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/do-brasil-pro-mundo" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Ado%20brasil%20pro%20mundo%22%7D" data-event-trigger="click" class="w-fit font-normal">Do Brasil pro mundo</a></div><div class="flex-1 flex flex-col gap-2"></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6">Projetos</div><div class="flex-1 flex flex-col gap-2"><a href="/saiba-mais-carnaval-carioca" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Aprojetos%3Acarnaval%20carioca%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">CARNAVAL CARIOCA</span></a><a href="/parcerias/adidas-10-anos" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Aprojetos%3Aadidas%20%3C3%20farm%3A%2010%20anos%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Adidas <3 FARM: 10 anos</span></a><a href="/parcerias/adidas-flamengo" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Aprojetos%3Aadidas%20%3C3%20flamengo%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Adidas <3 Flamengo</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;" class="w-2/5 shrink-0 text-[12px] leading-6">Coleções</div><div class="flex-1 flex flex-col gap-2"><a href="/verao-27" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Acole%C3%A7%C3%B5es%3Aver%C3%A3o%2027%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Verão 27</span></a><a href="/alto-inverno-26" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Acole%C3%A7%C3%B5es%3Aalto%20inverno%2026%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Alto inverno 26</span></a><a href="/inverno-26" style="color:#333333;" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Acole%C3%A7%C3%B5es%3Ainverno%2026%22%7D" data-event-trigger="click" class="flex items-center gap-1 h-6 text-[12px] leading-6 w-fit font-normal"><span class="relative flex items-center gap-2">Inverno 26</span></a></div></div><div class="flex gap-6 py-6"><div style="color:#333333;
3541" class="w-2/5 shrink-0 text-[12px] leading-6"><a href="/nossas-lojas" data-event="%7B%22brand%22%3A%22farmrio%22%2C%22event%22%3A%22select_content%22%2C%22content_type%22%3A%22novo_menu%3Aheader%3Asobre%3Anossas%20lojas%22%7D" data-event-trigger="click" class="w-fit font-normal">Nossas lojas</a></div><div class="flex-1 flex flex-col gap-2"></div></div></div><div data-nm-scrollbar="true" aria-hidden="true" class="nm-desktop-scrollbar absolute right-0 top-0 hidden h-full w-1 bg-[#E5E5E5]"><div data-nm-scrollbar-thumb="true" class="nm-desktop-scrollbar-thumb absolute left-0 top-0 w-full cursor-grab rounded-full bg-[#8A8A8A] active:cursor-grabbing"></div></div></div></div><div class="flex min-h-0 flex-col px-10"><div class="flex-1"><div id="nmP0313554360-slider-5" class="flex flex-col gap-3 pt-2 w-[402px]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/slider flex gap-2 overflow-x-auto overscroll-x-contain snap-x snap-mandatory no-scrollbar w-[402px]"><li data-slider-item="0" class="shrink-0 snap-start w-[161px]"><a href="/lojix" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Flojix%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20lojix%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20lojix%5D%3Abanner%3A1%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/lojix","promotion_name":"[farm rio] [banner novo menu sobre lojix]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sobre lojix]:banner:1","url":"/lojix","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/lojix\",\"promotion_name\":\"[farm rio] [banner novo menu sobre lojix]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sobre lojix]:banner:1\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/ed70abe0-fb27-4cfa-994f-853e9f9c06b6/11-08-26-home-banner-menu-sobre-lojix-desktop.jpg"/><img src="https://decoims.com/farmrio/b32693b1-d37e-4872-955d-a077e96f55ce/11-08-26-home-banner-menu-sobre-lojix-mobile.jpg" alt="[farm rio] [banner novo menu sobre lojix]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Lojix</span></a></li><li data-slider-item="1" class="shrink-0 snap-start w-[161px]"><a href="/nossas-lojas" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fnossas-lojas%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20loja%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20loja%5D%3Abanner%3A2%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"
3541string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/nossas-lojas","promotion_name":"[farm rio] [banner novo menu sobre loja]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sobre loja]:banner:2","url":"/nossas-lojas","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/nossas-lojas\",\"promotion_name\":\"[farm rio] [banner novo menu sobre loja]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sobre loja]:banner:2\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/1b0c419b-7c87-4ca9-bc6d-fe217027cf2b/11-08-26-home-banner-menu-sobre-loja-desktop.jpg"/><img src="https://decoims.com/farmrio/1273e982-3b33-4ea1-a123-2c8ccd0f08a1/11-08-26-home-banner-menu-sobre-loja-mobile.jpg" alt="[farm rio] [banner novo menu sobre loja]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Nossas lojas</span></a></li><li data-slider-item="2" class="shrink-0 snap-start w-[161px]"><a href="/verao-27" data-new-menu-promotion="true" data-new-menu-promotion-event="%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22menu%22%2C%22promotion_url%22%3A%22%2Fverao-27%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20nova%20colecao%5D%22%2C%22creative_name%22%3A%22banner_novo_menu%22%2C%22creative_slot%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novo%20menu%20sobre%20nova%20colecao%5D%3Abanner%3A3%22%7D%7D" hx-on:click="(function handleBannerPromotionClick({promotion_name:e,creative_slot:n,creative_name:t,url:o,fn:r}){const a={creative_name:t,creative_slot:n,promotion_name:e,url:o,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(a)),r&&"string"==typeof r&&new Function(`return ${r}`)()})({"region":"menu","promotion_url":"/verao-27","promotion_name":"[farm rio] [banner novo menu sobre nova colecao]","creative_name":"banner_novo_menu","creative_slot":"[farm rio] [banner novo menu sobre nova colecao]:banner:3","url":"/verao-27","fn":"(function dispatchSelectPromotion(o){const t=globalThis.window;t.DECO?.events?.dispatch?.({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"menu\",\"promotion_url\":\"/verao-27\",\"promotion_name\":\"[farm rio] [banner novo menu sobre nova colecao]\",\"creative_name\":\"banner_novo_menu\",\"creative_slot\":\"[farm rio] [banner novo menu sobre nova colecao]:banner:3\"}})"})" class="flex flex-col gap-2"><picture><source media="(min-width: 1024px)" srcset="https://decoims.com/farmrio/5b5380f1-68c5-452e-9e35-ae87acf6f76e/11-08-26-home-banner-menu-sobre-nova-colecao-desktop.jpg"/><img src="https://decoims.com/farmrio/1c1e43ba-aa9f-45ba-a748-3440fa411879/11-08-26-home-banner-menu-sobre-nova-colecao-mobile.jpg" alt="[farm rio] [banner novo menu sobre nova colecao]" width="161" height="272" loading="lazy" decoding="async" class="h-[272px] w-[161px] object-cover"/></picture><span style="color:#333333;" class="text-[11px]">Nova coleção</span></a></li></ul><div class="flex items-center justify-between"><ul class="flex items-center gap-1.5"><li class="flex"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li><li class="flex"><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto nm-dot"></button></li></ul><div class="flex items-center gap-2">
3541<button data-slide="prev" aria-label="Previous item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button><button data-slide="next" aria-label="Next item" style="background-color:rgba(235, 235, 235, 1);" class="flex justify-center items-center size-6 rounded-full text-[#333333]"><svg width="14" height="14" stroke-width="2" class="rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div></div>
3541<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3541oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3541HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3541H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3541oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3541HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3541HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3541sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3541dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3541HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJubVAwMzEzNTU0MzYwLXNsaWRlci01Iiwib25lQnlvbmUiOnRydWUsInNjcm9sbERvdHMiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3541<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupMenuBannerPromotionViews(e,t){const n=document.getElementById(e);if(!n)return;if("true"===n.dataset.newMenuPromotionViewsSetup)return;n.dataset.newMenuPromotionViewsSetup="true";const o=document.getElementById(t),r=n.parentElement?.closest("[id]")??n,i=Array.from(n.querySelectorAll("[data-new-menu-promotion]")).sort(((e,t)=>Number(e.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0)-Number(t.closest("[data-slider-item]")?.getAttribute("data-slider-item")??0))),a=globalThis.window;a.__newMenuViewedPromotions??=new Set;const s=e=>{if("true"===e.dataset.newMenuPromotionViewed)return;const t=e.dataset.newMenuPromotionEvent;if(!t)return;const n=JSON.parse(decodeURIComponent(t)),o=n?.meta?.creative_slot??t;if(a.__newMenuViewedPromotions?.has(o))return e.dataset.newMenuPromotionViewed="true",void 0;e.dataset.newMenuPromotionViewed="true",a.__newMenuViewedPromotions?.add(o),a.DECO?.events?.dispatch?.({name:"view_promotion",params:n})},d=e=>{const t=getComputedStyle(e);return(!o||o.checked)&&"none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity&&(e=>{const t=e.getBoundingClientRect();if(!t.width||!t.height)return 0;let n=Math.max(t.left,0),o=Math.max(t.top,0),r=Math.min(t.right,globalThis.innerWidth),i=Math.min(t.bottom,globalThis.innerHeight),a=e.parentElement;for(;a;){const e=getComputedStyle(a),t="auto"===e.overflowX||"scroll"===e.overflowX||"hidden"===e.overflowX,s="auto"===e.overflowY||"scroll"===e.overflowY||"hidden"===e.overflowY;if(t||s){const e=a.getBoundingClientRect();t&&(n=Math.max(n,e.left),r=Math.min(r,e.right)),s&&(o=Math.max(o,e.top),i=Math.min(i,e.bottom))}a=a.parentElement}return Math.max(0,r-n)*Math.max(0,i-o)/(t.width*t.height)})(e)>=.95},l=e=>e.closest("[data-slider-item]"),m=e=>Number(l(e)?.getAttribute("data-slider-item")??0),u=e=>{const t=l(e),n=(e=>l(e)?.parentElement)(e);if(!t||!n)return 0;const o=t.offsetLeft-n.offsetLeft;return Math.abs(n.scrollLeft-o)},c=()=>{(()=>{const e=i.filter(d);return e.length<=2?e:e.sort(((e,t)=>{const n=u(e)-u(t);return 0!==n?n:m(e)-m(t)})).slice(0,2).sort(((e,t)=>m(e)-m(t)))})().forEach(s)};let h=0;const w=()=>{cancelAnimationFrame(h),h=requestAnimationFrame(c)};if(!("IntersectionObserver"in globalThis))return c(),o?.addEventListener("change",w),void 0;const f=new IntersectionObserver(w,{threshold:.95});i.forEach((e=>f.observe(e))),o?.addEventListener("change",w),r.addEventListener("change",w),n.querySelectorAll("[data-slider]").forEach((e=>{e.addEventListener("scroll",w,{passive:!0})})),globalThis.addEventListener("resize",w)})("nmP0313554360-slider-5", "sidemenu-drawer")</script>
3541</div></div></div></div></div></div></div></div></div><div id="bly-search-input" class="w-full px-10 fixed overflow-y-hidden z-40 has-[#searchbar-container-input:checked]:hidden"><input type="checkbox" checked id="searchbar-container-input" autocomplete="off" class="hidden"/><div id="searchbar-desktop" class="search-control"></div><div id="searchbar-ab-desktop" class="search-ab"></div></div><style> 3542 .search-ab { 3543 display: none !important; 3544 } 3545 </style>
3545<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function resetSearchModalStateOnPageShow(e,t){const c=()=>{for(const t of e){const e=document.getElementById(t);"checkbox"===e?.type&&(e.checked=!1)}const c=document.getElementById(t);"checkbox"===c?.type&&(c.checked=!0)};c(),requestAnimationFrame(c),setTimeout(c,0),addEventListener("pageshow",c)})(["searchbar-modal","searchbar-ab-modal"], "searchbar-container-input")</script>
3545<section id="2201052792-00" data-manifest-key="site/sections/Miscellaneous/CampaignTimer.tsx"></section>
3545<script defer nonce="16c268fd223f430b98c07279b4c2abab">(({threshold:t=50})=>{function e(){const e=globalThis.window;const o=()=>{const o=document.querySelectorAll("[data-scrolled]"),n=e.scrollY>t;o.forEach((t=>{t.setAttribute("data-scrolled",n?"true":"false")}))},n=function(t,e){let o,n=0;return function(...l){const c=Date.now(),d=e-(c-n);d<=0?(o&&(clearTimeout(o),o=void 0),n=c,t.apply(this,l)):o||(o=setTimeout((()=>{n=Date.now(),o=void 0,t.apply(this,l)}),d))}}(o,100);o(),e.addEventListener("scroll",n)}"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",e)})({"threshold":100})</script>
3545<style> 3546 #new-menu-ab { 3547 display: none; 3548 } 3549 3550 body[data-new-menu-active="true"] #new-menu-ab { 3551 display: block; 3552 } 3553 3554 body[data-new-menu-active="true"] #old-menu-ab, 3555 body[data-new-menu-active="true"] #old-menu-ab-desktop { 3556 display: none; 3557 } 3558 3559 body[data-new-menu-active="true"] .drawer:has(#sidemenu-drawer) .drawer-side { 3560 pointer-events: none; 3561 } 3562 3563 body[data-new-menu-active="true"] .drawer:has(#sidemenu-drawer) #drawer-aside { 3564 background-color: transparent; 3565 pointer-events: none; 3566 position: relative; 3567 } 3568 3569 body[data-new-menu-active="true"] .drawer:has(#sidemenu-drawer) .drawer-overlay { 3570 background-color: transparent; 3571 cursor: default; 3572 } 3573 3574 body[data-new-menu-active="true"] #sidemenu { 3575 background-color: #fff; 3576 height: var(--new-menu-height, calc(100dvh - var(--header-mobile-height, 50px))); 3577 inset-inline: 0; 3578 overflow: hidden; 3579 pointer-events: auto; 3580 position: absolute; 3581 top: var(--new-menu-top, var(--header-mobile-height, 50px)); 3582 } 3583 3584 body[data-new-menu-active="true"] #new-menu-ab[data-new-menu-desktop] { 3585 height: var(--new-menu-height, calc(100dvh - var(--header-desktop-height, 64px))); 3586 top: var(--new-menu-top, var(--header-desktop-height, 64px)); 3587 } 3588 </style>
3588<script type="module" nonce="16c268fd223f430b98c07279b4c2abab">(function setupNewMenuAbTest(e,t){const n="data-new-menu-active",s=document.getElementById(t),i=document.querySelector("[data-header-container]");e&&document.body.setAttribute(n,"true");const o=()=>{const e=i?.firstElementChild,t=Math.max(0,(e??i)?.getBoundingClientRect().bottom??0),n=globalThis.visualViewport?.height??globalThis.innerHeight;document.documentElement.style.setProperty("--new-menu-top",`${t}px`),document.documentElement.style.setProperty("--new-menu-height",`${Math.max(0,n-t)}px`)};o(),globalThis.addEventListener("resize",o),globalThis.addEventListener("scroll",o,{passive:!0}),globalThis.visualViewport?.addEventListener("resize",o),globalThis.visualViewport?.addEventListener("scroll",o),globalThis.addEventListener("new-menu-ab:change",o),i?.addEventListener("click",(e=>{if(!document.body.hasAttribute(n))return;const i=e.target;i?.closest(`[for="${t}"]`)||void(s?.checked&&(s.checked=!1,s.dispatchEvent(new Event("change",{bubbles:!0}))))}),!0),"ResizeObserver"in globalThis&&i&&new ResizeObserver(o).observe(i),"MutationObserver"in globalThis&&new MutationObserver(o).observe(document.body,{attributes:!0,childList:!0,subtree:!0})})(false, "sidemenu-drawer")</script>
3588</section><section id="2137306876-0" data-manifest-key="site/sections/Images/Carousel.tsx"><div id="P0-315663602" style="--banner-mobile-aspect-ratio:412/534;--banner-desktop-aspect-ratio:1440/720" class="grid w-full min-w-0 grid-cols-[48px_1fr_48px] sm:grid-cols-[120px_1fr_120px] grid-rows-[1fr_48px_1fr_64px] [aspect-ratio:var(--banner-mobile-aspect-ratio)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio)]"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/slider carousel carousel-center w-full col-span-full row-span-full"><li data-slider-item="0" class="carousel-item w-full"><a data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20tv%20promo%5D%2025%25%20%2B%2010%25%20off.%20confira%20as%20novidades%20FARM%22%2C%22creative_name%22%3A%22banner_carrousel%22%2C%22creative_slot%22%3A%22banner_carousel%3A%5Bfarm%20rio%5D%20%5Bbanner%20tv%20promo%5D%2025%25%20%2B%2010%25%20off.%20confira%20as%20novidades%20FARM%3A1%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fpromo%22%7D%2C%22brand%22%3A%22farmrio%22%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM","creative_name":"banner_carrousel","creative_slot":"banner_carousel:[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM:1","promotion_url":"/produtos/promo","url":"/produtos/promo","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM\",\"creative_name\":\"banner_carrousel\",\"creative_slot\":\"banner_carousel:[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM:1\",\"promotion_url\":\"/produtos/promo\"},\"brand\":\"farmrio\"})"})" href="/produtos/promo" alt="[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM" class="relative overflow-y-hidden w-full"><picture><source media="(max-width: 767px)" width="412" fetchPriority="high" height="534" sizes="100vw" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=412&height=534&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 412w, https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 824w"/><source media="(min-width: 768px)" fetchPriority="high" width="1440" height="720" sizes="100vw" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=1440&height=720&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F23_BANNER-PRIMAVERA-20-10%2F23-09-26-home-banner-1-tv-primavera-25-10-desktop-.jpg%3Fauthuser%3D0 1440w, https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F23_BANNER-PRIMAVERA-20-10%2F23-09-26-home-banner-1-tv-primavera-25-10-desktop-.jpg%3Fauthuser%3D0 2880w"/><img title="[farm rio] [banner tv promo] 25% + 10% off. confira as novida
3588des FARM" loading="eager" fetchpriority="high" alt="[farm rio] [banner tv promo] 25% + 10% off. confira as novidades FARM" width="1440" height="720" class="object-cover w-full h-full"/></picture></a></li><li data-slider-item="1" class="carousel-item w-full"><a data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20tv%20vitrine%5D%20vestido%20t-shirt%20ccoletivo.%20confira%20as%20novidades%20FARM%22%2C%22creative_name%22%3A%22banner_carrousel%22%2C%22creative_slot%22%3A%22banner_carousel%3A%5Bfarm%20rio%5D%20%5Bbanner%20tv%20vitrine%5D%20vestido%20t-shirt%20ccoletivo.%20confira%20as%20novidades%20FARM%3A2%22%2C%22promotion_url%22%3A%22%2Fnovidades%22%7D%2C%22brand%22%3A%22farmrio%22%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM","creative_name":"banner_carrousel","creative_slot":"banner_carousel:[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM:2","promotion_url":"/novidades","url":"/novidades","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM\",\"creative_name\":\"banner_carrousel\",\"creative_slot\":\"banner_carousel:[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM:2\",\"promotion_url\":\"/novidades\"},\"brand\":\"farmrio\"})"})" href="/novidades" alt="[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM" class="relative overflow-y-hidden w-full"><picture><source media="(max-width: 767px)" data-srcset="https://decoims.com/image?fit=cover&width=412&height=534&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 412w, https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-1-tv-vitrine-mobile.jpg 824w" data-fetchpriority="low" width="412" height="534" sizes="100vw"/><source media="(min-width: 768px)" data-srcset="https://decoims.com/image?fit=cover&width=1440&height=720&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fdesktop%2F22-09-26-home-banner-1-tv-desktop.jpg 1440w, https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fdesktop%2F22-09-26-home-banner-1-tv-desktop.jpg 2880w" data-fetchpriority="low" width="1440" height="720" sizes="100vw"/><img title="[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM" loading="lazy" decoding="async" data-slider-deferred-image="true" data-src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/desktop/22-09-26-home-banner-1-tv-desktop.jpg" fetchpriority="low" alt="[farm rio] [banner tv vitrine] vestido t-shirt ccoletivo. confira as novidades FARM" width="1440" height="720" class="object-cover w-full h-full"/></picture></a></li>
3588<li data-slider-item="2" class="carousel-item w-full"><a data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20tv%20bazar%5D%20%22%2C%22creative_name%22%3A%22banner_carrousel%22%2C%22creative_slot%22%3A%22banner_carousel%3A%5Bfarm%20rio%5D%20%5Bbanner%20tv%20bazar%5D%3A3%22%2C%22promotion_url%22%3A%22%2Fbazar%22%7D%2C%22brand%22%3A%22farmrio%22%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner tv bazar] ","creative_name":"banner_carrousel","creative_slot":"banner_carousel:[farm rio] [banner tv bazar]:3","promotion_url":"/bazar","url":"/bazar","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner tv bazar] \",\"creative_name\":\"banner_carrousel\",\"creative_slot\":\"banner_carousel:[farm rio] [banner tv bazar]:3\",\"promotion_url\":\"/bazar\"},\"brand\":\"farmrio\"})"})" href="/bazar" alt="[farm rio] [banner tv bazar] " class="relative overflow-y-hidden w-full"><picture><source media="(max-width: 767px)" data-srcset="https://decoims.com/image?fit=cover&width=412&height=534&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F02_FEVEREIRO%2F20_BAZAR_60%2Fhome-banner-tv-1-bazar-tudo-60-mobile.jpg%3Fauthuser%3D1 412w, https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F02_FEVEREIRO%2F20_BAZAR_60%2Fhome-banner-tv-1-bazar-tudo-60-mobile.jpg%3Fauthuser%3D1 824w" data-fetchpriority="low" width="412" height="534" sizes="100vw"/><source media="(min-width: 768px)" data-srcset="https://decoims.com/image?fit=cover&width=1440&height=720&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F02_FEVEREIRO%2F20_BAZAR_60%2Fhome-banner-tv-1-bazar-tudo-60-desktop.jpg%3Fauthuser%3D1 1440w, https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F02_FEVEREIRO%2F20_BAZAR_60%2Fhome-banner-tv-1-bazar-tudo-60-desktop.jpg%3Fauthuser%3D1 2880w" data-fetchpriority="low" width="1440" height="720" sizes="100vw"/><img title="[farm rio] [banner tv bazar] " loading="lazy" decoding="async" data-slider-deferred-image="true" data-src="https://cf.farmriosoma.farmrio.com.br/site/2026/02_FEVEREIRO/20_BAZAR_60/home-banner-tv-1-bazar-tudo-60-desktop.jpg?authuser=1" fetchpriority="low" alt="[farm rio] [banner tv bazar] " width="1440" height="720" class="object-cover w-full h-full"/></picture></a></li><li data-slider-item="3" class="carousel-item w-full"><a data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20tv%20stanley%5D%20collab%20acess%C3%B3rios%20Stanley%20%2B%20FARM%20Rio.%20leva%20o%20lan%C3%A7amento!%22%2C%22creative_name%22%3A%22banner_carrousel%22%2C%22creative_slot%22%3A%22banner_carousel%3A%5Bfarm%20rio%5D%20%5Bbanner%20tv%20stanley%5D%20collab%20acess%C3%B3rios%20Stanley%20%2B%20FARM%20Rio.%20leva%20o%20lan%C3%A7amento!%3A4%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fstanley%22%7D%2C%22brand%22%3A%22farmrio%22%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,
3588creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!","creative_name":"banner_carrousel","creative_slot":"banner_carousel:[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!:4","promotion_url":"/produtos/stanley","url":"/produtos/stanley","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!\",\"creative_name\":\"banner_carrousel\",\"creative_slot\":\"banner_carousel:[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!:4\",\"promotion_url\":\"/produtos/stanley\"},\"brand\":\"farmrio\"})"})" href="/produtos/stanley" alt="[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!" class="relative overflow-y-hidden w-full"><picture><source media="(max-width: 767px)" data-srcset="https://decoims.com/image?fit=cover&width=412&height=534&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F08_AGOSTO%2F18_BANNER-STANLEY%2F18-08-26-home-banner-1-tv-stanley-mobile.jpg%3Fauthuser%3D1 412w, https://decoims.com/image?fit=cover&width=824&height=1068&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F08_AGOSTO%2F18_BANNER-STANLEY%2F18-08-26-home-banner-1-tv-stanley-mobile.jpg%3Fauthuser%3D1 824w" data-fetchpriority="low" width="412" height="534" sizes="100vw"/><source media="(min-width: 768px)" data-srcset="https://decoims.com/image?fit=cover&width=1440&height=720&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F08_AGOSTO%2F18_BANNER-STANLEY%2F18-08-26-home-banner-1-tv-stanley-desktop.jpg%3Fauthuser%3D1 1440w, https://decoims.com/image?fit=cover&width=2880&height=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F08_AGOSTO%2F18_BANNER-STANLEY%2F18-08-26-home-banner-1-tv-stanley-desktop.jpg%3Fauthuser%3D1 2880w" data-fetchpriority="low" width="1440" height="720" sizes="100vw"/><img title="[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!" loading="lazy" decoding="async" data-slider-deferred-image="true" data-src="https://cf.farmriosoma.farmrio.com.br/site/2026/08_AGOSTO/18_BANNER-STANLEY/18-08-26-home-banner-1-tv-stanley-desktop.jpg?authuser=1" fetchpriority="low" alt="[farm rio] [banner tv stanley] collab acessórios Stanley + FARM Rio. leva o lançamento!" width="1440" height="720" class="object-cover w-full h-full"/></picture></a></li></ul><div class="flex items-center justify-center z-10 col-start-1 row-start-2"><button data-slide="prev" aria-label="Previous item" class="btn btn-circle glass"><svg width="24" height="24" stroke-width="3" class="text-base-100"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div><div class="flex items-center justify-center z-10 col-start-3 row-start-2"><button data-slide="next" aria-label="Next item" class="btn btn-circle glass"><svg width="24" height="24" stroke-width="3" class="text-base-100 rotate-180"><use href="/sprites.svg?__deco_c=2#ChevronLeft"></use></svg></button></div><ul class="carousel justify-center col-span-full sm:gap-x gap-1 sm:mx-0 mx-5 z-10 row-start-4 h-[88px]"><button data-dot="0" aria-label="go to slider item 0" class="focus:outline-none group w-full sm:w-auto"><li class="carousel-item"><div style="animation-duration:9s;" class="w-full sm:w-24 h-0.5 rounded group-data-[painted]:bg-none group-data-[painted]:bg-white group-disabled:animate-progress bg-gradient-to-r from-white from-[length:var(--dot-progress)] to-[#f2f2f2]/[.5] to-[length:var(--dot-progress)]"></div></li></button><button data-dot="1" aria-label="go to slider item 1" class="focus:outline-none group w-full sm:w-auto"><li class="carousel-item"><div style="animation-duration:9s;" class="w-full sm:w-24 h-0.5 rounded group-data-[painted]:bg-none group-data-[painted]:bg-white group-disabled:animate-progress bg-gradient-to-r from-white from-[length:var(--dot-progress)] to-[#f2f2f2]/[.5] to-[length:var(--dot-progress)]"></div></li></button><button data-dot="2" aria-label="go to slider item 2" class="focus:outline-none group w-full sm:w-auto"><li class="carousel-item"><div style="animation-duration:9s;" class="w-full sm:w-24 h-0.5 rounded group-data-[painted]:bg-none group-data-[painted]:bg-white group-disabled:animate-progress bg-gradient-to-r from-white from-[length:var(--dot-progress)] to-[#f2f2f2]/[.5] to-[length:var(--dot-progress)]"></div></li></button><button data-dot="3" aria-label="go to slider item 3" class="focus:outline-none group w-full sm:w-auto"><li class="carousel-item"><div style="animation-duration:9s;" class="w-full sm:w-24 h-0.5 rounded group-data-[painted]:bg-none group-data-[painted]:bg-white group-disabled:animate-progress bg-gradient-to-r from-white from-[length:var(--dot-progress)] to-[#f2f2f2]/[.5] to-[length:var(--dot-progress)]"></div></li></button></ul>
3588<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3588oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3588HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3588H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3588oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3588HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3588HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3588dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3588HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJQMC0zMTU2NjM2MDIiLCJpbnRlcnZhbCI6OTAwMCwiaW5maW5pdGUiOnRydWUsInByb2dyZXNzaXZlTWVkaWEiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3588</div></section><section id="2853511427-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%225%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 720;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div></div></div></section><section id="807837488-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%226%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 1620;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 1620;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div></div></div></section><section id="875370768-0" data-manifest-key="site/sections/Images/BannerCollection.tsx"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><a href="/ta-na-vitrine" target="_self" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20animado%20estampa%5D%20%20produtos%20estampados%20FARM.%20leva%20agora!%22%2C%22creative_name%22%3A%22banner_collection%22%2C%22creative_slot%22%3A%22banner_collection%3A%5Bfarm%20rio%5D%20%5Bbanner%20animado%20estampa%5D%20%20produtos%20estampados%20FARM.%20leva%20agora!%3A1%22%2C%22promotion_url%22%3A%22%2Fta-na-vitrine%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner animado estampa] produtos estampados FARM. leva agora!","creative_name":"banner_collection","creative_slot":"banner_collection:[farm rio] [banner animado estampa] produtos estampados FARM. leva agora!:1","promotion_url":"/ta-na-vitrine","url":"/ta-na-vitrine","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner animado estampa] produtos estampados FARM. leva agora!\",\"creative_name\":\"banner_collection\",\"creative_slot\":\"banner_collection:[farm rio] [banner animado estampa] produtos estampados FARM. leva agora!:1\",\"promotion_url\":\"/ta-na-vitrine\"}})"})" class="w-full"><video id="P0-320900429" src="https://player.vimeo.com/progressive_redirect/playback/1229205702/rendition/1080p/file.mp4%20%281080p%29.mp4?loc=external&signature=583198c6213f3a337420424e51ae32107829d94f6a5993a6f35900059d6d5407" loop playsinline muted loading="lazy" class="block w-full h-auto border-none
3588!rounded-none bg-[#f2f2f2]"></video>
3588<script defer src="data:text/javascript,(e%3D%3Edocument.getElementById(e)%3F.play())(%22P0-320900429%22)" nonce="16c268fd223f430b98c07279b4c2abab"></script>
3588</a></div></section><section id="1034157913-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2210%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="padding-top:10px;" class="w-full flex flex-col"><div class="grid w-full grid-cols-[48px_1fr_48px]"><ul class="carousel carousel-start col-span-full row-start-2 row-end-5 w-full"><li data-slider-item="0" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="1" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="2" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li></ul><div class="relative block z-10 col-start-1 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md left-4 w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="rotate-180 text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowLeft"></use></svg></span></div><div class="relative block z-10 col-start-3 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowRight"></use></svg></span></div></div></div></div></section><section id="296910008-0" data-manifest-key="site/sections/Images/BannerCollection.tsx"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><a href="/produtos" target="_self" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bfaixa%5D%20pe%C3%A7as%20especiais%20te%20esperando%22%2C%22creative_name%22%3A%22banner_collection%22%2C%22creative_slot%22%3A%22banner_collection%3A%5Bfarm%20rio%5D%20%5Bfaixa%5D%20pe%C3%A7as%20especiais%20te%20esperando%3A1%22%2C%22promotion_url%22%3A%22%2Fprodutos%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [faixa] peças especiais te esperando","creative_name":"banner_collection","creative_slot":"banner_collection:[farm rio] [faixa] peças especiais te esperando:1","promotion_url":"/produtos","url":"/produtos","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [faixa] peças especiais te esperando\",\"creative_name\":\"banner_collection\",\"creative_slot\":\"banner_collection:[farm rio] [faixa] peças especiais te esperando:1\",\"promotion_url\":\"/produtos\"}})"})" class="w-full"><figure class="w-full"><picture style="--banner-mobile-aspect-ratio:412 / 91;--banner-desktop-aspect-ratio:1440 / 106;" class="block w-full bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"><source media="(max-width: 767px)" srcset="https://decoims.com/image?fit=cover&width=412&height=91&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-6-categoria-mobile.jpg 412w, https://decoims.com/image?fit=cover&width=824&height=182&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fmobile%2F22-09-26-home-banner-6-categoria-mobile.jpg 824w" width="412" height="91" sizes="100vw" fetchpriority="low"/><source media="(min-width: 768px)" srcset="https://decoims.com/image?fit=cover&width=1440&height=106&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fdesktop%2F22-09-26-home-banner-6-categoria-desktop.jpg 1440w, https://decoims.com/image?fit=cover&width=2880&height=212&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fdesktop%2F22-09-26-home-banner-6-categoria-desktop.jpg 2880w" width="1440" height="106" sizes="100vw" fetchpriority="low"/><img loading="lazy" fetchpriority="low" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/desktop/22-09-26-home-banner-6-categoria-desktop.jpg" alt="[farm rio] [faixa] peças especiais te esperando" width="1440" height="106" class="block w-full h-auto"/></picture></figure></a></div></section><section id="1658548154-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&
3588renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2212%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 1620;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 1620;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div></div></div></section><section id="3194157232-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2213%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="gap:0px;padding-top:0px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><div style="--banner-mobile-aspect-ratio:412 / 534;--banner-desktop-aspect-ratio:1440 / 720;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div></div></div></section><section id="1216897509-0" data-manifest-key="site/sections/Images/CategoryNavegation.tsx"><div style="padding:32px 0px;" class="w-full flex flex-col"><div id="P0-322988605" class="grid w-full"><ul data-slider="true" class="data-[draggable='true']:[scroll-snap-type:none] group/slider carousel carousel-start col-span-full row-start-2 row-end-5 w-full"><li data-slider-item="0" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A0%22%2C%22promotion_name%22%3A%22%2Fprodutos%2Fvestido-com-manga%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido-com-manga%22%2C%22promotion_name%22%3A%22vestidos%20com%20manga%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A0%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/produtos/vestido-com-manga" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-01-vestidos-com-manga.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-01-vestidos-com-manga.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-01-vestidos-com-manga.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos com manga</span></a></div></li>
3588<li data-slider-item="1" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A1%22%2C%22promotion_name%22%3A%22%2Fmais-vendidos-vestidos%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fmais-vendidos-vestidos%22%2C%22promotion_name%22%3A%22vestidos%20favoritos%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A1%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/mais-vendidos-vestidos" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-02-vestidos-favoritos.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-02-vestidos-favoritos.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-02-vestidos-favoritos.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos favoritos</span></a></div></li><li data-slider-item="2" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A2%22%2C%22promotion_name%22%3A%22%2Fprodutos%2Fvestido-curto%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido-curto%22%2C%22promotion_name%22%3A%22vestidos%20curtos%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A2%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/produtos/vestido-curto" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-03-vestidos-curtos.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-03-vestidos-curtos.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-03-vestidos-curtos.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos curtos</span></a></div></li><li data-slider-item="3" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A3%22%2C%22promotion_name%22%3A%22%2Fprodutos%2Fvestido-midi%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido-midi%22%2C%22promotion_name%22%3A%22vestidos%20midis%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A3%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/produtos/vestido-midi" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-04-vestidos-longos.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-04-vestidos-longos.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-04-vestidos-longos.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos midis</span></a></div></li>
3588<li data-slider-item="4" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A4%22%2C%22promotion_name%22%3A%22%2Fprodutos%2Fvestido-liso%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido-liso%22%2C%22promotion_name%22%3A%22vestidos%20lisos%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A4%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/produtos/vestido-liso" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-05-vestidos-lisos.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-05-vestidos-lisos.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-05-vestidos-lisos.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos lisos</span></a></div></li><li data-slider-item="5" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A5%22%2C%22promotion_name%22%3A%22%2Fprodutos%2Fvestido-longo%22%2C%22creative_name%22%3A%22carrossel%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" class="carousel-item justify-center md:w-1/5 mx-auto w-1/2"><div data-event="%7B%22name%22%3A%22select_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_url%22%3A%22%2Fprodutos%2Fvestido-longo%22%2C%22promotion_name%22%3A%22vestidos%20longos%22%2C%22creative_name%22%3A%22carrossel%22%2C%22creative_slot%22%3A%22category-navegation%3A0%3A5%22%7D%7D%7D" data-event-trigger="click" data-has-commerce="true"><a href="/produtos/vestido-longo" class="flex flex-col items-center shrink-0"><div class="w-[150px] h-[150px] lg:w-44 lg:h-44 xl:w-48 xl:h-48 rounded-full overflow-hidden shrink-0"><img width="200" height="200" src="https://cf.farmriosoma.farmrio.com.br/site/2026/09_SETEMBRO/22_VITRINE/carrossel/carrossel-06-vestidos-midi.jpg" alt data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=200&height=200&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-06-vestidos-midi.jpg 200w, https://decoims.com/image?fit=cover&width=400&height=400&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F09_SETEMBRO%2F22_VITRINE%2Fcarrossel%2Fcarrossel-06-vestidos-midi.jpg 400w" loading="lazy" class="object-cover w-full h-full"/></div><span class="pt-4 text-center text-sm md:text-lg font-light">vestidos longos</span></a></div></li></ul>
3588<script src="data:text/javascript;base64,ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSgoKHsgcm9vdElkLCBzY3JvbGwgPSAic21vb3RoIiwgaW50ZXJ2YWwsIGluZmluaXRlLCBvbmVCeW9uZSwgaXRlbURvdHMsIHBhZ2VEb3RzLCBzY3JvbGxEb3RzLCBwcm9ncmVzc2l2ZU1lZGlhID0gZmFsc2UsIGlzRnJvbUhvb2sgPSBmYWxzZSwgZGVza3RvcERyYWdnYWJsZSA9IGZhbHNlIH0pPT57CiAgY29uc3QgQVRUUklCVVRFUyA9IGlzRnJvbUhvb2sgLy8gdGhpcyBpcyB1c2VkIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB0byB0aGUgb2xkIHdheSB0byBjcmVhdGUgYSBzbGlkZXIKICAgPyB7CiAgICAiZGF0YS1zbGlkZXIiOiBgW2RhdGEtc2xpZGVyXVtkYXRhLXJvb3Q9JHtyb290SWR9XWAsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6IGBbZGF0YS1zbGlkZXItaXRlbV1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogYFtkYXRhLXNsaWRlPSJwcmV2Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogYFtkYXRhLXNsaWRlPSJuZXh0Il1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtZG90IjogYFtkYXRhLWRvdF1bZGF0YS1yb290PSR7cm9vdElkfV1gLAogICAgImRhdGEtcHJvZ3Jlc3MiOiBgW2RhdGEtcHJvZ3Jlc3NdW2RhdGEtcm9vdD0ke3Jvb3RJZH1dYAogIH0gOiB7CiAgICAiZGF0YS1zbGlkZXIiOiAiW2RhdGEtc2xpZGVyXSIsCiAgICAiZGF0YS1zbGlkZXItaXRlbSI6ICJbZGF0YS1zbGlkZXItaXRlbV0iLAogICAgJ2RhdGEtc2xpZGU9InByZXYiJzogJ1tkYXRhLXNsaWRlPSJwcmV2Il0nLAogICAgJ2RhdGEtc2xpZGU9Im5leHQiJzogJ1tkYXRhLXNsaWRlPSJuZXh0Il0nLAogICAgImRhdGEtZG90IjogIltkYXRhLWRvdF0iLAogICAgImRhdGEtcHJvZ3Jlc3MiOiAiW2RhdGEtcHJvZ3Jlc3NdIgogIH07CiAgLy8gUGVyY2VudGFnZSBvZiB0aGUgaXRlbSB0aGF0IGhhcyB0byBiZSBpbnNpZGUgdGhlIGNvbnRhaW5lcgogIC8vIGZvciBpdCBpdCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSB0aGUgY29udGFpbmVyCiAgY29uc3QgVEhSRVNIT0xEID0gMC43NTsKICBjb25zdCBVU0VfSU5GSU5JVEVfQkVIQVZJT1VSID0gdHJ1ZTsKICBjb25zdCBpbnRlcnNlY3Rpb25YID0gKGVsZW1lbnQsIGNvbnRhaW5lcik9PnsKICAgIGNvbnN0IGRlbHRhID0gY29udGFpbmVyLndpZHR
3588oIC8gMV8wMDA7CiAgICBpZiAoZWxlbWVudC5yaWdodCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIDAuMDsKICAgIH0KICAgIGlmIChlbGVtZW50LmxlZnQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gMC4wOwogICAgfQogICAgaWYgKGVsZW1lbnQubGVmdCA8IGNvbnRhaW5lci5sZWZ0IC0gZGVsdGEpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQucmlnaHQgLSBjb250YWluZXIubGVmdCArIGRlbHRhOwogICAgfQogICAgaWYgKGVsZW1lbnQucmlnaHQgPiBjb250YWluZXIucmlnaHQgKyBkZWx0YSkgewogICAgICByZXR1cm4gY29udGFpbmVyLnJpZ2h0IC0gZWxlbWVudC5sZWZ0ICsgZGVsdGE7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudC53aWR0aDsKICB9OwogIC8vIGFzIGFueSBhcmUgb2sgaW4gdHlwZWd1YXJkIGZ1bmN0aW9ucwogIGNvbnN0IGlzSFRNTEVsZW1lbnQgPSAoeCk9Pi8vIGRlbm8tbGludC1pZ25vcmUgbm8tZXhwbGljaXQtYW55CiAgICB0eXBlb2YgeC5vZmZzZXRMZWZ0ID09PSAibnVtYmVyIjsKICBjb25zdCByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudC5jdXJyZW50U2NyaXB0Py5wYXJlbnRFbGVtZW50ID8/IG51bGw7CiAgY29uc3Qgc2xpZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXNsaWRlciJdKTsKICBjb25zdCBpdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChBVFRSSUJVVEVTWyJkYXRhLXNsaWRlci1pdGVtIl0pOwogIGNvbnN0IHByZXYgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9InByZXYiJ10pOwogIGNvbnN0IG5leHQgPSByb290Py5xdWVyeVNlbGVjdG9yKEFUVFJJQlVURVNbJ2RhdGEtc2xpZGU9Im5leHQiJ10pOwogIGNvbnN0IGRvdHMgPSByb290Py5xdWVyeVNlbGVjdG9yQWxsKEFUVFJJQlVURVNbImRhdGEtZG90Il0pOwogIGNvbnN0IHByb2dyZXNzID0gcm9vdD8ucXVlcnlTZWxlY3RvcihBVFRSSUJVVEVTWyJkYXRhLXByb2dyZXNzIl0pOwogIGlmICghcm9vdCB8fCAhc2xpZGVyIHx8ICFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHsKICAgIGNvbnNvbGUud2FybigiTWlzc2luZyBuZWNlc3Nhcnkgc2xpZGVyIGF0dHJpYnV0ZXMuIEl0IHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQuIE5lY2Vzc2FyeSBlbGVtZW50czoiLCB7CiAgICAgIHJvb3QsCiAgICAgIHNsaWRlciwKICAgICAgaXRlbXMsCiAgICAgI
3588HJvb3RJZAogICAgfSk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gKCk9PnsKICAgIGNvbnN0IGluZGljZXMgPSBbXTsKICAgIGNvbnN0IHNsaWRlclJlY3QgPSBzbGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGNvbnN0IHJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCByYXRpbyA9IGludGVyc2VjdGlvblgocmVjdCwgc2xpZGVyUmVjdCkgLyByZWN0LndpZHRoOwogICAgICBpZiAocmF0aW8gPiBUSFJFU0hPTEQpIHsKICAgICAgICBpbmRpY2VzLnB1c2goaW5kZXgpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kaWNlczsKICB9OwogIGNvbnN0IGVsZW1lbnRzSW5zaWRlQ29udGFpbmVyID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKTsKICBjb25zdCBpbmZpbml0ZUJlaGF2aW9yID0gIXNjcm9sbERvdHMgJiYgaW5maW5pdGUgJiYgZWxlbWVudHNJbnNpZGVDb250YWluZXIubGVuZ3RoID09PSAxICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgVVNFX0lORklOSVRFX0JFSEFWSU9VUjsKICBjb25zdCBNRURJQV9USU1FT1VUID0gOF8wMDA7CiAgY29uc3QgcHJlcGFyZWRNZWRpYSA9IG5ldyBXZWFrTWFwKCk7CiAgY29uc3QgY2xvbmVCeU9yaWdpbmFsSW5kZXggPSBuZXcgTWFwKCk7CiAgY29uc3Qgd2l0aE1lZGlhVGltZW91dCA9IChwcm9taXNlKT0+bmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT5yZXNvbHZlKGZhbHNlKSwgTUVESUFfVElNRU9VVCk7CiAgICAgIHByb21pc2UudGhlbigocmVhZHkpPT57CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgIHJlc29sdmUocmVhZHkpOwogICAgICB9KS5jYXRjaCgoKT0+ewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICByZXNvbHZlKGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKICBjb25zdCBwcmVwYXJlSW1hZ2UgPSAoaW1hZ2UpPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KGltYWdlKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBjb25zdCBwaWN0dXJlID0gaW1hZ2UuY2xvc2VzdCgicGljdHVyZSIpOwogICAgICBwaWN0dXJlPy5xdWVyeVNlbGVjdG9yQWxsKCJzb3VyY2VbZGF0YS1zcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoImZldGNocHJpb3JpdHkiLCAibG93Iik7CiAgICAgICAgc291cmNlLnNyY3NldCA9IHNvdXJjZS5kYXRhc2V0LnNyY3NldCA/PyAiIjsKICAgICAgfSk7CiAgICAgIGlmIChpbWFnZS5kYXRhc2V0LnNyYykgewogICAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgICAgICBpbWFnZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpbWFnZS5zcmMgPSBpbWFnZS5kYXRhc2V0LnNyYzsKICAgICAgfQogICAgICBpZiAoIWltYWdlLmNvbXBsZXRlKSB7CiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpPT57CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCk9PnJlc29sdmUodHJ1ZSksIHsKICAgICAgICAgICAgb25jZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICgpPT5yZXNvbHZlKGZhbHNlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWxvYWRlZCkgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmIChpbWFnZS5uYXR1cmFsV2lkdGggPT09IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKHR5cGVvZiBpbWFnZS5kZWNvZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW1hZ2UuZGVjb2RlKCk7CiAgICAgICAgfSBjYXRjaCAgewogICAgICAgICAgcmV0dXJuIGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA+IDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGltYWdlLmRhdGFzZXQuc2xpZGVyTWVkaWFSZWFkeSA9ICJ0cnVlIjsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9KSgpKTsKICAgIHByZXBhcmVkTWVkaWEuc2V0KGltYWdlLCBwcmVwYXJhdGlvbik7CiAgICByZXR1cm4gcHJlcGFyYXRpb247CiAgfTsKICBjb25zdCBwcmVwYXJlVmlkZW8gPSAodmlkZW8pPT57CiAgICBjb25zdCBleGlzdGluZyA9IHByZXBhcmVkTWVkaWEuZ2V0KHZpZGVvKTsKICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nOwogICAgY29uc3QgcHJlcGFyYXRpb24gPSB3aXRoTWVkaWFUaW1lb3V0KChhc3luYyAoKT0+ewogICAgICBpZiAodmlkZW8uZGF0YXNldC5wb3N0ZXIpIHZpZGVvLnBvc3RlciA9IHZpZGVvLmRhdGFzZXQucG9zdGVyOwogICAgICBpZiAodmlkZW8uZGF0YXNldC5zcmMpIHsKICAgICAgICB2aWRlby5wcmVsb2FkID0gImF1dG8iOwogICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvLmRhdGFzZXQuc3JjOwogICAgICAgIHZpZGVvLmxvYWQoKTsKICAgICAgfQogICAgICBpZiAodmlkZW8ucmVhZHlTdGF0ZSA8IEhUTUxNZWRpYUVsZW1lbnQuSEFWRV9DVVJSRU5UX0RBVEEpIHsKICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCAoKT0+cmVzb2x2ZSh0cnVlKSwgewogICAgICAgICAgICBvbmNlOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCk9PnJlc29sdmUoZmFsc2UpLCB7CiAgICAgICAgICAgIG9uY2U6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgI
3588H0pOwogICAgICAgIGlmICghbG9hZGVkKSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdmlkZW8uZGF0YXNldC5zbGlkZXJNZWRpYVJlYWR5ID0gInRydWUiOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pKCkpOwogICAgcHJlcGFyZWRNZWRpYS5zZXQodmlkZW8sIHByZXBhcmF0aW9uKTsKICAgIHJldHVybiBwcmVwYXJhdGlvbjsKICB9OwogIGNvbnN0IHByZXBhcmVJdGVtID0gKGl0ZW0pPT57CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEgfHwgIWl0ZW0pIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CiAgICBjb25zdCBpbWFnZXMgPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgiaW1nIikpOwogICAgY29uc3QgdmlkZW9zID0gQXJyYXkuZnJvbShpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikpOwogICAgcmV0dXJuIFByb21pc2UuYWxsKFsKICAgICAgLi4uaW1hZ2VzLm1hcChwcmVwYXJlSW1hZ2UpLAogICAgICAuLi52aWRlb3MubWFwKHByZXBhcmVWaWRlbykKICAgIF0pLnRoZW4oKHJlc3VsdHMpPT5yZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pKTsKICB9OwogIGNvbnN0IHVwZGF0ZVZpZGVvUGxheWJhY2sgPSAoYWN0aXZlSXRlbSk9PnsKICAgIGlmICghcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikuZm9yRWFjaCgodmlkZW8pPT57CiAgICAgIGlmIChhY3RpdmVJdGVtLmNvbnRhaW5zKHZpZGVvKSkgewogICAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+dW5kZWZpbmVkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2aWRlby5wYXVzZSgpOwogICAgICB9CiAgICB9KTsKICB9OwogIGNvbnN0IHByZXBhcmVGb2xsb3dpbmdJdGVtID0gKGluZGV4KT0+ewogICAgaWYgKCFwcm9ncmVzc2l2ZU1lZGlhKSByZXR1cm47CiAgICBjb25zdCBjdXJyZW50ID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBwcmVwYXJlSXRlbShjdXJyZW50KS50aGVuKChyZWFkeSk9PnsKICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuOwogICAgICBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKChpbmRleCArIDEpICUgaXRlbXMubGVuZ3RoKSk7CiAgICB9KTsKICB9OwogIGNvbnN0IGdldE1heFNjcm9sbExlZnQgPSAoKT0+TWF0aC5tYXgoMCwgc2xpZGVyLnNjcm9sbFdpZHR
3588oIC0gc2xpZGVyLmNsaWVudFdpZHRoKTsKICBjb25zdCBjbGFtcFNjcm9sbExlZnQgPSAobGVmdCk9Pk1hdGgubWluKE1hdGgubWF4KGxlZnQsIDApLCBnZXRNYXhTY3JvbGxMZWZ0KCkpOwogIGNvbnN0IGdldEl0ZW1TY3JvbGxMZWZ0ID0gKGl0ZW0pPT57CiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoaXRlbSkpIHJldHVybiAwOwogICAgcmV0dXJuIGNsYW1wU2Nyb2xsTGVmdChpdGVtLm9mZnNldExlZnQgLSBzbGlkZXIub2Zmc2V0TGVmdCk7CiAgfTsKICBsZXQgc2Nyb2xsRG90UG9zaXRpb25zID0gW107CiAgY29uc3QgZ2V0U2Nyb2xsRG90UG9zaXRpb25zID0gKCk9PnsKICAgIGlmICghc2Nyb2xsRG90cykgcmV0dXJuIFtdOwogICAgaWYgKHNsaWRlci5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHVybiBzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoID8gc2Nyb2xsRG90UG9zaXRpb25zIDogWwogICAgICAgIDAKICAgICAgXTsKICAgIH0KICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSByZXR1cm4gWwogICAgICAwCiAgICBdOwogICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gTWF0aC5tYXgoZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKS5sZW5ndGgsIDEpOwogICAgY29uc3QgcG9zaXRpb25zID0gWwogICAgICAwCiAgICBdOwogICAgZm9yKGxldCBpbmRleCA9IHZpc2libGVJdGVtczsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4ICs9IHZpc2libGVJdGVtcyl7CiAgICAgI
3588HBvc2l0aW9ucy5wdXNoKGdldEl0ZW1TY3JvbGxMZWZ0KGl0ZW1zLml0ZW0oaW5kZXgpKSk7CiAgICB9CiAgICBwb3NpdGlvbnMucHVzaChtYXhTY3JvbGxMZWZ0KTsKICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKChhY2MsIHBvc2l0aW9uKT0+ewogICAgICBjb25zdCByb3VuZGVkUG9zaXRpb24gPSBNYXRoLnJvdW5kKGNsYW1wU2Nyb2xsTGVmdChwb3NpdGlvbikpOwogICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSBhY2NbYWNjLmxlbmd0aCAtIDFdOwogICAgICBpZiAobGFzdFBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMobGFzdFBvc2l0aW9uIC0gcm91bmRlZFBvc2l0aW9uKSA+IDEpIHsKICAgICAgICBhY2MucHVzaChyb3VuZGVkUG9zaXRpb24pOwogICAgICB9CiAgICAgIHJldHVybiBhY2M7CiAgICB9LCBbXSk7CiAgfTsKICBjb25zdCBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXggPSAoKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBzY3JvbGxEb3RQb3NpdGlvbnMuZm9yRWFjaCgocG9zaXRpb24sIGluZGV4KT0+ewogICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHNsaWRlci5zY3JvbGxMZWZ0IC0gcG9zaXRpb24pOwogICAgICBpZiAoZGlzdGFuY2UgPCBzbWFsbGVzdERpc3RhbmNlKSB7CiAgICAgICAgc21hbGxlc3REaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFjdGl2ZUluZGV4OwogIH07CiAgY29uc3QgdXBkYXRlU2Nyb2xsRG90cyA9ICgpPT57CiAgICBpZiAoIXNjcm9sbERvdHMgfHwgIWRvdHMpIHJldHVybjsKICAgIHNjcm9sbERvdFBvc2l0aW9ucyA9IGdldFNjcm9sbERvdFBvc2l0aW9ucygpOwogICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0U2Nyb2xsRG90SW5kZXgoKTsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCwgaW5kZXgpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICBpZiAoaW5kZXggPj0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCkgewogICAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICBpZiAoaW5kZXggPT09IGFjdGl2ZUluZGV4KSB7CiAgICAgICAgZG90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAidHJ1ZSIpOwogICAgICB9CiAgICB9KTsKICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgPD0gMSA/IHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIikgOiBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID49IG1heFNjcm9sbExlZnQgLSAxID8gbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKSA6IG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgIH0KICB9OwogIGNvbnN0IGdvVG9TY3JvbGxEb3QgPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgc2Nyb2xsRG90UG9zaXRpb25zID0gZ2V0U2Nyb2xsRG90UG9zaXRpb25zKCk7CiAgICBjb25zdCBwb3NpdGlvbiA9IHNjcm9sbERvdFBvc2l0aW9uc1tpbmRleF07CiAgICBpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogcG9zaXRpb24KICAgIH0pOwogIH07CiAgY29uc3Qgbm9ybWFsaXplU2Nyb2xsQm91bmRzID0gKCk9PnsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPiBtYXhTY3JvbGxMZWZ0KSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgIH0gZWxzZSBpZiAoc2xpZGVyLnNjcm9sbExlZnQgPCAwKSB7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gMDsKICAgIH0KICB9OwogIGxldCB0b3VjaFN0YXJ0WCA9IDA7CiAgbGV0IHRvdWNoU3RhcnRZID0gMDsKICBjb25zdCBoYW5kbGVUb3VjaFN0YXJ0ID0gKGV2ZW50KT0+ewogICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdOwogICAgaWYgKCF0b3VjaCkgcmV0dXJuOwogICAgdG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYOwogICAgdG91Y2hTdGFydFkgPSB0b3VjaC5jbGllbnRZOwogIH07CiAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KT0+ewogICAgaWYgKCFzY3JvbGxEb3RzKSByZXR1cm47CiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07CiAgICBpZiAoIXRvdWNoKSByZXR1cm47CiAgICBjb25zdCBkZWx0YVggPSB0b3VjaC5jbGllbnRYIC0gdG91Y2hTdGFydFg7CiAgICBjb25zdCBkZWx0YVkgPSB0b3VjaC5jbGllbnRZIC0gdG91Y2hTdGFydFk7CiAgICBjb25zdCBpc0hvcml6b250YWxHZXN0dXJlID0gTWF0aC5hYnMoZGVsdGFYKSA+IE1hdGguYWJzKGRlbHRhWSk7CiAgICBpZiAoIWlzSG9yaXpvbnRhbEdlc3R1cmUpIHJldHVybjsKICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSBnZXRNYXhTY3JvbGxMZWZ0KCk7CiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAxKSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBub3JtYWxpemVTY3JvbGxCb3VuZHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaXNBdFN0YXJ0ID0gc2xpZGVyLnNjcm9sbExlZnQgPD0gMTsKICAgIGNvbnN0IGlzQXRFbmQgPSBzbGlkZXIuc2Nyb2xsTGVmdCA+PSBtYXhTY3JvbGxMZWZ0IC0gMTsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0U3RhcnQgPSBpc0F0U3RhcnQgJiYgZGVsdGFYID4gMDsKICAgIGNvbnN0IGlzRHJhZ2dpbmdQYXN0RW5kID0gaXNBdEVuZCAmJiBkZWx0YVggPCAwOwogICAgaWYgKGlzRHJhZ2dpbmdQYXN0U3RhcnQgfHwgaXNEcmFnZ2luZ1Bhc3RFbmQpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIG5vcm1hbGl6ZVNjcm9sbEJvdW5kcygpOwogICAgfQogIH07CiAgY29uc3QgZ29Ub0l0ZW0gPSAoaW5kZXgsIGJlaGF2aW9yID0gc2Nyb2xsKT0+ewogICAgY29uc3QgaXRlbSA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXJvb3Q9JyR7cm9vdElkfSddW2RhdGEtc2xpZGVyLWl0ZW09JyR7aW5kZXh9J11gKSA/PyBzbGlkZXIucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1zbGlkZXItaXRlbT0nJHtpbmRleH0nXWApOwogICAgaWYgKGl0ZW0pIHsKICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KGl0ZW0pKSB7CiAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IGF0IGluZGV4ICR7aW5kZXh9IGlzIG5vdCBhbiBodG1sIGVsZW1lbnQuIFNraXBwaW5nIGNhcm91c2VsYCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgI
3588HNsaWRlci5zY3JvbGxUbyh7CiAgICAgICAgdG9wOiAwLAogICAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciwKICAgICAgICBsZWZ0OiBpdGVtLm9mZnNldExlZnQgLSByb290Lm9mZnNldExlZnQKICAgICAgfSk7CiAgICB9CiAgfTsKICBjb25zdCBnb1RvSXRlbURvdCA9IChpbmRleCwgYmVoYXZpb3IgPSBzY3JvbGwpPT57CiAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICBpZiAoIWl0ZW0pIHJldHVybjsKICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgewogICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgYXQgaW5kZXggJHtpbmRleH0gaXMgbm90IGFuIGh0bWwgZWxlbWVudC4gU2tpcHBpbmcgY2Fyb3VzZWxgKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2xpZGVyLnNjcm9sbFRvKHsKICAgICAgdG9wOiAwLAogICAgICBiZWhhdmlvciwKICAgICAgbGVmdDogaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQKICAgIH0pOwogIH07CiAgY29uc3QgZ2V0TmVhcmVzdEl0ZW1JbmRleCA9ICgpPT57CiAgICBsZXQgYWN0aXZlSW5kZXggPSAwOwogICAgbGV0IHNtYWxsZXN0RGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CiAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspewogICAgICBjb25zdCBpdGVtID0gaXRlbXMuaXRlbShpbmRleCk7CiAgICAgIGlmICghaXNIVE1MRWxlbWVudChpdGVtKSkgY29udGludWU7CiAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnMoc2xpZGVyLnNjcm9sbExlZnQgLSAoaXRlbS5vZmZzZXRMZWZ0IC0gc2xpZGVyLm9mZnNldExlZnQpKTsKICAgICAgaWYgKGRpc3RhbmNlIDwgc21hbGxlc3REaXN0YW5jZSkgewogICAgICAgIHNtYWxsZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgICAgICBhY3RpdmVJbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWN0aXZlSW5kZXg7CiAgfTsKICBjb25zdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQgPSBhc3luYyAodGFyZ2V0SW5kZXgsIGRpcmVjdGlvbiwgY2xvbmVQb3NpdGlvbik9PnsKICAgIGNvbnN0IGNsb25lID0gY2xvbmVQb3NpdGlvbiA/IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldCh0YXJnZXRJbmRleCk/LltjbG9uZVBvc2l0aW9uXSA6IHVuZGVmaW5lZDsKICAgIGNvbnN0IHRhcmdldCA9IGNsb25lID8/IGl0ZW1zLml0ZW0odGFyZ2V0SW5kZXgpOwogICAgaWYgKGF3YWl0IHByZXBhcmVJdGVtKHRhcmdldCkpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBpbmRleDogdGFyZ2V0SW5kZXgsCiAgICAgICAgaXRlbTogdGFyZ2V0LAogICAgICAgIHNraXBwZWQ6IGZhbHNlCiAgICAgIH07CiAgICB9CiAgICBmb3IobGV0IG9mZnNldCA9IDE7IG9mZnNldCA8IGl0ZW1zLmxlbmd0aDsgb2Zmc2V0KyspewogICAgICBjb25zdCBmYWxsYmFja0luZGV4ID0gKHRhcmdldEluZGV4ICsgZGlyZWN0aW9uICogb2Zmc2V0ICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgY29uc3QgZmFsbGJhY2sgPSBpdGVtcy5pdGVtKGZhbGxiYWNrSW5kZXgpOwogICAgICBpZiAoYXdhaXQgcHJlcGFyZUl0ZW0oZmFsbGJhY2spKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiBmYWxsYmFja0luZGV4LAogICAgICAgICAgaXRlbTogZmFsbGJhY2ssCiAgICAgICAgICBza2lwcGVkOiB0cnVlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfTsKICBjb25zdCBvbkNsaWNrUHJldiA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gMCA/IGluZmluaXRlID8gZ29Ub1Njcm9sbERvdChzY3JvbGxEb3RQb3NpdGlvbnMubGVuZ3RoIC0gMSkgOiBnb1RvU2Nyb2xsRG90KDApIDogZ29Ub1Njcm9sbERvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaXRlbURvdHMpIHsKICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBnZXROZWFyZXN0SXRlbUluZGV4KCk7CiAgICAgIGFjdGl2ZUluZGV4ID09PSAwID8gaW5maW5pdGUgPyBnb1RvSXRlbURvdChpdGVtcy5sZW5ndGggLSAxKSA6IG51bGwgOiBnb1RvSXRlbURvdChhY3RpdmVJbmRleCAtIDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICAvLyBXb3chIGl0ZW1zIHBlciBwYWdlIGlzIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBiZWluZyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBjb250YWluZXIhIQogICAgY29uc3QgaXRlbXNQZXJQYWdlID0gaW5kaWNlcy5sZW5ndGg7CiAgICBjb25zdCBpc1Nob3dpbmdGaXJzdCA9IGluZGljZXNbMF0gPT09IDA7CiAgICBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdGaXJzdCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRpY2VzWzBdIC0gMTsKICAgICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCBnZXRQcmVwYXJlZE5hdmlnYXRpb25UYXJnZXQodGFyZ2V0SW5kZXgsIC0xLCBpc1Nob3dpbmdGaXJzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImJlZm9yZSIgOiB1bmRlZmluZWQpOwogICAgICBpZiAoIXByZXBhcmVkKSByZXR1cm47CiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbEluZGV4ID0gcHJlcGFyZWQuc2tpcHBlZCA/IHByZXBhcmVkLmluZGV4IDogaXNTaG93aW5nRmlyc3QgJiYgaW5maW5pdGVCZWhhdmlvciA/IGl0ZW1zLmxlbmd0aCA6IHByZXBhcmVkLmluZGV4OwogICAgICBnb1RvSXRlbSh0YXJnZXRTY3JvbGxJbmRleCwgcHJlcGFyZWQuc2tpcHBlZCA/ICJpbnN0YW50IiA6IHNjcm9sbCk7CiAgICAgIHVwZGF0ZVZpZGVvUGxheWJhY2socHJlcGFyZWQuaXRlbSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvbmVCeW9uZSkgewogICAgICBpc1Nob3dpbmdGaXJzdCA/IGluZmluaXRlID8gZ29Ub0l0ZW0oaXRlbXMubGVuZ3RoIC0gMSkgOiBudWxsIDogZ29Ub0l0ZW0oaW5kaWNlc1swXSAtIDEpOwogICAgfSBlbHNlIHsKICAgICAgZ29Ub0l0ZW0oaXNTaG93aW5nRmlyc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoIDogaXRlbXMubGVuZ3RoIC0gMSA6IChwYWdlSW5kZXggLSAxKSAqIGl0ZW1zUGVyUGFnZSk7CiAgICB9CiAgfTsKICBjb25zdCBvbkNsaWNrTmV4dCA9IGFzeW5jICgpPT57CiAgICBpZiAoc2Nyb2xsRG90cykgewogICAgICBjb25zdCBhY3RpdmVJbmRleCA9IGdldE5lYXJlc3RTY3JvbGxEb3RJbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gc2Nyb2xsRG90UG9zaXRpb25zLmxlbmd0aCAtIDEgPyBpbmZpbml0ZSA/IGdvVG9TY3JvbGxEb3QoMCkgOiBnb1RvU2Nyb2xsRG90KGFjdGl2ZUluZGV4KSA6IGdvVG9TY3JvbGxEb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBhY3RpdmVJbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSA/IGluZmluaXRlID8gZ29Ub0l0ZW1Eb3QoMCkgOiBudWxsIDogZ29Ub0l0ZW1Eb3QoYWN0aXZlSW5kZXggKyAxKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgaW5kaWNlcyA9IGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKCk7CiAgICBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gV293ISBpdGVtcyBwZXIgcGFnZSBpcyBob3cgbWFueSBlbGVtZW50cyBhcmUgYmVpbmcgZGlzcGxheWVkIGluc2lkZSB0aGUgY29udGFpbmVyISEKICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IGluZGljZXMubGVuZ3RoOwogICAgY29uc3QgaXNTaG93aW5nTGFzdCA9IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSA9PT0gaXRlbXMubGVuZ3RoIC0gMTsKICAgIGNvbnN0IHBhZ2VJbmRleCA9IE1hdGguZmxvb3IoaW5kaWNlc1swXSAvIGl0ZW1zUGVyUGFnZSk7CiAgICBpZiAocHJvZ3Jlc3NpdmVNZWRpYSAmJiBpdGVtc1BlclBhZ2UgPT09IDEgJiYgIW9uZUJ5b25lKSB7CiAgICAgIGlmICghYXdhaXQgcHJlcGFyZUl0ZW0oaXRlbXMuaXRlbShpbmRpY2VzWzBdKSkpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc1Nob3dpbmdMYXN0ID8gMCA6IGluZGljZXNbMF0gKyAxOwogICAgICBjb25zdCBwcmVwYXJlZCA9IGF3YWl0IGdldFByZXBhcmVkTmF2aWdhdGlvblRhcmdldCh0YXJnZXRJbmRleCwgMSwgaXNTaG93aW5nTGFzdCAmJiBpbmZpbml0ZUJlaGF2aW9yID8gImFmdGVyIiA6IHVuZGVmaW5lZCk7CiAgICAgIGlmICghcHJlcGFyZWQpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsSW5kZXggPSBwcmVwYXJlZC5za2lwcGVkID8gcHJlcGFyZWQuaW5kZXggOiBpc1Nob3dpbmdMYXN0ICYmIGluZmluaXRlQmVoYXZpb3IgPyBpdGVtcy5sZW5ndGggKyAxIDogcHJlcGFyZWQuaW5kZXg7CiAgICAgIGdvVG9JdGVtKHRhcmdldFNjcm9sbEluZGV4LCBwcmVwYXJlZC5za2lwcGVkID8gImluc3RhbnQiIDogc2Nyb2xsKTsKICAgICAgdXBkYXRlVmlkZW9QbGF5YmFjayhwcmVwYXJlZC5pdGVtKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gZ29Ub0l0ZW0oaXNTaG93aW5nTGFzdCA/IDAgOiAoaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgaWYgKG9uZUJ5b25lKSB7CiAgICAgIGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZSA/IGdvVG9JdGVtKDApIDogbnVsbCA6IGdvVG9JdGVtKGluZGljZXNbMF0gKyAxKTsKICAgIH0gZWxzZSB7CiAgICAgIGdvVG9JdGVtKGlzU2hvd2luZ0xhc3QgPyBpbmZpbml0ZUJlaGF2aW9yID8gaXRlbXMubGVuZ3RoICsgMSA6IDAgOiAocGFnZUluZGV4ICsgMSkgKiBpdGVtc1BlclBhZ2UpOwogICAgfQogIH07CiAgY29uc3QgdXBkYXRlUGFnZURvdHMgPSAoKT0+ewogICAgaWYgKCFwYWdlRG90cyB8fCAhZG90cykgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBNYXRoLm1heChpbmRpY2VzLmxlbmd0aCwgMSk7CiAgICBjb25zdCBtYXhWaXNpYmxlID0gTWF0aC5tYXgoLi4uaW5kaWNlcyk7CiAgICBjb25zdCBwYWdlRG90SW5kZXggPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyBpdGVtc1BlclBhZ2UpICogaXRlbXNQZXJQYWdlOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QsIGkpPT57CiAgICAgIGlmIChpICUgaXRlbXNQZXJQYWdlICE9PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0ocGFnZURvdEluZGV4KTsKICAgIGlmIChhY3RpdmVEb3QpIHsKICAgICAgQXJyYXkuZnJvbShkb3RzKS5maWx0ZXIoKF9kb3QsIGkpPT5pIDwgcGFnZURvdEluZGV4ICYmIGkgJSBpdGVtc1BlclBhZ2UgPT09IDApLmZvckVhY2goKGRvdCk9PmRvdC5zZXRBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIsICJ0cnVlIikpOwogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCB1cGRhdGVBY3RpdmVEb3QgPSAoKT0+ewogICAgaWYgKHNjcm9sbERvdHMpIHsKICAgICAgdXBkYXRlU2Nyb2xsRG90cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocGFnZURvdHMgfHwgIWRvdHMpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGl0ZW1Eb3RzKSB7CiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0TmVhcmVzdEl0ZW1JbmRleCgpOwogICAgICBBcnJheS5mcm9tKGRvdHMpLmZvckVhY2goKGRvdCk9PnsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBhaW50ZWQiKTsKICAgICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgICB9KTsKICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90cy5pdGVtKGFjdGl2ZUluZGV4KTsKICAgICAgaWYgKGFjdGl2ZURvdCkgewogICAgICAgIGFjdGl2ZURvdC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgInRydWUiKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpbmRpY2VzID0gZ2V0RWxlbWVudHNJbnNpZGVDb250YWluZXIoKT
3588sKICAgIGlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBhY3RpdmVJbmRleCA9IE1hdGgubWluKC4uLmluZGljZXMpOwogICAgQXJyYXkuZnJvbShkb3RzKS5mb3JFYWNoKChkb3QpPT57CiAgICAgIGRvdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGFpbnRlZCIpOwogICAgICBkb3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOwogICAgfSk7CiAgICBjb25zdCBhY3RpdmVEb3QgPSBkb3RzLml0ZW0oYWN0aXZlSW5kZXgpOwogICAgaWYgKGFjdGl2ZURvdCkgewogICAgICBhY3RpdmVEb3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICJ0cnVlIik7CiAgICB9CiAgfTsKICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBpZiAocGFnZURvdHMpIHsKICAgICAgdXBkYXRlUGFnZURvdHMoKTsKICAgIH0gZWxzZSB7CiAgICAgIHVwZGF0ZUFjdGl2ZURvdCgpOwogICAgfQogICAgZWxlbWVudHMuZm9yRWFjaCgoaXRlbSk9PnsKICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoaXRlbS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIikpIHx8IDA7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSBwcmVwYXJlRm9sbG93aW5nSXRlbShpbmRleCk7CiAgICAgIGlmICghaW5maW5pdGUpIHsKICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICAgIHByZXY/LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmV2Py5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpbmRleCA9PT0gaXRlbXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgaWYgKGl0ZW0uaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgICAgbmV4dD8uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsICIiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQ/LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHByb2dyZXNzKSB7CiAgICAgICAgICBpZiAocHJvZ3Jlc3MuaWQgPT0gIjAiICYmIGluZGV4ID09PSBpdGVtcy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLmhlaWdodCA9IGAkezEgLyBpdGVtcy5sZW5ndGggKiAxMDB9JWA7CiAgICAgICAgICAgIHByb2dyZXNzLnN0eWxlLndpZHRoID0gYCR7MSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3MuaWQgPSAiMSI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcm9ncmVzcy5zdHlsZS5oZWlnaHQgPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgICAgcHJvZ3Jlc3Muc3R5bGUud2lkdGggPSBgJHsoaW5kZXggKyAxKSAvIGl0ZW1zLmxlbmd0aCAqIDEwMH0lYDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sIHsKICAgIHRocmVzaG9sZDogVEhSRVNIT0xELAogICAgcm9vdDogc2xpZGVyLAogICAgcm9vdE1hcmdpbjogIjEwMHB4IgogIH0pOwogIGNvbnN0IGZ1bGxPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZWxlbWVudHMpPT57CiAgICBlbGVtZW50cy5mb3JFYWNoKChpdGVtKT0+ewogICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSBzbGlkZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpYCk7CiAgICAgIGlmIChpdGVtLmlzSW50ZXJzZWN0aW5nICYmIGVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgICAgaWYgKGl0ZW0udGFyZ2V0ID09IGN1cnJlbnRJdGVtc1sxXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbShpdGVtcy5sZW5ndGggLSAxLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICAgIGlmIChpdGVtLnRhcmdldCA9PT0gY3VycmVudEl0ZW1zW2N1cnJlbnRJdGVtcy5sZW5ndGggLSAyXSkgewogICAgICAgICAgc2V0VGltZW91dCgoKT0+ewogICAgICAgICAgICBnb1RvSXRlbSgwLCAiaW5zdGFudCIpOwogICAgICAgICAgICB1cGRhdGVWaWRlb1BsYXliYWNrKGl0ZW1zWzBdKTsKICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LCB7CiAgICB0aHJlc2hvbGQ6IDAuNywKICAgIHJvb3Q6IHNsaWRlciwKICAgIHJvb3RNYXJnaW46ICIxMDBweCIKICB9KTsKICBjb25zdCBjb25maWd1cmVDbG9uZSA9IChjbG9uZSwgb3JpZ2luYWxJbmRleCwgcG9zaXRpb24pPT57CiAgICBjbG9uZS5kYXRhc2V0LnNsaWRlckNsb25lID0gInRydWUiOwogICAgY2xvbmUuZGF0YXNldC5zbGlkZXJPcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleC50b1N0cmluZygpOwogICAgY29uc3QgcmVnaXN0ZXJlZCA9IGNsb25lQnlPcmlnaW5hbEluZGV4LmdldChvcmlnaW5hbEluZGV4KSA/PyB7fTsKICAgIHJlZ2lzdGVyZWRbcG9zaXRpb25dID0gY2xvbmU7CiAgICBjbG9uZUJ5T3JpZ2luYWxJbmRleC5zZXQob3JpZ2luYWxJbmRleCwgcmVnaXN0ZXJlZCk7CiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1ldmVudF0sIFtkYXRhLWV2ZW50LXRyaWdnZXJdIikuZm9yRWFjaCgoZWxlbWVudCk9PnsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQiKTsKICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZXZlbnQtdHJpZ2dlciIpOwogICAgfSk7CiAgICBpZiAoIXByb2dyZXNzaXZlTWVkaWEpIHJldHVybjsKICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoInNvdXJjZVtzcmNzZXRdIikuZm9yRWFjaCgoc291cmNlKT0+ewogICAgICBzb3VyY2UuZGF0YXNldC5zcmNzZXQgPSBzb3VyY2Uuc3Jjc2V0OwogICAgICBzb3VyY2UucmVtb3ZlQXR0cmlidXRlKCJzcmNzZXQiKTsKICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsICJsb3ciKTsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgiaW1nIikuZm9yRWFjaCgoaW1hZ2UpPT57CiAgICAgIGNvbnN0IHNvdXJjZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgic3JjIik7CiAgICAgIGlmIChzb3VyY2UpIGltYWdlLmRhdGFzZXQuc3JjID0gc291cmNlOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICBpbWFnZS5yZW1vdmVBdHRyaWJ1dGUoInNyY3NldCIpOwogICAgICBpbWFnZS5kYXRhc2V0LnNsaWRlckRlZmVycmVkSW1hZ2UgPSAidHJ1ZSI7CiAgICAgIGltYWdlLmxvYWRpbmcgPSAibGF6eSI7CiAgICAgIGltYWdlLmZldGNoUHJpb3JpdHkgPSAibG93IjsKICAgIH0pOwogICAgY2xvbmUucXVlcnlTZWxlY3RvckFsbCgidmlkZW8iKS5mb3JFYWNoKCh2aWRlbyk9PnsKICAgICAgY29uc3Qgc291cmNlID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJzcmMiKTsKICAgICAgY29uc3QgcG9zdGVyID0gdmlkZW8uZ2V0QXR0cmlidXRlKCJwb3N0ZXIiKTsKICAgICAgaWYgKHNvdXJjZSkgdmlkZW8uZGF0YXNldC5zcmMgPSBzb3VyY2U7CiAgICAgIGlmIChwb3N0ZXIpIHZpZGVvLmRhdGFzZXQucG9zdGVyID0gcG9zdGVyOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInNyYyIpOwogICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoInBvc3RlciIpOwogICAgICB2aWRlby5wcmVsb2FkID0gIm5vbmUiOwogICAgfSk7CiAgfTsKICBpZiAoaW5maW5pdGVCZWhh
3588dmlvcikgewogICAgY29uc3QgZmlyc3RJdGVtQ2xvbmUgPSBpdGVtc1swXS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb25zdCBzZWNvbmRJdGVtQ2xvbmUgPSBpdGVtc1sxXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgcGVudWx0aW1hdGVJdGVtQ2xvbmUgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAyXT8uY2xvbmVOb2RlKHRydWUpOwogICAgY29uc3QgbGFzdEl0ZW1DbG9uZSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmNsb25lTm9kZSh0cnVlKTsKICAgIGNvbmZpZ3VyZUNsb25lKGZpcnN0SXRlbUNsb25lLCAwLCAiYWZ0ZXIiKTsKICAgIHNlY29uZEl0ZW1DbG9uZSAmJiBjb25maWd1cmVDbG9uZShzZWNvbmRJdGVtQ2xvbmUsIDEsICJhZnRlciIpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgY29uZmlndXJlQ2xvbmUocGVudWx0aW1hdGVJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDIsICJiZWZvcmUiKTsKICAgIGNvbmZpZ3VyZUNsb25lKGxhc3RJdGVtQ2xvbmUsIGl0ZW1zLmxlbmd0aCAtIDEsICJiZWZvcmUiKTsKICAgIGxhc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgaXRlbXMubGVuZ3RoLnRvU3RyaW5nKCkpOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmU/LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItaXRlbSIpOwogICAgZmlyc3RJdGVtQ2xvbmUuc2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1pdGVtIiwgKGl0ZW1zLmxlbmd0aCArIDEpLnRvU3RyaW5nKCkpOwogICAgc2Vjb25kSXRlbUNsb25lPy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWl0ZW0iKTsKICAgIHNsaWRlci5pbnNlcnRCZWZvcmUobGFzdEl0ZW1DbG9uZSwgaXRlbXNbMF0pOwogICAgcGVudWx0aW1hdGVJdGVtQ2xvbmUgJiYgc2xpZGVyLmluc2VydEJlZm9yZShwZW51bHRpbWF0ZUl0ZW1DbG9uZSwgbGFzdEl0ZW1DbG9uZSk7CiAgICBzbGlkZXIuYXBwZW5kQ2hpbGQoZmlyc3RJdGVtQ2xvbmUpOwogICAgc2Vjb25kSXRlbUNsb25lICYmIHNsaWRlci5hcHBlbmRDaGlsZChzZWNvbmRJdGVtQ2xvbmUpOwogICAgZ29Ub0l0ZW0oMCwgImluc3RhbnQiKTsKICB9CiAgaWYgKHByb2dyZXNzaXZlTWVkaWEpIHsKICAgIHByZXBhcmVGb2xsb3dpbmdJdGVtKGdldEVsZW1lbnRzSW5zaWRlQ29udGFpbmVyKClbMF0gPz8gMCk7CiAgfQogIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHNsaWRlcj8ucXVlcnlTZWxlY3RvckFsbChgbGlgKTsKICBpdGVtcy5mb3JFYWNoKChpdGVtKT0+b2JzZXJ2ZXIub2JzZXJ2ZShpdGVtKSk7CiAgaWYgKGluZmluaXRlQmVoYXZpb3IpIHsKICAgIGZ1bGxPYnNlcnZlci5vYnNlcnZlKGN1cnJlbnRJdGVtc1sxXSk7CiAgICBmdWxsT2JzZXJ2ZXIub2JzZXJ2ZShjdXJyZW50SXRlbXNbY3VycmVudEl0ZW1zLmxlbmd0aCAtIDJdKTsKICB9CiAgaWYgKHBhZ2VEb3RzKSB7CiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpLmxlbmd0aDsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBjb25zdCBkb3QgPSBkb3RzPy5pdGVtKGl0KTsKICAgICAgaWYgKCFkb3QpIGNvbnRpbnVlOwogICAgICBpZiAoaXQgJSBpdGVtc1BlclBhZ2UgIT09IDApIHsKICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgIGRvdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzY3JvbGxEb3RzKSB7CiAgICB1cGRhdGVTY3JvbGxEb3RzKCk7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKT0+Z29Ub1Njcm9sbERvdChpdCkpOwogICAgfQogIH0gZWxzZSB7CiAgICBmb3IobGV0IGl0ID0gMDsgaXQgPCAoZG90cz8ubGVuZ3RoID8/IDApOyBpdCsrKXsKICAgICAgZG90cz8uaXRlbShpdCkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKT0+ewogICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5pdGVtKGl0KTsKICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBnZXRFbGVtZW50c0luc2lkZUNvbnRhaW5lcigpWzBdID8/IDA7CiAgICAgICAgaWYgKHByb2dyZXNzaXZlTWVkaWEgJiYgKCFhd2FpdCBwcmVwYXJlSXRlbShpdGVtcy5pdGVtKGN1cnJlbnRJbmRleCkpIHx8ICFhd2FpdCBwcmVwYXJlSXRlbShpdGVtKSkpIHJldHVybjsKICAgICAgICBpdGVtRG90cyA/IGdvVG9JdGVtRG90KGl0KSA6IGdvVG9JdGVtKGl0KTsKICAgICAgICBpdGVtICYmIHVwZGF0ZVZpZGVvUGxheWJhY2soaXRlbSk7CiAgICAgIH0pOwogICAgfQogIH0KICBwcmV2Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tQcmV2KTsKICBuZXh0Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICBpZiAoc2Nyb2xsRG90cykgewogICAgc2xpZGVyLnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclggPSAiY29udGFpbiI7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgbm9ybWFsaXplU2Nyb2xsQm91bmRzLCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVUb3VjaFN0YXJ0LCB7CiAgICAgIHBhc3NpdmU6IHRydWUKICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZVRvdWNoTW92ZSwgewogICAgICBwYXNzaXZlOiBmYWxzZQogICAgfSk7CiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogIH0gZWxzZSBpZiAocGFnZURvdHMpIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVQYWdlRG90cyk7CiAgfSBlbHNlIHsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB1cGRhdGVBY3RpdmVEb3QpOwogIH0KICBsZXQgYXV0b3BsYXlUaW1lb3V0OwogIGNvbnN0IHNjaGVkdWxlQXV0b3BsYXkgPSAoKT0+ewogICAgaWYgKCFpbnRlcnZhbCB8fCAhcHJvZ3Jlc3NpdmVNZWRpYSkgcmV0dXJuOwogICAgYXV0b3BsYXlUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKT0+ewogICAgICBhd2FpdCBvbkNsaWNrTmV4dCgpOwogICAgICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgICB9LCBpbnRlcnZhbCk7CiAgfTsKICBzY2hlZHVsZUF1dG9wbGF5KCk7CiAgY29uc3QgYXV0b3BsYXlJbnRlcnZhbCA9IGludGVydmFsICYmICFwcm9ncmVzc2l2ZU1lZGlhID8gc2V0SW50ZXJ2YWwob25DbGlja05leHQsIGludGVydmFsKSA6IHVuZGVmaW5lZDsKICBsZXQgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyOwogIGZ1bmN0aW9uIGVuYWJsZUhvcml6b250YWxTY3JvbGwoKSB7CiAgICBpZiAoIXNsaWRlcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaXNNb3VzZURvd24gPSBmYWxzZTsKICAgIGxldCBzdGFydFg7CiAgICBsZXQgc2Nyb2xsTGVmdDsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBsZXQgbW9tZW50dW1GcmFtZTsKICAgIGNvbnN0IG1vbWVudHVtU2Nyb2xsID0gKCk9PnsKICAgICAgc2xpZGVyLnNjcm9sbExlZnQgKz0gdmVsb2NpdHk7CiAgICAgI
3588HZlbG9jaXR5ICo9IDAuOTU7CiAgICAgIGlmIChNYXRoLmFicyh2ZWxvY2l0eSkgPiAwLjEpIHsKICAgICAgICBtb21lbnR1bUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG1vbWVudHVtU2Nyb2xsKTsKICAgICAgfQogICAgfTsKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCAoZSk9PnsKICAgICAgaXNNb3VzZURvd24gPSB0cnVlOwogICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gImdyYWJiaW5nIjsKICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gImluaXRpYWwiOwogICAgICBzdGFydFggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIHNjcm9sbExlZnQgPSBzbGlkZXIuc2Nyb2xsTGVmdDsKICAgICAgdmVsb2NpdHkgPSAwOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShtb21lbnR1bUZyYW1lKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsICgpPT57CiAgICAgIGlmIChpc01vdXNlRG93bikgewogICAgICAgIGlzTW91c2VEb3duID0gZmFsc2U7CiAgICAgICAgc2xpZGVyLmRhdGFzZXRbImRyYWdnaW5nIl0gPSAiZmFsc2UiOwogICAgICAgIHNsaWRlci5zdHlsZS5jdXJzb3IgPSAiZ3JhYiI7CiAgICAgICAgc2xpZGVyLnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gInNtb290aCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKT0+ewogICAgICBpZiAoaXNNb3VzZURvd24pIHsKICAgICAgICBpc01vdXNlRG93biA9IGZhbHNlOwogICAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gImZhbHNlIjsKICAgICAgICBzbGlkZXIuc3R5bGUuY3Vyc29yID0gIm5vcm1hbCI7CiAgICAgICAgbW9tZW50dW1GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShtb21lbnR1bVNjcm9sbCk7CiAgICAgIH0KICAgIH0pOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIChlKT0+ewogICAgICBpZiAoIWlzTW91c2VEb3duKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHggPSBlLnBhZ2VYIC0gc2xpZGVyLm9mZnNldExlZnQ7CiAgICAgIGNvbnN0IHdhbGsgPSAoeCAtIHN0YXJ0WCkgKiAwLjU7CiAgICAgIHNsaWRlci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCAtIHdhbGs7CiAgICAgIHZlbG9jaXR5ID0gLXdhbGsgKiAwLjI7CiAgICAgIHNsaWRlci5kYXRhc2V0WyJkcmFnZ2luZyJdID0gInRydWUiOwogICAgfSk7CiAgfQogIGlmIChkZXNrdG9wRHJhZ2dhYmxlKSB7CiAgICBzbGlkZXIuZGF0YXNldFsiZHJhZ2dhYmxlIl0gPSAidHJ1ZSI7CiAgICBlbmFibGVIb3Jpem9udGFsU2Nyb2xsKCk7CiAgfQogIGlmIChzY3JvbGxEb3RzICYmICJSZXNpemVPYnNlcnZlciIgaW4gZ2xvYmFsVGhpcykgewogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHVwZGF0ZVNjcm9sbERvdHMpOwogICAgc2Nyb2xsRG90c1Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoc2xpZGVyKTsKICB9CiAgLy8gVW5yZWdpc3RlciBjYWxsYmFja3MKICByZXR1cm4gKCk9PnsKICAgIGZvcihsZXQgaXQgPSAwOyBpdCA8IChkb3RzPy5sZW5ndGggPz8gMCk7IGl0KyspewogICAgICBkb3RzPy5pdGVtKGl0KS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsICgpPT5nb1RvSXRlbShpdCkpOwogICAgfQogICAgcHJldj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNsaWNrUHJldik7CiAgICBuZXh0Py5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2xpY2tOZXh0KTsKICAgIGlmIChzY3JvbGxEb3RzKSB7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBub3JtYWxpemVTY3JvbGxCb3VuZHMpOwogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlU2Nyb2xsRG90cyk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgaGFuZGxlVG91Y2hTdGFydCk7CiAgICAgIHNsaWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCBoYW5kbGVUb3VjaE1vdmUpOwogICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZVNjcm9sbERvdHMpOwogICAgfSBlbHNlIGlmIChwYWdlRG90cykgewogICAgICBzbGlkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdXBkYXRlUGFnZURvdHMpOwogICAgfSBlbHNlIHsKICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZUFjdGl2ZURvdCk7CiAgICB9CiAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICBzY3JvbGxEb3RzUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTsKICAgIGlmIChhdXRvcGxheVRpbWVvdXQpIGNsZWFyVGltZW91dChhdXRvcGxheVRpbWVvdXQpOwogICAgaWYgKGF1dG9wbGF5SW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwoYXV0b3BsYXlJbnRlcnZhbCk7CiAgfTsKfSkoeyJyb290SWQiOiJQMC0zMjI5ODg2MDUiLCJpbmZpbml0ZSI6dHJ1ZSwib25lQnlvbmUiOnRydWUsImRlc2t0b3BEcmFnZ2FibGUiOmZhbHNlfSkpKQ==" defer nonce="16c268fd223f430b98c07279b4c2abab"></script>
3588</div></div></section><section id="3116416930-0" data-manifest-key="site/sections/Images/BannerCollection.tsx"><div style="gap:0px;padding-top:30px;padding-bottom:0px;" class="w-full flex md:flex-row flex-col"><a href="https://farmrio.onelink.me/VoZj/e48c7a23" target="_self" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bfaixa%5D%20ainda%20n%C3%A3o%20tem%20o%20app%20FARM%20Rio%3F%22%2C%22creative_name%22%3A%22banner_collection%22%2C%22creative_slot%22%3A%22banner_collection%3A%5Bfarm%20rio%5D%20%5Bfaixa%5D%20ainda%20n%C3%A3o%20tem%20o%20app%20FARM%20Rio%3F%3A1%22%2C%22promotion_url%22%3A%22https%3A%2F%2Ffarmrio.onelink.me%2FVoZj%2Fe48c7a23%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [faixa] ainda não tem o app FARM Rio?","creative_name":"banner_collection","creative_slot":"banner_collection:[farm rio] [faixa] ainda não tem o app FARM Rio?:1","promotion_url":"https://farmrio.onelink.me/VoZj/e48c7a23","url":"https://farmrio.onelink.me/VoZj/e48c7a23","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [faixa] ainda não tem o app FARM Rio?\",\"creative_name\":\"banner_collection\",\"creative_slot\":\"banner_collection:[farm rio] [faixa] ainda não tem o app FARM Rio?:1\",\"promotion_url\":\"https://farmrio.onelink.me/VoZj/e48c7a23\"}})"})" class="w-full"><figure class="w-full"><picture style="--banner-mobile-aspect-ratio:412 / 75;--banner-desktop-aspect-ratio:1440 / 106;" class="block w-full bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"><source media="(max-width: 767px)" srcset="https://decoims.com/image?fit=cover&width=412&height=75&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F07_JULHO%2F29_TARJA_BENEFICIOS%2Fmob%2F29-07-26-home-banner-7-titulo-tarja-beneficios-mobile.jpg 412w, https://decoims.com/image?fit=cover&width=824&height=150&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F07_JULHO%2F29_TARJA_BENEFICIOS%2Fmob%2F29-07-26-home-banner-7-titulo-tarja-beneficios-mobile.jpg 824w" width="412" height="75" sizes="100vw" fetchpriority="low"/><source media="(min-width: 768px)" srcset="https://decoims.com/image?fit=cover&width=1440&height=106&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F07_JULHO%2F29_TARJA_BENEFICIOS%2Fdesk%2F29-07-26-home-banner-7-titulo-tarja-beneficios-desktop.jpg 1440w, https://decoims.com/image?fit=cover&width=2880&height=212&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2F2026%2F07_JULHO%2F29_TARJA_BENEFICIOS%2Fdesk%2F29-07-26-home-banner-7-titulo-tarja-beneficios-desktop.jpg 2880w" width="1440" height="106" sizes="100vw" fetchpriority="low"/><img loading="lazy" fetchpriority="low" src="https://cf.farmriosoma.farmrio.com.br/site/2026/07_JULHO/29_TARJA_BENEFICIOS/desk/29-07-26-home-banner-7-titulo-tarja-beneficios-desktop.jpg" alt="[farm rio] [faixa] ainda não tem o app FARM Rio?" width="1440" height="106" class="block w-full h-auto"/></picture></figure></a></div></section><section id="2312394133-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&
3588renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2222%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="padding-top:-20px;" class="w-full flex flex-col"><div class="grid w-full grid-cols-[48px_1fr_48px]"><ul class="carousel carousel-start col-span-full row-start-2 row-end-5 w-full"><li data-slider-item="0" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="1" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="2" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="3" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="4" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="5" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="6" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="7" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="8" class="carousel-item md:w-[18%] mx-auto w-1/2"><div class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li></ul><div class="relative block z-10 col-start-1 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md left-4 w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="rotate-180 text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowLeft"></use></svg></span></div><div class="relative block z-10 col-start-3 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowRight"></use></svg></span></div></div></div></div></section><section id="3528015081-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2223%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="gap:0px;padding-top:0px;padding-bottom:20px;" class="w-full flex md:flex-row flex-col"><div style="--banner-mobile-aspect-ratio:412 / 31;--banner-desktop-aspect-ratio:1440 / 70;" class="w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"></div></div></div></section><section id="4069251363-0" data-manifest-key="site/sections/Images/BannerCollection.tsx"><div style="gap:0px;padding-top:0px;padding-bottom:20px;" class="w-full flex md:flex-row flex-col"><a href="/farm-etc/novidades" target="_self" data-event="%7B%22name%22%3A%22view_promotion%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22region%22%3A%22home%22%2C%22promotion_name%22%3A%22%5Bfarm%20rio%5D%20%5Bbanner%20novidades%20etc%5D%20lan%C3%A7amento%3A%20bolsa%20de%20praia%20listra%20floral%20FARM%20Etc.%20leva%20agora%22%2C%22creative_name%22%3A%22banner_collection%22%2C%22creative_slot%22%3A%22banner_collection%3A%5Bfarm%20rio%5D%20%5Bbanner%20novidades%20etc%5D%20lan%C3%A7amento%3A%20bolsa%20de%20praia%20listra%20floral%20FARM%20Etc.%20leva%20agora%3A1%22%2C%22promotion_url%22%3A%22%2Ffarm-etc%2Fnovidades%22%7D%7D%7D" data-event-trigger="view" data-has-commerce="true" hx-on:click="(function handleBannerClick({promotion_name:e,creative_slot:n,
3588creative_name:t,url:r,fn:a}){const o={creative_name:t,creative_slot:n,promotion_name:e,url:r,expiresAt:Date.now()+6e5};localStorage.setItem("lastClickedBanner",JSON.stringify(o)),a&&"string"==typeof a&&new Function(`return ${a}`)()})({"region":"home","promotion_name":"[farm rio] [banner novidades etc] lançamento: bolsa de praia listra floral FARM Etc. leva agora","creative_name":"banner_collection","creative_slot":"banner_collection:[farm rio] [banner novidades etc] lançamento: bolsa de praia listra floral FARM Etc. leva agora:1","promotion_url":"/farm-etc/novidades","url":"/farm-etc/novidades","fn":"(function dispatchSelectPromotionEvent(o){globalThis.window.DECO.events.dispatch({name:\"select_promotion\",params:o})})({\"adapter\":\"DECO\",\"brand\":\"farmrio\",\"meta\":{\"region\":\"home\",\"promotion_name\":\"[farm rio] [banner novidades etc] lançamento: bolsa de praia listra floral FARM Etc. leva agora\",\"creative_name\":\"banner_collection\",\"creative_slot\":\"banner_collection:[farm rio] [banner novidades etc] lançamento: bolsa de praia listra floral FARM Etc. leva agora:1\",\"promotion_url\":\"/farm-etc/novidades\"}})"})" class="w-full"><figure class="w-full"><picture class="block w-full bg-[#f2f2f2] [aspect-ratio:var(--banner-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--banner-desktop-aspect-ratio,auto)]"><source media="(max-width: 767px)" srcset="https://decoims.com/image?fit=cover&width=412&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2FETC%2F2026%2F09_SETEMBRO%2F22_BANNER-NOVIDADES%2F22-09-26-farmrio-home-banner-1-tv-novidades-mobile.jpg%3Fauthuser%3D0 412w, https://decoims.com/image?fit=cover&width=824&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2FETC%2F2026%2F09_SETEMBRO%2F22_BANNER-NOVIDADES%2F22-09-26-farmrio-home-banner-1-tv-novidades-mobile.jpg%3Fauthuser%3D0 824w" sizes="100vw" fetchpriority="low"/><source media="(min-width: 768px)" srcset="https://decoims.com/image?fit=cover&width=1440&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2FETC%2F2026%2F09_SETEMBRO%2F22_BANNER-NOVIDADES%2F22-09-26-farmrio-home-banner-1-tv-novidades-desktop.jpg%3Fauthuser%3D0 1440w, https://decoims.com/image?fit=cover&width=2880&quality=high&src=https%3A%2F%2Fcf.farmriosoma.farmrio.com.br%2Fsite%2FETC%2F2026%2F09_SETEMBRO%2F22_BANNER-NOVIDADES%2F22-09-26-farmrio-home-banner-1-tv-novidades-desktop.jpg%3Fauthuser%3D0 2880w" sizes="100vw" fetchpriority="low"/><img loading="lazy" fetchpriority="low" src="https://cf.farmriosoma.farmrio.com.br/site/ETC/2026/09_SETEMBRO/22_BANNER-NOVIDADES/22-09-26-farmrio-home-banner-1-tv-novidades-desktop.jpg?authuser=0" alt="[farm rio] [banner novidades etc] lançamento: bolsa de praia listra floral FARM Etc. leva agora" class="block w-full h-auto"/></picture></figure></a></div></section><section id="2253551846-0" data-manifest-key="website/sections/Rendering/Lazy.tsx"><div hx-get="/deco/render?props=%7B%22loading%22%3A%22eager%22%7D&href=https%3A%2F%2Fwww.farmrio.com.br%2F&pathTemplate=%2F&renderSalt=0&__cb=3902806881&resolveChain=%5B2%2C%22website%2Fhandlers%2Ffresh.ts%22%2C0%2C%22page%22%2C2%2C%22resolved%22%2C1%2C%22pages-home-c4bcbfb771e9%22%2C2%2C%22website%2Fpages%2FPage.tsx%22%2C0%2C%22sections%22%2C2%2C%22website%2Fflags%2Fmultivariate.ts%22%2C0%2C%22variants%22%2C0%2C%221%22%2C0%2C%22value%22%2C2%2C%22resolved%22%2C0%2C%2227%22%5D" hx-trigger="intersect once threshold:0.0" hx-target="closest section" hx-swap="outerHTML transition:true"><div style="padding-top:0px;padding-bottom:0px;" class="w-full flex flex-col"><div class="grid w-full grid-cols-[48px_1fr_48px]"><ul class="carousel carousel-start col-span-full row-start-2 row-end-5 w-full">
3588<li data-slider-item="0" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="1" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="2" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li><li data-slider-item="3" class="carousel-item md:w-1/3 w-full"><div style="--category-mobile-aspect-ratio:0.7714285714285715;--category-desktop-aspect-ratio:0.6666666666666666;" class="block w-full rounded-none bg-[#f2f2f2] [aspect-ratio:var(--category-mobile-aspect-ratio,auto)] md:[aspect-ratio:var(--category-desktop-aspect-ratio,auto)]"></div></li></ul><div class="relative block z-10 col-start-1 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md left-4 w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="rotate-180 text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowLeft"></use></svg></span></div><div class="relative block z-10 col-start-3 row-start-3"><span class="absolute top-[calc(50%-20px)] drop-shadow-md w-9 h-9 flex justify-center items-center"><svg width="36" height="36" stroke-width="3" class="text-accent fill-current"><use href="/sprites.svg?__deco_c=2#ArrowRight"></use></svg></span></div></div></div></div></section><section id="1780992954-0" data-manifest-key="site/sections/Footer/Footer.tsx"><footer class="w-full flex flex-col md:border-t md:border-neutral md:pb-0 pb-16 md:mt-8 bg-accent text-accent-content"><div class="md:border-t md:border-neutral md:pt-[60px]"><div class="flex flex-col md:px-10 max-w-[1600px] md:mx-auto"><div class="grid grid-cols-2 md:grid-cols-7 grid-rows-[auto_auto_auto] md:grid-rows-[64px_auto] gap-0 md:pb-[60px] md:mb-0 mb-6"><div class="order-2 md:order-1 col-span-2 md:col-span-5 md:row-span-2"><ul class="hidden md:flex flex-row md:pr-10 w-full md:justify-between md:pt-0 pt-5 md:border-r md:border-base-300 false"><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><span class="mb-3.5">Institucional</span><ul class="flex flex-col gap-2 flex-wrap text-xs"><li><a href="/sobre-farm" aria-label="A FARM" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AA%20FARM%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">A FARM</a></li><li><a href="/farm-etc/sobre-farm-etc" aria-label="FARM Etc" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AFARM%20Etc%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">FARM Etc</a></li><li><a href="/nossas-lojas" aria-label="Nossas lojas" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3ANossas%20lojas%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Nossas lojas</a></li><li><a href="https://farm.gupy.io/" aria-label="Trabalhe aqui" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3ATrabalhe%20aqui%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Trabalhe aqui</a></li><li><a href="/fabula-na-farm" aria-label="Fábula na FARM" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AF%C3%A1bula%20na%20FARM%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Fábula na FARM</a></li><li><a href="https://www.azzas2154.com.br/" aria-label="Azzas 2154" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AAzzas%202154%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Azzas 2154</a></li><li><a href="/institucional/multimarcas" aria-label="Multimarcas" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AMultimarcas%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Multimarcas</a></li><li><a href="/farm-friday" aria-label="Farm Friday" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AFarm%20Friday%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Farm Friday</a></li><li><a href="/fabula-e-bento/novidades" aria-label="Fábula" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AInstitucional%3AF%C3%A1bula%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Fábula</a></li></ul></div></li><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><a href="/account" aria-label="Minha conta" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AMinha%20conta%22%7D%7D%7D" data-event-trigger="click" class="mb-3.5"><span>Minha conta</span></a><ul class="flex flex-col gap-2 flex-wrap text-xs">
3588<li><a href="/account#/orders" aria-label="Meus pedidos" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AMinha%20conta%3AMeus%20pedidos%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Meus pedidos</a></li><li><a href="/wishlist" aria-label="Meus desejos" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AMinha%20conta%3AMeus%20desejos%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Meus desejos</a></li></ul></div></li><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><span class="mb-3.5">Fala FARM</span><ul class="flex flex-col gap-2 flex-wrap text-xs"><li><a href="http://wa.me/552137337701" aria-label="Falar via Whatsapp" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFala%20FARM%3AFalar%20via%20Whatsapp%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Falar via Whatsapp</a></li></ul></div></li><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><a href="/fala-farm" aria-label="Precisa de ajuda?" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%22%7D%7D%7D" data-event-trigger="click" class="mb-3.5"><span>Precisa de ajuda?</span></a><ul class="flex flex-col gap-2 flex-wrap text-xs"><li><a href="/fala-farm#!section_360007328691" aria-label="Meus pedidos" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3AMeus%20pedidos%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Meus pedidos</a></li><li><a href="/fala-farm#!section_360007233792" aria-label="Troca e devolução" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3ATroca%20e%20devolu%C3%A7%C3%A3o%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Troca e devolução</a></li><li><a href="/fala-farm#!section_360007233832" aria-label="Entrega" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3AEntrega%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Entrega</a></li><li><a href="/fala-farm#!section_360007328671" aria-label="Promoções e cupons" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3APromo%C3%A7%C3%B5es%20e%20cupons%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Promoções e cupons</a></li><li><a href="/fala-farm#!section_360007233692" aria-label="Produtos" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3AProdutos%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Produtos</a></li><li><a href="/institucional/politicas#regulamento-promo" aria-label="Regulamento de promo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3ARegulamento%20de%20promo%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Regulamento de promo</a></li><li><a href="/institucional/politicas" aria-label="PolÃticas" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3APol%C3%ADticas%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">PolÃticas</a></li><li><a href="/institucional/aviso-de-privacidade" aria-label="Aviso de privacidade" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3APrecisa%20de%20ajuda%3F%3AAviso%20de%20privacidade%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Aviso de privacidade</a></li></ul></div></li><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><a href="/sustentabilidade" aria-label="Sustentabilidade" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%22%7D%7D%7D" data-event-trigger="click" class="mb-3.5"><span>
3588Sustentabilidade</span></a><ul class="flex flex-col gap-2 flex-wrap text-xs"><li><a href="/sustentabilidade/circularidade" aria-label="Circularidade" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3ACircularidade%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Circularidade</a></li><li><a href="/sustentabilidade/gente" aria-label="Gente" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3AGente%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Gente</a></li><li><a href="/sustentabilidade/cultura" aria-label="Cultura" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3ACultura%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Cultura</a></li><li><a href="/sustentabilidade/natureza" aria-label="Natureza" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3ANatureza%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Natureza</a></li><li><a href="/transparencia" aria-label="Transparência" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3ATranspar%C3%AAncia%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Transparência</a></li><li><a href="/re-farm" aria-label="Re-FARM" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3ARe-FARM%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Re-FARM</a></li><li><a href="/institucional/fornecedores" aria-label="Fornecedores" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3ASustentabilidade%3AFornecedores%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Fornecedores</a></li></ul></div></li><li class="px-2.5"><div class="flex flex-col gap-2 text-base font-ligth text-secondary"><span class="mb-3.5">FARM Latam</span><ul class="flex flex-col gap-2 flex-wrap text-xs"><li><a href="https://www.farmrio.com.ar/" aria-label="Argentina" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AArgentina%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Argentina</a></li><li><a href="https://www.farmrio.cl/" aria-label="Chile" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AChile%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Chile</a></li><li><a href="https://www.farmrio.com.co/" aria-label="Colômbia" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3ACol%C3%B4mbia%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Colômbia</a></li><li><a href="https://www.farmrio.com.py/" aria-label="Paraguai" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AParaguai%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Paraguai</a></li><li><a href="https://www.farmrio.com.pe/" aria-label="Peru" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3APeru%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Peru</a></li><li><a href="https://www.farmrio.com.uy/" aria-label="Uruguai" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AUruguai%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Uruguai</a></li><li><a href="https://www.farmrio.com.bo/" aria-label="BolÃvia" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3ABol%C3%ADvia%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">BolÃvia</a></li><li><a href="https://www.farmrio.com.ve/" aria-label="Venezuela" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AVenezuela%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Venezuela</a></li><li><a href="https://www.farmrio.com.pa/" aria-label="Panamá" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3APanam%C3%A1%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Panamá</a></li><li>
3588<a href="https://www.farmrio.com.ec/" aria-label="Equador" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Alink%3AFARM%20Latam%3AEquador%22%7D%7D%7D" data-event-trigger="click" class="block mb-3.5 link link-hover">Equador</a></li></ul></div></li></ul></div><div class="order-1 md:order-2 col-span-2 md:col-start-6 md:col-end-8 md:row-start-1 md:row-span-1 md:pl-14 mx-[30px] md:mx-0"><div class="w-full py-10 md:py-0 md:border-b-0 border-b border-base"><ul class="flex justify-center md:justify-between w-full items-center"><li class="md:w-[42px] w-[50px] items-center"><a href="https://www.facebook.com/adorofarm" target="_blank" rel="noopener noreferrer" aria-label="Facebook Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Afacebook%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Facebook"></use></svg></span></a></li><li class="md:w-[42px] w-[50px] items-center"><a href="http://twitter.com/adorofarm/" target="_blank" rel="noopener noreferrer" aria-label="Twitter Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Atwitter%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Twitter"></use></svg></span></a></li><li class="md:w-[42px] w-[50px] items-center"><a href="https://www.instagram.com/adorofarm/" target="_blank" rel="noopener noreferrer" aria-label="Instagram Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Ainstagram%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Instagram"></use></svg></span></a></li><li class="md:w-[42px] w-[50px] items-center"><a href="https://br.pinterest.com/adorofarm/" target="_blank" rel="noopener noreferrer" aria-label="Pinterest Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Apinterest%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Pinterest"></use></svg></span></a></li><li class="md:w-[42px] w-[50px] items-center"><a href="http://www.youtube.com/user/farmrio/" target="_blank" rel="noopener noreferrer" aria-label="Youtube Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Ayoutube%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Youtube"></use></svg></span></a></li><li class="md:w-[42px] w-[50px] items-center"><a href="https://open.spotify.com/user/radio_farm?si=7gKh4wzWT7yYQxIZv7RjQA&utm_source=copy-link&nd=1&dlsi=161756badae94b6e" target="_blank" rel="noopener noreferrer" aria-label="Spotify Logo" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Asocial%3Alink%3Aspotify%22%7D%7D%7D" data-event-trigger="click" class="mr-0 md:mr-5 items-center w-full"><span><svg width="18" height="18" stroke-width="16" class="md:w-[23px] md:h-auto md:ml-0 ml-[14px]"><use href="/sprites.svg?__deco_c=2#Spotify"></use></svg></span></a></li></ul></div><div class=" hidden md:flex order-3 md:order-3 col-span-2 md:col-start-6 md:col-end-8 md:row-start-2 h-fit justify-center items-center"><div class="flex items-center justify-evenly md:justify-start md:pt-6 gap-14 md:gap-0 md:mt-0 md:border-t md:border-base-300 w-full pb-4 md:pb-0"><a href="/selo-b" target="_blank" aria-label="Selo B" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Aselos%3Aseguranca%3A%2Fselo-b%7D%22%7D%7D%7D" data-event-trigger="click" class="md:even:pl-6 md:odd:pr-6 md:odd:border-r md:odd:border-gray-200"><img loading="lazy" width="78" height="128" src="https://decoims.com/farmrio/3e898c86-eaab-48cf-ae29-baa5c22ae07a/1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png" alt="Selo B" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=78&height=128&quality=high&src=farmrio%2F3e898c86-eaab-48cf-ae29-baa5c22ae07a%2F1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png 78w, https://decoims.com/image?fit=cover&width=156&height=256&quality=high&src=farmrio%2F3e898c86-eaab-48cf-ae29-baa5c22ae07a%2F1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png 156w"/></a><a href="/sustentabilidade/mil-arvores-por-dia" target="_blank" aria-label="Mil árvores por dia" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Aselos%3Aseguranca%3A%2Fsustentabilidade%2Fmil-arvores-por-dia%7D%22%7D%7D%7D" data-event-trigger="click" data-fresh-key="1" class="md:even:pl-6 md:odd:pr-6 md:odd:border-r md:odd:border-gray-200"><img loading="lazy" width="104" height="140" src="https://decoims.com/farmrio/2b79a580-e670-45ef-afe7-8ffcdf676aa7/1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png" alt="Mil árvores por dia" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=104&height=140&quality=high&src=farmrio%2F2b79a580-e670-45ef-afe7-8ffcdf676aa7%2F1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png 104w, https://decoims.com/image?fit=cover&width=208&height=280&quality=high&src=farmrio%2F2b79a580-e670-45ef-afe7-8ffcdf676aa7%2F1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png 208w"/></a></div></div></div></div><div class="md:hidden order-3 md:order-3 col-span-2 md:col-start-6 md:col-end-8 md:row-start-2 h-fit justify-center items-center"><div class="flex items-center justify-evenly md:justify-start md:pt-6 gap-14 md:gap-0 md:mt-0 md:border-t md:border-base-300 w-full pb-4 md:pb-0"><a href="/selo-b" target="_blank" aria-label="Selo B" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Aselos%3Aseguranca%3A%2Fselo-b%7D%22%7D%7D%7D" data-event-trigger="click" class="md:even:pl-6 md:odd:pr-6 md:odd:border-r md:odd:border-gray-200"><img loading="lazy" width="78" height="128" src="https://decoims.com/farmrio/3e898c86-eaab-48cf-ae29-baa5c22ae07a/1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png" alt="Selo B" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=78&height=128&quality=high&src=farmrio%2F3e898c86-eaab-48cf-ae29-baa5c22ae07a%2F1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png 78w, https://decoims.com/image?fit=cover&width=156&height=256&quality=high&src=farmrio%2F3e898c86-eaab-48cf-ae29-baa5c22ae07a%2F1742400129966-fdc0e6ff-f891-4073-870c-aac6ca328081.png 156w"/></a><a href="/sustentabilidade/mil-arvores-por-dia" target="_blank" aria-label="Mil árvores por dia" data-event="%7B%22name%22%3A%22select_content%22%2C%22params%22%3A%7B%22adapter%22%3A%22DECO%22%2C%22brand%22%3A%22farmrio%22%2C%22meta%22%3A%7B%22content_type%22%3A%22footer%3Aselos%3Aseguranca%3A%2Fsustentabilidade%2Fmil-arvores-por-dia%7D%22%7D%7D%7D" data-event-trigger="click" data-fresh-key="1" class="md:even:pl-6 md:odd:pr-6 md:odd:border-r md:odd:border-gray-200"><img loading="lazy" width="104" height="140" src="https://decoims.com/farmrio/2b79a580-e670-45ef-afe7-8ffcdf676aa7/1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png" alt="Mil árvores por dia" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=104&height=140&quality=high&src=farmrio%2F2b79a580-e670-45ef-afe7-8ffcdf676aa7%2F1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png 104w, https://decoims.com/image?fit=cover&width=208&height=280&quality=high&src=farmrio%2F2b79a580-e670-45ef-afe7-8ffcdf676aa7%2F1742400131225-d3d6046d-19ea-4e95-af16-5b9b9b16de1c.png 208w"/></a></div></div></div><span class="border-b w-full md:flex hidden"></span><div class="flex flex-col md:px-0 px-[30px]"><address class="font-light flex md:items-center md:justify-center py-5 w-full md:text-xs text-[11px] not-italic md:text-center md:order-first order-last px-x text-[#8
3588c8c8c]">FARM RIO CIDADE MARAVILHOSA INDUSTRIA E COMERCIO DE ROUPAS SA. - Av Coronel Phidias Tavora 360, Blc 1 Armazém 1 - Pavuna - Rio de Janeiro - RJ - CEP: 21535-510. CNPJ: 09.611.669/0005-18 </address><div class="w-full flex"><div class="w-full border-b border-primary-content md:border-inherit"></div></div><address class="flex items-center md:justify-center py-6 pl-3 w-full text-[11px] md:text-xs not-italic text-center text-[#8c8c8c] font-light"><a href="/maps">Mapa do site</a></address><div class="w-full flex"><div class="w-full border-b border-primary-content md:border-inherit"></div></div><div class="md:hidden flex items-center justify-evenly px-x py-14 h-10 border-b border-primary-content"><a href="https://apps.apple.com/br/app/farm/id1545434715"><img src="https://decoims.com/farmrio/962faa18-7b04-48ef-b332-4b087fd379ea/1742400127063-e85b83df-eccd-4907-af4c-fabf149ef043.svg" width="118" height="38" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=118&height=38&quality=high&src=farmrio%2F962faa18-7b04-48ef-b332-4b087fd379ea%2F1742400127063-e85b83df-eccd-4907-af4c-fabf149ef043.svg 118w, https://decoims.com/image?fit=cover&width=236&height=76&quality=high&src=farmrio%2F962faa18-7b04-48ef-b332-4b087fd379ea%2F1742400127063-e85b83df-eccd-4907-af4c-fabf149ef043.svg 236w" loading="lazy"/><div class="w-full flex"><div class="w-full border-b border-primary-content md:border-inherit"></div></div></a><a href="https://play.google.com/store/apps/details?id=br.com.farmrio.app" data-fresh-key="1"><img src="https://decoims.com/farmrio/864014b6-5c95-4341-92b3-16dc7b369bf7/1742400128475-75c9364f-8274-4a70-b9b2-fd5e246e3461.svg" width="118" height="39" data-fresh-disable-lock="true" srcset="https://decoims.com/image?fit=cover&width=118&height=39&quality=high&src=farmrio%2F864014b6-5c95-4341-92b3-16dc7b369bf7%2F1742400128475-75c9364f-8274-4a70-b9b2-fd5e246e3461.svg 118w, https://decoims.com/image?fit=cover&width=236&height=78&quality=high&src=farmrio%2F864014b6-5c95-4341-92b3-16dc7b369bf7%2F1742400128475-75c9364f-8274-4a70-b9b2-fd5e246e3461.svg 236w" loading="lazy"/><div class="w-full flex"><div class="w-full border-b border-primary-content md:border-inherit"></div></div></a></div><div class="flex items-center justify-center w-full md:py-5 flex-wrap"><div class="w-full flex items-center justify-center py-4 flex-nowrap gap-0 sm:gap-4"><div class="flex items-center justify-center shrink-0 scale-[0.8] sm:scale-[1]"><div class="flex gap-1 items-center text-black"><svg width="18" height="24" viewBox="0 0 18 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="min-width: 24px;"><path d="M9.35355 14.6464C9.54882 14.8417 9.54882 15.1582 9.35355 15.3535C9.15829 15.5488 8.84171 15.5488 8.64645 15.3535C8.45118 15.1582 8.45118 14.8417 8.64645 14.6464C8.84171 14.4511 9.15829 14.4511 9.35355 14.6464Z" stroke="currentColor" stroke-linejoin="round"></path><path d="M9 15.5V18.5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path><path d="M0.5 9.5H17.5V23.5H0.5V9.5Z" stroke="currentColor" stroke-linejoin="round"></path><path d="M3.5 6C3.5 2.962 5.962 0.5 9 0.5C12.038 0.5 14.5 2.962 14.5 6V9.5H3.5V6Z" stroke="currentColor" stroke-linejoin="round"></path></svg><span style="width: 50px; line-height: 1;">site seguro</span></div></div><div class="flex items-center justify-center shrink-0 scale-[0.8] sm:scale-[1]"><div class="flex gap-1 items-center text-black"><img src="https://lojafarm.vtexassets.com/arquivos/let.png?v=637949560347830000" width="110" height="24"></div></div><div class="flex items-center justify-center shrink-0 scale-[0.8] sm:scale-[1]"><div class="flex gap-1 items-center text-black"><div id="reputation-ra">
3588<script defer="true" type="text/javascript" id="ra-embed-reputation" src="https://s3.amazonaws.com/raichu-beta/selos/bundle.js" data-id="MTEyNjU6ZmFybS1yaW8=" data-target="reputation-ra" data-model="2"></script>
3588</div></div></div></div></div></div></div></footer></section></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.