{"version":3,"sources":["prebid.js","iiq.js","pricing.js","https://adncdn.net/0"],"names":["window","document","detectDevice","ua","navigator","userAgent","test","normalizeAdUnitCode","adUnitCode","replace","detectOsType","toLowerCase","includes","getDaypart","hour","Date","getHours","async","trackEvent","eventType","data","Math","random","auctionData","removeAdProperty","obj","Array","isArray","map","item","cleaned","key","hasOwnProperty","cleanedData","auctionId","bidId","bidderRequestId","slot","getAdUnitPath","sizes","size","getSizes","getWidth","getHeight","bidder","bidderCode","source","cpm","price","currency","netRevenue","responseTime","timeToRespond","timeout","mediaType","creativeId","creative_id","dealId","floorPrice","floorData","floorMin","floor","floorCurrency","bidCount","bidderRequests","length","bids","winningBid","bidRank","errorCode","errorMessage","rawEventData","extractUnifiedBidData","consolidatedEvent","timestamp","now","domain","location","hostname","deviceType","osType","geoCountry","getCountry","daypart","referrer","pageTitle","title","pageUrl","href","pageViewport","width","innerWidth","height","innerHeight","sessionId","getOrCreateSessionId","pageLoadTime","performance","connectionType","connection","effectiveType","url","fetch","method","headers","body","JSON","stringify","err","console","warn","adnSessionId","toString","substr","hookPrebidEvents","forEach","adnpbjs","onEvent","args","isSummaryPageview","onSummaryAuctionEnd","onSummaryBidWon","addEventListener","flushAuctionSummaries","SUMMARY_SAMPLE_RATE","SUMMARY_WON_WAIT_MS","search","pageviewId","pendingSummaries","Map","isFloorRejected","bid","rejectionReason","status","getBidCpm","cpmAfterAdjustments","getTopBid","reduce","top","buildAuctionSummary","auction","ofAdUnit","items","filter","adUnit","adUnits","find","unit","code","bidRequests","flatMap","req","Object","keys","mediaTypes","floorRejectedBids","bidsReceived","bidsRejected","acceptedBids","topBid","bidRequest","floorStatus","skipped","floorBySize","floors","getFloor","isNaN","join","String","min","getAuctionFloors","floorValues","values","sampleRate","floorVersion","modelVersion","topBidSize","floorRejectedCount","topFloorRejectedBid","prebidWon","sendAuctionSummary","pending","get","delete","clearTimeout","timer","summary","keepalive","adUnitCodes","setTimeout","set","has","pendingKey","pop","readyState","URL_PATHS_BLACKLIST","freeze","adsConfig","id","position","isLazyLoaded","refreshIteration","sizeMapping","desktop","tablet","mobile","refreshTime","biddersWhiteList","appnexus","magnite","msft","pubmatic","rubicon","openx","unruly","country","adagio","adyoulike","amx","anyclip","contxtful","conversant","criteo","exco","fluct","gamoshi","ix","kueezrtb","medianet","oms","onetag","pixfuture","programmaticx","richaudience","rise","seedtag","sharethrough","smartadserver","smilewanted","sovrn","sparteo","ssp_geniee","teads","underdogmedia","vidazoo","yandex","googletag","cmd","USERS_IPV4_ADDRESS","USERS_IPV6_ADDRESS","LI_BIDDERS","LI_PBS_BIDDERS","liEidPermissions","bidders","undefined","liModuleEnabled","liTreatmentRate","liveIntentUserIds","liAuctionsEnriched","liSetTargeting","enriched","push","value","pubads","setTargeting","liMeasurementInstalled","ipInfo","ip","trim","name","params","publisherId","distributorId","emailHash","ipv4","ipv6","requestedAttributesOverrides","uid2","bidswitch","index","thetradedesk","triplelift","zetassp","nexxen","storage","type","expires","initLiveIntentIds","getIpInfo","zoneId","siteId","tagId","delDomain","placement_id","org","pubId","cId","pId","cid","crid","tagid","accountId","pid","supplyType","bidderSettings","storageAllowed","adnimation","sonobi","taboola","bidderNames","endsWith","s2sBidders","s2sAliases","fromEntries","slice","GDPR_GEOS","needsGdpr","maxMs","Promise","resolve","start","check","__tcfapi","isGdprRequired","pbjsConfig","s2sConfig","enabled","endpoint","syncEndpoint","extPrebid","aliases","priceGranularity","adServerCurrency","conversionRateFile","defaultRates","USD","EUR","ratesTTL","enforcement","enforceJS","enforcePBS","floorDeals","bidAdjustment","skipRate","schema","fields","banner","native","video","default","gvlMapping","amxS2S","magniteS2S","riseS2S","kueezrtbS2S","adagioS2S","consentManagement","gdpr","cmpApi","defaultGdprScope","actionTimeout","usp","useBidCache","schain","validation","config","ver","complete","nodes","asi","sid","hp","ortb2","ext","prebid","eidpermissions","userSync","iframeEnabled","auctionDelay","idPriority","filterSettings","iframe","userIds","partner","refreshInSeconds","detectMissingSizes","aliasSyncEnabled","auctionOptions","suppressStaleRender","version","customer","realTimeData","dataProviders","waitForIt","adServerTargeting","gtag","dataLayer","arguments","onImpressionViewable","onFirstAdVisible","setConfig","collapseDiv","_taboola","GA_ID","PREBID_TIMEOUT_MS","createScript","src","preCreate","scriptEl","querySelector","attemptLoad","createElement","fetchPriority","defer","remove","head","appendChild","pathname","some","path","isBlacklistedUrl","scriptsToLoad","all","then","log","handleSlotRenderEnded","removeEventListener","IntentIqObject","intentIq_2072952453","pbjs","callback","main","timeoutInMillis","ABTestingConfigurationSource","manualWinReportEnabled","domainName","host","vrBrowserBlackList","gamParameterName","reportExternalWin","biddingPlatformId","partnerAuctionId","prebidAuctionId","originalCpm","originalCurrency","placementId","error","initIiq","catch","setAttribute","charset","slotsMap","lazyLoader","constructor","margin","this","observer","IntersectionObserver","onIntersect","rootMargin","entries","entry","isIntersecting","cb","target","dataset","lazyCallback","unobserve","add","element","getBoundingClientRect","cbName","observe","activeSlotIds","newPbjsAdUnits","viewportType","screen","event","slotId","getSlotElementId","adUnitPath","timeoutMs","adUnitToRefresh","getSlots","at","targeting","slotEl","getElementById","runBids","refresh","message","refreshAd","firstAdLogged","isEmpty","collectAds","adsEl","querySelectorAll","adPath","adpath","slotBidders","STANDARD_SIZES","prebidSizes","standardSizes","every","w","h","isNative","sw","sh","que","refreshUserIds","submoduleNames","au","b","userIdAsEids","eid","uids","uid","provider","setBidderConfig","runPrebidBids","requestBids","bidsBackHandler","setTargetingForGPTAsync","pbjsBids","bidsFn","race","allSettled","createNativeCmd","onload","mark","destroyNativeCmd","footerEl","innerHTML","createAd","slotName","addSize","build","defineSlot","defineSizeMapping","addService","intent_iq_group","pbjsAdUnit","addAdUnits","init","enableServices","display","getConfig","disableInitialLoad","createAdCmd","destroyAd","destroySlots","idx","indexOf","splice","removeAttribute","parentElement","destroyAdCmd","cached","localStorage","getItem","parse","res","ok","Error","json","setItem","removeItem","adn","createNative","destroyNative","createInterstitial","createInterstitialCmd","onDomReady","callbacks","interval","setInterval","clearInterval","observeSlots","handleAdded","node","getAttribute","handleRemoved","isAdSlot","hasAttribute","nodeList","from","nodeType","Node","ELEMENT_NODE","concat","MutationObserver","mutations","mutation","addedNodes","removedNodes","attributeName","isStyleChanged","oldStyle","oldValue","newStyle","isVisibilityChanged","style","getComputedStyle","isDisplayed","isVisible","visibility","subtree","childList","attributes","attributeFilter","attributeOldValue","defineOutOfPageSlot","enums","OutOfPageFormat","INTERSTITIAL","addSideBarStickyAdUnits","existingSideUnit","sidebar","closest","verticalAlign","stickyWrapper","zIndex","marginTop","marginBottom","el","onpage","textAlign","minHeight","addCloseButton","stickyBannerSizeDiv","innerText","right","color","borderRadius","backgroundColor","cursor","fontSize","classList","onclick","append","stickyBannerParent","justifyContent","bottom","stickyBanner","getElementsByTagName","flag","createStickyBanner","inContentAdUnit","h2Section","i","cloneNode","before","addInContentHPAdUnits","pArr","addATFHPUnit","addATFRecapUnit","addATFStartHereUnit","adPaths","targets","adEl","insertBefore","nextElementSibling","addSideBarAdUnits","addSideBarCalculatorAdUnits","script","createOutstreamVideoPlayer","skippedAuctions","wasSkipped","floorValue","s","idMatch","pathMatch","skip_floor","logSkippedBids","stack"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5HA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CCh5NA,eAAgBA,EAAQC,GAkUtB,SAASC,IACP,MAAMC,EAAKC,UAAUC,UACrB,MAAI,OAAOC,KAAKH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","file":"laMLv4DPc5","sourcesContent":[null,null,null,"// Last updated: 2026-10-25T14:08:50.544Z by Gina\r\n(async function(window, document) {\r\n\r\n\r\n  // ----------------------------------------------\r\n  // Prebid pricing config\r\n  // ----------------------------------------------\r\n\r\n  (async function () {\r\n    function normalizeAdUnitCode(adUnitCode) {\r\n      return adUnitCode.replace(/^gpt_unit_/, '').replace(/_\\d+$/, '');\r\n    }\r\n\r\n    function detectOsType() {\r\n      const ua = navigator.userAgent.toLowerCase();\r\n      if (ua.includes('windows')) return 'Windows';\r\n      if (ua.includes('mac')) return 'macOS';\r\n      if (ua.includes('linux')) return 'Linux';\r\n      if (ua.includes('android')) return 'Android';\r\n      if (ua.includes('iphone') || ua.includes('ipad') || ua.includes('ipod')) return 'iOS';\r\n      return 'Unknown';\r\n    }\r\n\r\n    function getDaypart() {\r\n      const hour = new Date().getHours();\r\n      if (hour >= 6 && hour < 12) return 'morning';\r\n      if (hour >= 12 && hour < 18) return 'afternoon';\r\n      if (hour >= 18 && hour < 22) return 'evening';\r\n      return 'night';\r\n    }\r\n\r\n    function extractUnifiedBidData(eventType, data) {\r\n      const removeAdProperty = (obj) => {\r\n        if (obj === null || typeof obj !== 'object') {\r\n          return obj;\r\n        }\r\n        if (Array.isArray(obj)) {\r\n          return obj.map(item => removeAdProperty(item));\r\n        }\r\n        const cleaned = {};\r\n        for (const key in obj) {\r\n          if (key !== 'ad' && obj.hasOwnProperty(key)) {\r\n            cleaned[key] = removeAdProperty(obj[key]);\r\n          }\r\n        }\r\n        return cleaned;\r\n      };\r\n\r\n      const cleanedData = removeAdProperty(data);\r\n\r\n      const baseData = {\r\n        eventType: eventType,\r\n        auctionId: cleanedData?.auctionId || null,\r\n        bidId: cleanedData?.bidId || cleanedData?.bidderRequestId || null,\r\n        adUnitCode: normalizeAdUnitCode(cleanedData?.adUnitCode || cleanedData?.slot?.getAdUnitPath?.() || ''),\r\n        sizes: cleanedData?.sizes || cleanedData?.size || (cleanedData?.slot?.getSizes?.() ?\r\n          cleanedData.slot.getSizes().map(size => size.getWidth ? [size.getWidth(), size.getHeight()] : size) : null),\r\n        bidder: cleanedData?.bidder || cleanedData?.bidderCode || null,\r\n        source: cleanedData?.source || 'unknown',\r\n        cpm: cleanedData?.cpm || cleanedData?.price || null,\r\n        currency: cleanedData?.currency || 'USD',\r\n        netRevenue: cleanedData?.netRevenue || null,\r\n        responseTime: cleanedData?.responseTime || cleanedData?.timeToRespond || null,\r\n        timeout: cleanedData?.timeout || null,\r\n        mediaType: cleanedData?.mediaType || null,\r\n        creativeId: cleanedData?.creativeId || cleanedData?.creative_id || null,\r\n        dealId: cleanedData?.dealId || null,\r\n        floorPrice: cleanedData?.floorData?.floorMin || cleanedData?.floor || null,\r\n        floorCurrency: cleanedData?.floorData?.floorCurrency || null,\r\n        bidCount: cleanedData?.bidderRequests?.length || cleanedData?.bids?.length || null,\r\n        winningBid: eventType === 'bidWon' ? true : false,\r\n        bidRank: cleanedData?.bidRank || null,\r\n        errorCode: cleanedData?.errorCode || null,\r\n        errorMessage: cleanedData?.errorMessage || null,\r\n        rawEventData: cleanedData\r\n      };\r\n\r\n      return baseData;\r\n    }\r\n\r\n    async function trackEvent(eventType, data) {\r\n      if (eventType !== 'bidWon' && Math.random() > 0.01) {\r\n        return;\r\n      }\r\n\r\n      try {\r\n        const auctionData = extractUnifiedBidData(eventType, data);\r\n\r\n        const consolidatedEvent = {\r\n          eventType: eventType,\r\n          timestamp: Date.now(),\r\n          domain: location.hostname,\r\n          deviceType: detectDevice(),\r\n          osType: detectOsType(),\r\n          geoCountry: await getCountry(),\r\n          daypart: getDaypart(),\r\n          userAgent: navigator.userAgent,\r\n          referrer: document.referrer,\r\n          pageTitle: document.title,\r\n          pageUrl: location.href,\r\n          pageViewport: {\r\n            width: window.innerWidth,\r\n            height: window.innerHeight\r\n          },\r\n          auctionData: auctionData,\r\n          sessionId: getOrCreateSessionId(),\r\n          pageLoadTime: performance.now(),\r\n          connectionType: navigator.connection?.effectiveType || 'unknown'\r\n        };\r\n\r\n        const url = 'https://adnml.net/data';\r\n        await fetch(url, {\r\n          method: 'POST',\r\n          headers: {\r\n            'Content-Type': 'application/json',\r\n            'api-key': '329e8145-e1c3-4262-a329-a804a3ee051c'\r\n          },\r\n          body: JSON.stringify(consolidatedEvent)\r\n        });\r\n\r\n      } catch (err) {\r\n        console.warn('Error tracking event:', eventType, err);\r\n      }\r\n    }\r\n\r\n    function getOrCreateSessionId() {\r\n      if (!window.adnSessionId) {\r\n        window.adnSessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);\r\n      }\r\n      return window.adnSessionId;\r\n    }\r\n\r\n    function hookPrebidEvents() {\r\n      const trackedPrebidEvents = [\r\n        'bidWon',\r\n        'bidResponse',\r\n        'noBid',\r\n        'bidTimeout',\r\n        'auctionEnd',\r\n        'requestBids',\r\n        'bidAdjustment',\r\n        'bidderDone'\r\n      ];\r\n\r\n      trackedPrebidEvents.forEach((eventType) =>\r\n        adnpbjs.onEvent(eventType, (args) => trackEvent(eventType, args)));\r\n\r\n      if (isSummaryPageview) {\r\n        adnpbjs.onEvent('auctionEnd', onSummaryAuctionEnd);\r\n        adnpbjs.onEvent('bidWon', onSummaryBidWon);\r\n        window.addEventListener('pagehide', flushAuctionSummaries);\r\n      }\r\n    }\r\n\r\n    // ----------------------------------------------\r\n    // Auction summaries\r\n    // ----------------------------------------------\r\n    // One short row per auction, on top of the events above. Sampling is decided once per pageview,\r\n    // so every auction on a sampled pageview is recorded in full - including the ones that got no bid\r\n    // or lost every bid to the floor, which the per-event sampling above almost never captures.\r\n\r\n    const SUMMARY_SAMPLE_RATE = 0.1;\r\n    // bidWon fires only after GAM renders the creative, so a row waits this long for it before it is\r\n    // sent as not won.\r\n    const SUMMARY_WON_WAIT_MS = 10000;\r\n\r\n    // Add ?adnsummary=1 to the page URL to force a pageview into the sample when testing.\r\n    const isSummaryPageview = Math.random() < SUMMARY_SAMPLE_RATE ||\r\n      /[?&]adnsummary=1(&|$)/.test(location.search);\r\n    const pageviewId = 'pv_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);\r\n    const pendingSummaries = new Map();\r\n\r\n    // Newer Prebid versions report floored bids in bidsRejected with a rejection reason, older ones\r\n    // leave them in bidsReceived with a rejected status and the cpm zeroed.\r\n    function isFloorRejected(bid) {\r\n      return bid.rejectionReason\r\n        ? /floor/i.test(bid.rejectionReason)\r\n        : bid.status === 'bidRejected' && !!bid.floorData;\r\n    }\r\n\r\n    function getBidCpm(bid) {\r\n      return bid.floorData?.cpmAfterAdjustments || bid.cpm || 0;\r\n    }\r\n\r\n    function getTopBid(bids) {\r\n      return bids.reduce((top, bid) => (!top || getBidCpm(bid) > getBidCpm(top) ? bid : top), null);\r\n    }\r\n\r\n    // Floor a bid had to clear for each requested size, as the floor rules differ per size. Asked from\r\n    // the floors module itself because an auction without bids has no bid response to read the matched\r\n    // rule from.\r\n    function getAuctionFloors(bidRequests, mediaType, sizes) {\r\n      const floors = {};\r\n\r\n      bidRequests.forEach((bidRequest) => {\r\n        if (typeof bidRequest.getFloor !== 'function') return;\r\n\r\n        sizes.forEach((size) => {\r\n          try {\r\n            const { floor } = bidRequest.getFloor({ currency: 'USD', mediaType, size }) || {};\r\n            if (typeof floor !== 'number' || isNaN(floor)) return;\r\n\r\n            const key = Array.isArray(size) ? size.join('x') : String(size);\r\n            floors[key] = key in floors ? Math.min(floors[key], floor) : floor;\r\n          } catch (err) {\r\n            // No floor for this size\r\n          }\r\n        });\r\n      });\r\n\r\n      return floors;\r\n    }\r\n\r\n    function buildAuctionSummary(auction, adUnitCode) {\r\n      const ofAdUnit = (items) => (items || []).filter((item) => item.adUnitCode === adUnitCode);\r\n\r\n      const adUnit = (auction.adUnits || []).find((unit) => unit.code === adUnitCode);\r\n      const bidRequests = ofAdUnit((auction.bidderRequests || []).flatMap((req) => req.bids || []));\r\n      const mediaType = Object.keys(adUnit?.mediaTypes || {})[0] || 'banner';\r\n      const sizes = adUnit?.mediaTypes?.[mediaType]?.sizes || bidRequests[0]?.sizes || [];\r\n\r\n      const bids = [...ofAdUnit(auction.bidsReceived), ...ofAdUnit(auction.bidsRejected)];\r\n      const floorRejectedBids = bids.filter(isFloorRejected);\r\n      const acceptedBids = ofAdUnit(auction.bidsReceived).filter((bid) => !isFloorRejected(bid));\r\n      const topBid = getTopBid([...acceptedBids, ...floorRejectedBids]);\r\n\r\n      const floorData = bidRequests.find((bidRequest) => bidRequest.floorData)?.floorData;\r\n      const floorStatus = !floorData || floorData.location === 'noData'\r\n        ? 'none'\r\n        : floorData.skipped ? 'skipped' : 'applied';\r\n      const floorBySize = getAuctionFloors(bidRequests, mediaType, sizes);\r\n      const floorValues = Object.values(floorBySize);\r\n\r\n      return {\r\n        eventType: 'auctionSummary',\r\n        timestamp: Date.now(),\r\n        domain: location.hostname,\r\n        pageviewId: pageviewId,\r\n        sampleRate: SUMMARY_SAMPLE_RATE,\r\n        auctionId: auction.auctionId || null,\r\n        slot: normalizeAdUnitCode(adUnitCode),\r\n        sizes: sizes.map((size) => (Array.isArray(size) ? size.join('x') : String(size))),\r\n        deviceType: detectDevice(),\r\n        geoCountry: null,\r\n        floor: floorValues.length ? Math.min(...floorValues) : null,\r\n        floorBySize: floorValues.length ? floorBySize : null,\r\n        floorVersion: floorData?.modelVersion || null,\r\n        floorStatus: floorStatus,\r\n        bidCount: acceptedBids.length + floorRejectedBids.length,\r\n        topBid: topBid ? getBidCpm(topBid) : null,\r\n        topBidSize: topBid?.size || (topBid?.width ? `${topBid.width}x${topBid.height}` : null),\r\n        floorRejectedCount: floorRejectedBids.length,\r\n        topFloorRejectedBid: floorRejectedBids.length ? getBidCpm(getTopBid(floorRejectedBids)) : null,\r\n        prebidWon: false\r\n      };\r\n    }\r\n\r\n    async function sendAuctionSummary(key) {\r\n      const pending = pendingSummaries.get(key);\r\n      if (!pending) return;\r\n\r\n      pendingSummaries.delete(key);\r\n      clearTimeout(pending.timer);\r\n\r\n      try {\r\n        pending.summary.geoCountry = await getCountry();\r\n\r\n        await fetch('https://adnml.net/data', {\r\n          method: 'POST',\r\n          headers: {\r\n            'Content-Type': 'application/json',\r\n            'api-key': '329e8145-e1c3-4262-a329-a804a3ee051c'\r\n          },\r\n          body: JSON.stringify(pending.summary),\r\n          keepalive: true\r\n        });\r\n\r\n      } catch (err) {\r\n        console.warn('Error sending auction summary:', err);\r\n      }\r\n    }\r\n\r\n    function onSummaryAuctionEnd(auction) {\r\n      try {\r\n        (auction.adUnitCodes || []).forEach((adUnitCode) => {\r\n          const key = `${auction.auctionId}|${adUnitCode}`;\r\n          const summary = buildAuctionSummary(auction, adUnitCode);\r\n          const timer = setTimeout(() => sendAuctionSummary(key), SUMMARY_WON_WAIT_MS);\r\n          pendingSummaries.set(key, { adUnitCode, summary, timer });\r\n        });\r\n      } catch (err) {\r\n        console.warn('Error building auction summary:', err);\r\n      }\r\n    }\r\n\r\n    function onSummaryBidWon(bid) {\r\n      // With useBidCache a bid cached from an earlier auction can win the slot's current auction, so\r\n      // fall back to the latest auction still waiting on the same ad unit.\r\n      let key = `${bid.auctionId}|${bid.adUnitCode}`;\r\n\r\n      if (!pendingSummaries.has(key)) {\r\n        key = [...pendingSummaries.keys()]\r\n          .filter((pendingKey) => pendingSummaries.get(pendingKey).adUnitCode === bid.adUnitCode)\r\n          .pop();\r\n      }\r\n\r\n      if (!key) return;\r\n\r\n      pendingSummaries.get(key).summary.prebidWon = true;\r\n      sendAuctionSummary(key);\r\n    }\r\n\r\n    function flushAuctionSummaries() {\r\n      [...pendingSummaries.keys()].forEach(sendAuctionSummary);\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', hookPrebidEvents);\r\n    } else {\r\n      hookPrebidEvents();\r\n    }\r\n  })();\r\n\r\n  function detectDevice() {\r\n    const ua = navigator.userAgent;\r\n    if (/Mobi/.test(ua)) return 'mobile';\r\n    if (/Tablet/.test(ua)) return 'tablet';\r\n    return 'desktop';\r\n  }\r\n\r\n  async function buildPrebidFloors(targetType) {\r\n    if (!adnPricing) {\r\n      return;\r\n    }\r\n\r\n    const hour = new Date().getHours();\r\n    const device = detectDevice();\r\n    const country = await getCountry();\r\n\r\n    const sourceModel = adnPricing[hour]?.model ?? adnPricing[0].model;\r\n    const sourceGroup = sourceModel.modelGroups[0];\r\n    const isClientSide = targetType === 'client';\r\n\r\n    // Reducer for client-side: filter by device/country, convert to 3-field keys\r\n    const clientReducer = (acc, [key, value]) => {\r\n      const [slot, size, media, dev, geo] = key.split('|');\r\n      if ((dev === device && geo === country) || !dev) {\r\n        acc[[slot, size, media].join('|')] = value;\r\n      }\r\n      return acc;\r\n    };\r\n\r\n    // Reducer for server-side: keep all entries as-is\r\n    const serverReducer = (acc, [key, value]) => {\r\n      acc[key] = value;\r\n      return acc;\r\n    };\r\n\r\n    const filteredValues = Object.entries(sourceGroup.values).reduce(\r\n      isClientSide ? clientReducer : serverReducer, {}\r\n    );\r\n\r\n    const res = {\r\n      floorProvider: sourceModel.floorProvider,\r\n      currency: sourceModel.currency,\r\n      floorsSchemaVersion: sourceModel.floorsSchemaVersion,\r\n      skipRate: sourceModel.skipRate,\r\n      modelGroups: [{\r\n        modelWeight: sourceGroup.modelWeight,\r\n        modelTimestamp: sourceGroup.modelTimestamp,\r\n        modelVersion: sourceGroup.modelVersion,\r\n        default: sourceGroup.default,\r\n        schema: {\r\n          fields: isClientSide ?\r\n            ['gptSlot', 'size', 'mediaType'] :\r\n            ['gptSlot', 'size', 'mediaType', 'deviceType', 'country']\r\n        },\r\n        values: filteredValues,\r\n        ...(isClientSide && {\r\n          additionalSchemaFields: {\r\n            deviceType: device,\r\n            country\r\n          }\r\n        })\r\n      }]\r\n    };\r\n\r\n    return res;\r\n  }\r\n\r\n  async function buildPrebidFloorsClient() {\r\n    const pricing = await buildPrebidFloors('client');\r\n    const defaultPricing = {\r\n      currency: 'USD',\r\n      skipRate: 0,\r\n      schema: {\r\n        fields: [\r\n          'mediaType'\r\n        ]\r\n      },\r\n      values: {\r\n        banner: 0.01,\r\n        native: 0.01,\r\n        video: 0.01\r\n      },\r\n      default: 0.01\r\n    };\r\n    return {\r\n      enforcement: {\r\n        enforceJS: true,\r\n        enforcePBS: true,\r\n        floorDeals: true,\r\n        bidAdjustment: true\r\n      },\r\n      data: pricing || defaultPricing\r\n    };\r\n  }\r\n\r\n  async function buildPrebidFloorsServer() {\r\n    const pricing = await buildPrebidFloors('server');\r\n    return !pricing ? undefined : {\r\n      enabled: true,\r\n      data: pricing.modelGroups[0],\r\n      floorProvider: pricing.floorProvider,\r\n      currency: pricing.currency,\r\n      skipRate: parseInt(pricing.skipRate),\r\n      enforcement: {\r\n        enforcePBS: true,\r\n        floorDeals: true,\r\n        bidAdjustment: true\r\n      }\r\n    };\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Configuration\r\n  // ----------------------------------------------\r\n\r\n  const URL_PATHS_BLACKLIST = Object.freeze([\r\n    // Add a list of URL paths to exclude 👇\r\n    // e.g. \"/path/to/page\"\r\n  ]);\r\n\r\nconst adsConfig = Object.freeze({\r\n     \"/339474670,23200923688/DinarGuru/Side_1\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Side_1\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [300, 600]\r\n         ],\r\n         \"position\": \"Side\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"mobile\": [\r\n                [300, 600],\r\n                 [300, 250]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/Side_Sticky\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Side_Sticky\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [300, 600]\r\n         ],\r\n         \"position\": \"Side\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"mobile\": [\r\n                [300, 600],\r\n                 [300, 250]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_0\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_0\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/ATF\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/ATF\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"ATF\",\r\n         \"isLazyLoaded\": false,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/Side_2\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Side_2\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [300, 600]\r\n         ],\r\n         \"position\": \"Side\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"mobile\": [\r\n                [300, 600],\r\n                 [300, 250]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/Side_0\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Side_0\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [300, 600]\r\n         ],\r\n         \"position\": \"Side\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [300, 600],\r\n                 [300, 250]\r\n             ],\r\n             \"mobile\": [\r\n                [300, 600],\r\n                 [300, 250]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_1\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_1\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_2\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_2\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_4\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_4\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_5\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_5\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_6\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_6\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_7\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_7\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60],\r\n             [640, 250],\r\n             [300, 300],\r\n             [250, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                [300, 250],\r\n                [336, 280],\r\n                [468, 60],\r\n                [640, 250],\r\n                [300, 300],\r\n                [250, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_Recap_0\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_Recap_0\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_Recap_1\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_Recap_1\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/Section_0\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Section_0\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_3\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_3\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [468, 60]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [468, 60],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/Sticky_Footer\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/Sticky_Footer\",\r\n         \"size\": [\r\n             [320, 50],\r\n             [320, 100],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"Sticky\",\r\n         \"isLazyLoaded\": false,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90]\r\n             ],\r\n             \"mobile\": [\r\n                 [320, 50],\r\n                 [320, 100]\r\n             ]\r\n         },\r\n         \"refreshTime\": 45000\r\n     },\r\n     \"/339474670,23200923688/DinarGuru/InContent_Recap_2\": {\r\n         \"id\": \"/339474670,23200923688/DinarGuru/InContent_Recap_2\",\r\n         \"size\": [\r\n             [300, 250],\r\n             [336, 280],\r\n             [728, 90],\r\n             [970, 90],\r\n             [970, 250]\r\n         ],\r\n         \"position\": \"Content\",\r\n         \"isLazyLoaded\": true,\r\n         \"refreshIteration\": 0,\r\n         \"sizeMapping\": {\r\n             \"desktop\": [\r\n                 [728, 90],\r\n                 [970, 90],\r\n                 [970, 250],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"tablet\": [\r\n                 [728, 90],\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ],\r\n             \"mobile\": [\r\n                 [300, 250],\r\n                 [336, 280]\r\n             ]\r\n         },\r\n         \"refreshTime\": 30000\r\n     }\r\n });\r\n  const biddersWhiteList = Object.freeze({\r\n    \"appnexus\":[\"US\",\"GB\",\"CA\",\"IL\",\"JP\",\"AU\",\"NZ\",\"IN\",\"BR\",\"ID\",\"EG\",\"AE\",\"SA\",\"AR\",\"CL\",\"MY\",\"PH\",\"PT\",\"HK\",\"SG\",\"NL\",\"BE\",\"IE\",\"NO\",\"SE\",\"FI\",\"DK\",\"CH\",\"DE\",\"TR\",\"PL\",\"RO\",\"CZ\",\"ZA\"],\r\n    \"magnite\":[\"US\",\"GB\",\"IL\",\"PS\",\"TR\",\"CA\",\"DE\",\"GH\",\"ZA\",\"FR\",\"ES\",\"IT\",\"AU\",\"NZ\",\"IN\",\"MX\",\"PL\",\"EC\",\"KR\",\"UA\",\"SA\",\"NL\",\"BE\",\"BD\",\"AE\",\"SG\",\"AM\",\"JP\",\"BR\",\"NG\",\"TH\",\"MY\",\"HK\",\"UZ\",\"SE\",\"AT\",\"PH\",\"VN\",\"CL\",\"IE\",\"CH\",\"NO\",\"FI\",\"DK\",\"PT\"],\r\n    \"msft\":[\"US\",\"GB\",\"CA\",\"IL\",\"JP\",\"AU\",\"NZ\",\"IN\",\"BR\",\"ID\",\"EG\",\"AE\",\"SA\",\"AR\",\"CL\",\"MY\",\"PH\",\"PT\",\"HK\",\"SG\",\"NL\",\"BE\",\"IE\",\"NO\",\"SE\",\"FI\",\"DK\",\"CH\",\"DE\",\"TR\",\"PL\",\"RO\",\"CZ\",\"ZA\"],\r\n    \"pubmatic\":[\"US\",\"CA\",\"GB\",\"IE\",\"AU\",\"NZ\",\"DE\",\"AT\",\"CH\",\"NL\",\"BE\",\"NO\",\"SE\",\"FI\",\"DK\",\"IL\",\"PR\"],\r\n    \"rubicon\":[\"US\",\"GB\",\"IL\",\"PS\",\"TR\",\"CA\",\"DE\",\"GH\",\"ZA\",\"FR\",\"ES\",\"IT\",\"AU\",\"NZ\",\"IN\",\"MX\",\"PL\",\"EC\",\"KR\",\"UA\",\"SA\",\"NL\",\"BE\",\"BD\",\"AE\",\"SG\",\"AM\",\"JP\",\"BR\",\"NG\",\"TH\",\"MY\",\"HK\",\"UZ\",\"SE\",\"AT\",\"PH\",\"VN\",\"CL\",\"IE\",\"CH\",\"NO\",\"FI\",\"DK\",\"PT\"],\r\n    \"openx\":[\"US\",\"CA\"],\r\n    \"unruly\":[\"US\",\"GB\"],\r\n  });\r\n\r\n  const biddersBlackList = Object.freeze({\r\n    \"33across\":[\"GH\",\"GB\",\"CA\",\"DE\",\"NL\",\"IL\",\"SG\",\"AU\",\"IT\",\"FR\"],\r\n    \"adagio\":[\"FR\",\"IL\",\"GB\",\"AU\",\"BE\",\"CH\",\"PH\",\"DE\",\"CN\",\"SG\"],\r\n    \"adyoulike\":[\"IL\",\"CA\",\"CN\",\"SG\",\"GB\",\"AU\",\"ZA\",\"FR\",\"IN\",\"PK\"],\r\n    \"amx\":[\"NL\",\"ID\",\"IT\",\"PH\",\"CN\",\"ES\",\"BE\",\"SO\",\"CH\",\"BR\"],\r\n    \"anyclip\":[\"GH\",\"US\",\"GB\",\"IT\",\"CA\",\"FR\",\"AT\",\"BR\",\"DE\",\"DK\"],\r\n    \"appnexus\":[\"DE\",\"CA\",\"GB\",\"FR\",\"ID\",\"AU\",\"PH\",\"BR\",\"TH\",\"SG\"],\r\n    \"contxtful\":[\"IL\",\"IN\",\"GB\",\"ID\",\"SG\",\"KR\",\"CN\",\"PH\",\"DE\",\"TH\"],\r\n    \"conversant\":[\"IL\",\"IN\",\"KR\",\"PH\",\"TH\",\"JP\",\"VN\",\"PK\",\"CN\",\"EG\"],\r\n    \"criteo\":[\"CN\",\"BD\",\"BY\",\"KZ\",\"AR\",\"MA\",\"CY\",\"CO\",\"BG\",\"CI\"],\r\n    \"exco\":[\"US\",\"SG\",\"GB\",\"DE\",\"CA\",\"AU\",\"IT\",\"PL\",\"CN\",\"BR\"],\r\n    \"fluct\":[\"US\",\"CA\",\"HK\",\"JP\",\"SG\",\"GB\",\"AU\",\"DE\",\"CN\",\"TW\"],\r\n    \"gamoshi\":[\"US\",\"GB\",\"CA\",\"DE\",\"AU\",\"PH\",\"IT\",\"SG\",\"CN\",\"MY\"],\r\n    \"ix\":[\"CN\",\"PL\",\"IE\",\"FI\",\"DK\",\"AT\",\"GR\",\"AR\",\"MA\",\"PT\"],\r\n    \"kueezrtb\":[\"IT\",\"CN\",\"ES\",\"BE\",\"UA\",\"PH\",\"CH\",\"TH\",\"SE\",\"BY\"],\r\n    \"magnite\":[\"NL\",\"IT\",\"CN\",\"BE\",\"SO\",\"CH\",\"ES\",\"UA\",\"BR\",\"PL\"],\r\n    \"medianet\":[\"CN\",\"CH\",\"MY\",\"UA\",\"VN\",\"BD\",\"AE\",\"PK\",\"TR\",\"BY\"],\r\n    \"msft\":[\"CN\",\"SO\",\"SG\",\"UA\",\"PH\",\"BY\",\"KZ\",\"KE\",\"IN\",\"IT\"],\r\n    \"oms\":[\"SG\",\"IN\",\"IL\",\"NL\",\"ID\",\"KR\",\"IT\",\"PH\",\"TH\",\"CH\"],\r\n    \"onetag\":[\"CN\",\"PL\",\"BD\",\"GR\",\"SE\",\"PK\",\"CY\",\"RO\",\"AT\",\"PT\"],\r\n    \"openx\":[\"DE\",\"NL\",\"CN\",\"IT\",\"BE\",\"SO\",\"JP\",\"ES\",\"PH\",\"SE\"],\r\n    \"pixfuture\":[\"DE\",\"CN\",\"AU\",\"FR\",\"SG\",\"TH\",\"PH\",\"ID\",\"BR\",\"JP\"],\r\n    \"programmaticx\":[\"FR\",\"SG\",\"IL\",\"GB\",\"ID\",\"IN\",\"KR\",\"DE\",\"PH\",\"JP\"],\r\n    \"richaudience\":[\"IN\",\"GB\",\"CN\",\"PK\",\"DE\",\"BD\",\"BR\",\"ZA\",\"FR\",\"TW\"],\r\n    \"rise\":[\"FR\",\"SG\",\"IN\",\"GB\",\"DE\",\"ID\",\"AU\",\"PH\",\"KR\",\"CN\"],\r\n    \"rubicon\":[\"IL\",\"CA\",\"MY\",\"GH\",\"SG\",\"AU\",\"PR\",\"GB\",\"CN\",\"DE\"],\r\n    \"seedtag\":[\"CN\",\"PH\",\"NG\",\"IN\",\"NO\",\"AT\",\"MA\",\"DK\",\"MY\",\"CI\"],\r\n    \"sharethrough\":[\"FR\",\"SG\",\"IL\",\"GB\",\"DE\",\"BE\",\"CH\",\"BR\",\"NL\",\"IT\"],\r\n    \"smartadserver\":[\"US\",\"SO\",\"GB\",\"IL\",\"CA\",\"KE\",\"SE\",\"NO\",\"NL\",\"CN\"],\r\n    \"smilewanted\":[\"DE\",\"ID\",\"CN\",\"PH\",\"NL\",\"SE\",\"IT\",\"TH\",\"CH\",\"ES\"],\r\n    \"sovrn\":[\"NL\",\"SG\",\"IT\",\"CN\",\"ES\",\"SE\",\"VN\",\"MY\",\"NG\",\"MX\"],\r\n    \"sparteo\":[\"CN\",\"PK\",\"BD\",\"RO\",\"FI\",\"CZ\",\"DZ\",\"NO\",\"HU\",\"DK\"],\r\n    \"ssp_geniee\":[\"IL\",\"GB\",\"DE\",\"NL\",\"ID\",\"IN\",\"KR\",\"IT\",\"CN\",\"ZA\"],\r\n    \"teads\":[\"CN\",\"CA\",\"SG\",\"IL\",\"AU\",\"GB\",\"FR\",\"TH\",\"DE\",\"PH\"],\r\n    \"underdogmedia\":[\"SO\",\"US\",\"CA\",\"ZA\",\"undefined\"],\r\n    \"unruly\":[\"IN\",\"ID\",\"DE\",\"AU\",\"PH\",\"KR\",\"CN\",\"SG\",\"TH\",\"JP\"],\r\n    \"vidazoo\":[\"FR\",\"SG\",\"GB\",\"IN\",\"ID\",\"DE\",\"PH\",\"CN\",\"SO\",\"TH\"],\r\n    \"yandex\":[\"IL\",\"US\",\"CA\",\"DE\",\"UA\",\"AU\",\"GB\",\"BG\",\"KZ\",\"LV\"],\r\n  });\r\n\r\n  const country = await getCountry();\r\n\r\n  // ----------------------------------------------\r\n  // HIRO / LiveIntent identity (Zeta Global)\r\n  // ----------------------------------------------\r\n  // Guide: \"INTEGRATION SETUP FOR HIRO Utilizing GAM\", steps 2, 3, 4 and 7.\r\n  // The holdout is decided once per page load, BEFORE Prebid is configured: the control group never\r\n  // sees the LiveIntent module at all (adding it and removing it later still enriches auctions).\r\n  // Zeta issued a Distributor ID, so the Publisher ID stays undefined (one or the other, never both).\r\n  window.googletag = window.googletag || {};\r\n  window.googletag.cmd = window.googletag.cmd || [];\r\n  const LI_PUBLISHER_ID = undefined;\r\n  const LI_DISTRIBUTOR_ID = 'did-00b9';\r\n  const LI_REPORTING_KEY = 'li-module-enabled'; // GAM key-value Zeta reads to split treated / control revenue\r\n  const LI_HOLDOUT_PERCENT = 5;               // tell Zeta if you change the 95/5 split\r\n  // Logged-in signals (step 4). No reader login is wired in, so no email is passed. If one is added, set this to\r\n  // the user's email (trimmed, lowercased, \"+tag\" stripped, dots stripped in Gmail prefixes) or its md5/sha1/sha256 hash.\r\n  const LOGGED_IN_USERS_EMAIL_OR_EMAIL_HASH = undefined;\r\n  // The user's originating IP comes from the ip-info call the wrapper already makes (see getIpInfo),\r\n  // split into v4 / v6 as the guide requires. Filled in once the lookup has returned, before setConfig.\r\n  let USERS_IPV4_ADDRESS;\r\n  let USERS_IPV6_ADDRESS;\r\n  // Bidders allowed to read the LiveIntent ids client-side: LiveIntent's approved SSPs plus this wrapper's S2S aliases.\r\n  const LI_BIDDERS = ['rubicon', 'magnite', 'bidswitch', 'vidazoo', 'sharethrough', 'pubmatic', 'ix', 'ttd', 'grid', 'triplelift', 'medianet', 'sovrn', 'openx', 'unruly', 'zeta_global_ssp', 'unrulyS2S', 'openxS2S', 'medianetS2S', 'sovrnS2S', 'magniteS2S'];\r\n  // Prebid Server: which bidders may receive each id source (step 7).\r\n  const LI_PBS_BIDDERS = ['rubicon', 'magnite', 'pubmatic', 'ix', 'ttd', 'grid', 'medianet', 'sovrn', 'zeta_global_ssp', 'triplelift', 'sharethrough', 'unruly'];\r\n  const liEidPermissions = Object.freeze([\r\n    { source: 'liveintent.com', bidders: LI_PBS_BIDDERS },\r\n    { source: 'uidapi.com', bidders: LI_PBS_BIDDERS },\r\n    { source: 'liveintent.indexexchange.com', bidders: ['ix'] },\r\n    { source: 'rubiconproject.com', bidders: ['rubicon', 'magnite'] },\r\n    { source: 'media.net', bidders: ['medianet'] },\r\n    { source: 'bidswitch.net', bidders: ['grid'] },\r\n    { source: 'openx.net', bidders: ['openx'] },\r\n    { source: 'sovrn.liveintent.com', bidders: ['sovrn'] },\r\n    { source: 'zeta-ssp.liveintent.com', bidders: ['zeta_global_ssp'] },\r\n    { source: 'liveintent.triplelift.com', bidders: ['triplelift'] },\r\n    { source: 'sharethrough.com', bidders: ['sharethrough'] },\r\n    { source: 'liveintent.unrulymedia.com', bidders: ['unruly'] }\r\n  ]);\r\n\r\n  if (window.liModuleEnabled === undefined) {\r\n    window.liModuleEnabled = Math.random() * 100 >= LI_HOLDOUT_PERCENT;\r\n    window.liTreatmentRate = (100 - LI_HOLDOUT_PERCENT) / 100;\r\n  }\r\n  const liveIntentUserIds = []; // filled by initLiveIntentIds() once the IP lookup has returned\r\n  function initLiveIntentIds(ipInfo) {\r\n    if (!window.liModuleEnabled) return; // control group: no LiveIntent config at all\r\n    const ip = typeof ipInfo?.ip === 'string' ? ipInfo.ip.trim() : '';\r\n    if (/^\\d{1,3}(\\.\\d{1,3}){3}$/.test(ip)) USERS_IPV4_ADDRESS = ip;\r\n    else if (ip.includes(':')) USERS_IPV6_ADDRESS = ip;\r\n    liveIntentUserIds.push({\r\n        'name': 'liveIntentId',\r\n        'params': {\r\n          'publisherId': LI_PUBLISHER_ID,\r\n          'distributorId': LI_DISTRIBUTOR_ID,\r\n          'emailHash': LOGGED_IN_USERS_EMAIL_OR_EMAIL_HASH,\r\n          'ipv4': USERS_IPV4_ADDRESS,\r\n          'ipv6': USERS_IPV6_ADDRESS,\r\n          'requestedAttributesOverrides': { 'uid2': true, 'bidswitch': true, 'medianet': true, 'magnite': true, 'pubmatic': true, 'index': true, 'openx': true, 'thetradedesk': true, 'sovrn': true, 'vidazoo': true, 'sharethrough': true, 'triplelift': true, 'zetassp': true, 'nexxen': true }\r\n        },\r\n        'bidders': LI_BIDDERS,\r\n        // Same storage as LiveIntent's sample, which Amazon TAM's passthrough also reads.\r\n        'storage': { 'type': 'html5', 'name': '__tamLIResolveResult', 'expires': 1 }\r\n    });\r\n  }\r\n\r\n  // Measurement (LiveIntent sample v1.5.6): every slot carries li-module-enabled = t1|t0 (treated / control),\r\n  // suffixed -e1|-e0 once an auction shows whether its bids actually carried a LiveIntent id.\r\n  const liAuctionsEnriched = {};\r\n  function liSetTargeting(enriched) {\r\n    window.googletag.cmd.push(() => {\r\n      let value = window.liModuleEnabled ? 't1' : 't0';\r\n      if (enriched !== undefined) value += enriched ? '-e1' : '-e0';\r\n      window.googletag.pubads().setTargeting(LI_REPORTING_KEY, value);\r\n    });\r\n  }\r\n  liSetTargeting(); // t1 / t0 on every slot from the first request, before any auction has run\r\n  let liMeasurementInstalled = false;\r\n  function installLiveIntentMeasurement(pbjs) {\r\n    if (liMeasurementInstalled) return;\r\n    liMeasurementInstalled = true;\r\n    if (window.liModuleEnabled) pbjs.refreshUserIds({ submoduleNames: ['liveIntentId'] });\r\n    pbjs.onEvent('auctionInit', (args) => {\r\n      const enriched = !!args.adUnits?.some((au) =>\r\n        au.bids?.some((b) =>\r\n          b.userIdAsEids?.some((eid) => eid.source === 'liveintent.com' || eid.uids?.some((uid) => uid.ext?.provider === 'liveintent.com')),\r\n        ),\r\n      );\r\n      liAuctionsEnriched[args.auctionId] = enriched;\r\n      liSetTargeting(enriched);\r\n    });\r\n  }\r\n  initLiveIntentIds(await getIpInfo()); // same cached lookup as getCountry; must run before pbjsConfig is built\r\n\r\n  const isBidderAllowed = ({ bidder }) => {\r\n    const name = bidder?.toLowerCase().replace(/s2s$/, '');\r\n    const whiteOk = !biddersWhiteList[name] || biddersWhiteList[name].includes(country);\r\n    // const blackOk = !biddersBlackList[name] || !biddersBlackList[name].includes(country);\r\n    return whiteOk;\r\n  };\r\n\r\nconst bidders = ([\r\n\r\n    {bidder: 'smilewanted', params: {zoneId: 'adnimation.com_hb_display',}},\r\n    {bidder: \"unruly\", params: {siteId: 233835}},\r\n    {bidder: \"unrulyS2S\", params: {siteId: 233835}},\r\n    {bidder: \"pubmatic\", params: {publisherId: \"166665\"}},\r\n    {bidder: \"amx\", params: {tagId: \"YWRuaW1hdGlvbi5jb20\"}},\r\n    {bidder: \"openx\", params: {unit: \"562868761\", delDomain: \"adnimation-d.openx.net\"}},\r\n    {bidder: \"openxS2S\", params: {unit: \"562868762\", delDomain: \"adnimation-d.openx.net\"}},\r\n    {bidder: \"msft\", params: {placement_id: 35987977}},\r\n    {bidder: \"msftS2S\", params: {placement_id: 35988472}},\r\n    {bidder: \"rise\", params: {org: \"67dae7b0eee76c00011b7cab\"}},\r\n    {bidder: \"riseS2S\", params: {org: \"67dae7b0eee76c00011b7cab\"}},\r\n    {bidder: \"onetag\", params: {pubId: \"62d98ebd4882fb0\"}},\r\n    {bidder: \"vidazoo\", params: {cId: \"640af7e8a3aca06fc94e206c\", pId: \"59ac17c192832d0011283fe3\"}},\r\n    {bidder: \"medianet\", params: {cid: \"8CUAID4GW\", crid: \"788465678\"}},\r\n    {bidder: \"medianetS2S\", params: {cid: \"8CUAID4GW\", crid: \"788465678\"}},\r\n    {bidder: \"sovrn\", params: {tagid: \"1283448\"}},\r\n    {bidder: \"sovrnS2S\", params: {tagid: \"1283449\"}},\r\n    {bidder: \"magnite\", params: {accountId: 24664, siteId: 597094, zoneId: 3827134}},\r\n    {bidder: \"magniteS2S\", params: {accountId: 24664, siteId: 597094, zoneId: 3827136}},\r\n    // {bidder: \"ssp_geniee\",params: {zoneId: 1611042, currency: 'USD'}},\r\n    //{bidder: \"gamoshi\",params: {supplyPartnerId: 27935}},\r\n    {bidder: \"adnimation\", params: {cId: \"6a05a0dccd19709c3f9fc14c\", pId: \"67wc13i392832d0041613hm9\"}},\r\n    {bidder: 'adnimationS2S', params: {cId: '6a2acd7005c73231e738ecdf', pId: '67wc13i392832d0041613hm9'}},    \r\n    {bidder: 'kueezrtb', params: {cId: \"670691cb966d12985884c764\", pId: '65lk7c192882r0011813fn9'}},\r\n    {bidder: 'kueezrtbS2S', params: {cId: \"6a65f8550f25807eddc2e3cf\", pId: '65lk7c192882r0011813fn9'}},      \r\n    {bidder:'oms',params:{publisherId:'21045'}},\r\n    {bidder: 'richaudience', params: {\"pid\": \"WAXhBCY0JY\", \"supplyType\": \"site\"}},         \r\n    \r\n    ]).filter(isBidderAllowed);\r\n\r\n  const bidderSettings = Object.freeze({\r\n    \"33across\": { \"storageAllowed\": true },\r\n    \"adagio\": { \"storageAllowed\": true },\r\n    \"adnimation\": { \"storageAllowed\": true },\r\n    \"adyoulike\": { \"storageAllowed\": true },\r\n    \"amx\": { \"storageAllowed\": true },\r\n    \"anyclip\": { \"storageAllowed\": true },\r\n    \"appnexus\": { \"storageAllowed\": true },\r\n    \"contxtful\": { \"storageAllowed\": true },\r\n    \"conversant\": { \"storageAllowed\": true },\r\n    \"criteo\": { \"storageAllowed\": true },\r\n    \"exco\": { \"storageAllowed\": true },\r\n    \"fluct\": { \"storageAllowed\": true },\r\n    \"gamoshi\": { \"storageAllowed\": true },\r\n    \"ix\": { \"storageAllowed\": true },\r\n    \"kueezrtb\": { \"storageAllowed\": true },\r\n    \"magnite\": { \"storageAllowed\": true },\r\n    \"medianet\": { \"storageAllowed\": true },\r\n    \"msft\": { \"storageAllowed\": true },\r\n    \"oms\": { \"storageAllowed\": true },\r\n    \"onetag\": { \"storageAllowed\": true },\r\n    \"openx\": { \"storageAllowed\": true },\r\n    \"pixfuture\": { \"storageAllowed\": true },\r\n    \"programmaticx\": { \"storageAllowed\": true },\r\n    \"pubmatic\": { \"storageAllowed\": true },\r\n    \"richaudience\": { \"storageAllowed\": true },\r\n    \"rise\": { \"storageAllowed\": true },\r\n    \"rubicon\": { \"storageAllowed\": true },\r\n    \"seedtag\": { \"storageAllowed\": true },\r\n    \"sharethrough\": { \"storageAllowed\": true },\r\n    \"smartadserver\": { \"storageAllowed\": true },\r\n    \"smilewanted\": { \"storageAllowed\": true },\r\n    \"sonobi\": { \"storageAllowed\": true },\r\n    \"sovrn\": { \"storageAllowed\": true },\r\n    \"sparteo\": { \"storageAllowed\": true },\r\n    \"ssp_geniee\": { \"storageAllowed\": true },\r\n    \"taboola\": { \"storageAllowed\": true },\r\n    \"teads\": { \"storageAllowed\": true },\r\n    \"underdogmedia\": { \"storageAllowed\": true },\r\n    \"unruly\": { \"storageAllowed\": true },\r\n    \"vidazoo\": { \"storageAllowed\": true },\r\n    \"yandex\": { \"storageAllowed\": true },\r\n  });\r\n\r\n  const bidderNames = bidders.filter(({bidder}) => !bidder.endsWith('S2S')).map(({bidder}) => bidder);\r\n  const s2sBidders = bidders.filter(({bidder}) => bidder.endsWith('S2S')).map(({bidder}) => bidder);\r\n  const s2sAliases = Object.fromEntries(s2sBidders.map(bidder => [bidder, bidder.slice(0, -3)]));\r\n\r\n  const GDPR_GEOS = Object.freeze(['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO','GB','CH']);\n  const CMP_WAIT_MS = 3000;\n  function waitForTcfApi(maxMs){return new Promise((resolve)=>{const start=Date.now();(function check(){if(typeof window.__tcfapi==='function')return resolve(true);if(Date.now()-start>=maxMs)return resolve(false);setTimeout(check,50);})();});}\n  async function isGdprRequired(country){const hasCmp=await waitForTcfApi(CMP_WAIT_MS);return hasCmp||GDPR_GEOS.includes(country);}\n  const needsGdpr = await isGdprRequired(await getCountry());\n\n  const pbjsConfig = Object.freeze({\r\n    's2sConfig': {\r\n      'enabled': true,\r\n      'accountId': '1001',\r\n      'bidders': s2sBidders,\r\n      'endpoint': 'https://adnpbs.com/openrtb2/auction',\r\n      'syncEndpoint': 'https://adnpbs.com/cookie_sync',\r\n      'timeout': 1500,\r\n      'extPrebid': {\r\n        'aliases': s2sAliases,\r\n        //'floors': await buildPrebidFloorsServer()\r\n      }\r\n    },\r\n    'priceGranularity': 'high',\r\n    'currency': {\r\n        'adServerCurrency': 'USD',\r\n        'conversionRateFile': 'https://cdn.jsdelivr.net/gh/prebid/currency-file@1/latest.json',\r\n        'defaultRates': {\r\n        'USD': { 'EUR': 0.92, 'USD': 1 },\r\n        'EUR': { 'USD': 1.09, 'EUR': 1 }\r\n        },\r\n        'ratesTTL': 3600000\r\n    },\r\n    'floors': {\r\n      'enforcement': {\r\n        'enforceJS': true,\r\n        'enforcePBS': false,\r\n        'floorDeals': true,\r\n        'bidAdjustment': true\r\n      },\r\n      'data': {\r\n        'currency': 'USD',\r\n        'skipRate': 0,\r\n        'schema': {\r\n          'fields': [\r\n            'mediaType'\r\n          ]\r\n        },\r\n        'values': {\r\n          'banner': 0.01,\r\n          'native': 0.01,\r\n          'video': 0.01\r\n        },\r\n        'default': 0.01\r\n      }\r\n    },\r\n    //'floors': await buildPrebidFloorsClient(),\r\n    'gvlMapping': {'amxS2S':737,'magniteS2S':52,'riseS2S':1043,'kueezrtbS2S':1165,'adagioS2S':617,'anyclip':1400,'exco':444},\n    'consentManagement': {\n      'gdpr': needsGdpr && {'cmpApi':'iab','defaultGdprScope':true,'timeout':500,'actionTimeout':2000},\n      'usp': { 'cmpApi':'iab', 'timeout':500 }\n    },\r\n    'useBidCache': true,\r\n    'schain': {\r\n      'validation': 'strict',\r\n      'config': {\r\n        'ver': '1.0',\r\n        'complete': 1,\r\n        'nodes': [\r\n          {\r\n            'asi': 'adnimation.com',\r\n            'sid': '20250052',\r\n            'hp': 1\r\n          }\r\n        ]\r\n      }\r\n    },\r\n    'ortb2': {\r\n      'ext': { 'prebid': { 'data': { 'eidpermissions': liEidPermissions } } } // HIRO step 7\r\n    },\r\n    'userSync': {\r\n      'iframeEnabled': true,\r\n      // Max wait for id modules before the auction (HIRO guide: 300 ms; LiveIntent resolves in <50 ms and caches).\r\n      'auctionDelay': 300,\r\n      'idPriority': { 'uid2': ['uid2', 'liveIntentId'] }, // a publisher UID2 token wins over HIRO's, if one is ever added\r\n      'filterSettings': {\r\n        'iframe': {\r\n          'bidders': bidderNames,\r\n          'filter': 'include'\r\n        }\r\n      },\r\n      'userIds': [\r\n        {\r\n          'name': 'sharedId',\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': '_pubcid',\r\n            'expires': 365\r\n          }\r\n        },\r\n        {\r\n          'name': 'identityLink',\r\n          'params': {\r\n            'pid': '13346'\r\n          },\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': 'idl_env',\r\n            'expires': 30\r\n          }\r\n        },\r\n        {\r\n          'name': 'id5Id',\r\n          'params': {\r\n            'partner': 1262\r\n          },\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': 'id5id',\r\n            'expires': 90,\r\n            'refreshInSeconds': 28800\r\n          }\r\n        },\r\n        {\r\n          'name': '33acrossId',\r\n          'params': {\r\n            'pid': '0010b00002KBtyLAAT'\r\n          },\r\n          'storage': {\r\n            'name': '33acrossId',\r\n            'type': 'html5',\r\n            'expires': 90,\r\n            'refreshInSeconds': 28800\r\n          }\r\n        },\r\n        ...liveIntentUserIds // HIRO: present for the treated 95% only\r\n      ]\r\n    },\r\n    'ix': {\r\n      'detectMissingSizes': true\r\n    },\r\n    'aliasSyncEnabled': true,\r\n    'auctionOptions': {\r\n      'suppressStaleRender': true\r\n    },\r\n    'contxtful': {\r\n      'version': 'v1',\r\n      'customer': 'ADNP250319'\r\n    },\r\n    'realTimeData': {\r\n      'dataProviders': [\r\n        {\r\n          'name': 'contxtful',\r\n          'waitForIt': true,\r\n          'params': {\r\n            'version': 'v1',\r\n            'customer': 'ADNP250319',\r\n            'bidders': [\r\n              'contxtful'\r\n            ],\r\n            'adServerTargeting': true\r\n          }\r\n        }\r\n      ]\r\n    }\r\n  });\r\n\r\n  // ----------------------------------------------\r\n  // Placeholders\r\n  // ----------------------------------------------\r\n\r\n\r\n\r\n  // Google Tag\r\n  window.googletag = window.googletag || {};\r\n  window.googletag.cmd = window.googletag.cmd || [];\r\n  // Manage refresh of viewable ads\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.pubads().addEventListener(\r\n      'impressionViewable', onImpressionViewable));\r\n  // Log time to first ad\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.pubads().addEventListener(\r\n      'slotRenderEnded', onFirstAdVisible));\r\n  // Visually collapse unfilled slots\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.setConfig({ collapseDiv: 'ON_NO_FILL' }));\r\n\r\n  // Google Analytics\r\n  window.dataLayer = window.dataLayer || [];\r\n  function gtag() {\r\n    window.dataLayer.push(arguments);\r\n  }\r\n\r\n  // Taboola\r\n  window._taboola = window._taboola || [];\r\n\r\n  // ----------------------------------------------\r\n  // Constants\r\n  // ----------------------------------------------\r\n\r\n  const GA_ID = 'G-6Z8CSL14ZB';\r\n  const APS_TIMEOUT_MS = 2000;\r\n  const PREBID_TIMEOUT_MS = 1800;\r\n\r\n  // ----------------------------------------------\r\n  // Scripts\r\n  // ----------------------------------------------\r\n\r\n  function createScript(src, preCreate = () => {}) {\r\n    return new Promise((resolve) => {\r\n      let scriptEl = document.querySelector(`script[src=\"${src}\"]`);\r\n\r\n      if (scriptEl) {\r\n        console.warn('Script already exists:', src);\r\n        resolve(false);\r\n        return;\r\n      }\r\n\r\n      const attemptLoad = () => {\r\n        scriptEl = document.createElement('script');\r\n        scriptEl.src = src;\r\n        scriptEl.fetchPriority = 'high';\r\n        preCreate(scriptEl);\r\n        scriptEl.async = !scriptEl.defer;\r\n        scriptEl.addEventListener('load', () => resolve(true));\r\n        scriptEl.addEventListener('error', () => {\r\n          console.warn('Retrying to load script:', src);\r\n          scriptEl.remove();\r\n          setTimeout(attemptLoad, 100);\r\n        });\r\n        document.head.appendChild(scriptEl);\r\n      };\r\n\r\n      attemptLoad();\r\n    });\r\n  }\r\n\r\n  // Don't initialize anything if page URL is blacklisted\r\n  if (isBlacklistedUrl()) {\r\n    throw 'Skipping...';\r\n  }\r\n\r\n const scriptsToLoad = [];\r\n  scriptsToLoad.push(createScript('https://cadmus.script.ac/d3svkhbhkz2i0f/script.js'));\r\n\r\n  Promise.all(scriptsToLoad)\r\n    .then(config)\r\n    .then(main)\r\n    .catch((err) => console.error('Failed to bootstrap scripts:', err));\r\n\r\n  // Vidazoo video ads\r\n  createScript('https://static.vidazoo.com/basev/vwpt.js', (scriptEl) => {\r\n    scriptEl.setAttribute('data-widget-id', '65e9b79ebdb3a9c5732bbae8');\r\n  });\r\n\r\n  // Google Analytics\r\n  createScript(`https://www.googletagmanager.com/gtag/js?id=${GA_ID}`);\r\n\r\n  // LiveConnect tag (HIRO step 5): first-party cookies and identity graph for the LiveIntent id module.\r\n  createScript('https://d-code.liadm.com/did-00b9.min.js', (scriptEl) => {\r\n    scriptEl.charset = 'utf-8';\r\n  });\r\n\r\n  // KueezRTB cookieless solution\r\n  createScript('https://static.kueezrtb.com/latest.js', (scriptEl) => {\r\n    scriptEl.setAttribute('data-cfasync', 'false');\r\n    scriptEl.id = 'kueezrtb_latest';\r\n  });\r\n\r\n  class LazyLoader {\r\n    constructor(margin = '100px') {\r\n      this.observer = new IntersectionObserver(this.onIntersect, {\r\n        rootMargin: margin\r\n      });\r\n    }\r\n\r\n    onIntersect = (entries) => {\r\n      entries.forEach((entry) => {\r\n        if (entry.isIntersecting) {\r\n          const cb = entry.target.dataset.lazyCallback;\r\n          if (cb && window[cb]) {\r\n            window[cb](entry.target);\r\n            delete window[cb];\r\n          }\r\n          this.observer.unobserve(entry.target);\r\n        }\r\n      });\r\n    };\r\n\r\n    add(element, callback) {\r\n      if (!element || typeof callback !== 'function') return;\r\n      if (element.getBoundingClientRect().top < window.innerHeight) {\r\n        callback(element);\r\n      } else {\r\n        const cbName = 'lazy_cb_' + Math.random().toString(36).slice(2);\r\n        window[cbName] = callback;\r\n        element.dataset.lazyCallback = cbName;\r\n        this.observer.observe(element);\r\n      }\r\n    }\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // App\r\n  // ----------------------------------------------\r\n\r\n  const adUnits = [];\r\n  const slotsMap = [];\r\n  const lazyLoader = new LazyLoader();\r\n  const activeSlotIds = [];\r\n  const newPbjsAdUnits = [];\r\n  const viewportType =\r\n    window.screen.width > 1525\r\n      ? 'desktop'\r\n      : window.screen.width > 730\r\n        ? 'tablet'\r\n        : 'mobile';\r\n\r\n  /**\r\n   * Main entry point of our tag.\r\n   */\r\n  async function main() {\r\n    const isOk = await createScript('https://securepubads.g.doubleclick.net/tag/js/gpt.js');\r\n    if (isOk) {\r\n      console.log('Starting...');\r\n    }\r\n  }\r\n\r\n  function config() {\r\n    console.log('Configuring...');\r\n    initGa();\r\n    initIiq();\r\n  }\r\n\r\n  function initGa() {\r\n    window.googletag.cmd.push(() => {\r\n      const handleSlotRenderEnded = () => {\r\n        gtag('js', new Date());\r\n        gtag('config', GA_ID);\r\n\r\n        googletag.pubads().removeEventListener('slotRenderEnded', handleSlotRenderEnded);\r\n      };\r\n      googletag.pubads().addEventListener('slotRenderEnded', handleSlotRenderEnded);\r\n    });\r\n  }\r\n\r\n  function initIiq() {\r\n    if (!window.IntentIqObject) {\r\n      console.log('IIQ not found - skipping initialization');\r\n      return;\r\n    }\r\n\r\n    try {\r\n      // Configure IntentIQ\r\n      window.intentIq_2072952453 = new IntentIqObject({\r\n        partner: 2072952453,\r\n        pbjs: adnpbjs,\r\n        callback: main,\r\n        timeoutInMillis: PREBID_TIMEOUT_MS,\r\n        ABTestingConfigurationSource: 'IIQServer',\r\n        manualWinReportEnabled: true,\r\n        domainName: window.location.host,\r\n        vrBrowserBlackList: ['chrome'],\r\n        gamParameterName: 'googletag', // Optional\r\n      });\r\n\r\n      adnpbjs.onEvent('bidWon', (data) => {\r\n        window.intentIq_2072952453.reportExternalWin({\r\n          biddingPlatformId: 1, // PreBid\r\n          partnerAuctionId: data.auctionId,\r\n          bidderCode: data.bidderCode,\r\n          prebidAuctionId: data.auctionId,\r\n          cpm: data.cpm,\r\n          currency: 'USD',\r\n          originalCpm: data.originalCpm,\r\n          originalCurrency: 'USD',\r\n          status: data.status,\r\n          placementId: data.adUnitCode\r\n        });\r\n      });\r\n\r\n    } catch (err) {\r\n      console.error('Failed to initialize IntentIQ:', err);\r\n      throw err;\r\n    }\r\n  }\r\n\r\n  function initAds() {\r\n    const adsEl = document.querySelectorAll('[data-onpage=\"true\"]');\r\n    adsEl.forEach(slotEl => createAd(slotEl.dataset.adpath));\r\n  }\r\n\r\n  function onImpressionViewable(event) {\r\n    const { slot } = event;\r\n    const slotId = slot.getSlotElementId();\r\n    if (!activeSlotIds.includes(slotId)) {\r\n      return;\r\n    }\r\n\r\n    const adUnitPath = slot.getAdUnitPath();\r\n    const adUnit = adsConfig[adUnitPath];\r\n    const timeoutMs = adUnit.refreshTime;\r\n\r\n    setTimeout(() => refreshAd(slot, slotId, adUnit), timeoutMs);\r\n  }\r\n\r\n  let firstAdLogged = false;\r\n  function onFirstAdVisible(event) {\r\n    if (!event.isEmpty && !firstAdLogged) {\r\n      console.log('Time to first ad:', performance.now(), 'ms');\r\n      firstAdLogged = true;\r\n      googletag.pubads().removeEventListener('slotRenderEnded', onFirstAdVisible);\r\n    }\r\n  }\r\n\r\n  function collectAds() {\r\n    adUnits.length = 0;\r\n\r\n    const adsEl = document.querySelectorAll('[data-onpage=\"true\"]');\r\n    if (!adsEl.length) {\r\n      console.warn('No ads found to collect');\r\n      return;\r\n    }\r\n\r\n    adsEl.forEach((slotEl) => {\r\n      const adPath = slotEl.dataset.adpath;\r\n      const slot = adsConfig[adPath];\r\n      const slotId = slot?.id;\r\n      const sizes = slot?.sizeMapping[viewportType];\r\n\r\n      if (!sizes?.length) {\r\n        console.warn(\r\n          'Failed to find slot sizes for viewport - bids will be affected for',\r\n          viewportType, slotId\r\n        );\r\n        return;\r\n      }\r\n\r\n      const slotBidders = [...bidders];\r\n      const STANDARD_SIZES = {\r\n        desktop: [\r\n          [1, 1],\r\n          [728, 90],\r\n          [970, 90],\r\n          [970, 250],\r\n          [300, 250],\r\n          [300, 600],\r\n          [160, 600],\r\n          [336, 280],\r\n          [320, 50],\r\n          [320, 100],\r\n        ],\r\n        tablet: [\r\n          [1, 1],\r\n          [728, 90],\r\n          [300, 250],\r\n          [300, 600],\r\n          [160, 600],\r\n          [336, 280],\r\n        ],\r\n        mobile: [\r\n          [1, 1],\r\n          [320, 50],\r\n          [320, 100],\r\n          [300, 250],\r\n          [336, 280],\r\n          [360, 360],\r\n        ]\r\n      };\r\n\r\n      const hasOnlyStandardSizes = (size) => {\r\n        const sizes = [size];\r\n        const standardSizes = STANDARD_SIZES[viewportType] || [];\r\n        const isNative = (w, h) => w === 1 && h === 2;\r\n\r\n        return sizes.every(size => {\r\n          if (Array.isArray(size)) {\r\n            const [w, h] = size;\r\n            return isNative(w, h)\r\n              ? true\r\n              : standardSizes.some(([sw, sh]) => sw === w && sh === h);\r\n          }\r\n          return false;\r\n        });\r\n      }\r\n\r\n      const prebidSizes = sizes.filter(hasOnlyStandardSizes);\r\n\r\n      if (!prebidSizes.length) {\r\n        console.log('No Prebid sizes for', slotId);\r\n\r\n      } else {\r\n        adUnits.push({\r\n          bids: slotBidders,\r\n          code: slotId,\r\n          mediaTypes: {\r\n            banner: {\r\n              sizes: prebidSizes\r\n            }\r\n          }\r\n        });\r\n      }\r\n    });\r\n\r\n    newPbjsAdUnits.length = 0;\r\n    newPbjsAdUnits.push(...adUnits);\r\n\r\n    window.adnpbjs.que.push(() => {\r\n      window.adnpbjs.bidderSettings = bidderSettings;\r\n      window.adnpbjs.setConfig(pbjsConfig);\r\n      installLiveIntentMeasurement(window.adnpbjs);\r\n      window.adnpbjs.setBidderConfig({\r\n        bidders: ['sparteo'],\r\n        config: {\r\n          ortb2: {\r\n            source: {\r\n              ext: {\r\n                schain: {\r\n                  ver: \"1.0\",\r\n                  complete: 1,\r\n                  nodes: [{\r\n                    asi: \"zerodegreeads.com\",\r\n                    sid: \"undefined\",\r\n                    hp: 1\r\n                  }]\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  function runApsBids(slotEl, resolve) {\r\n    const slotId = slotEl.id;\r\n    const adPath = slotEl.dataset.adpath;\r\n\r\n    const sizes = adsConfig[adPath].sizeMapping[viewportType];\r\n    if (!sizes.length) {\r\n      console.warn(\r\n        'Failed to find slot sizes for viewport - canceling APS bid for',\r\n        viewportType, slotId\r\n      );\r\n      resolve();\r\n      return;\r\n    }\r\n\r\n    const slots = [{\r\n      slotID: slotId,\r\n      slotName: adsConfig[adPath].id,\r\n      sizes\r\n    }];\r\n\r\n    window.apstag.fetchBids({ slots, timeout: APS_TIMEOUT_MS }, () => {\r\n      window.apstag.setDisplayBids();\r\n      resolve();\r\n    });\r\n  }\r\n\r\n  function runPrebidBids(slotEl, resolve) {\r\n    const slotId = slotEl.id;\r\n    window.adnpbjs.que.push(() =>\r\n      window.adnpbjs.requestBids({\r\n        timeout: PREBID_TIMEOUT_MS,\r\n        adUnitCodes: [slotId],\r\n        bidsBackHandler: () => {\r\n          window.adnpbjs.setTargetingForGPTAsync([slotId]);\r\n          resolve();\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  async function runBids(slotEl) {\r\n    \r\n    const slotId = slotEl.id;\r\n    const safeBids = (bidsFn) => Promise.race([\r\n      new Promise((resolve) => bidsFn(slotEl, resolve)),\r\n      new Promise((resolve) => setTimeout(resolve, 3000))\r\n    ]);\r\n    const pbjsBids = safeBids(runPrebidBids);\r\n    await Promise.allSettled([pbjsBids]);\r\n  }\r\n\r\n  async function createAdCmd(slotName) {\r\n    const slotEl = document.querySelector(`[data-adpath=\"${slotName}\"]`);\r\n    if (!slotEl) {\r\n      console.warn('Failed to find ad to create by id:', slotName);\r\n      return;\r\n    }\r\n\r\n    collectAds();\r\n\r\n    let adUnit = adsConfig[slotName];\r\n    if (!adUnit) {\r\n      console.warn('Failed to find ad with the following id:', slotName);\r\n      return;\r\n    }\r\n\r\n    const sizeMapping = googletag\r\n      .sizeMapping()\r\n      .addSize([980, 200], adUnit.sizeMapping.desktop)\r\n      .addSize([730, 200], adUnit.sizeMapping.tablet)\r\n      .addSize([0, 0], adUnit.sizeMapping.mobile)\r\n      .build();\r\n\r\n    const adPath = slotEl.dataset.adpath;\r\n    let refreshIteration = adsConfig[adPath].refreshIteration;\r\n    refreshIteration++;\r\n\r\n    const slot = googletag\r\n      .defineSlot(adUnit.id, adUnit.size)\r\n      .defineSizeMapping(sizeMapping)\r\n      .addService(window.googletag.pubads());\r\n\r\n    slot.setConfig({ targeting: { refreshIteration: refreshIteration.toString(), intent_iq_group: 'U' } });\r\n\r\n    slotEl.id = slot.getSlotElementId();\r\n\r\n    const pbjsAdUnit = newPbjsAdUnits.find(adUnit => adUnit.code === slotName);\r\n    if (pbjsAdUnit) {\r\n      pbjsAdUnit.code = slotEl.id;\r\n      window.adnpbjs.addAdUnits(pbjsAdUnit);\r\n    }\r\n\r\n    slotsMap[slotEl.id] = slot;\r\n    activeSlotIds.push(slotEl.id);\r\n\r\n    const init = async () => {\r\n      try {\r\n        await runBids(slotEl);\r\n        window.googletag.enableServices();\r\n        window.googletag.display(slotEl.id);\r\n        if (googletag.getConfig('disableInitialLoad').disableInitialLoad) {\r\n          window.googletag.pubads().refresh([slot]);\r\n        }\r\n      } catch (err) {\r\n        console.error('Failed to run bids for ad slot: %s, %s', slotEl.id, err);\r\n      }\r\n    };\r\n\r\n    const isLazyLoaded = adsConfig[adPath]?.isLazyLoaded !== false;\r\n    if (isLazyLoaded) {\r\n      lazyLoader.add(slotEl, init);\r\n    } else {\r\n      init();\r\n    }\r\n  }\r\n\r\n  async function refreshAd(slot, slotId, adUnit) {\r\n    try {\r\n      const adUnitToRefresh = googletag\r\n        .pubads()\r\n        .getSlots()\r\n        .filter((slot) => slot.getSlotElementId() === slotId)\r\n        .at(0);\r\n\r\n      if (!adUnitToRefresh) {\r\n        return;\r\n      }\r\n\r\n      adUnit.refreshIteration++;\r\n      slot.setConfig({ targeting: { refreshIteration: adUnit.refreshIteration.toString() } });\r\n\r\n      const slotEl = document.getElementById(adUnitToRefresh.getSlotElementId());\r\n      await runBids(slotEl);\r\n\r\n      window.googletag.pubads().refresh([slotsMap[slotEl.id]]);\r\n    } catch (err) {\r\n      console.error('Failed to refresh ad:', slotId, err.message);\r\n    }\r\n  }\r\n\r\n  function destroyAdCmd(slotName) {\r\n    const slotEl = document.querySelector(`[data-adpath=\"${slotName}\"]`);\r\n    if (!slotEl) {\r\n      console.warn('Failed to find ad to destroy by id:', slotName);\r\n      return;\r\n    }\r\n\r\n    const slotId = slotEl.id;\r\n    if (slotId && slotsMap[slotId]) {\r\n      window.googletag.destroySlots([slotsMap[slotId]]);\r\n      delete slotsMap[slotId];\r\n      const idx = activeSlotIds.indexOf(slotId);\r\n      if (idx > -1) {\r\n        activeSlotIds.splice(idx, 1);\r\n      }\r\n    }\r\n\r\n    slotEl.innerHTML = '';\r\n    slotEl.id = '';\r\n    slotEl.removeAttribute('data-onpage');\r\n    if (slotId.toLowerCase().includes('sticky_footer')) {\r\n        slotEl.parentElement.parentElement.remove();\r\n    }\r\n  }\r\n\r\n  function createNativeCmd() {\r\n    createScript('https://cdn.taboola.com/libtrc/adnimationnetwork/loader.js', (scriptEl) => {\r\n      scriptEl.id = 'tb_loader_script';\r\n      scriptEl.onload = () => {\r\n        window.performance?.mark?.('tbl_ic');\r\n      };\r\n    });\r\n\r\n    createScript('data:text/javascript;charset=utf-8,_taboola.push({flush:true})', (scriptEl) => {\r\n      scriptEl.setAttribute('data-taboola-flush', 'true');\r\n      scriptEl.defer = true;\r\n    });\r\n  }\r\n\r\n  function destroyNativeCmd() {\r\n    const footerEl = document.querySelector('.adn-footer');\r\n    if (footerEl) {\r\n      footerEl.innerHTML = '';\r\n    }\r\n  }\r\n\r\n  function createNative() {\r\n    window.googletag.cmd.push(createNativeCmd);\r\n  }\r\n\r\n  function destroyNative() {\r\n    window.googletag.cmd.push(destroyNativeCmd);\r\n  }\r\n\r\n  function createAd(slotName) {\r\n    window.googletag.cmd.push(() => createAdCmd(slotName));\r\n  }\r\n\r\n  function destroyAd(slotName) {\r\n    window.googletag.cmd.push(() => destroyAdCmd(slotName));\r\n  }\r\n\r\n  function createInterstitial() {\r\n    window.googletag.cmd.push(createInterstitialCmd);\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Exports\r\n  // ----------------------------------------------\r\n\r\n  window.adn = {\r\n    createAd,\r\n    destroyAd,\r\n    createNative,\r\n    destroyNative,\r\n    createInterstitial,\r\n  };\r\n\r\n  // ----------------------------------------------\r\n  // Utils\r\n  // ----------------------------------------------\r\n\r\n  async function getIpInfo() {\r\n    try {\r\n      const cached = localStorage.getItem('ipinfo');\r\n      if (cached) return JSON.parse(cached);\r\n      const key = '7c4d73767e64472ea502eacdbc47386b';\r\n      const url = `https://d2dvy74lyjayxz.cloudfront.net/?key=${key}`;\r\n      const res = await fetch(url);\r\n      if (!res.ok) throw new Error(`HTTP-${res.status}`);\r\n      const ipInfo = await res.json();\r\n      localStorage.setItem('ipinfo', JSON.stringify(ipInfo));\r\n      localStorage.removeItem('adngeo'); // Old version cleanup\r\n      return ipInfo;\r\n    } catch (err) {\r\n      console.error('Failed to get ip info:', err.message);\r\n      return null;\r\n    }\r\n  }\r\n\r\n  async function getCountry() {\r\n    const ipInfo = await getIpInfo();\r\n    return ipInfo?.country ?? 'US';\r\n  }\r\n\r\n  async function getPlatform() {\r\n    const ipInfo = await getIpInfo();\r\n    return ['ios','android','mobile','desktop'].find(k => ipInfo?.[k]) ?? 'desktop';\r\n  }\r\n\r\n  async function waitForElement(selector) {\r\n    let cnt = 0;\r\n    const timeout = 100;\r\n    const threshold = 3000 / timeout;\r\n    return new Promise((resolve) => {\r\n      let interval = setInterval(() => {\r\n        const el = document.querySelector(selector);\r\n        if (el) {\r\n          clearInterval(interval);\r\n          resolve(el);\r\n        }\r\n        if (++cnt === threshold) {\r\n          cnt = 0;\r\n          console.warn('Still waiting for selector:', selector);\r\n        }\r\n      }, timeout);\r\n    });\r\n  }\r\n\r\n  const onDomReady = (function() {\r\n    const callbacks = [];\r\n\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n      callbacks.forEach((callback) => callback());\r\n      callbacks.length = 0;\r\n    });\r\n\r\n    const interval = setInterval(() => {\r\n      if (\r\n        document.readyState === 'complete' ||\r\n        document.readyState === 'interactive'\r\n      ) {\r\n        clearInterval(interval);\r\n        callbacks.forEach((callback) => callback());\r\n        callbacks.length = 0;\r\n      }\r\n    }, 100);\r\n\r\n    return (callback) => {\r\n      if (\r\n        document.readyState === 'complete' ||\r\n        document.readyState === 'interactive'\r\n      ) {\r\n        setTimeout(callback, 0);\r\n      } else {\r\n        callbacks.push(callback);\r\n      }\r\n    };\r\n  })();\r\n\r\n  // Find \"URL_PATHS_BLACKLIST\" under the \"Configuration\" section.\r\n  // There you can add any additional URL paths to blacklist.\r\n  function isBlacklistedUrl() {\r\n    const { pathname } = window.location;\r\n    const list = URL_PATHS_BLACKLIST ?? [];\r\n    const isBlacklisted = list.some((path) =>\r\n      path === '/' ? pathname === path : pathname.includes(path));\r\n    return isBlacklisted;\r\n  }\r\n\r\n  function observeSlots() {\r\n    const isVisible = (element) => {\r\n      const style = window.getComputedStyle(element);\r\n      const isDisplayed = style.display !== 'none';\r\n      const isVisible = style.visibility !== 'hidden';\r\n      return isDisplayed && isVisible;\r\n    };\r\n\r\n    const isStyleChanged = (mutation) =>\r\n      mutation.type === 'attributes' &&\r\n      (\r\n        mutation.attributeName === 'style' ||\r\n        mutation.attributeName === 'class'\r\n      );\r\n\r\n    const isVisibilityChanged = (mutation) => {\r\n      const oldStyle = mutation.oldValue || '';\r\n      const newStyle = mutation.target.getAttribute('style') || '';\r\n      const wasHidden = oldStyle.includes('hidden') || oldStyle.includes('none');\r\n      const isHidden = newStyle.includes('hidden') || newStyle.includes('none');\r\n      return wasHidden !== isHidden;\r\n    }\r\n\r\n    const handleAdded = (node) => {\r\n      const slot = node.getAttribute('data-adpath');\r\n      console.log('Added:', slot);\r\n      createAd(slot);\r\n    }\r\n\r\n    const handleRemoved = (node) => {\r\n      const slot = node.getAttribute('data-adpath');\r\n      console.log('Removed:', slot);\r\n      destroyAd(slot);\r\n    }\r\n\r\n    const isAdSlot = (node) => node.hasAttribute?.('data-adpath');\r\n\r\n    const getSlots = (nodeList) =>\r\n      Array.from(nodeList)\r\n        .filter((node) => node.nodeType === Node.ELEMENT_NODE)\r\n        .flatMap((node) => Array.from(node.querySelectorAll('[data-adpath]')).concat(node))\r\n        .filter(isAdSlot);\r\n\r\n    const handleMutations = (mutations) =>\r\n      mutations.forEach((mutation) => {\r\n        const addedNodes = getSlots(mutation.addedNodes);\r\n        const removedNodes = getSlots(mutation.removedNodes);\r\n\r\n        addedNodes.forEach(handleAdded);\r\n        removedNodes.forEach(handleRemoved);\r\n\r\n        if (\r\n          !addedNodes.includes(mutation.target) &&\r\n          !removedNodes.includes(mutation.target) &&\r\n          isStyleChanged(mutation) &&\r\n          isVisibilityChanged(mutation)\r\n        ) {\r\n          const childNodes = getSlots(mutation.target);\r\n          childNodes.forEach((node) => {\r\n            if (isVisible(node)) {\r\n              handleAdded(node);\r\n            } else {\r\n              handleRemoved(node);\r\n            }\r\n          });\r\n        }\r\n      });\r\n\r\n    const config = {\r\n      subtree: true,\r\n      childList: true,\r\n      attributes: true,\r\n      attributeFilter: ['style', 'class'],\r\n      attributeOldValue: true\r\n    };\r\n\r\n    const observer = new MutationObserver(handleMutations);\r\n    observer.observe(document, config);\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Custom\r\n  // ----------------------------------------------\r\n\r\n  function createStickyBanner() {\r\n\r\n  const addCloseButton = (stickyBannerSizeDiv) => {\r\n    const el = document.createElement('div');\r\n    el.innerText = 'Close';\r\n    el.style.position = 'absolute';\r\n    el.style.top = '-20px';\r\n    el.style.right = '0px';\r\n    el.style.height = '20px';\r\n    el.style.width = '50px';\r\n    el.style.color = 'white';\r\n    el.style.borderRadius = '2px';\r\n    el.style.backgroundColor = 'black';\r\n    el.style.cursor = 'pointer';\r\n    el.style.fontSize = '14px';\r\n    el.style.textAlign = 'center';\r\n    el.classList.add('closeButton');\r\n    el.onclick = function() {\r\n      this.parentElement.remove();\r\n    };\r\n    stickyBannerSizeDiv.append(el);\r\n  };\r\n\r\n  const stickyBannerParent = document.createElement('div');\r\n  stickyBannerParent.classList.add('adnSticky');\r\n  stickyBannerParent.style.position = 'fixed';\r\n  stickyBannerParent.style.display = 'flex';\r\n  stickyBannerParent.style.justifyContent = 'space-evenly';\r\n  stickyBannerParent.style.bottom = '0px';\r\n  stickyBannerParent.style.width = '100%';\r\n  stickyBannerParent.style.backgroundColor = 'transparent';\r\n  stickyBannerParent.style.zIndex = '9999999999';\r\n\r\n  const stickyBannerSizeDiv = document.createElement('div');\r\n  stickyBannerSizeDiv.style.position = 'relative';\r\n\r\n  const stickyBanner = document.createElement('div');\r\n  stickyBanner.dataset.onpage = !0;\r\n  stickyBanner.dataset.adpath = '/339474670,23200923688/DinarGuru/Sticky_Footer';\r\n\r\n  stickyBannerSizeDiv.append(stickyBanner);\r\n  stickyBannerParent.append(stickyBannerSizeDiv);\r\n  document.getElementsByTagName('body')[0].append(stickyBannerParent);\r\n\r\n  let flag = true;\r\n  googletag.cmd.push(() => {\r\n    googletag.pubads().addEventListener('slotRenderEnded', (event) => {\r\n      if (event.slot.getSlotElementId().includes('Sticky_Footer') && !event.isEmpty && flag) {\r\n        flag = false;\r\n        addCloseButton(stickyBannerSizeDiv);\r\n      }\r\n    });\r\n    googletag.enableServices();\r\n  });\r\n\r\n}\r\n\r\nlet addInContentHPAdUnits = () => {\r\n    if (\r\n    window.location.pathname === '/' ||\r\n    window.location.pathname === '/index.html' ||\r\n    window.location.pathname.includes('dinar-guru-page-2')\r\n    ) {\r\n        let inContentAdUnit = document.createElement('div');\r\n        inContentAdUnit.dataset.onpage = true;\r\n        inContentAdUnit.dataset.adpath = '339474670,23200923688/DinarGuru/InContent';\r\n        inContentAdUnit.style.textAlign = '-webkit-center';\r\n        inContentAdUnit.style.marginTop = '40px';\r\n        inContentAdUnit.style.marginBottom = '40px';\r\n        inContentAdUnit.style.minHeight = '250px';\r\n        // inContentAdUnit.style.backgroundColor = 'pink';\r\n\r\n        let h2Section = document.querySelectorAll('.wsite-multicol-col > .paragraph > br:nth-of-type(12n + 2)');\r\n        for (let i = 0; i < h2Section.length && i < 5; i++) {\r\n            let adUnit = inContentAdUnit.cloneNode(true);\r\n            adUnit.dataset.adpath = '/339474670,23200923688/DinarGuru/InContent_' + i;\r\n            h2Section[i].before(adUnit);\r\n        }\r\n    }\r\n};\r\n\r\nlet addInContentRecapAdUnits = () => {\r\n    if (window.location.href.includes('dinar-recaps')) {\r\n        let inContentAdUnit = document.createElement('div');\r\n        inContentAdUnit.dataset.onpage = true;\r\n        inContentAdUnit.dataset.adpath = '339474670,23200923688/DinarGuru/InContent_Recap';\r\n        inContentAdUnit.style.textAlign = '-webkit-center';\r\n        inContentAdUnit.style.marginTop = '40px';\r\n        inContentAdUnit.style.marginBottom = '40px';\r\n        inContentAdUnit.style.minHeight = '250px';\r\n        // inContentAdUnit.style.backgroundColor = 'pink';\r\n\r\n        let h2Section = document.querySelectorAll('.wsite-multicol-col > .paragraph > span:nth-of-type(16n + 6)');\r\n        for (let i = 0; i < h2Section.length && i < 3; i++) {\r\n            let adUnit = inContentAdUnit.cloneNode(true);\r\n            adUnit.dataset.adpath = '/339474670,23200923688/DinarGuru/InContent_Recap_' + i;\r\n            h2Section[i].before(adUnit);\r\n        }\r\n    }\r\n};\r\n\r\nfunction addATFHPUnit() {\r\n    if (window.location.pathname === '/' || window.location.pathname === '/index.html') {\r\n        const el = document.createElement('div');\r\n        el.dataset.onpage = true;\r\n        el.dataset.adpath = '/339474670,23200923688/DinarGuru/ATF';\r\n        el.style.textAlign = 'center';\r\n        el.style.marginTop = '40px';\r\n        el.style.marginBottom = '40px';\r\n        el.style.minHeight = '250px';\r\n            //el.style.backgroundColor = 'green';\r\n        const pArr = document.querySelectorAll('#wrapper > #container > #content')[0];\r\n        pArr?.before(el.cloneNode(true), pArr);\r\n    }\r\n}\r\n\r\nfunction addATFStartHereUnit() {\r\n    if (\r\n    window.location.pathname.includes('dinar-news-start-here') ||\r\n    window.location.pathname.includes('about-dinar-guru')\r\n    ) {\r\n        const el = document.createElement('div');\r\n        el.dataset.onpage = true;\r\n        el.dataset.adpath = '/339474670,23200923688/DinarGuru/ATF';\r\n        el.style.textAlign = 'center';\r\n        el.style.marginTop = '40px';\r\n        el.style.marginBottom = '40px';\r\n        el.style.minHeight = '250px';\r\n            //el.style.backgroundColor = 'green';\r\n        const pArr = document.querySelectorAll('.wsite-content-title')[0];\r\n        pArr?.before(el.cloneNode(true), pArr);\r\n    }\r\n}\r\n\r\nfunction addATFRecapUnit() {\r\n  if (window.location.href.includes('dinar-recaps')) {\r\n        const el = document.createElement('div');\r\n        el.dataset.onpage = true;\r\n        el.dataset.adpath = '/339474670,23200923688/DinarGuru/ATF';\r\n        el.style.textAlign = 'center';\r\n        el.style.marginTop = '40px';\r\n        el.style.marginBottom = '40px';\r\n        el.style.minHeight = '250px';\r\n            //el.style.backgroundColor = 'green';\r\n        const pArr = document.querySelectorAll('.wsite-multicol-tr > .wsite-multicol-col > .wsite-content-title')[0];\r\n        pArr?.before(el.cloneNode(true), pArr);\r\n    }\r\n}\r\n\r\nfunction addSectionAdUnits() {\r\n  if (window.location.href.includes('start-here')) {\r\n    const el = document.createElement('div');\r\n    el.dataset.onpage = true;\r\n    el.dataset.adpath = '/339474670,23200923688/DinarGuru/Section_0';\r\n    el.style.textAlign = '-webkit-center';\r\n    el.style.marginTop = '40px';\r\n    el.style.marginBottom = '40px';\r\n    el.style.minHeight = '250px';\r\n        //el.style.backgroundColor = 'blue';\r\n    const pArr = document.querySelectorAll('#wsite-content > div:nth-child(7)');\r\n    pArr.forEach(pElement =>\r\n        pElement.parentElement.insertBefore(\r\n        el.cloneNode(true), pElement.nextElementSibling));\r\n  }\r\n}\r\n\r\nfunction addSideBarAdUnits() {\r\n    if (\r\n        window.location.pathname === '/' ||\r\n        window.location.pathname === '/index.html' ||\r\n        window.location.pathname.includes('dinar-guru-page-2')\r\n        ) {\r\n            const adPaths = [\r\n            '/339474670,23200923688/DinarGuru/Side_0',\r\n            '/339474670,23200923688/DinarGuru/Side_1',\r\n            '/339474670,23200923688/DinarGuru/Side_2'\r\n            ];\r\n\r\n            const targets = document.querySelectorAll('#wrapper > #container > #content > #wsite-content > div >.wsite-multicol > .wsite-multicol-table-wrap >  .wsite-multicol-table > .wsite-multicol-tbody > .wsite-multicol-tr > .wsite-multicol-col > div:nth-of-type(2n + 3)');\r\n\r\n            adPaths.forEach((adPath, index) => {\r\n            if (index < targets.length) {\r\n                const adEl = document.createElement('div');\r\n                adEl.dataset.onpage = true;\r\n                adEl.dataset.adpath = adPath;\r\n                adEl.style.textAlign = 'center';\r\n                adEl.style.marginTop = '40px';\r\n                adEl.style.marginBottom = '40px';\r\n                adEl.style.minHeight = '250px';\r\n                // adEl.style.backgroundColor = 'yellow'; // optional debug\r\n\r\n                targets[index].parentElement.insertBefore(adEl, targets[index].nextElementSibling);\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nfunction addSideBarCalculatorAdUnits() {\r\n    if (window.location.href.includes('calculator')) {\r\n        const el = document.createElement('div');\r\n        el.dataset.onpage = true;\r\n        el.dataset.adpath = '/339474670,23200923688/DinarGuru/Side_0';\r\n        el.style.textAlign = 'center';\r\n        el.style.marginTop = '40px';\r\n        el.style.marginBottom = '40px';\r\n        el.style.minHeight = '250px';\r\n        // el.style.backgroundColor = 'yellow';\r\n\r\n        const pArr = document.querySelectorAll(\r\n            '#wrapper > #container > #content > #wsite-content > div > .wsite-multicol > .wsite-multicol-table-wrap > .wsite-multicol-table > .wsite-multicol-tbody > .wsite-multicol-tr > .wsite-multicol-col > .wsite-spacer'\r\n        );\r\n\r\n        if (pArr.length > 0) {\r\n            const target = pArr[0];\r\n            target.parentElement.insertBefore(el, target.nextElementSibling);\r\n        }\r\n    }\r\n}\r\n\r\nfunction createInterstitialCmd() {\r\n\r\n  const slot = window.googletag.defineOutOfPageSlot(\r\n    '/339474670,23200923688/DinarGuru/DinarGuru_Interstitial', window.googletag.enums.OutOfPageFormat.INTERSTITIAL);\r\n\r\n  if (!slot) {\r\n    console.error('Failed to define out of page slot - Interstitial');\r\n    return;\r\n  }\r\n\r\n  slot.addService(window.googletag.pubads());\r\n  window.googletag.enableServices();\r\n  window.googletag.display(slot);\r\n\r\n}\r\n\r\nlet createVideoPlayer = () => {\r\n    var script = document.createElement('script');\r\n    script.src = 'https://cnt.trvdp.com/js/1770/15687.js';\r\n    document.head.appendChild(script);\r\n}\r\n\r\nlet createOutstreamVideoPlayer = () => {\r\n    var script = document.createElement('script');\r\n    script.src = 'https://go.trvdp.com/init/16904.js?pid=5831';\r\n    document.head.appendChild(script);\r\n}\r\n\r\nconst logSkippedBids =  function(){\r\n    // Keep track of which auctions had floors skipped\r\n    const skippedAuctions = {};\r\n\r\n    adnpbjs.onEvent('auctionEnd', function (auctionData) {\r\n        const bids = auctionData.bidsReceived || [];\r\n\r\n        const hadFloors = bids.some(b =>\r\n            b.floorData && typeof b.floorData.floorValue === 'number'\r\n        );\r\n\r\n        const wasSkipped = !hadFloors;\r\n\r\n        // remember per auctionId\r\n        skippedAuctions[auctionData.auctionId] = wasSkipped;\r\n\r\n        // (optional) debug\r\n        // if (wasSkipped) console.log('⚠️ Floors skipped for auction', auctionData.auctionId);\r\n    });\r\n\r\n    // Now, when a bid actually wins, tag its GPT slot if that auction was skipped\r\n    adnpbjs.onEvent('bidWon', function (bid) {\r\n    // Detect if floors were skipped on THIS bid\r\n        const skipped =\r\n            bid.floorData &&\r\n            bid.floorData.skipped === true;\r\n\r\n        googletag = window.googletag || {};\r\n        googletag.cmd = googletag.cmd || [];\r\n\r\n        googletag.cmd.push(function () {\r\n            const slots = googletag.pubads().getSlots();\r\n            // Try to match either by element ID or by adUnitPath\r\n            const slot = slots.find(function (s) {\r\n                const idMatch = s.getSlotElementId &&\r\n                                s.getSlotElementId() === bid.adUnitCode;\r\n                const pathMatch = s.getAdUnitPath &&\r\n                                s.getAdUnitPath() === bid.adUnitCode;\r\n                return idMatch || pathMatch;\r\n            });\r\n            // 1 = skipped floors, 0 = normal floors\r\n            slot.setConfig({ targeting: { skip_floor: skipped ? '1' : '0' } });\r\n        });\r\n    });\r\n}\r\n\r\nfunction addSideBarStickyAdUnits() {\r\n    const path = window.location.pathname;\r\n    const isTargetPage =\r\n        path === '/' ||\r\n        path === '/index.html' ||\r\n        path.includes('dinar-guru-page-2');\r\n\r\n    if (!isTargetPage) return;\r\n\r\n    // 1. Identify the true sidebar column (contains existing Side ad units or Outbrain)\r\n    const existingSideUnit = document.querySelector('div[data-adpath*=\"/Side_\"]');\r\n    const sidebar = existingSideUnit ? existingSideUnit.closest('td.wsite-multicol-col') : null;\r\n\r\n    if (!sidebar) {\r\n        console.warn('Target sidebar not found.');\r\n        return;\r\n    }\r\n\r\n    // 2. Prevent duplicate insertions\r\n    if (document.getElementById('side-sticky-wrapper')) return;\r\n\r\n    // 3. Make sure the table cell allows sticky children to track the column's height\r\n    sidebar.style.verticalAlign = 'top';\r\n\r\n    // 4. Wrapper container configured for native sticky behavior\r\n    const stickyWrapper = document.createElement('div');\r\n    stickyWrapper.id = 'side-sticky-wrapper';\r\n    stickyWrapper.style.position = '-webkit-sticky';\r\n    stickyWrapper.style.position = 'sticky';\r\n    stickyWrapper.style.top = '20px'; // Offset when stuck at top\r\n    stickyWrapper.style.zIndex = '1000';\r\n    stickyWrapper.style.marginTop = '40px';\r\n    stickyWrapper.style.marginBottom = '40px';\r\n    stickyWrapper.style.width = '100%';\r\n\r\n    // 5. Ad Unit Element\r\n    const el = document.createElement('div');\r\n    el.id = 'gpt_unit_/339474670,23200923688/DinarGuru/Side_Sticky_0';\r\n    el.dataset.onpage = 'true';\r\n    el.dataset.adpath = '/339474670,23200923688/DinarGuru/Side_Sticky';\r\n    el.style.textAlign = 'center';\r\n    el.style.minHeight = '250px';\r\n    el.style.width = '100%';\r\n\r\n    stickyWrapper.appendChild(el);\r\n    sidebar.appendChild(stickyWrapper);\r\n}\r\n\r\n\r\n  onDomReady(async () => {\r\n    try {\r\n      \r\n            createStickyBanner();\r\n            addInContentHPAdUnits();\r\n            //addInContentRecapAdUnits();\r\n            addATFHPUnit();\r\n            addATFRecapUnit();\r\n            addATFStartHereUnit();\r\n            //addSectionAdUnits();\r\n            addSideBarAdUnits();\r\n            addSideBarCalculatorAdUnits();\r\n            createVideoPlayer();\r\n\r\n\r\nif (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', addSideBarStickyAdUnits);\r\n} else {\r\n    addSideBarStickyAdUnits();\r\n}    \r\n\r\n\r\n            if (window.location.pathname !== \"/\") {\r\n            createOutstreamVideoPlayer();\r\n            }\r\n\r\n            logSkippedBids();\r\n      \r\n      // Add custom slots creation logic here 👇\r\n\r\n    } catch(err) {\r\n      console.error('Failed to create slots:', err.stack);\r\n    }\r\n\r\n    // Must be called last\r\n    initAds();\r\n    observeSlots();\r\n  });\r\n\r\n})(window, document);\r\n"]}