HTML Report for https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/
This tool is an ongoing experiment in better HTML checking, and its behavior remains subject to changeShowing results for https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/
You can view the notes...
view-source:https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/
| # | results |
|---|---|
| 1 |
Error
On line 1, column 9 <https://www.ph |
| 2 |
Error
On line 1, column 10 <https://www.phi |
| 3 |
Error
On line 1, column 28 <https://www.phillymag.com/wp-json |
| 4 |
Error
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 5 |
Info
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 6 |
Error
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 7 |
Error
On line 2, column 15 /wp-json/>; rel="https://api.w.org/" link: <https://www.ph |
| 8 |
Error
On line 2, column 16 <https://www.phi |
| 9 |
Error
On line 2, column 34 <https://www.phillymag.com/wp-json |
| 10 |
Error
On line 2, column 42 ymag.com/wp-json/wp/v2/p |
| 11 |
Error
On line 2, column 45 /wp-json/wp/v2/post |
| 12 |
Error
On line 2, column 48 -json/wp/v2/posts/4 |
| 13 |
Error
On line 2, column 54 on/wp/v2/posts/4043503 |
| 14 |
Info
On line 2, column 61 v2/posts/4043503>; rel= |
| 15 |
Info
On line 2, column 61 v2/posts/4043503>; rel= |
| 16 |
Error
On line 3, column 15 s/4043503>; rel="alternate"; type="application/json" link: <https://www.ph |
| 17 |
Error
On line 3, column 16 <https://www.phi |
| 18 |
Error
On line 3, column 34 <https://www.phillymag.com/?p=4043 |
| 19 |
Info
On line 3, column 44 ymag.com/?p=4043503>; rel= |
| 20 |
Info
On line 3, column 44 ymag.com/?p=4043503>; rel= |
| 21 |
Error
On line 20, column 15 p=4043503>; rel=shortlink last-modified: Wed, 10 Apr 2024 08:33:53 GMT x-batcache: True access-control-allow-origin: * x-cache-key: https://_desktop_www.phillymag.comGET/news/2024/04/06/philadelphia-crime-public-safety/prestitial x-zephr-cache: miss set-cookie: blaize_session=cff811b7-e70c-4f92-9ac3-b38a1f659889; Expires=Wed, 28 Aug 2024 08:33:53 GMT; Path=/; set-cookie: blaize_tracking_id=d0e67a1d-295b-4a6d-8ec0-5be1fc56bf5e; Expires=Tue, 12 Aug 3023 08:33:54 GMT; Path=/; cache-control: no-store, no-transform content-encoding: gzip vary: Accept-Encoding,Cookie x-cache: Miss from cloudfront via: 1.1 2321fbb8557f36154cf3a8b1e2ffc442.cloudfront.net (CloudFront) x-amz-cf-pop: WAW51-P3 alt-svc: h3=":443"; ma=86400 x-amz-cf-id: RxIhjjJ6bjNO7MGjj6AfuFhKD2iHSjUKSsCBd73bUUT8euupKjvoig== <!doctype html> <html |
| 22 |
Error
On line 21, column 19 type html> <html lang="en-US"> <hea |
| 23 |
Error
On line 22, column 7 g="en-US"> <head> <me |
| 24 |
Error
On line 249, column 8 "> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> <meta content="utf-8" http-equiv="encoding"> <link rel="preconnect" href="https://securepubads.g.doubleclick.net"><link rel="preconnect" href="https://www.googleadservices.com"><link rel="preconnect" href="https://s.ntv.io"><link rel="preconnect" href="https://ib.adnxs.com"><link rel="preconnect" href="https://ap.lijit.com"><link rel="preconnect" href="https://static.criteo.net"><link rel="preconnect" href="https://cdn10.bostonmagazine.com/"><link rel="preconnect" href="https://s.ntv.io/"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"> <!-- This site is optimized with the Yoast SEO Premium plugin v21.7 (Yoast SEO v21.7) - https://yoast.com/wordpress/plugins/seo/ --> <title>Yes, Philadelphia Is Safer Than They Say on TV</title> <meta name="description" content="Philadelphia has made the national news far too often for crime and public safety. A new administration has big plans to change the narrative."> <link rel="canonical" href="https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/"> <meta property="og:locale" content="en_US"> <meta property="og:type" content="article"> <meta property="og:title" content="Yes, Philadelphia Is Safer Than They Say on TV"> <meta property="og:description" content="The city has made the national news far too often recently for incidents involving crime and public safety. A new administration has big plans to change — and correct — the narrative."> <meta property="og:url" content="https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/"> <meta property="og:site_name" content="Philadelphia Magazine"> <meta property="article:author" content="https://www.facebook.com/victor.fiorillo.5"> <meta property="article:published_time" content="2024-04-07T00:00:50+00:00"> <meta property="article:modified_time" content="2024-04-06T16:49:08+00:00"> <meta property="og:image" content="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/1200-OptSafetyWeb1200x630.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta property="og:image:type" content="image/jpeg"> <meta name="author" content="Victor Fiorillo"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Yes, Philadelphia Is Safer Than They Say on TV"> <meta name="twitter:description" content="The city has made the national news far too often recently for incidents involving crime and public safety. A new administration has big plans to change — and correct — the narrative."> <meta name="twitter:creator" content="@VictorFiorillo"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Victor Fiorillo"> <meta name="twitter:label2" content="Est. reading time"> <meta name="twitter:data2" content="8 minutes"> <!-- / Yoast SEO Premium plugin. --> <link rel="dns-prefetch" href="//securepubads.g.doubleclick.net"> <link rel="dns-prefetch" href="//static.criteo.net"> <link rel="dns-prefetch" href="//s.ntv.io"> <link rel="dns-prefetch" href="//cloud.typography.com"> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/cdn10.phillymag.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.4.3"}}; /*! 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,"\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffb\u200b\ud83e\udef2\ud83c\udfff")}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> <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"> body{--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-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{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;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :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;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel="stylesheet" id="phillymag-css" href="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/css/philly.min.css?ver=87" type="text/css" media="all"> <link rel="stylesheet" id="phillymag-countdown-css-css" href="https://cdn10.phillymag.com/wp-content/themes/metrocorp-phillymag/countdown-clock/countdown.css?ver=0.4.37" type="text/css" media="all"> <script type="text/javascript" id="gpt-js-extra"> /* <![CDATA[ */ var mcAds = {"advertiserSlug":"","currentSite":"phillymag","doPrebid":"true","gptNetworkID":"\/307442\/a.site195.tmus\/","hasBannerThree":"false","isArchive":"false","isGeodir":"false","isSingle":"1","postType":"post","prebidTimeout":"2000","prebidFailsafeTimeout":"3000","slots":{"banner-1":{"adUnit":"banner","adSizes":"[[728, 90], [320, 100], [970, 250], [320, 50], [970, 90]]","id":"banner-1","mapping":"bannerOneMapping","hasSettings":true,"isPrebid":"true","isRefresh":"true","targeting":{"pos":"1"},"isLazy":"false"},"banner-2":{"adUnit":"banner","adSizes":"[[728, 90], [320, 100], [970, 250], [300, 250], [320, 50], [970, 90]]","id":"banner-2","mapping":"bannerMapping","hasSettings":true,"isLazy":"true","isRefresh":"true","isPrebid":"true","targeting":{"pos":"2"}},"native_related":{"adUnit":"native_related","adSizes":"fluid","id":"native_related","targeting":{"pos":"2"}},"directory_edl-1":{"adUnit":"directory_edl","adSizes":"fluid","id":"directory_edl-1","targeting":{"pos":"1"}},"directory_edl-2":{"adUnit":"directory_edl","adSizes":"fluid","id":"directory_edl-2","targeting":{"pos":"2"}},"curated_module-1":{"adUnit":"curated_module","adSizes":"fluid","id":"curated_module-1","hasSettings":true,"isLazy":"true","targeting":{"pos":"1"},"isRefresh":"false","isPrebid":"false"},"curated_module-2":{"adUnit":"curated_module","adSizes":"fluid","id":"curated_module-2","hasSettings":true,"isLazy":"true","targeting":{"pos":"2"},"isRefresh":"false","isPrebid":"false"},"curated_module-3":{"adUnit":"curated_module","adSizes":"fluid","id":"curated_module-3","hasSettings":true,"isLazy":"true","targeting":{"pos":"3"},"isRefresh":"false","isPrebid":"false"},"rail-1":{"adUnit":"rail","adSizes":"[[320, 100], [320, 50], [300, 250], [300, 600], [1,1]]","id":"rail-1","mapping":"railMapping","hasSettings":true,"isLazy":"true","isPrebid":"true","isRefresh":"true","targeting":{"pos":"1"}},"toprailsponsor-1":{"adUnit":"toprailsponsor","adSizes":"[[300, 150], [300, 90], [1,1]]","id":"toprailsponsor-1","mapping":"toprailMapping","targeting":{"pos":"1"}},"interstitial":{"adUnit":"interstitial","id":"interstitial","outOfPage":true},"skin":{"adUnit":"skin","adSizes":"[1, 1]","id":"skin"},"teads-video-oop":{"adUnit":"teads-video-oop","id":"teads-video-oop","outOfPage":true},"in_content":{"adUnit":"in_content","adSizes":"fluid","id":"in_content"},"in_content_2":{"adUnit":"in_content_2","adSizes":"fluid","id":"in_content_2"},"native_sidebar":{"adUnit":"native_sidebar","adSizes":"fluid","id":"native_sidebar","targeting":{"pos":"1"}},"ad-reveal":{"adUnit":"ad-reveal","adSizes":"[[1300, 500], [780, 300], [360, 585]]","id":"ad-reveal","hasSettings":true,"mapping":"adrevealMapping","isPrebid":"false","isRefresh":"false","isLazy":"false"},"bottom-anchor":{"adUnit":"BOTTOM_ANCHOR","id":"bottom-anchor","isMobile":true,"isRefresh":"true","outOfPage":true,"outOfPageFormat":"BOTTOM_ANCHOR","targeting":{"test":"outofpage"}}},"slotsFired":[],"slotsViewed":[],"slotsPrebid":[],"targeting":{"vertical":"news","post_ID":"4043503","cat":["longform","bad-behavior","cherelle-parker","crime","public-safety"],"environment":"production","post_type":"article"},"debug":""}; /* ]]> */ </script> <script type="text/javascript" id="gpt-js-before"> /* <![CDATA[ */ /* prebid.js v6.23.0 Updated : 2022-05-06*/ /*! For license information please see prebid-core.js.LICENSE.txt */ !function(){var e,n={4877:function(e,n,t){"use strict";t.d(n,{Pd:function(){return s},Th:function(){return u},_U:function(){return d}});var r=t(6996),i=t(9853),o=t(265),a=t(1879),c="outstream";function u(e){var n=this,t=e.url,o=e.config,a=e.id,u=e.callback,s=e.loaded,d=e.adUnitCode;this.url=t,this.config=o,this.handlers={},this.id=a,this.loaded=s,this.cmd=[],this.push=function(e){"function"==typeof e?n.loaded?e.call():n.cmd.push(e):(0,i.logError)("Commands given to Renderer.push must be wrapped in a function")},this.callback=u||function(){n.loaded=!0,n.process()},this.render=function(){var e=this,n=arguments,o=function(){e._render?e._render.apply(e,n):(0,i.logWarn)("No render function was provided, please use .setRender on the renderer")};f(d)?((0,i.logWarn)("External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ".concat(d)),o()):(this.cmd.unshift(o),(0,r.B)(t,c,this.callback,this.documentContext))}.bind(this)}function s(e){return!(!e||!e.url)}function d(e,n,t){var r=null;e.config&&e.config.documentResolver&&(r=e.config.documentResolver(n,document,t)),r||(r=document),e.documentContext=r,e.render(n,e.documentContext)}function f(e){var n=pbjs.adUnits,t=(0,a.sE)(n,(function(n){return n.code===e}));if(!t)return!1;var r=(0,o.Z)(t,"renderer"),i=!!(r&&r.url&&r.render),c=(0,o.Z)(t,"mediaTypes.video.renderer"),u=!!(c&&c.url&&c.render);return!!(i&&!0!==r.backupOnly||u&&!0!==c.backupOnly)}u.install=function(e){return new u({url:e.url,config:e.config,id:e.id,callback:e.callback,loaded:e.loaded,adUnitCode:e.adUnitCode})},u.prototype.getConfig=function(){return this.config},u.prototype.setRender=function(e){this._render=e},u.prototype.setEventHandlers=function(e){this.handlers=e},u.prototype.handleVideoEvent=function(e){var n=e.id,t=e.eventName;"function"==typeof this.handlers[t]&&this.handlers[t](),(0,i.logMessage)("Prebid Renderer event for id ".concat(n," type ").concat(t))},u.prototype.process=function(){for(;this.cmd.length>0;)try{this.cmd.shift().call()}catch(e){(0,i.logError)("Error processing Renderer command: ",e)}}},7263:function(e,n,t){"use strict";t.d(n,{f:function(){return a}});var r=t(265),i={};function o(e,n,t){var r=function(e,n){var t=i[e]=i[e]||{bidders:{}};return n?t.bidders[n]=t.bidders[n]||{}:t}(e,t);return r[n]=(r[n]||0)+1,r[n]}var a={incrementRequestsCounter:function(e){return o(e,"requestsCounter")},incrementBidderRequestsCounter:function(e,n){return o(e,"requestsCounter",n)},incrementBidderWinsCounter:function(e,n){return o(e,"winsCounter",n)},getRequestsCounter:function(e){return(0,r.Z)(i,"".concat(e,".requestsCounter"))||0},getBidderRequestsCounter:function(e,n){return(0,r.Z)(i,"".concat(e,".bidders.").concat(n,".requestsCounter"))||0},getBidderWinsCounter:function(e,n){return(0,r.Z)(i,"".concat(e,".bidders.").concat(n,".winsCounter"))||0}}},2801:function(e,n,t){"use strict";function r(e){var n=e;return{callBids:function(){},setBidderCode:function(e){n=e},getBidderCode:function(){return n}}}t.d(n,{Z:function(){return r}})},7602:function(e,n,t){"use strict";t.d(n,{qJ:function(){return G},VP:function(){return X},ZP:function(){return re},JO:function(){return Y},rp:function(){return J},uV:function(){return ee},Ct:function(){return ne},nX:function(){return Q}});var r=t(9853),i=t(265),o=t(1269),a=t(9017),c=t(1609),u=t(5755),s=t(8962),d=t(3494),f=t(1879),l=t(7263),g=t(2661);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&y(e,n)}function y(e,n){return y=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e},y(e,n)}function b(e){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,r=m(e);if(n){var i=m(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return h(this,t)}}function h(e,n){if(n&&("object"===p(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function E(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function S(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function A(e,n,t){return n&&S(e.prototype,n),t&&S(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function T(e,n,t){!function(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,n),n.set(e,t)}function I(e,n){return function(e,n){return n.get?n.get.call(e):n.value}(e,w(e,n,"get"))}function C(e,n,t){return function(e,n,t){if(n.set)n.set.call(e,t);else{if(!n.writable)throw new TypeError("attempted to set read only private field");n.value=t}}(e,w(e,n,"set"),t),t}function w(e,n,t){if(!n.has(e))throw new TypeError("attempted to "+t+" private field on non-instance");return n.get(e)}var O=new WeakMap,B=new WeakMap,_=new WeakMap,U=new WeakMap,R=new WeakMap,D=function(){function e(){var n,t;E(this,e),T(this,O,{writable:!0,value:void 0}),T(this,B,{writable:!0,value:void 0}),T(this,_,{writable:!0,value:void 0}),T(this,U,{writable:!0,value:void 0}),T(this,R,{writable:!0,value:void 0}),t=void 0,(n="generatedTime")in this?Object.defineProperty(this,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[n]=t,this.reset()}return A(e,[{key:"reset",value:function(){var e=this;C(this,_,new Promise((function(n){C(e,U,(function(t){C(e,R,!0),C(e,B,t),n(t)}))}))),C(this,O,!1),C(this,B,null),C(this,R,!1),this.generatedTime=null}},{key:"enable",value:function(){C(this,O,!0)}},{key:"enabled",get:function(){return I(this,O)}},{key:"ready",get:function(){return I(this,R)}},{key:"promise",get:function(){return I(this,R)?Promise.resolve(I(this,B)):(I(this,O)||I(this,U).call(this,null),I(this,_))}},{key:"setConsentData",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,r.timestamp)();this.generatedTime=n,I(this,U).call(this,e)}},{key:"getConsentData",value:function(){return I(this,B)}}]),e}(),k=function(e){v(t,e);var n=b(t);function t(){return E(this,t),n.apply(this,arguments)}return A(t,[{key:"getConsentMeta",value:function(){var e=this.getConsentData();if(e&&this.generatedTime)return{usp:e,generatedAt:this.generatedTime}}}]),t}(D),j=function(e){v(t,e);var n=b(t);function t(){return E(this,t),n.apply(this,arguments)}return A(t,[{key:"getConsentMeta",value:function(){var e=this.getConsentData();if(e&&e.vendorData&&this.generatedTime)return{gdprApplies:e.gdprApplies,consentStringSize:(0,r.isStr)(e.vendorData.tcString)?e.vendorData.tcString.length:0,generatedAt:this.generatedTime,apiVersion:e.apiVersion}}}]),t}(D);function N(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function P(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?N(Object(t),!0).forEach((function(n){q(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):N(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function x(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function q(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function M(){return M=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},M.apply(this,arguments)}var G={CLIENT:"client",SERVER:"server"},W=t(5644),F=t(2319),z={},L=z.bidderRegistry={},K=z.aliasRegistry={},V=[];s.vc.getConfig("s2sConfig",(function(e){e&&e.s2sConfig&&(V=(0,r.isArray)(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])}));var H={},Z=(0,d.z3)("sync",(function(e){var n=e.bidderCode,t=e.auctionId,o=e.bidderRequestId,a=e.adUnits,c=e.src;return a.reduce((function(e,a){return e.push(a.bids.filter((function(e){return e.bidder===n})).reduce((function(e,n){var u=null==(n=M({},n,(0,r.getDefinedParams)(a,["nativeParams","ortb2Imp","mediaType","renderer","storedAuctionResponse"]))).mediaTypes?a.mediaTypes:n.mediaTypes;return(0,r.isValidMediaTypes)(u)?n=M({},n,{mediaTypes:u}):(0,r.logError)("mediaTypes is not correctly configured for adunit ".concat(a.code)),e.push(M({},n,{adUnitCode:a.code,transactionId:a.transactionId,sizes:(0,i.Z)(u,"banner.sizes")||(0,i.Z)(u,"video.playerSize")||[],bidId:n.bid_id||(0,r.getUniqueIdentifierStr)(),bidderRequestId:o,auctionId:t,src:c,bidRequestsCount:l.f.getRequestsCounter(a.code),bidderRequestsCount:l.f.getBidderRequestsCounter(a.code,n.bidder),bidderWinsCount:l.f.getBidderWinsCounter(a.code,n.bidder)})),e}),[])),e}),[]).reduce(r.flatten,[]).filter((function(e){return""!==e}))}),"getBids"),Y=(0,d.z3)("sync",(function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.getS2SBidders,i=void 0===r?ee:r;if(null==n)return e;var o=i(n);return e.filter((function(e){return o.has(e.bidder)}))}),"filterBidsForAdUnit"),J=new j,Q=new k,X={getCoppa:function(){return!!s.vc.getConfig("coppa")}},$=(0,d.z3)("sync",(function(e,n){return(0,o.UB)(e,n)}),"setupAdUnitMediaTypes");function ee(e){(0,r.isArray)(e)||(e=[e]);var n=new Set([null]);return e.filter((function(e){return e&&e.enabled})).flatMap((function(e){return e.bidders})).forEach((function(e){return n.add(e)})),n}var ne=(0,d.z3)("sync",(function(e,n){var t,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.getS2SBidders,a=void 0===o?ee:o,c=a(n);return(0,r.getBidderCodes)(e).reduce((function(e,n){return e[c.has(n)?G.SERVER:G.CLIENT].push(n),e}),(q(t={},G.CLIENT,[]),q(t,G.SERVER,[]),t))}),"partitionBidders");function te(e,n,t){try{var i=L[e].getSpec();i&&i[n]&&"function"==typeof i[n]&&((0,r.logInfo)("Invoking ".concat(e,".").concat(n)),s.vc.runWithBidder(e,r.bind.call(i[n],i,t)))}catch(t){(0,r.logWarn)("Error calling ".concat(n," of ").concat(e))}}z.makeBidRequests=(0,d.z3)("sync",(function(e,n,t,i,o){F.emit(W.EVENTS.BEFORE_REQUEST_BIDS,e),(0,a.Fb)(e),e=$(e,o);var c=ne(e,V),u=c[G.CLIENT],d=c[G.SERVER];s.vc.getConfig("bidderSequence")===s.FD&&(u=(0,r.shuffle)(u));var l=(0,g.n)(),p=[];V.forEach((function(i){if(i&&i.enabled){var o=function(e,n){var t=(0,r.deepClone)(e);return t.forEach((function(e){e.bids=Y(e.bids,n).map((function(e){return e.bid_id=(0,r.getUniqueIdentifierStr)(),e}))})),t.filter((function(e){return 0!==e.bids.length}))}(e,i),a=(0,r.generateUUID)();d.forEach((function(e){var c=(0,r.getUniqueIdentifierStr)(),u={bidderCode:e,auctionId:t,bidderRequestId:c,uniquePbsTid:a,bids:Z({bidderCode:e,auctionId:t,bidderRequestId:c,adUnits:(0,r.deepClone)(o),src:W.S2S.SRC}),auctionStart:n,timeout:i.timeout,src:W.S2S.SRC,refererInfo:l};0!==u.bids.length&&p.push(u)})),o.forEach((function(e){var n=e.bids.filter((function(e){return(0,f.sE)(p,(function(n){return(0,f.sE)(n.bids,(function(n){return n.bidId===e.bid_id}))}))}));e.bids=n})),p.forEach((function(e){void 0===e.adUnitsS2SCopy&&(e.adUnitsS2SCopy=o.filter((function(e){return e.bids.length>0})))}))}}));var v=function(e){var n=(0,r.deepClone)(e);return n.forEach((function(e){e.bids=Y(e.bids,null)})),n.filter((function(e){return 0!==e.bids.length}))}(e);return u.forEach((function(e){var a=(0,r.getUniqueIdentifierStr)(),c={bidderCode:e,auctionId:t,bidderRequestId:a,bids:Z({bidderCode:e,auctionId:t,bidderRequestId:a,adUnits:(0,r.deepClone)(v),labels:o,src:"client"}),auctionStart:n,timeout:i,refererInfo:l},u=L[e];u||(0,r.logError)("Trying to make a request for bidder that does not exist: ".concat(e)),u&&c.bids&&0!==c.bids.length&&p.push(c)})),J.getConsentData()&&p.forEach((function(e){e.gdprConsent=J.getConsentData()})),Q.getConsentData()&&p.forEach((function(e){e.uspConsent=Q.getConsentData()})),p}),"makeBidRequests"),z.callBids=function(e,n,t,i,o,a,c){if(n.length){var d=(y=n.reduce((function(e,n){return e[Number(void 0!==n.src&&n.src===W.S2S.SRC)].push(n),e}),[[],[]]),b=2,function(e){if(Array.isArray(e))return e}(y)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,o=[],a=!0,c=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){c=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(c)throw i}}return o}}(y,b)||function(e,n){if(e){if("string"==typeof e)return x(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?x(e,n):void 0}}(y,b)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=d[0],l=d[1],g=[];l.forEach((function(e){for(var n=-1,t=0;t<g.length;++t)if(e.uniquePbsTid===g[t].uniquePbsTid){n=t;break}n<=-1&&g.push(e)}));var p=0,v=(0,r.generateUUID)();V.forEach((function(e){if(e&&g[p]&&ee(e).has(g[p].bidderCode)){var n=(0,u.O)(a,o?{request:o.request.bind(null,"s2s"),done:o.done}:void 0),c=e.bidders,s=L[e.adapter],d=g[p].uniquePbsTid,f=g[p].adUnitsS2SCopy,y=l.filter((function(e){return e.uniquePbsTid===d}));if(s){var b={tid:v,ad_units:f,s2sConfig:e};if(b.ad_units.length){var h=y.map((function(e){return e.start=(0,r.timestamp)(),i.bind(e)})),m=(0,r.getBidderCodes)(b.ad_units).filter((function(e){return c.includes(e)}));(0,r.logMessage)("CALLING S2S HEADER BIDDERS ==== ".concat(m.length>0?m.join(", "):'No bidder specified, using "ortb2Imp" definition(s) only')),y.forEach((function(e){F.emit(W.EVENTS.BID_REQUESTED,P(P({},e),{},{tid:v}))})),s.callBids(b,l,t,(function(){return h.forEach((function(e){return e()}))}),n)}}else(0,r.logError)("missing "+e.adapter);p++}})),f.forEach((function(e){e.start=(0,r.timestamp)();var n=L[e.bidderCode];s.vc.runWithBidder(e.bidderCode,(function(){(0,r.logMessage)("CALLING BIDDER"),F.emit(W.EVENTS.BID_REQUESTED,e)}));var d=(0,u.O)(a,o?{request:o.request.bind(null,e.bidderCode),done:o.done}:void 0),f=i.bind(e);try{s.vc.runWithBidder(e.bidderCode,r.bind.call(n.callBids,n,e,t,f,d,c,s.vc.callbackWithBidder(e.bidderCode)))}catch(n){(0,r.logError)("".concat(e.bidderCode," Bid Adapter emitted an uncaught error when parsing their bidRequest"),{e:n,bidRequest:e}),f()}}))}else(0,r.logWarn)("callBids executed with no bidRequests. Were they filtered by labels or sizing?");var y,b},z.videoAdapters=[],z.registerBidAdapter=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.supportedMediaTypes,o=void 0===i?[]:i;e&&n?"function"==typeof e.callBids?(L[n]=e,(0,f.q9)(o,"video")&&z.videoAdapters.push(n),(0,f.q9)(o,"native")&&a.Sg.push(n)):(0,r.logError)("Bidder adaptor error for bidder code: "+n+"bidder must implement a callBids() function"):(0,r.logError)("bidAdapter or bidderCode not specified")},z.aliasBidAdapter=function(e,n,t){if(void 0===L[n]){var i=L[e];if(void 0===i){var o=[];V.forEach((function(t){if(t.bidders&&t.bidders.length){var r=t&&t.bidders;t&&(0,f.q9)(r,n)?K[n]=e:o.push(e)}})),o.forEach((function(e){(0,r.logError)('bidderCode "'+e+'" is not an existing bidder.',"adapterManager.aliasBidAdapter")}))}else try{var u,s=function(e){var n=[];return(0,f.q9)(z.videoAdapters,e)&&n.push("video"),(0,f.q9)(a.Sg,e)&&n.push("native"),n}(e);if(i.constructor.prototype!=Object.prototype)(u=new i.constructor).setBidderCode(n);else{var d=i.getSpec(),l=t&&t.gvlid,g=t&&t.skipPbsAliasing;u=(0,c.newBidder)(M({},d,{code:n,gvlid:l,skipPbsAliasing:g})),K[n]=e}z.registerBidAdapter(u,n,{supportedMediaTypes:s})}catch(n){(0,r.logError)(e+" bidder does not currently support aliasing.","adapterManager.aliasBidAdapter")}}else(0,r.logMessage)('alias name "'+n+'" has been already specified.')},z.registerAnalyticsAdapter=function(e){var n=e.adapter,t=e.code,i=e.gvlid;n&&t?"function"==typeof n.enableAnalytics?(n.code=t,H[t]={adapter:n,gvlid:i}):(0,r.logError)('Prebid Error: Analytics adaptor error for analytics "'.concat(t,'"\n analytics adapter must implement an enableAnalytics() function')):(0,r.logError)("Prebid Error: analyticsAdapter or analyticsCode not specified")},z.enableAnalytics=function(e){(0,r.isArray)(e)||(e=[e]),(0,r._each)(e,(function(e){var n=H[e.provider];n&&n.adapter?n.adapter.enableAnalytics(e):(0,r.logError)("Prebid Error: no analytics adapter found in registry for '".concat(e.provider,"'."))}))},z.getBidAdapter=function(e){return L[e]},z.getAnalyticsAdapter=function(e){return H[e]},z.callTimedOutBidders=function(e,n,t){n=n.map((function(n){return n.params=(0,r.getUserConfiguredParams)(e,n.adUnitCode,n.bidder),n.timeout=t,n})),n=(0,r.groupBy)(n,"bidder"),Object.keys(n).forEach((function(e){te(e,"onTimeout",n[e])}))},z.callBidWonBidder=function(e,n,t){n.params=(0,r.getUserConfiguredParams)(t,n.adUnitCode,n.bidder),l.f.incrementBidderWinsCounter(n.adUnitCode,n.bidder),te(e,"onBidWon",n)},z.callSetTargetingBidder=function(e,n){te(e,"onSetTargeting",n)},z.callBidViewableBidder=function(e,n){te(e,"onBidViewable",n)},z.callBidderError=function(e,n,t){te(e,"onBidderError",{error:n,bidderRequest:t})};var re=z},1609:function(e,n,t){"use strict";t.r(n),t.d(n,{getIabSubCategory:function(){return D},isValid:function(){return j},newBidder:function(){return B},preloadBidderMappingFile:function(){return R},processBidderRequests:function(){return _},registerBidder:function(){return O},registerSyncInner:function(){return U},storage:function(){return C}});var r=t(2801),i=t(7602),o=t(8962),a=t(1477),c=t(7112),u=t(9017),s=t(1929),d=t(5644),f=t(2319),l=t(1879),g=t(5755),p=t(9853),v=t(265),y=t(8265),b=t(3494),h=t(5849),m=t(4766),E=t(9624);function S(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,o=[],a=!0,c=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){c=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(c)throw i}}return o}}(e,n)||function(e,n){if(e){if("string"==typeof e)return A(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function I(){return I=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},I.apply(this,arguments)}var C=(0,h.eA)("bidderFactory"),w=["cpm","ttl","creativeId","netRevenue","currency"];function O(e){var n=Array.isArray(e.supportedMediaTypes)?{supportedMediaTypes:e.supportedMediaTypes}:void 0;function t(e){var t=B(e);i.ZP.registerBidAdapter(t,e.code,n)}t(e),Array.isArray(e.aliases)&&e.aliases.forEach((function(n){var r,o,a=n;(0,p.isPlainObject)(n)&&(a=n.code,r=n.gvlid,o=n.skipPbsAliasing),i.ZP.aliasRegistry[a]=e.code,t(I({},e,{code:a,gvlid:r,skipPbsAliasing:o}))}))}function B(e){return I(new r.Z(e.code),{getSpec:function(){return Object.freeze(e)},registerSyncs:n,callBids:function(r,c,u,s,l,g){if(Array.isArray(r.bids)){var v={},y=[],b=r.bids.filter(t);if(0!==b.length){var h={};b.forEach((function(e){h[e.bidId]=e,e.adUnitCode||(e.adUnitCode=e.placementCode)})),_(e,b,r,s,g,{onRequest:function(e){return f.emit(d.EVENTS.BEFORE_BIDDER_HTTP,r,e)},onResponse:function(n){l(e.code),y.push(n)},onError:function(n,t){l(e.code),i.ZP.callBidderError(e.code,t,r),f.emit(d.EVENTS.BIDDER_ERROR,{error:t,bidderRequest:r}),(0,p.logError)("Server call for ".concat(e.code," failed: ").concat(n," ").concat(t.status,". Continuing without bids."))},onBid:function(n){var t,r,i,o,u=h[n.requestId];if(u){if(n.adapterCode=u.bidder,t=n.bidderCode,r=u.bidder,i=E.S.get(r,"allowAlternateBidderCodes"),o=E.S.get(r,"allowedAlternateBidderCodes"),t&&r&&r!==t&&(void 0!==i&&!i||(0,p.isArray)(o)&&"*"!==o[0]&&!o.includes(t)))return void(0,p.logWarn)("".concat(n.bidderCode," is not a registered partner or known bidder of ").concat(u.bidder,", hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings."));n.originalCpm=n.cpm,n.originalCurrency=n.currency,n.meta=n.meta||I({},n[u.bidder]);var s=I((0,a.m)(d.STATUS.GOOD,u),n);!function(e,n){v[e]=!0,j(e,n)&&c(e,n)}(u.adUnitCode,s)}else(0,p.logWarn)("Bidder ".concat(e.code," made bid for unknown request ID: ").concat(n.requestId,". Ignoring."))},onCompletion:m})}else m()}function m(){u(),o.vc.runWithBidder(e.code,(function(){f.emit(d.EVENTS.BIDDER_DONE,r),n(y,r.gdprConsent,r.uspConsent)}))}}});function n(n,t,r){U(e,n,t,r)}function t(n){return!!e.isBidRequestValid(n)||((0,p.logWarn)("Invalid bid sent to bidder ".concat(e.code,": ").concat(JSON.stringify(n))),!1)}}var _=(0,b.z3)("sync",(function(e,n,t,r,i,o){var a=o.onRequest,c=o.onResponse,u=o.onError,s=o.onBid,d=o.onCompletion,f=e.buildRequests(n,t);if(f&&0!==f.length){Array.isArray(f)||(f=[f]);var l=(0,p.delayExecution)(d,f.length);f.forEach((function(n){var t,o=i((function(t,r){try{t=JSON.parse(t)}catch(e){}var i;t={body:t,headers:{get:r.getResponseHeader.bind(r)}},c(t);try{i=e.interpretResponse(t,n)}catch(n){return(0,p.logError)("Bidder ".concat(e.code," failed to interpret the server's response. Continuing without bids"),null,n),void l()}i&&((0,p.isArray)(i)?i.forEach(s):s(i)),l()})),d=i((function(e,n){u(e,n),l()}));switch(a(n),n.method){case"GET":r("".concat(n.url).concat((t=n.data)?"?".concat("object"===T(t)?(0,p.parseQueryStringParameters)(t):t):""),{success:o,error:d},void 0,I({method:"GET",withCredentials:!0},n.options));break;case"POST":r(n.url,{success:o,error:d},"string"==typeof n.data?n.data:JSON.stringify(n.data),I({method:"POST",contentType:"text/plain",withCredentials:!0},n.options));break;default:(0,p.logWarn)("Skipping invalid request from ".concat(e.code,". Request type ").concat(n.type," must be GET or POST")),l()}}))}else d()}),"processBidderRequests"),U=(0,b.z3)("async",(function(e,n,t,r){var a=o.vc.getConfig("userSync.aliasSyncEnabled");if(e.getUserSyncs&&(a||!i.ZP.aliasRegistry[e.code])){var u=o.vc.getConfig("userSync.filterSettings"),s=e.getUserSyncs({iframeEnabled:!(!u||!u.iframe&&!u.all),pixelEnabled:!(!u||!u.image&&!u.all)},n,t,r);s&&(Array.isArray(s)||(s=[s]),s.forEach((function(n){c.k_.registerSync(n.type,e.code,n.url)})))}}),"registerSyncs");function R(e,n){if(!o.vc.getConfig("adpod.brandCategoryExclusion"))return e.call(this,n);n.filter((function(e){return(0,v.Z)(e,"mediaTypes.video.context")===y.Oh})).map((function(e){return e.bids.map((function(e){return e.bidder}))})).reduce(p.flatten,[]).filter(p.uniques).forEach((function(e){var n=i.ZP.getBidAdapter(e);if(n.getSpec().getMappingFileInfo){var t=n.getSpec().getMappingFileInfo(),r=t.refreshInDays?t.refreshInDays:1,o=t.localStorageKey?t.localStorageKey:n.getSpec().code,a=C.getDataFromLocalStorage(o);try{(!(a=a?JSON.parse(a):void 0)||(0,p.timestamp)()>a.lastUpdated+24*r*60*60*1e3)&&(0,g.h)(t.url,{success:function(n){try{n=JSON.parse(n);var t={lastUpdated:(0,p.timestamp)(),mapping:n.mapping};C.setDataInLocalStorage(o,JSON.stringify(t))}catch(n){(0,p.logError)("Failed to parse ".concat(e," bidder translation mapping file"))}},error:function(){(0,p.logError)("Failed to load ".concat(e," bidder translation file"))}})}catch(n){(0,p.logError)("Failed to parse ".concat(e," bidder translation mapping file"))}}})),e.call(this,n)}function D(e,n){var t=i.ZP.getBidAdapter(e);if(t.getSpec().getMappingFileInfo){var r=t.getSpec().getMappingFileInfo(),o=r.localStorageKey?r.localStorageKey:t.getBidderCode(),a=C.getDataFromLocalStorage(o);if(a){try{a=JSON.parse(a)}catch(n){(0,p.logError)("Failed to parse ".concat(e," mapping data stored in local storage"))}return a.mapping[n]?a.mapping[n]:null}}}function k(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.index,i=void 0===r?m.K.index:r;if((n.width||0===parseInt(n.width,10))&&(n.height||0===parseInt(n.height,10)))return n.width=parseInt(n.width,10),n.height=parseInt(n.height,10),!0;var o=i.getBidRequest(n),a=i.getMediaTypes(n),c=o&&o.sizes||a&&a.banner&&a.banner.sizes,u=(0,p.parseSizesInput)(c);if(1===u.length){var s=u[0].split("x"),d=S(s,2),f=d[0],l=d[1];return n.width=parseInt(f,10),n.height=parseInt(l,10),!0}return!1}function j(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.index,i=void 0===r?m.K.index:r;function o(){var e=Object.keys(n);return w.every((function(t){return(0,l.q9)(e,t)&&!(0,l.q9)([void 0,null],n[t])}))}function a(e){return"Invalid bid from ".concat(n.bidderCode,". Ignoring bid: ").concat(e)}return e?n?o()?"native"!==n.mediaType||(0,u.r4)(n,{index:i})?"video"!==n.mediaType||(0,s.Dn)(n,{index:i})?!("banner"===n.mediaType&&!k(e,n,{index:i})&&((0,p.logError)(a("Banner bids require a width and height")),1)):((0,p.logError)(a("Video bid does not have required vastUrl or renderer property")),!1):((0,p.logError)(a("Native bid missing some required properties.")),!1):((0,p.logError)(a("Bidder ".concat(n.bidderCode," is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params."))),!1):((0,p.logWarn)("Some adapter tried to add an undefined bid for ".concat(e,".")),!1):((0,p.logWarn)("No adUnitCode was supplied to addBidResponse."),!1)}(0,b.v5)("checkAdUnitSetup").before(R)},6996:function(e,n,t){"use strict";t.d(n,{B:function(){return c}});var r=t(1879),i=t(9853),o=new WeakMap,a=["adloox","criteo","outstream","adagio","browsi","brandmetrics","justtag"];function c(e,n,t,c){if(n&&e){if((0,r.q9)(a,n)){c||(c=document);var u=f(c,e);if(u)return t&&"function"==typeof t&&(u.loaded?t():u.callbacks.push(t)),u.tag;var s=o.get(c)||{},d={loaded:!1,tag:null,callbacks:[]};return s[e]=d,o.set(c,s),t&&"function"==typeof t&&d.callbacks.push(t),(0,i.logWarn)("module ".concat(n," is loading external JavaScript")),function(n,t,r){r||(r=document);var o=r.createElement("script");o.type="text/javascript",o.async=!0;var a=f(r,e);return a&&(a.tag=o),o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,t())}:o.onload=function(){t()},o.src=n,(0,i.insertElement)(o,r),o}(e,(function(){d.loaded=!0;try{for(var e=0;e<d.callbacks.length;e++)d.callbacks[e]()}catch(e){(0,i.logError)("Error executing callback","adloader.js:loadExternalScript",e)}}),c)}(0,i.logError)("".concat(n," not whitelisted for loading external JavaScript"))}else(0,i.logError)("cannot load external script without url and moduleCode");function f(e,n){var t=o.get(e);return t&&t[n]?t[n]:null}}},5755:function(e,n,t){"use strict";t.d(n,{O:function(){return u},h:function(){return c}});var r=t(8962),i=t(9853);function o(){return o=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},o.apply(this,arguments)}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var c=u();function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.request,c=n.done;return function(n,u,s){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};try{var f,l=d.method||(s?"POST":"GET"),g=document.createElement("a");g.href=n;var p="object"===a(u)&&null!==u?u:{success:function(){(0,i.logMessage)("xhr success")},error:function(e){(0,i.logError)("xhr error",null,e)}};if("function"==typeof u&&(p.success=u),(f=new window.XMLHttpRequest).onreadystatechange=function(){if(4===f.readyState){"function"==typeof c&&c(g.origin);var e=f.status;e>=200&&e<300||304===e?p.success(f.responseText,f):p.error(f.statusText,f)}},r.vc.getConfig("disableAjaxTimeout")||(f.ontimeout=function(){(0,i.logError)(" xhr timeout after ",f.timeout,"ms")}),"GET"===l&&s){var v=(0,i.parseUrl)(n,d);o(v.search,s),n=(0,i.buildUrl)(v)}f.open(l,n,!0),r.vc.getConfig("disableAjaxTimeout")||(f.timeout=e),d.withCredentials&&(f.withCredentials=!0),(0,i._each)(d.customHeaders,(function(e,n){f.setRequestHeader(n,e)})),d.preflight&&f.setRequestHeader("X-Requested-With","XMLHttpRequest"),f.setRequestHeader("Content-Type",d.contentType||"text/plain"),"function"==typeof t&&t(g.origin),"POST"===l&&s?f.send(s):f.send()}catch(e){(0,i.logError)("xhr construction",e),"object"===a(u)&&null!==u&&u.error(e)}}}},4892:function(e,n,t){"use strict";t.d(n,{D$:function(){return N},LX:function(){return W},RH:function(){return q},Yt:function(){return _},Yw:function(){return T},dg:function(){return M},e0:function(){return U},lU:function(){return k},mv:function(){return I},sq:function(){return D},vO:function(){return B}});var r=t(9853),i=t(265),o=t(5553),a=t(9017),c=t(905),u=t(4877),s=t(8962),d=t(7112),f=t(3494),l=t(1879),g=t(1929),p=t(8265),v=t(4766),y=t(9624);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function h(){return h=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},h.apply(this,arguments)}var m=d.k_.syncUsers,E=t(7602).ZP,S=t(2319),A=t(5644),T="inProgress",I="completed";S.on(A.EVENTS.BID_ADJUSTMENT,(function(e){!function(e){var n=e.bidderCode,t=e.cpm,i=y.S.get(n||null,"bidCpmAdjustment");if(i&&"function"==typeof i)try{t=i(e.cpm,h({},e))}catch(e){(0,r.logError)("Error during bid adjustment","bidmanager.js",e)}t>=0&&(e.cpm=t)}(e)}));var C={},w={},O=[];function B(e){var n,t,i,o,a=e.adUnits,c=e.adUnitCodes,u=e.callback,d=e.cbTimeout,f=e.labels,g=e.auctionId,p=a,y=f,b=c,h=[],B=[],D=[],N=g||(0,r.generateUUID)(),x=u,q=d,M=[],G=new Set;function W(){return{auctionId:N,timestamp:n,auctionEnd:t,auctionStatus:i,adUnits:p,adUnitCodes:b,labels:y,bidderRequests:h,noBids:D,bidsReceived:B,winningBids:M,timeout:q}}function F(e,n){if(n&&clearTimeout(o),void 0===t){var c=[];e&&((0,r.logMessage)("Auction ".concat(N," timedOut")),u=G,(c=h.map((function(e){return(e.bids||[]).filter((function(e){return!u.has(e.bidder)}))})).reduce(r.flatten,[])).length&&S.emit(A.EVENTS.BID_TIMEOUT,c)),i=I,t=Date.now(),S.emit(A.EVENTS.AUCTION_END,W()),R(p,(function(){try{if(null!=x){var n=b,t=B.filter(r.bind.call(r.adUnitsFilter,this,n)).reduce(z,{});x.apply(pbjs,[t,e,N]),x=null}}catch(e){(0,r.logError)("Error executing bidsBackHandler",null,e)}finally{c.length&&E.callTimedOutBidders(a,c,q);var i=s.vc.getConfig("userSync")||{};i.enableOverride||m(i.syncDelay)}}))}var u}function L(){s.vc.resetBidder(),(0,r.logInfo)("Bids Received for Auction with id: ".concat(N),B),i=I,F(!1,!0)}function K(e){G.add(e)}function V(e){var n=this;e.forEach((function(e){var n;n=e,h=h.concat(n)}));var t={},a={bidRequests:e,run:function(){var a,d;a=F.bind(null,!0),d=setTimeout(a,q),o=d,i=T,S.emit(A.EVENTS.AUCTION_INIT,W());var f=function(e,n){var t=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).index,i=void 0===t?v.K.index:t,o=0,a=!1,c=new Set,u={},d={};function f(e,n){null==d[e]&&(d[e]=Promise.resolve()),d[e]=d[e].then((function(){return Promise.resolve(n).catch((function(){}))}))}function g(e,t){var r=e.timeout;(null==r||r>n.getTimeout())&&(r=n.getTimeout());var i=n.getAuctionStart()+r-Date.now(),o=d[e.bidderRequestId],a=d[""];(null!=o||null!=a)&&i>0?Promise.race([new Promise((function(e){return setTimeout(e,i)})),Promise.resolve(a).then((function(){return o}))]).then(t):t()}function p(){o--,a&&0===o&&e()}function y(e,t){u[t.requestId]=!0,o++;var r=P({adUnitCode:e,bid:t,auctionId:n.getAuctionId()});"video"===r.mediaType?j(n,r,p):(k(n,r),p())}function b(){var t=n.getBidRequests(),i=s.vc.getConfig("auctionOptions");if(c.add(this),i&&!(0,r.isEmpty)(i)){var d=i.secondaryBidders;d&&!t.every((function(e){return(0,l.q9)(d,e.bidderCode)}))&&(t=t.filter((function(e){return!(0,l.q9)(d,e.bidderCode)})))}a=t.every((function(e){return c.has(e)})),this.bids.forEach((function(e){u[e.bidId]||(n.addNoBid(e),S.emit(A.EVENTS.NO_BID,e))})),a&&0===o&&e()}return{addBidResponse:function(e,n){var t=i.getBidderRequest(n);f(t&&t.bidderRequestId||"",_.call({dispatch:y},e,n))},adapterDone:function(){g(this,b.bind(this))}}}(L,n);E.callBids(p,e,f.addBidResponse,f.adapterDone,{request:function(e,n){u(C,n),u(t,e),w[e]||(w[e]={SRA:!0,origin:n}),t[e]>1&&(w[e].SRA=!1)},done:function(e){C[e]--,O[0]&&c(O[0])&&O.shift()}},q,K)}};function c(e){var n=!0,t=s.vc.getConfig("maxRequestsPerOrigin")||4;return e.bidRequests.some((function(e){var r=1,i=void 0!==e.src&&e.src===A.S2S.SRC?"s2s":e.bidderCode;return w[i]&&(!1===w[i].SRA&&(r=Math.min(e.bids.length,t)),C[w[i].origin]+r>t&&(n=!1)),!n})),n&&e.run(),n}function u(e,n){void 0===e[n]?e[n]=1:e[n]++}c(a)||((0,r.logWarn)("queueing auction due to limited endpoint capacity"),O.push(a))}return{addBidReceived:function(e){B=B.concat(e)},addNoBid:function(e){D=D.concat(e)},executeCallback:F,callBids:function(){i="started",n=Date.now();var e=E.makeBidRequests(p,n,N,q,y);(0,r.logInfo)("Bids Requested for Auction with id: ".concat(N),e),e.length<1?((0,r.logWarn)("No valid bid requests returned for auction"),L()):U.call({dispatch:V,context:this},e)},addWinningBid:function(e){M=M.concat(e),E.callBidWonBidder(e.bidder,e,a)},setBidTargeting:function(e){E.callSetTargetingBidder(e.bidder,e)},getWinningBids:function(){return M},getAuctionStart:function(){return n},getTimeout:function(){return q},getAuctionId:function(){return N},getAuctionStatus:function(){return i},getAdUnits:function(){return p},getAdUnitCodes:function(){return b},getBidRequests:function(){return h},getBidsReceived:function(){return B},getNoBids:function(){return D}}}var _=(0,f.z3)("sync",(function(e,n){this.dispatch.call(null,e,n)}),"addBidResponse"),U=(0,f.z3)("sync",(function(e){this.dispatch.call(this.context,e)}),"addBidderRequests"),R=(0,f.z3)("async",(function(e,n){n&&n()}),"bidsBackCallback");function D(e,n){n.timeToRespond>e.getTimeout()+s.vc.getConfig("timeoutBuffer")&&e.executeCallback(!0)}function k(e,n){var t,r,i;t=n,i=!0===y.S.get(t.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,t.bidderCode&&(i||t.dealId)&&(r=function(e,n){var t=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).index,r=void 0===t?v.K.index:t;if(!n)return{};var i=r.getBidRequest(n),o={},c=W(n.mediaType,e);return F(o,c,n,i),e&&y.S.getOwn(e,A.JSON_MAPPING.ADSERVER_TARGETING)&&(F(o,y.S.ownSettingsFor(e),n,i),n.sendStandardTargeting=y.S.get(e,"sendStandardTargeting")),n.native&&(o=h({},o,(0,a.Ur)(n))),o}(t.bidderCode,t)),t.adserverTargeting=h(t.adserverTargeting||{},r),S.emit(A.EVENTS.BID_RESPONSE,n),e.addBidReceived(n),D(e,n)}function j(e,n,t){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=o.index,c=void 0===a?v.K.index:a,u=!0,d=(0,i.Z)(c.getMediaTypes({requestId:n.originalRequestId||n.requestId,transactionId:n.transactionId}),"video"),f=d&&(0,i.Z)(d,"context");s.vc.getConfig("cache.url")&&f!==g.gZ&&(!n.videoCacheKey||s.vc.getConfig("cache.ignoreBidderCacheKey")?(u=!1,N(e,n,t,d)):n.vastUrl||((0,r.logError)("videoCacheKey specified but not required vastUrl for video bid"),u=!1)),u&&(k(e,n),t())}var N=(0,f.z3)("async",(function(e,n,t,i){(0,c.h)([n],(function(i,o){i?((0,r.logWarn)("Failed to save to the video cache: ".concat(i,". Video bid must be discarded.")),D(e,n)):""===o[0].uuid?((0,r.logWarn)("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."),D(e,n)):(n.videoCacheKey=o[0].uuid,n.vastUrl||(n.vastUrl=(0,c.z)(n.videoCacheKey)),k(e,n),t())}))}),"callPrebidCache");function P(e){var n=e.adUnitCode,t=e.bid,i=e.auctionId,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=a.index,d=void 0===c?v.K.index:c,f=d.getBidderRequest(t),l=f&&f.start||t.requestTimestamp,g=h({},t,{auctionId:i,responseTimestamp:(0,r.timestamp)(),requestTimestamp:l,cpm:parseFloat(t.cpm)||0,bidder:t.bidderCode,adUnitCode:n});g.timeToRespond=g.responseTimestamp-g.requestTimestamp,S.emit(A.EVENTS.BID_ADJUSTMENT,g);var p=d.getAdUnit(g).renderer,y=g.mediaType,m=d.getMediaTypes(g),E=m&&m[y],T=E&&E.renderer,I=null;T&&T.url&&T.render&&(!0!==T.backupOnly||!t.renderer)?I=T:p&&p.url&&p.render&&(!0!==p.backupOnly||!t.renderer)&&(I=p),I&&(g.renderer=u.Th.install({url:I.url,config:I.options}),g.renderer.setRender(I.render));var C=x(t.mediaType,m,s.vc.getConfig("mediaTypePriceGranularity")),w=(0,o.D)(g.cpm,"object"===b(C)?C:s.vc.getConfig("customPriceBucket"),s.vc.getConfig("currency.granularityMultiplier"));return g.pbLg=w.low,g.pbMg=w.med,g.pbHg=w.high,g.pbAg=w.auto,g.pbDg=w.dense,g.pbCg=w.custom,g}function x(e,n,t){if(e&&t){if(e===p.pX){var r=(0,i.Z)(n,"".concat(p.pX,".context"),"instream");if(t["".concat(p.pX,"-").concat(r)])return t["".concat(p.pX,"-").concat(r)]}return t[e]}}var q=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.index,r=void 0===t?v.K.index:t,i=x(e.mediaType,r.getMediaTypes(e),s.vc.getConfig("mediaTypePriceGranularity")),o="string"==typeof e.mediaType&&i?"string"==typeof i?i:"custom":s.vc.getConfig("priceGranularity");return o},M=function(e){return function(n){var t=e||q(n);return t===A.GRANULARITY_OPTIONS.AUTO?n.pbAg:t===A.GRANULARITY_OPTIONS.DENSE?n.pbDg:t===A.GRANULARITY_OPTIONS.LOW?n.pbLg:t===A.GRANULARITY_OPTIONS.MEDIUM?n.pbMg:t===A.GRANULARITY_OPTIONS.HIGH?n.pbHg:t===A.GRANULARITY_OPTIONS.CUSTOM?n.pbCg:void 0}};function G(e,n){return{key:e,val:"function"==typeof n?function(e,t){return n(e,t)}:function(e){return(0,r.getValue)(e,n)}}}function W(e,n){var t=A.TARGETING_KEYS,o=h({},y.S.settingsFor(null));if(o[A.JSON_MAPPING.ADSERVER_TARGETING]||(o[A.JSON_MAPPING.ADSERVER_TARGETING]=function(){var e=A.TARGETING_KEYS;return[G(e.BIDDER,"bidderCode"),G(e.AD_ID,"adId"),G(e.PRICE_BUCKET,M()),G(e.SIZE,"size"),G(e.DEAL,"dealId"),G(e.SOURCE,"source"),G(e.FORMAT,"mediaType"),G(e.ADOMAIN,(function(e){return e.meta&&e.meta.advertiserDomains&&e.meta.advertiserDomains.length>0?e.meta.advertiserDomains[0]:""}))]}()),"video"===e){var a=o[A.JSON_MAPPING.ADSERVER_TARGETING].slice();if(o[A.JSON_MAPPING.ADSERVER_TARGETING]=a,[t.UUID,t.CACHE_ID].forEach((function(e){void 0===(0,l.sE)(a,(function(n){return n.key===e}))&&a.push(G(e,"videoCacheKey"))})),s.vc.getConfig("cache.url")&&(!n||!1!==y.S.get(n,"sendStandardTargeting"))){var c=(0,r.parseUrl)(s.vc.getConfig("cache.url"));void 0===(0,l.sE)(a,(function(e){return e.key===t.CACHE_HOST}))&&a.push(G(t.CACHE_HOST,(function(e){return(0,i.Z)(e,"adserverTargeting.".concat(t.CACHE_HOST))?e.adserverTargeting[t.CACHE_HOST]:c.hostname})))}}return o}function F(e,n,t,i){var o=n[A.JSON_MAPPING.ADSERVER_TARGETING];return t.size=t.getSize(),(0,r._each)(o,(function(o){var a=o.key,c=o.val;if(e[a]&&(0,r.logWarn)("The key: "+a+" is being overwritten"),(0,r.isFn)(c))try{c=c(t,i)}catch(e){(0,r.logError)("bidmanager","ERROR",e)}(void 0===n.suppressEmptyKeys||!0!==n.suppressEmptyKeys)&&a!==A.TARGETING_KEYS.DEAL||!(0,r.isEmptyStr)(c)&&null!=c?e[a]=c:(0,r.logInfo)("suppressing empty key '"+a+"' from adserver targeting")})),e}function z(e,n){return e[n.adUnitCode]||(e[n.adUnitCode]={bids:[]}),e[n.adUnitCode].bids.push(n),e}},4766:function(e,n,t){"use strict";t.d(n,{K:function(){return s}});var r=t(9853),i=t(4892),o=t(1879);function a(){return a=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},a.apply(this,arguments)}function c(e){a(this,{getAuction:function(n){var t=n.auctionId;if(null!=t)return e().find((function(e){return e.getAuctionId()===t}))},getAdUnit:function(n){var t=n.transactionId;if(null!=t)return e().flatMap((function(e){return e.getAdUnits()})).find((function(e){return e.transactionId===t}))},getMediaTypes:function(e){var n=e.transactionId,t=e.requestId;if(null!=t){var r=this.getBidRequest({requestId:t});if(null!=r&&(null==n||r.transactionId===n))return r.mediaTypes}else if(null!=n){var i=this.getAdUnit({transactionId:n});if(null!=i)return i.mediaTypes}},getBidderRequest:function(n){var t=n.requestId,r=n.bidderRequestId;if(null!=t||null!=r){var i=e().flatMap((function(e){return e.getBidRequests()}));return null!=r&&(i=i.filter((function(e){return e.bidderRequestId===r}))),null==t?i[0]:i.find((function(e){return e.bids&&null!=e.bids.find((function(e){return e.bidId===t}))}))}},getBidRequest:function(n){var t=n.requestId;if(null!=t)return e().flatMap((function(e){return e.getBidRequests()})).flatMap((function(e){return e.bids})).find((function(e){return e&&e.bidId===t}))}})}var u=t(5644),s=function(){var e=[],n={addWinningBid:function(n){var t=(0,o.sE)(e,(function(e){return e.getAuctionId()===n.auctionId}));t?(n.status=u.BID_STATUS.RENDERED,t.addWinningBid(n)):(0,r.logWarn)("Auction not found when adding winning bid")},getAllWinningBids:function(){return e.map((function(e){return e.getWinningBids()})).reduce(r.flatten,[])},getBidsRequested:function(){return e.map((function(e){return e.getBidRequests()})).reduce(r.flatten,[])},getNoBids:function(){return e.map((function(e){return e.getNoBids()})).reduce(r.flatten,[])},getBidsReceived:function(){return e.map((function(e){if(e.getAuctionStatus()===i.mv)return e.getBidsReceived()})).reduce(r.flatten,[]).filter((function(e){return e}))},getAllBidsForAdUnitCode:function(n){return e.map((function(e){return e.getBidsReceived()})).reduce(r.flatten,[]).filter((function(e){return e&&e.adUnitCode===n}))},getAdUnits:function(){return e.map((function(e){return e.getAdUnits()})).reduce(r.flatten,[])},getAdUnitCodes:function(){return e.map((function(e){return e.getAdUnitCodes()})).reduce(r.flatten,[]).filter(r.uniques)},createAuction:function(n){var t=n.adUnits,r=n.adUnitCodes,o=n.callback,a=n.cbTimeout,c=n.labels,u=n.auctionId,s=(0,i.vO)({adUnits:t,adUnitCodes:r,callback:o,cbTimeout:a,labels:c,auctionId:u});return function(n){e.push(n)}(s),s},findBidByAdId:function(n){return(0,o.sE)(e.map((function(e){return e.getBidsReceived()})).reduce(r.flatten,[]),(function(e){return e.adId===n}))},getStandardBidderAdServerTargeting:function(){return(0,i.LX)()[u.JSON_MAPPING.ADSERVER_TARGETING]},setStatusForBids:function(t,r){var i=n.findBidByAdId(t);if(i&&(i.status=r),i&&r===u.BID_STATUS.BID_TARGETING_SET){var a=(0,o.sE)(e,(function(e){return e.getAuctionId()===i.auctionId}));a&&a.setBidTargeting(i)}},getLastAuctionId:function(){return e.length&&e[e.length-1].getAuctionId()},clearAllAuctions:function(){e.length=0}};return n.index=new c((function(){return e})),n}()},9624:function(e,n,t){"use strict";t.d(n,{S:function(){return f}});var r=t(265),i=t(9853),o=t(2528);function a(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){if(!n.has(e))throw new TypeError("attempted to get private field on non-instance");return t}var u=t(5644),s=new WeakSet;function d(e){return null==e?this.defaultScope:e}var f=new(function(){function e(n,t){var r,i;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),function(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(r=this,i=s),i.add(r),this.getSettings=n,this.defaultScope=t}var n,t;return n=e,(t=[{key:"get",value:function(e,n){var t=this.getOwn(e,n);return void 0===t&&(t=this.getOwn(null,n)),t}},{key:"getOwn",value:function(e,n){return e=c(this,s,d).call(this,e),(0,r.Z)(this.getSettings(),"".concat(e,".").concat(n))}},{key:"getScopes",value:function(){var e=this;return Object.keys(this.getSettings()).filter((function(n){return n!==e.defaultScope}))}},{key:"settingsFor",value:function(e){return(0,i.mergeDeep)({},this.ownSettingsFor(null),this.ownSettingsFor(e))}},{key:"ownSettingsFor",value:function(e){return e=c(this,s,d).call(this,e),this.getSettings()[e]||{}}}])&&a(n.prototype,t),Object.defineProperty(n,"prototype",{writable:!1}),e}())((function(){return(0,o.R)().bidderSettings||{}}),u.JSON_MAPPING.BD_SETTING_STANDARD)},1477:function(e,n,t){"use strict";t.d(n,{m:function(){return o}});var r=t(9853);function i(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.src,i=void 0===t?"client":t,o=n.bidder,a=void 0===o?"":o,c=n.bidId,u=n.transactionId,s=n.auctionId,d=i,f=e||0;function l(){switch(f){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}this.bidderCode=a,this.width=0,this.height=0,this.statusMessage=l(),this.adId=(0,r.getUniqueIdentifierStr)(),this.requestId=c,this.transactionId=u,this.auctionId=s,this.mediaType="banner",this.source=d,this.getStatusCode=function(){return f},this.getSize=function(){return this.width+"x"+this.height},this.getIdentifiers=function(){return{src:this.source,bidder:this.bidderCode,bidId:this.requestId,transactionId:this.transactionId,auctionId:this.auctionId}}}function o(e,n){return new i(e,n)}},8962:function(e,n,t){"use strict";t.d(n,{FD:function(){return v},vc:function(){return m}});var r=t(5553),i=t(1879),o=t(9853),a=t(265),c=["fpd"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function f(){return f=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},f.apply(this,arguments)}var l=t(5644),g="TRUE"===(0,o.getParameterByName)(l.DEBUG_MODE).toUpperCase(),p=window.location.origin,v="random",y={};y[v]=!0,y.fixed=!0;var b=v,h={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"},m=function(){var e,n,t,l=[],v=null;function m(){e={};var a={_debug:g,get debug(){return this._debug},set debug(e){this._debug=e},_bidderTimeout:3e3,get bidderTimeout(){return this._bidderTimeout},set bidderTimeout(e){this._bidderTimeout=e},_publisherDomain:p,get publisherDomain(){return this._publisherDomain},set publisherDomain(e){this._publisherDomain=e},_priceGranularity:h.MEDIUM,set priceGranularity(e){u(e)&&("string"==typeof e?this._priceGranularity=c(e)?e:h.MEDIUM:(0,o.isPlainObject)(e)&&(this._customPriceBucket=e,this._priceGranularity=h.CUSTOM,(0,o.logMessage)("Using custom price granularity")))},get priceGranularity(){return this._priceGranularity},_customPriceBucket:{},get customPriceBucket(){return this._customPriceBucket},_mediaTypePriceGranularity:{},get mediaTypePriceGranularity(){return this._mediaTypePriceGranularity},set mediaTypePriceGranularity(e){var n=this;this._mediaTypePriceGranularity=Object.keys(e).reduce((function(t,r){return u(e[r])?"string"==typeof e?t[r]=c(e[r])?e[r]:n._priceGranularity:(0,o.isPlainObject)(e)&&(t[r]=e[r],(0,o.logMessage)("Using custom price granularity for ".concat(r))):(0,o.logWarn)("Invalid price granularity for media type: ".concat(r)),t}),{})},_sendAllBids:!0,get enableSendAllBids(){return this._sendAllBids},set enableSendAllBids(e){this._sendAllBids=e},_useBidCache:!1,get useBidCache(){return this._useBidCache},set useBidCache(e){this._useBidCache=e},_deviceAccess:!0,get deviceAccess(){return this._deviceAccess},set deviceAccess(e){this._deviceAccess=e},_bidderSequence:b,get bidderSequence(){return this._bidderSequence},set bidderSequence(e){y[e]?this._bidderSequence=e:(0,o.logWarn)("Invalid order: ".concat(e,". Bidder Sequence was not set."))},_timeoutBuffer:400,get timeoutBuffer(){return this._timeoutBuffer},set timeoutBuffer(e){this._timeoutBuffer=e},_disableAjaxTimeout:!1,get disableAjaxTimeout(){return this._disableAjaxTimeout},set disableAjaxTimeout(e){this._disableAjaxTimeout=e},_maxNestedIframes:10,get maxNestedIframes(){return this._maxNestedIframes},set maxNestedIframes(e){this._maxNestedIframes=e},_auctionOptions:{},get auctionOptions(){return this._auctionOptions},set auctionOptions(e){(function(e){if(!(0,o.isPlainObject)(e))return(0,o.logWarn)("Auction Options must be an object"),!1;for(var n=0,t=Object.keys(e);n<t.length;n++){var r=t[n];if("secondaryBidders"!==r&&"suppressStaleRender"!==r)return(0,o.logWarn)("Auction Options given an incorrect param: ".concat(r)),!1;if("secondaryBidders"===r){if(!(0,o.isArray)(e[r]))return(0,o.logWarn)("Auction Options ".concat(r," must be of type Array")),!1;if(!e[r].every(o.isStr))return(0,o.logWarn)("Auction Options ".concat(r," must be only string")),!1}else if("suppressStaleRender"===r&&!(0,o.isBoolean)(e[r]))return(0,o.logWarn)("Auction Options ".concat(r," must be of type boolean")),!1}return!0})(e)&&(this._auctionOptions=e)}};function c(e){return(0,i.sE)(Object.keys(h),(function(n){return e===h[n]}))}function u(e){if(!e)return(0,o.logError)("Prebid Error: no value passed to `setPriceGranularity()`"),!1;if("string"==typeof e)c(e)||(0,o.logWarn)("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");else if((0,o.isPlainObject)(e)&&!(0,r.t)(e))return(0,o.logError)("Invalid custom price value passed to `setPriceGranularity()`"),!1;return!0}n&&C(Object.keys(n).reduce((function(e,t){return n[t]!==a[t]&&(e[t]=a[t]||{}),e}),{})),n=a,t={}}function E(){if(v&&t&&(0,o.isPlainObject)(t[v])){var e=t[v],r=new Set(Object.keys(n).concat(Object.keys(e)));return(0,i.Oc)(r).reduce((function(t,r){return void 0===e[r]?t[r]=n[r]:void 0===n[r]?t[r]=e[r]:(0,o.isPlainObject)(e[r])?t[r]=(0,o.mergeDeep)({},n[r],e[r]):t[r]=e[r],t}),{})}return f({},n)}function S(e){var n={};return Object.keys(e).forEach((function(t){var r="context"===t?"site":t;n[r]="site"===r||"user"===r?Object.keys(e[t]).reduce((function(n,r){return"data"===r?(0,o.mergeDeep)(n,{ext:{data:e[t][r]}}):(0,o.mergeDeep)(n,s({},r,e[t][r])),n}),{}):e[t]})),n}function A(e){var n={};return Object.keys(e).filter((function(e){return"context"===e})).forEach((function(t){Object.keys(e[t]).forEach((function(r){"data"===r?(0,o.mergeDeep)(n,{ext:{data:e[t][r]}}):"object"!==d(e[t][r])||Array.isArray(e[t][r])?(0,o.mergeDeep)(n,{ext:{data:s({},r.toLowerCase(),e[t][r])}}):Object.keys(e[t][r]).forEach((function(i){(0,o.mergeDeep)(n,{ext:{data:s({},r.toLowerCase(),s({},i.toLowerCase(),e[t][r][i]))}})}))}))})),n}function T(t){if((0,o.isPlainObject)(t)){var r=Object.keys(t),i={};r.forEach((function(r){var a="fpd"===r?"ortb2":r,c="fpd"===r?S(t[r]):t[r];(0,o.isPlainObject)(e[a])&&(0,o.isPlainObject)(c)&&(c=f({},e[a],c)),i[a]=n[a]=c})),C(i)}else(0,o.logError)("setConfig options must be an object")}function I(e,n){var t=n;if("string"!=typeof e&&(t=e,e="*"),"function"==typeof t){var r={topic:e,callback:t};return l.push(r),function(){l.splice(l.indexOf(r),1)}}(0,o.logError)("listener must be a function")}function C(e){var n=Object.keys(e);l.filter((function(e){return(0,i.q9)(n,e.topic)})).forEach((function(n){n.callback(s({},n.topic,e[n.topic]))})),l.filter((function(e){return"*"===e.topic})).forEach((function(n){return n.callback(e)}))}function w(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{r(e),e.bidders.forEach((function(r){t[r]||(t[r]={}),Object.keys(e.config).forEach((function(i){var a="fpd"===i?"ortb2":i,c="fpd"===i?S(e.config[i]):e.config[i];if((0,o.isPlainObject)(c)){var u=n?o.mergeDeep:Object.assign;t[r][a]=u({},t[r][a]||{},c)}else t[r][a]=c}))}))}catch(e){(0,o.logError)(e)}function r(e){if(!(0,o.isPlainObject)(e))throw"setBidderConfig bidder options must be an object";if(!Array.isArray(e.bidders)||!e.bidders.length)throw"setBidderConfig bidder options must contain a bidders list with at least 1 bidder";if(!(0,o.isPlainObject)(e.config))throw"setBidderConfig bidder options must contain a config object"}}function O(e,n){v=e;try{return n()}finally{B()}}function B(){v=null}return m(),{getCurrentBidder:function(){return v},resetBidder:B,getConfig:function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){var e=arguments.length<=0?void 0:arguments[0];return e?(0,a.Z)(E(),e):E()}return I.apply(void 0,arguments)},readConfig:function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){var e=arguments.length<=0?void 0:arguments[0],n=(0,o.deepClone)(E());return e?(0,a.Z)(n,e):n}return I.apply(void 0,arguments)},setConfig:T,mergeConfig:function(e){if((0,o.isPlainObject)(e)){var n=Object.keys(e).reduce((function(n,t){var r=E()[t]||{};return n[t]=(0,o.mergeDeep)(r,e[t]),n}),{});return T(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({},n)),n}(0,o.logError)("mergeConfig input must be an object")},setDefaults:function(t){(0,o.isPlainObject)(e)?(f(e,t),f(n,t)):(0,o.logError)("defaults must be an object")},resetConfig:m,runWithBidder:O,callbackWithBidder:function(e){return function(n){return function(){if("function"==typeof n){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return O(e,o.bind.call.apply(o.bind,[n,this].concat(r)))}(0,o.logWarn)("config.callbackWithBidder callback is not a function")}}},setBidderConfig:w,getBidderConfig:function(){return t},mergeBidderConfig:function(e){return w(e,!0)},convertAdUnitFpd:function(e){var n=[];return e.forEach((function(e){var t;e.fpd?(e.ortb2Imp?(0,o.mergeDeep)(e.ortb2Imp,A(e.fpd)):e.ortb2Imp=A(e.fpd),n.push(((t=e).fpd,function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(t,c)))):n.push(e)})),n},getLegacyFpd:function(e){if("object"===d(e)){var n={};return Object.keys(e).forEach((function(t){var r="site"===t?"context":t;n[r]="context"===r||"user"===r?Object.keys(e[t]).filter((function(e){return"data"!==e})).reduce((function(n,r){return"ext"===r?(0,o.mergeDeep)(n,e[t][r]):(0,o.mergeDeep)(n,s({},r,e[t][r])),n}),{}):e[t]})),n}},getLegacyImpFpd:function(e){if("object"===d(e)){var n={};return(0,a.Z)(e,"ext.data")&&Object.keys(e.ext.data).forEach((function(t){"pbadslot"===t?(0,o.mergeDeep)(n,{context:{pbAdSlot:e.ext.data[t]}}):"adserver"===t?(0,o.mergeDeep)(n,{context:{adServer:e.ext.data[t]}}):(0,o.mergeDeep)(n,{context:{data:s({},t,e.ext.data[t])}})})),n}}}}()},5553:function(e,n,t){"use strict";t.d(n,{D:function(){return d},t:function(){return l}});var r=t(1879),i=t(9853),o={buckets:[{max:5,increment:.5}]},a={buckets:[{max:20,increment:.1}]},c={buckets:[{max:20,increment:.01}]},u={buckets:[{max:3,increment:.01},{max:8,increment:.05},{max:20,increment:.5}]},s={buckets:[{max:5,increment:.05},{max:10,increment:.1},{max:20,increment:.5}]};function d(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=parseFloat(e);return isNaN(r)&&(r=""),{low:""===r?"":f(e,o,t),med:""===r?"":f(e,a,t),high:""===r?"":f(e,c,t),auto:""===r?"":f(e,s,t),dense:""===r?"":f(e,u,t),custom:""===r?"":f(e,n,t)}}function f(e,n,t){var i="";if(!l(n))return i;var o=n.buckets.reduce((function(e,n){return e.max>n.max?e:n}),{max:0}),a=0,c=(0,r.sE)(n.buckets,(function(n){if(e>o.max*t){var r=n.precision;void 0===r&&(r=2),i=(n.max*t).toFixed(r)}else{if(e<=n.max*t&&e>=a*t)return n.min=a,n;a=n.max}}));return c&&(i=function(e,n,t){var r=void 0!==n.precision?n.precision:2,i=n.increment*t,o=n.min*t,a=Math.pow(10,r+2),c=(e*a-o*a)/(i*a),u=Math.floor(c)*i+o;return(u=Number(u.toFixed(10))).toFixed(r)}(e,c,t)),i}function l(e){if((0,i.isEmpty)(e)||!e.buckets||!Array.isArray(e.buckets))return!1;var n=!0;return e.buckets.forEach((function(e){e.max&&e.increment||(n=!1)})),n}},3636:function(e,n,t){"use strict";t.d(n,{$8:function(){return A},JI:function(){return l},gF:function(){return g},wt:function(){return T}});var r,i,o=t(8962),a=t(4892),c=t(3494),u=(0,t(9853).prefixLog)("DEBUG:"),s=u.logWarn,d=u.logMessage,f="pbjs:debugging",l=[function(e){p(),function(e){r=E.bind(e),a.Yt.before(r,5),i=S.bind(e),a.e0.before(i,5)}(e)}],g=[p];function p(){a.Yt.getHooks({hook:r}).remove(),a.e0.getHooks({hook:i}).remove()}function v(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o.vc.setConfig({debug:!0}),l.forEach((function(n){return n(e)})),d("bidder overrides enabled".concat(n?" from session":""))}function y(){g.forEach((function(e){return e()})),d("bidder overrides disabled")}function b(e,n,t){return!(!e.bidder||e.bidder===n)||!(!e.adUnitCode||e.adUnitCode===t)}function h(e,n){return Array.isArray(e)&&-1===e.indexOf(n)}function m(e,n,t){return Object.keys(e).filter((function(e){return-1===["adUnitCode","bidder"].indexOf(e)})).reduce((function(n,r){return d("bidder overrides changed '".concat(n.adUnitCode,"/").concat(n.bidderCode,"' ").concat(t,".").concat(r," from '").concat(n[r],".js' to '").concat(e[r],"'")),n[r]=e[r],n.isDebug=!0,n}),n)}function E(e,n,t){var r=this;h(r.bidders,t.bidderCode)?s("bidder '".concat(t.bidderCode,"' excluded from auction by bidder overrides")):(Array.isArray(r.bids)&&r.bids.forEach((function(e){b(e,t.bidderCode,n)||m(e,t,"bidder")})),e(n,t))}function S(e,n){var t=this,r=n.filter((function(e){return!h(t.bidders,e.bidderCode)||(s("bidRequest '".concat(e.bidderCode,"' excluded from auction by bidder overrides")),!1)}));Array.isArray(t.bidRequests)&&r.forEach((function(e){t.bidRequests.forEach((function(n){e.bids.forEach((function(t){b(n,e.bidderCode,t.adUnitCode)||m(n,t,"bidRequest")}))}))})),e(r)}var A=(0,c.z3)("sync",(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.sessionStorage,r=void 0===t?window.sessionStorage:t;if(e.enabled)try{r.setItem(f,JSON.stringify(e))}catch(e){}else try{r.removeItem(f)}catch(e){}}));function T(e){var n;try{e=e||window.sessionStorage,n=JSON.parse(e.getItem(f))}catch(e){}n&&v(n,!0)}o.vc.getConfig("debugging",(function(e){return function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).sessionStorage,t=void 0===n?window.sessionStorage:n;A(e,{sessionStorage:t}),e.enabled?v(e):y()}(e.debugging)}))},2319:function(e,n,t){"use strict";function r(){return r=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(this,arguments)}t.r(n),t.d(n,{emit:function(){return y},get:function(){return p},getEvents:function(){return v},off:function(){return g},on:function(){return l}});var i=t(9853),o=t(5644),a=Array.prototype.slice,c=Array.prototype.push,u=i._map(o.EVENTS,(function(e){return e})),s=o.EVENT_ID_PATHS,d=[],f=function(){var e={},n={};function t(n,t){i.logMessage("Emitting event for: "+n);var r=t[0]||{},o=r[s[n]],a=e[n]||{que:[]},u=i._map(a,(function(e,n){return n})),f=[];d.push({eventType:n,args:r,id:o,elapsedTime:i.getPerformanceNow()}),o&&i.contains(u,o)&&c.apply(f,a[o].que),c.apply(f,a.que),i._each(f,(function(e){if(e)try{e.apply(null,t)}catch(e){i.logError("Error executing handler:","events.js",e)}}))}return n.on=function(n,t,r){if(function(e){return i.contains(u,e)}(n)){var o=e[n]||{que:[]};r?(o[r]=o[r]||{que:[]},o[r].que.push(t)):o.que.push(t),e[n]=o}else i.logError("Wrong event name : "+n+" Valid event names :"+u)},n.emit=function(e){var n=a.call(arguments,1);t(e,n)},n.off=function(n,t,r){var o=e[n];i.isEmpty(o)||i.isEmpty(o.que)&&i.isEmpty(o[r])||r&&(i.isEmpty(o[r])||i.isEmpty(o[r].que))||(r?i._each(o[r].que,(function(e){var n=o[r].que;e===t&&n.splice(n.indexOf(e),1)})):i._each(o.que,(function(e){var n=o.que;e===t&&n.splice(n.indexOf(e),1)})),e[n]=o)},n.get=function(){return e},n.getEvents=function(){var e=[];return i._each(d,(function(n){var t=r({},n);e.push(t)})),e},n}(),l=f.on,g=f.off,p=f.get,v=f.getEvents,y=f.emit},3494:function(e,n,t){"use strict";t.d(n,{Bx:function(){return l},bA:function(){return f},o0:function(){return s},v5:function(){return u},z3:function(){return c}});var r=t(1432),i=t.n(r);function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return a(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var c=i()({ready:i().SYNC|i().ASYNC|i().QUEUE}),u=c.get;function s(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15,r=e.getHooks({hook:n});0===r.length&&e.before(n,t)}var d={};function f(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.postInstallAllowed,i=void 0!==r&&r;c("async",(function(t){t.forEach((function(e){return n.apply(void 0,o(e))})),i&&(d[e]=n)}),e)([])}function l(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];var i=d[e];if(i)return i.apply(void 0,t);u(e).before((function(e,n){n.push(t),e(n)}))}},8265:function(e,n,t){"use strict";t.d(n,{B5:function(){return r},Mk:function(){return o},Oh:function(){return a},pX:function(){return i}});var r="native",i="video",o="banner",a="adpod"},9017:function(e,n,t){"use strict";t.d(n,{Fb:function(){return v},JL:function(){return E},Sg:function(){return l},Ur:function(){return h},e6:function(){return b},eK:function(){return m},r4:function(){return y},xc:function(){return g}});var r=t(265),i=t(9853),o=t(1879),a=t(4766);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){d(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var f=t(5644),l=[],g=Object.keys(f.NATIVE_KEYS).map((function(e){return f.NATIVE_KEYS[e]})),p={image:{image:{required:!0},title:{required:!0},sponsoredBy:{required:!0},clickUrl:{required:!0},body:{required:!1},icon:{required:!1}}};function v(e){e.forEach((function(e){var n,t,a=e.nativeParams||(0,r.Z)(e,"mediaTypes.native");a&&(e.nativeParams=(n=a)&&n.type&&((t=n.type)&&(0,o.q9)(Object.keys(p),t)||((0,i.logError)("".concat(t," nativeParam is not supported")),0))?p[n.type]:n)}))}function y(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.index,i=void 0===t?a.K.index:t;if(!(0,r.Z)(e,"native.clickUrl"))return!1;var c=i.getAdUnit(e).nativeParams;if(!c)return!0;var u=Object.keys(c).filter((function(e){return c[e].required})),s=Object.keys(e.native).filter((function(n){return e.native[n]}));return u.every((function(e){return(0,o.q9)(s,e)}))}function b(e,n){var t;return"click"===e.action?t=n.native&&n.native.clickTrackers:(t=n.native&&n.native.impressionTrackers,n.native&&n.native.javascriptTrackers&&(0,i.insertHtmlIntoIframe)(n.native.javascriptTrackers)),(t||[]).forEach(i.triggerPixel),e.action}function h(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.index,i=void 0===t?a.K.index:t,o={},c=i.getAdUnit(e);(0,r.Z)(c,"nativeParams.rendererUrl")?e.native.rendererUrl=S(c.nativeParams.rendererUrl):(0,r.Z)(c,"nativeParams.adTemplate")&&(e.native.adTemplate=S(c.nativeParams.adTemplate));var u=!1!==(0,r.Z)(c,"nativeParams.sendTargetingKeys"),d=A(c),f=s(s({},e.native),e.native.ext);return delete f.ext,Object.keys(f).forEach((function(n){var t=d[n],i=S(e.native[n])||S((0,r.Z)(e,"native.ext.".concat(n)));if("adTemplate"!==n&&t&&i){var a=(0,r.Z)(c,"nativeParams.".concat(n,".sendId"));"boolean"!=typeof a&&(a=(0,r.Z)(c,"nativeParams.ext.".concat(n,".sendId"))),a&&(i="".concat(t,":").concat(e.adId));var s=(0,r.Z)(c,"nativeParams.".concat(n,".sendTargetingKeys"));"boolean"!=typeof s&&(s=(0,r.Z)(c,"nativeParams.ext.".concat(n,".sendTargetingKeys"))),("boolean"==typeof s?s:u)&&(o[t]=i)}})),o}function m(e,n){var t={message:"assetResponse",adId:e.adId,assets:[]};return n.native.hasOwnProperty("adTemplate")&&(t.adTemplate=S(n.native.adTemplate)),n.native.hasOwnProperty("rendererUrl")&&(t.rendererUrl=S(n.native.rendererUrl)),e.assets.forEach((function(e){var r=(0,i.getKeyByValue)(f.NATIVE_KEYS,e),o=S(n.native[r]);t.assets.push({key:r,value:o})})),t}function E(e,n){var t={message:"assetResponse",adId:e.adId,assets:[]};return Object.keys(n.native).forEach((function(e,r){if("adTemplate"===e&&n.native[e])t.adTemplate=S(n.native[e]);else if("rendererUrl"===e&&n.native[e])t.rendererUrl=S(n.native[e]);else if("ext"===e)Object.keys(n.native[e]).forEach((function(r){if(n.native[e][r]){var i=S(n.native[e][r]);t.assets.push({key:r,value:i})}}));else if(n.native[e]&&f.NATIVE_KEYS.hasOwnProperty(e)){var i=S(n.native[e]);t.assets.push({key:e,value:i})}})),t}function S(e){return"object"===c(e)&&e.url?e.url:e}function A(e){var n={};return(0,r.Z)(e,"nativeParams.ext")&&Object.keys(e.nativeParams.ext).forEach((function(e){n[e]="hb_native_".concat(e)})),s(s({},f.NATIVE_KEYS),n)}},1879:function(e,n,t){"use strict";function r(e,n,t){return e&&e.includes(n,t)||!1}function i(){return Array.from.apply(Array,arguments)}function o(e,n,t){return e&&e.find(n,t)}function a(e,n,t){return e&&e.findIndex(n,t)}t.d(n,{Oc:function(){return i},cx:function(){return a},q9:function(){return r},sE:function(){return o}})},2786:function(e,n,t){"use strict";t.d(n,{zh:function(){return oe},O5:function(){return ae}});var r=t(2528),i=t(9853),o=t(265),a=t(2319),c=t(9017),u=t(5644),s=t(4766),d=t(1879),f=t(4877),l=t(8962),g=u.EVENTS,p=g.AD_RENDER_FAILED,v=g.AD_RENDER_SUCCEEDED;function y(e){var n=e.reason,t=e.message,r=e.bid,o=e.id,c={reason:n,message:t};r&&(c.bid=r),o&&(c.adId=o),(0,i.logError)(t),a.emit(p,c)}function b(e){var n=e.doc,t=e.bid,r=e.id,i={doc:n};t&&(i.bid=t),r&&(i.adId=r),a.emit(v,i)}var h=u.EVENTS.BID_WON,m=u.EVENTS.STALE_RENDER,E={"Prebid Request":function(e,n,t){if(null!=t){if(t.status!==u.BID_STATUS.RENDERED||((0,i.logWarn)("Ad id ".concat(t.adId," has been rendered before")),a.emit(m,t),!(0,o.Z)(l.vc.getConfig("auctionOptions"),"suppressStaleRender"))){try{!function(e,n){var t=e.adId,r=e.ad,o=e.adUrl,a=e.width,c=e.height,u=e.renderer,s=e.cpm,d=e.originalCpm;(0,f.Pd)(u)?(0,f._U)(u,e):t&&(A(e),n({message:"Prebid Response",ad:(0,i.replaceAuctionPrice)(r,d||s),adUrl:(0,i.replaceAuctionPrice)(o,d||s),adId:t,width:a,height:c}))}(t,e)}catch(e){return void y({reason:u.AD_RENDER_FAILED_REASON.EXCEPTION,message:e.message,id:n.adId,bid:t})}s.K.addWinningBid(t),a.emit(h,t)}}else y({reason:u.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD,message:"Cannot find ad '".concat(n.adId,"' for cross-origin render request"),id:n.adId})},"Prebid Native":function(e,n,t){if(null!=t)switch(n.action){case"assetRequest":e((0,c.eK)(n,t));break;case"allAssetRequest":e((0,c.JL)(n,t));break;case"resizeNativeHeight":t.height=n.height,t.width=n.width,A(t);break;default:if("click"===(0,c.e6)(n,t))return;s.K.addWinningBid(t),a.emit(h,t)}else(0,i.logError)("Cannot find ad '".concat(n.adId,"' for x-origin event request"))},"Prebid Event":function(e,n,t){if(null!=t)if(t.status===u.BID_STATUS.RENDERED)switch(n.event){case u.EVENTS.AD_RENDER_FAILED:y({bid:t,id:n.adId,reason:n.info.reason,message:n.info.message});break;case u.EVENTS.AD_RENDER_SUCCEEDED:b({doc:null,bid:t,id:n.adId});break;default:(0,i.logError)("Received x-origin event request for unsupported event: '".concat(n.event,"' (adId: '").concat(n.adId,"')"))}else(0,i.logWarn)("Received x-origin event request without corresponding render request for ad '".concat(n.adId,"'"));else(0,i.logError)("Cannot find ad '".concat(n.adId,"' for x-origin event request"))}};function S(e){var n=e.message?"message":"data",t={};try{t=JSON.parse(e[n])}catch(e){return}if(t&&t.adId&&t.message){var r=(0,d.sE)(s.K.getBidsReceived(),(function(e){return e.adId===t.adId}));E.hasOwnProperty(t.message)&&E[t.message](function(e){return null==e.origin&&0===e.ports.length?function(){var e="Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";throw(0,i.logError)(e),new Error(e)}:e.ports.length>0?function(n){e.ports[0].postMessage(JSON.stringify(n))}:function(n){e.source.postMessage(JSON.stringify(n),e.origin)}}(e),t,r)}}function A(e){var n=e.adId,t=e.adUnitCode,r=e.width,o=e.height;["div","iframe"].forEach((function(e){var a=function(e){var r=function(e,n){return(0,i.isGptPubadsDefined)()?function(e){var n=(0,d.sE)(window.googletag.pubads().getSlots(),(function(n){return(0,d.sE)(n.getTargetingKeys(),(function(t){return(0,d.q9)(n.getTargeting(t),e)}))}));return n?n.getSlotElementId():null}(e):(0,i.isApnGetTagDefined)()?function(e){var n=window.apntag.getTag(e);return n&&n.targetId}(n):n}(n,t),o=document.getElementById(r);return o&&o.querySelector(e)}(e+':not([style*="display: none"])');if(a){var c=a.style;c.width=r+"px",c.height=o+"px"}else(0,i.logWarn)("Unable to locate matching page element for adUnitCode ".concat(t,". Can't resize it to ad's dimensions. Please review setup."))}))}var T=t(7112),I=t(9742),C=t(3494),w=t(3636),O=t(7263),B=t(1477),_=t(5849),U=t(7602);function R(e){return function(e){if(Array.isArray(e))return D(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return D(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?D(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function D(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function k(){return k=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},k.apply(this,arguments)}var j=(0,r.R)(),N=t(5644),P=t(7602).ZP,x=t(2319),q=T.k_.triggerUserSyncs,M=N.EVENTS,G=M.ADD_AD_UNITS,W=M.BID_WON,F=M.REQUEST_BIDS,z=M.SET_TARGETING,L=M.STALE_RENDER,K=N.AD_RENDER_FAILED_REASON,V=K.PREVENT_WRITING_ON_MAIN_DOCUMENT,H=K.NO_AD,Z=K.EXCEPTION,Y=K.CANNOT_FIND_AD,J=K.MISSING_DOC_OR_ADID,Q={bidWon:function(e){var n=s.K.getBidsRequested().map((function(e){return e.bids.map((function(e){return e.adUnitCode}))})).reduce(i.flatten).filter(i.uniques);if((0,i.contains)(n,e))return!0;(0,i.logError)('The "'+e+'" placement is not defined.')}};function X(e,n,t){e.defaultView&&e.defaultView.frameElement&&(e.defaultView.frameElement.width=n,e.defaultView.frameElement.height=t)}function $(e,n){var t=[];return(0,i.isArray)(e)&&(n?e.length===n:e.length>0)&&(e.every((function(e){return(0,i.isArrayOfNums)(e,2)}))?t=e:(0,i.isArrayOfNums)(e,2)&&t.push(e)),t}function ee(e){var n=(0,i.deepClone)(e),t=n.mediaTypes.banner,r=$(t.sizes);return r.length>0?(t.sizes=r,n.sizes=r):((0,i.logError)("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."),delete n.mediaTypes.banner),n}function ne(e){var n=(0,i.deepClone)(e),t=n.mediaTypes.video;if(t.playerSize){var r="number"==typeof t.playerSize[0]?2:1,o=$(t.playerSize,r);o.length>0?(2===r&&(0,i.logInfo)("Transforming video.playerSize from [640,480] to [[640,480]] so it's in the proper format."),t.playerSize=o,n.sizes=o):((0,i.logError)("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."),delete n.mediaTypes.video.playerSize)}return n}function te(e){var n=(0,i.deepClone)(e),t=n.mediaTypes.native;return t.image&&t.image.sizes&&!Array.isArray(t.image.sizes)&&((0,i.logError)("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."),delete n.mediaTypes.native.image.sizes),t.image&&t.image.aspect_ratios&&!Array.isArray(t.image.aspect_ratios)&&((0,i.logError)("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."),delete n.mediaTypes.native.image.aspect_ratios),t.icon&&t.icon.sizes&&!Array.isArray(t.icon.sizes)&&((0,i.logError)("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."),delete n.mediaTypes.native.icon.sizes),n}function re(e,n){var t=(0,o.Z)(e,"mediaTypes.".concat(n,".pos"));if(!(0,i.isNumber)(t)||isNaN(t)||!isFinite(t)){var r="Value of property 'pos' on ad unit ".concat(e.code," should be of type: Number");(0,i.logWarn)(r),x.emit(N.EVENTS.AUCTION_DEBUG,{type:"WARNING",arguments:r}),delete e.mediaTypes[n].pos}return e}function ie(e){var n=function(n){return"adUnit.code '".concat(e.code,"' ").concat(n)},t=e.mediaTypes,r=e.bids;return null==r||(0,i.isArray)(r)?null==r&&null==e.ortb2Imp?((0,i.logError)(n("has no 'adUnit.bids' and no 'adUnit.ortb2Imp'. Removing adUnit from auction")),null):t&&0!==Object.keys(t).length?(null==e.ortb2Imp||null!=r&&0!==r.length||(e.bids=[{bidder:null}],(0,i.logMessage)(n("defines 'adUnit.ortb2Imp' with no 'adUnit.bids'; it will be seen only by S2S adapters"))),e):((0,i.logError)(n("does not define a 'mediaTypes' object. This is a required field for the auction, so this adUnit has been removed.")),null):((0,i.logError)(n("defines 'adUnit.bids' that is not an array. Removing adUnit from auction")),null)}(0,w.wt)(),j.bidderSettings=j.bidderSettings||{},j.libLoaded=!0,j.version="v6.23.0",(0,i.logInfo)("Prebid.js v6.23.0 loaded"),j.installedModules=j.installedModules||[],j.adUnits=j.adUnits||[],j.triggerUserSyncs=q;var oe={validateAdUnit:ie,validateBannerMediaType:ee,validateVideoMediaType:ne,validateNativeMediaType:te,validateSizes:$},ae=(0,C.z3)("sync",(function(e){var n=[];return e.forEach((function(e){if(null!=(e=ie(e))){var t,r,i,o=e.mediaTypes;o.banner&&(t=ee(e),o.banner.hasOwnProperty("pos")&&(t=re(t,"banner"))),o.video&&(r=ne(t||e),o.video.hasOwnProperty("pos")&&(r=re(r,"video"))),o.native&&(i=te(r||t||e));var a=k({},t,r,i);n.push(a)}})),n}),"checkAdUnitSetup");function ce(e){var n=s.K[e]().filter(i.bind.call(i.adUnitsFilter,this,s.K.getAdUnitCodes())),t=s.K.getLastAuctionId();return n.map((function(e){return e.adUnitCode})).filter(i.uniques).map((function(e){return n.filter((function(n){return n.auctionId===t&&n.adUnitCode===e}))})).filter((function(e){return e&&e[0]&&e[0].adUnitCode})).map((function(e){return n={},r={bids:e},(t=e[0].adUnitCode)in n?Object.defineProperty(n,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[t]=r,n;var n,t,r})).reduce((function(e,n){return k(e,n)}),{})}function ue(e,n,t){var r=n.querySelector(t);e.parentNode&&e.parentNode===r||(0,i.insertElement)(e,n,t)}j.getAdserverTargetingForAdUnitCodeStr=function(e){if((0,i.logInfo)("Invoking pbjs.getAdserverTargetingForAdUnitCodeStr",arguments),e){var n=j.getAdserverTargetingForAdUnitCode(e);return(0,i.transformAdServerTargetingObj)(n)}(0,i.logMessage)("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},j.getHighestUnusedBidResponseForAdUnitCode=function(e){if(e){var n=s.K.getAllBidsForAdUnitCode(e).filter(I.u8.isUnusedBid).filter(I.u8.isBidNotExpired);return n.length?n.reduce(i.getHighestCpm):{}}(0,i.logMessage)("Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode")},j.getAdserverTargetingForAdUnitCode=function(e){return j.getAdserverTargeting(e)[e]},j.getAdserverTargeting=function(e){return(0,i.logInfo)("Invoking pbjs.getAdserverTargeting",arguments),I.q0.getAllTargeting(e)},j.getConsentMetadata=function(){return(0,i.logInfo)("Invoking pbjs.getConsentMetadata"),{gdpr:U.rp.getConsentMeta(),usp:U.nX.getConsentMeta(),coppa:!!l.vc.getConfig("coppa")}},j.getNoBids=function(){return(0,i.logInfo)("Invoking pbjs.getNoBids",arguments),ce("getNoBids")},j.getNoBidsForAdUnitCode=function(e){return{bids:s.K.getNoBids().filter((function(n){return n.adUnitCode===e}))}},j.getBidResponses=function(){return(0,i.logInfo)("Invoking pbjs.getBidResponses",arguments),ce("getBidsReceived")},j.getBidResponsesForAdUnitCode=function(e){return{bids:s.K.getBidsReceived().filter((function(n){return n.adUnitCode===e}))}},j.setTargetingForGPTAsync=function(e,n){if((0,i.logInfo)("Invoking pbjs.setTargetingForGPTAsync",arguments),(0,i.isGptPubadsDefined)()){var t=I.q0.getAllTargeting(e);I.q0.resetPresetTargeting(e,n),I.q0.setTargetingForGPT(t,n),Object.keys(t).forEach((function(e){Object.keys(t[e]).forEach((function(n){"hb_adid"===n&&s.K.setStatusForBids(t[e][n],N.BID_STATUS.BID_TARGETING_SET)}))})),x.emit(z,t)}else(0,i.logError)("window.googletag is not defined on the page")},j.setTargetingForAst=function(e){(0,i.logInfo)("Invoking pbjs.setTargetingForAn",arguments),I.q0.isApntagDefined()?(I.q0.setTargetingForAst(e),x.emit(z,I.q0.getAllTargeting())):(0,i.logError)("window.apntag is not defined on the page")},j.renderAd=(0,C.z3)("async",(function(e,n,t){if((0,i.logInfo)("Invoking pbjs.renderAd",arguments),(0,i.logMessage)("Calling renderAd with adId :"+n),e&&n)try{var r=s.K.findBidByAdId(n);if(r){var a=!0;if(r&&r.status===N.BID_STATUS.RENDERED&&((0,i.logWarn)("Ad id ".concat(r.adId," has been rendered before")),x.emit(L,r),(0,o.Z)(l.vc.getConfig("auctionOptions"),"suppressStaleRender")&&(a=!1)),a){if(r.ad=(0,i.replaceAuctionPrice)(r.ad,r.originalCpm||r.cpm),r.adUrl=(0,i.replaceAuctionPrice)(r.adUrl,r.originalCpm||r.cpm),t&&t.clickThrough){var c=t.clickThrough;r.ad=(0,i.replaceClickThrough)(r.ad,c),r.adUrl=(0,i.replaceClickThrough)(r.adUrl,c)}s.K.addWinningBid(r),x.emit(W,r);var u=r.height,d=r.width,g=r.ad,p=r.mediaType,v=r.adUrl,h=r.renderer,m=document.createComment("Creative ".concat(r.creativeId," served by ").concat(r.bidder," Prebid.js Header Bidding"));if((0,i.insertElement)(m,e,"html"),(0,f.Pd)(h))(0,f._U)(h,r,e),ue(m,e,"html"),b({doc:e,bid:r,id:n});else if(e===document&&!(0,i.inIframe)()||"video"===p){var E="Error trying to write ad. Ad render call ad id ".concat(n," was prevented from writing to the main document.");y({reason:V,message:E,bid:r,id:n})}else if(g)e.write(g),e.close(),X(e,d,u),ue(m,e,"html"),(0,i.callBurl)(r),b({doc:e,bid:r,id:n});else if(v){var S=(0,i.createInvisibleIframe)();S.height=u,S.width=d,S.style.display="inline",S.style.overflow="hidden",S.src=v,(0,i.insertElement)(S,e,"body"),X(e,d,u),ue(m,e,"html"),(0,i.callBurl)(r),b({doc:e,bid:r,id:n})}else{var A="Error trying to write ad. No ad for bid response id: ".concat(n);y({reason:H,message:A,bid:r,id:n})}}}else{var T="Error trying to write ad. Cannot find ad by given id : ".concat(n);y({reason:Y,message:T,id:n})}}catch(e){var I="Error trying to write ad Id :".concat(n," to the page:").concat(e.message);y({reason:Z,message:I,id:n})}else{var C="Error trying to write ad Id :".concat(n," to the page. Missing document or adId");y({reason:J,message:C,id:n})}})),j.removeAdUnit=function(e){(0,i.logInfo)("Invoking pbjs.removeAdUnit",arguments),e?((0,i.isArray)(e)?e:[e]).forEach((function(e){for(var n=j.adUnits.length-1;n>=0;n--)j.adUnits[n].code===e&&j.adUnits.splice(n,1)})):j.adUnits=[]},j.requestBids=(0,C.z3)("async",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.bidsBackHandler,t=e.timeout,r=e.adUnits,o=e.adUnitCodes,a=e.labels,c=e.auctionId;x.emit(F);var u=t||l.vc.getConfig("bidderTimeout");r=r&&l.vc.convertAdUnitFpd((0,i.isArray)(r)?r:[r])||j.adUnits,(0,i.logInfo)("Invoking pbjs.requestBids",arguments);var f=[],g=[];if(l.vc.getConfig("s2sConfig",(function(e){e&&e.s2sConfig&&(f=Array.isArray(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])})),f.forEach((function(e){g.push.apply(g,R(e.bidders))})),r=ae(r),o&&o.length?r=r.filter((function(e){return(0,d.q9)(o,e.code)})):o=r&&r.map((function(e){return e.code})),r.forEach((function(e){var n=Object.keys(e.mediaTypes||{banner:"banner"}),t=e.bids.map((function(e){return e.bidder})),r=P.bidderRegistry,o=g?t.filter((function(e){return!(0,d.q9)(g,e)})):t;e.transactionId=(0,i.generateUUID)(),o.forEach((function(t){var o=r[t],a=o&&o.getSpec&&o.getSpec(),c=a&&a.supportedMediaTypes||["banner"];n.some((function(e){return(0,d.q9)(c,e)}))?O.f.incrementBidderRequestsCounter(e.code,t):((0,i.logWarn)((0,i.unsupportedBidderMessage)(e,t)),e.bids=e.bids.filter((function(e){return e.bidder!==t})))})),O.f.incrementRequestsCounter(e.code)})),r&&0!==r.length){var p=s.K.createAuction({adUnits:r,adUnitCodes:o,callback:n,cbTimeout:u,labels:a,auctionId:c}),v=r.length;v>15&&(0,i.logInfo)("Current auction ".concat(p.getAuctionId()," contains ").concat(v," adUnits."),r),o.forEach((function(e){return I.q0.setLatestAuctionForAdUnit(e,p.getAuctionId())})),p.callBids()}else if((0,i.logMessage)("No adUnits configured. No bids requested."),"function"==typeof n)try{n()}catch(e){(0,i.logError)("Error executing bidsBackHandler",null,e)}})),j.requestBids.before((function(e,n){function t(e){for(var n;n=e.shift();)n()}t(_.Ld),t(se),e.call(this,n)}),49),j.addAdUnits=function(e){(0,i.logInfo)("Invoking pbjs.addAdUnits",arguments),j.adUnits.push.apply(j.adUnits,l.vc.convertAdUnitFpd((0,i.isArray)(e)?e:[e])),x.emit(G)},j.onEvent=function(e,n,t){(0,i.logInfo)("Invoking pbjs.onEvent",arguments),(0,i.isFn)(n)?!t||Q[e].call(null,t)?x.on(e,n,t):(0,i.logError)('The id provided is not valid for event "'+e+'" and no handler was set.'):(0,i.logError)('The event handler provided is not a function and was not set on event "'+e+'".')},j.offEvent=function(e,n,t){(0,i.logInfo)("Invoking pbjs.offEvent",arguments),t&&!Q[e].call(null,t)||x.off(e,n,t)},j.getEvents=function(){return(0,i.logInfo)("Invoking pbjs.getEvents"),x.getEvents()},j.registerBidAdapter=function(e,n){(0,i.logInfo)("Invoking pbjs.registerBidAdapter",arguments);try{P.registerBidAdapter(e(),n)}catch(e){(0,i.logError)("Error registering bidder adapter : "+e.message)}},j.registerAnalyticsAdapter=function(e){(0,i.logInfo)("Invoking pbjs.registerAnalyticsAdapter",arguments);try{P.registerAnalyticsAdapter(e)}catch(e){(0,i.logError)("Error registering analytics adapter : "+e.message)}},j.createBid=function(e){return(0,i.logInfo)("Invoking pbjs.createBid",arguments),(0,B.m)(e)};var se=[],de=(0,C.z3)("async",(function(e){e&&!(0,i.isEmpty)(e)?((0,i.logInfo)("Invoking pbjs.enableAnalytics for: ",e),P.enableAnalytics(e)):(0,i.logError)("pbjs.enableAnalytics should be called with option {}")}),"enableAnalyticsCb");function fe(e){e.forEach((function(e){if(void 0===e.called)try{e.call(),e.called=!0}catch(e){(0,i.logError)("Error processing command :","prebid.js",e)}}))}j.enableAnalytics=function(e){se.push(de.bind(this,e))},j.aliasBidder=function(e,n,t){(0,i.logInfo)("Invoking pbjs.aliasBidder",arguments),e&&n?P.aliasBidAdapter(e,n,t):(0,i.logError)("bidderCode and alias must be passed as arguments","pbjs.aliasBidder")},j.getAllWinningBids=function(){return s.K.getAllWinningBids()},j.getAllPrebidWinningBids=function(){return s.K.getBidsReceived().filter((function(e){return e.status===N.BID_STATUS.BID_TARGETING_SET}))},j.getHighestCpmBids=function(e){return I.q0.getWinningBids(e)},j.markWinningBidAsUsed=function(e){var n=[];e.adUnitCode&&e.adId?n=s.K.getBidsReceived().filter((function(n){return n.adId===e.adId&&n.adUnitCode===e.adUnitCode})):e.adUnitCode?n=I.q0.getWinningBids(e.adUnitCode):e.adId?n=s.K.getBidsReceived().filter((function(n){return n.adId===e.adId})):(0,i.logWarn)("Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function."),n.length>0&&(n[0].status=N.BID_STATUS.RENDERED)},j.getConfig=l.vc.getConfig,j.readConfig=l.vc.readConfig,j.mergeConfig=l.vc.mergeConfig,j.mergeBidderConfig=l.vc.mergeBidderConfig,j.setConfig=l.vc.setConfig,j.setBidderConfig=l.vc.setBidderConfig,j.que.push((function(){window.addEventListener("message",S,!1)})),j.cmd.push=function(e){if("function"==typeof e)try{e.call()}catch(e){(0,i.logError)("Error processing command :",e.message,e.stack)}else(0,i.logError)("Commands written into pbjs.cmd.push must be wrapped in a function")},j.que.push=j.cmd.push,j.processQueue=function(){C.z3.ready(),fe(j.que),fe(j.cmd)}},2528:function(e,n,t){"use strict";function r(){return window.pbjs}t.d(n,{R:function(){return r}}),window.pbjs=window.pbjs||{},window.pbjs.cmd=window.pbjs.cmd||[],window.pbjs.que=window.pbjs.que||[],window._pbjsGlobals=window._pbjsGlobals||[],window._pbjsGlobals.push("pbjs")},2661:function(e,n,t){"use strict";t.d(n,{n:function(){return o}});var r=t(8962),i=t(9853),o=function(e){function n(e){var n=r.vc.getConfig("pageUrl");if(n)return n;try{var t=e.querySelector("link[rel='canonical']");if(null!==t)return t.href}catch(e){}return null}return function(){var t,o,a,c=[],u=function(e){try{if(!e.location.ancestorOrigins)return;return e.location.ancestorOrigins}catch(e){}}(e),s=r.vc.getConfig("maxNestedIframes"),d=!1,f=0,l=!1,g=!1;do{var p=t,v=g,y=void 0,b=!1,h=null;g=!1,t=t?t.parent:e;try{y=t.location.href||null}catch(e){b=!0}if(b)if(v){var m=p.context;try{o=h=m.sourceUrl,l=!0,t===e.top&&(d=!0),m.canonicalUrl&&(a=m.canonicalUrl)}catch(e){}}else{(0,i.logWarn)("Trying to access cross domain iframe. Continuing without referrer and location");try{var E=p.document.referrer;E&&(h=E,t===e.top&&(d=!0))}catch(e){}!h&&u&&u[f-1]&&(h=u[f-1]),h&&!l&&(o=h)}else{if(y&&(o=h=y,l=!1,t===e.top)){d=!0;var S=n(t.document);S&&(a=S)}t.context&&t.context.sourceUrl&&(g=!0)}c.push(h),f++}while(t!==e.top&&f<s);return c.reverse(),{referer:o||null,reachedTop:d,isAmp:l,numIframes:f-1,stack:c,canonicalUrl:a||null}}}(window)},1269:function(e,n,t){"use strict";t.d(n,{UB:function(){return g},lO:function(){return d}});var r=t(8962),i=t(9853),o=t(265),a=t(1879);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var u=[];function s(e,n){return e.labelAll?{labelAll:!0,labels:e.labelAll,activeLabels:n}:{labelAll:!1,labels:e.labelAny,activeLabels:n}}function d(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,t=l(n);return!t.shouldFilter||!!t.sizesSupported[e]}function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.labels,t=void 0===n?[]:n,r=e.labelAll,c=void 0!==r&&r,s=e.activeLabels,d=void 0===s?[]:s,f=arguments.length>1?arguments[1]:void 0,g=arguments.length>2?arguments[2]:void 0,p=arguments.length>3&&void 0!==arguments[3]?arguments[3]:u,v=l(p);f=(0,i.isPlainObject)(f)?(0,i.deepClone)(f):g?{banner:{sizes:g}}:{};var y=(0,o.Z)(f,"banner.sizes");v.shouldFilter&&y&&(f.banner.sizes=y.filter((function(e){return v.sizesSupported[e]})));var b=Object.keys(f),h={active:b.every((function(e){return"banner"!==e}))||b.some((function(e){return"banner"===e}))&&(0,o.Z)(f,"banner.sizes.length")>0&&(0===t.length||!c&&(t.some((function(e){return v.labels[e]}))||t.some((function(e){return(0,a.q9)(d,e)})))||c&&t.reduce((function(e,n){return e?v.labels[n]||(0,a.q9)(d,n):e}),!0)),mediaTypes:f};return y&&y.length!==f.banner.sizes.length&&(h.filterResults={before:y,after:f.banner.sizes}),h}function l(e){return e.reduce((function(e,n){if("object"===c(n)&&"string"==typeof n.mediaQuery&&n.mediaQuery.length>0){var t=!1;try{t=(0,i.getWindowTop)().matchMedia(n.mediaQuery).matches}catch(e){(0,i.logWarn)("Unfriendly iFrame blocks sizeConfig from being correctly evaluated"),t=matchMedia(n.mediaQuery).matches}t&&(Array.isArray(n.sizesSupported)&&(e.shouldFilter=!0),["labels","sizesSupported"].forEach((function(t){return(n[t]||[]).forEach((function(n){return e[t][n]=!0}))})))}else(0,i.logWarn)('sizeConfig rule missing required property "mediaQuery"');return e}),{labels:{},sizesSupported:{},shouldFilter:!1})}function g(e,n){return e.reduce((function(e,t){var r=f(s(t,n),t.mediaTypes,t.sizes),o=r.active,a=r.mediaTypes,c=r.filterResults;return o?(c&&(0,i.logInfo)('Size mapping filtered adUnit "'.concat(t.code,'" banner sizes from '),c.before,"to ",c.after),t.mediaTypes=a,t.bids=t.bids.reduce((function(e,r){var o=f(s(r,n),t.mediaTypes),a=o.active,c=o.mediaTypes,u=o.filterResults;return a?(u&&((0,i.logInfo)('Size mapping filtered adUnit "'.concat(t.code,'" bidder "').concat(r.bidder,'" banner sizes from '),u.before,"to ",u.after),r.mediaTypes=c),e.push(r)):(0,i.logInfo)('Size mapping deactivated adUnit "'.concat(t.code,'" bidder "').concat(r.bidder,'"')),e}),[]),e.push(t)):(0,i.logInfo)('Size mapping disabled adUnit "'.concat(t.code,'"')),e}),[])}r.vc.getConfig("sizeConfig",(function(e){return function(e){u=e}(e.sizeConfig)}))},5849:function(e,n,t){"use strict";t.d(n,{Ld:function(){return u},S6:function(){return d},df:function(){return l},eA:function(){return f}});var r=t(3494),i=t(9853),o=t(1879),a=t(9624),c=["core","prebid-module"],u=[];function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.gvlid,t=e.moduleName,r=e.bidderCode,s=e.moduleType,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=f.bidderSettings,g=void 0===l?a.S:l;function p(){if(null==r)return!1;var e=g.get(r,"storageAllowed");return null!=e&&!e}function v(e){return(0,o.q9)(c,s)?e({valid:!0}):p()?((0,i.logInfo)("bidderSettings denied access to device storage for bidder '".concat(r,"'")),e({valid:!1})):(d(n,r||t,{hasEnforcementHook:!1},(function(n){if(n&&n.hasEnforcementHook)a=e(n);else{var t={hasEnforcementHook:!1,valid:(0,i.hasDeviceAccess)()};a=e(t)}})),a);var a}var y=function(e,n,t,r,i,o){var a=function(o){if(o&&o.valid){var a=i&&""!==i?" ;domain=".concat(encodeURIComponent(i)):"",c=t&&""!==t?" ;expires=".concat(t):"",u=null!=r&&"none"==r.toLowerCase()?"; Secure":"";document.cookie="".concat(e,"=").concat(encodeURIComponent(n)).concat(c,"; path=/").concat(a).concat(r?"; SameSite=".concat(r):"").concat(u)}};if(!o||"function"!=typeof o)return v(a);u.push((function(){var e=v(a);o(e)}))},b=function(e,n){var t=function(n){if(n&&n.valid){var t=window.document.cookie.match("(^|;)\\s*"+e+"\\s*=\\s*([^;]*)\\s*(;|$)");return t?decodeURIComponent(t[2]):null}return null};if(!n||"function"!=typeof n)return v(t);u.push((function(){var e=v(t);n(e)}))},h=function(e){var n=function(e){if(e&&e.valid)try{return localStorage.setItem("prebid.cookieTest","1"),"1"===localStorage.getItem("prebid.cookieTest")}catch(e){}finally{try{localStorage.removeItem("prebid.cookieTest")}catch(e){}}return!1};if(!e||"function"!=typeof e)return v(n);u.push((function(){var t=v(n);e(t)}))},m=function(e){var n=function(e){return!(!e||!e.valid||!(0,i.checkCookieSupport)()&&(window.document.cookie="prebid.cookieTest",-1===window.document.cookie.indexOf("prebid.cookieTest")))};if(!e||"function"!=typeof e)return v(n);u.push((function(){var t=v(n);e(t)}))},E=function(e,n,t){var r=function(t){t&&t.valid&&T()&&window.localStorage.setItem(e,n)};if(!t||"function"!=typeof t)return v(r);u.push((function(){var e=v(r);t(e)}))},S=function(e,n){var t=function(n){return n&&n.valid&&T()?window.localStorage.getItem(e):null};if(!n||"function"!=typeof n)return v(t);u.push((function(){var e=v(t);n(e)}))},A=function(e,n){var t=function(n){n&&n.valid&&T()&&window.localStorage.removeItem(e)};if(!n||"function"!=typeof n)return v(t);u.push((function(){var e=v(t);n(e)}))},T=function(e){var n=function(e){if(e&&e.valid)try{return!!window.localStorage}catch(e){(0,i.logError)("Local storage api disabled")}return!1};if(!e||"function"!=typeof e)return v(n);u.push((function(){var t=v(n);e(t)}))},I=function(e,n){var t=function(n){if(n&&n.valid){var t=[];if((0,i.hasDeviceAccess)())for(var r=document.cookie.split(";");r.length;){var o=r.pop(),a=o.indexOf("=");a=a<0?o.length:a,decodeURIComponent(o.slice(0,a).replace(/^\s+/,"")).indexOf(e)>=0&&t.push(decodeURIComponent(o.slice(a+1)))}return t}};if(!n||"function"!=typeof n)return v(t);u.push((function(){var e=v(t);n(e)}))};return{setCookie:y,getCookie:b,localStorageIsEnabled:h,cookiesAreEnabled:m,setDataInLocalStorage:E,getDataFromLocalStorage:S,removeDataFromLocalStorage:A,hasLocalStorage:T,findSimilarCookies:I}}var d=(0,r.z3)("async",(function(e,n,t,r){r(t)}),"validateStorageEnforcement");function f(e){return s({moduleName:e,moduleType:"core"})}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.gvlid,t=e.moduleName,r=e.bidderCode;if(arguments.length>1||arguments.length>0&&!(0,i.isPlainObject)(arguments[0]))throw new Error("Invalid invocation for getStorageManager");return s({gvlid:n,moduleName:t,bidderCode:r})}},9742:function(e,n,t){"use strict";t.d(n,{bP:function(){return C},ol:function(){return I},q0:function(){return w},u8:function(){return T}});var r=t(9853),i=t(265),o=t(8962),a=t(9017),c=t(4766),u=t(1269),s=t(8265),d=t(3494),f=t(9624),l=t(1879);function g(){return g=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},g.apply(this,arguments)}function p(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function v(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return y(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var b=t(5644),h=[],m="targetingControls.allowTargetingKeys",E="targetingControls.addTargetingKeys",S='Only one of "'.concat(m,'" or "').concat(E,'" can be set'),A=Object.keys(b.TARGETING_KEYS).map((function(e){return b.TARGETING_KEYS[e]})),T={isBidNotExpired:function(e){return e.responseTimestamp+1e3*e.ttl-1e3>(0,r.timestamp)()},isUnusedBid:function(e){return e&&(e.status&&!(0,l.q9)([b.BID_STATUS.RENDERED],e.status)||!e.status)}},I=(0,d.z3)("sync",(function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!i){var a=[],c=o.vc.getConfig("sendBidsControl.dealPrioritization"),u=(0,r.groupBy)(e,"adUnitCode");return Object.keys(u).forEach((function(e){var i=[],o=(0,r.groupBy)(u[e],"bidderCode");Object.keys(o).forEach((function(e){return i.push(o[e].reduce(n))})),t>0?(i=c?i.sort(C(!0)):i.sort((function(e,n){return n.cpm-e.cpm})),a.push.apply(a,v(i.slice(0,t)))):a.push.apply(a,v(i))})),a}return e}));function C(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(n,t){return void 0!==n.adserverTargeting.hb_deal&&void 0===t.adserverTargeting.hb_deal?-1:void 0===n.adserverTargeting.hb_deal&&void 0!==t.adserverTargeting.hb_deal?1:e?t.cpm-n.cpm:t.adserverTargeting.hb_pb-n.adserverTargeting.hb_pb}}var w=function(e){var n={},t={};function c(e,n){return e.adserverTargeting&&n&&((0,r.isArray)(n)&&(0,l.q9)(n,e.adUnitCode)||"string"==typeof n&&e.adUnitCode===n)}function d(e,n){if(!0===o.vc.getConfig("targetingControls.alwaysIncludeDeals")){var t=A.concat(a.xc);return I(n,r.getHighestCpm).map((function(n){if(n.dealId&&c(n,e))return p({},n.adUnitCode,x(n,t.filter((function(e){return void 0!==n.adserverTargeting[e]}))))})).filter((function(e){return e}))}return[]}function y(e,n){var t=g({},b.TARGETING_KEYS,b.NATIVE_KEYS),i=Object.keys(t),o={};(0,r.logInfo)("allowTargetingKeys - allowed keys [ ".concat(n.map((function(e){return t[e]})).join(", ")," ]")),e.map((function(e){var r=Object.keys(e)[0],a=e[r].filter((function(e){var r=Object.keys(e)[0],a=0===i.filter((function(e){return 0===r.indexOf(t[e])})).length||(0,l.sE)(n,(function(e){var n=t[e];return 0===r.indexOf(n)}));return o[r]=!a,a}));e[r]=a}));var a=Object.keys(o).filter((function(e){return o[e]}));return(0,r.logInfo)("allowTargetingKeys - removed keys [ ".concat(a.join(", ")," ]")),e.filter((function(e){return e[Object.keys(e)[0]].length>0}))}function w(e,n){var t=(0,r.deepClone)(e);return Object.keys(t).map((function(e){return{adUnitCode:e,adserverTargeting:t[e]}})).sort(C()).reduce((function(e,i,o,a){var c,u=(c=i.adserverTargeting,Object.keys(c).reduce((function(e,n){return e+"".concat(n,"%3d").concat(encodeURIComponent(c[n]),"%26")}),""));o+1===a.length&&(u=u.slice(0,-3));var s=i.adUnitCode,d=u.length;return d<=n?(n-=d,(0,r.logInfo)("AdUnit '".concat(s,"' auction keys comprised of ").concat(d," characters. Deducted from running threshold; new limit is ").concat(n),t[s]),e[s]=t[s]):(0,r.logWarn)("The following keys for adUnitCode '".concat(s,"' exceeded the current limit of the 'auctionKeyMaxChars' setting.\nThe key-set size was ").concat(d,", the current allotted amount was ").concat(n,".\n"),t[s]),o+1===a.length&&0===Object.keys(e).length&&(0,r.logError)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."),e}),{})}function O(e){var n=e.map((function(e){return p({},Object.keys(e)[0],e[Object.keys(e)[0]].map((function(e){return p({},Object.keys(e)[0],e[Object.keys(e)[0]].join(","))})).reduce((function(e,n){return g(n,e)}),{}))})).reduce((function(e,n){var t=Object.keys(n)[0];return e[t]=g({},e[t],n[t]),e}),{});return n}function B(n){return"string"==typeof n?[n]:(0,r.isArray)(n)?n:e.getAdUnitCodes()||[]}function _(){var n=e.getBidsReceived();if(o.vc.getConfig("useBidCache")){var a=o.vc.getConfig("bidCacheFilterFunction");"function"==typeof a&&(n=n.filter((function(e){return t[e.adUnitCode]===e.auctionId||!!a(e)})))}else n=n.filter((function(e){return t[e.adUnitCode]===e.auctionId}));return n=n.filter((function(e){return(0,i.Z)(e,"video.context")!==s.Oh})).filter((function(e){return"banner"!==e.mediaType||(0,u.lO)([e.width,e.height])})).filter(T.isUnusedBid).filter(T.isBidNotExpired),I(n,r.getOldestHighestCpmBid)}function U(e,t){var r=n.getWinningBids(e,t),i=R();return r=r.map((function(e){return p({},e.adUnitCode,Object.keys(e.adserverTargeting).filter((function(n){return void 0===e.sendStandardTargeting||e.sendStandardTargeting||-1===i.indexOf(n)})).reduce((function(n,t){var r=[e.adserverTargeting[t]],i=p({},t.substring(0,20),r);if(t===b.TARGETING_KEYS.DEAL){var o=p({},"".concat(t,"_").concat(e.bidderCode).substring(0,20),r);return[].concat(v(n),[i,o])}return[].concat(v(n),[i])}),[]))})),r}function R(){return e.getStandardBidderAdServerTargeting().map((function(e){return e.key})).concat(A).filter(r.uniques)}function D(e,n,t,i){return Object.keys(n.adserverTargeting).filter(k()).forEach((function(t){e.length&&e.filter(function(e){return function(t){return t.adUnitCode===n.adUnitCode&&t.adserverTargeting[e]}}(t)).forEach(function(e){return function(t){(0,r.isArray)(t.adserverTargeting[e])||(t.adserverTargeting[e]=[t.adserverTargeting[e]]),t.adserverTargeting[e]=t.adserverTargeting[e].concat(n.adserverTargeting[e]).filter(r.uniques),delete n.adserverTargeting[e]}}(t))})),e.push(n),e}function k(){var e=R().concat(a.xc);return function(n){return-1===e.indexOf(n)}}function j(e){return p({},e.adUnitCode,Object.keys(e.adserverTargeting).filter(k()).map((function(n){return p({},n.substring(0,20),[e.adserverTargeting[n]])})))}function N(e,n){return n.filter((function(n){return(0,l.q9)(e,n.adUnitCode)})).map((function(e){return g({},e)})).reduce(D,[]).map(j).filter((function(e){return e}))}function P(e,n){var t=A.concat(a.xc),i=o.vc.getConfig("sendBidsControl.bidLimit"),u=I(n,r.getHighestCpm,i),s=o.vc.getConfig("targetingControls.allowSendAllBidsTargetingKeys"),d=s?s.map((function(e){return b.TARGETING_KEYS[e]})):t;return u.map((function(n){if(c(n,e))return p({},n.adUnitCode,x(n,t.filter((function(e){return void 0!==n.adserverTargeting[e]&&-1!==d.indexOf(e)}))))})).filter((function(e){return e}))}function x(e,n){return n.map((function(n){return p({},"".concat(n,"_").concat(e.bidderCode).substring(0,20),[e.adserverTargeting[n]])}))}function q(n){function t(e){return(0,i.Z)(e,b.JSON_MAPPING.ADSERVER_TARGETING)}return e.getAdUnits().filter((function(e){return(0,l.q9)(n,e.code)&&t(e)})).map((function(e){return p({},e.code,function(e){var n=t(e);return Object.keys(n).map((function(e){return(0,r.isStr)(n[e])&&(n[e]=n[e].split(",").map((function(e){return e.trim()}))),(0,r.isArray)(n[e])||(n[e]=[n[e]]),p({},e,n[e])}))}(e))}))}return n.setLatestAuctionForAdUnit=function(e,n){t[e]=n},n.resetPresetTargeting=function(n,t){if((0,r.isGptPubadsDefined)()){var i=B(n),o=e.getAdUnits().filter((function(e){return(0,l.q9)(i,e.code)})),a=h.reduce((function(e,n){return e[n]=null,e}),{});window.googletag.pubads().getSlots().forEach((function(e){var n=(0,r.isFn)(t)&&t(e);o.forEach((function(t){(t.code===e.getAdUnitPath()||t.code===e.getSlotElementId()||(0,r.isFn)(n)&&n(t.code))&&e.updateTargetingFromMap(a)}))}))}},n.resetPresetTargetingAST=function(e){B(e).forEach((function(e){var n=window.apntag.getTag(e);if(n&&n.keywords){var t=Object.keys(n.keywords),r={};t.forEach((function(e){(0,l.q9)(h,e.toLowerCase())||(r[e]=n.keywords[e])})),window.apntag.modifyTag(e,{keywords:r})}}))},n.getAllTargeting=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_(),t=B(e),i=U(t,n).concat(N(t,n)).concat(o.vc.getConfig("enableSendAllBids")?P(t,n):d(t,n)).concat(q(t));i.map((function(e){Object.keys(e).map((function(n){e[n].map((function(e){-1===h.indexOf(Object.keys(e)[0])&&(h=Object.keys(e).concat(h))}))}))}));var a=Object.keys(g({},b.DEFAULT_TARGETING_KEYS,b.NATIVE_KEYS)),c=o.vc.getConfig(m),u=o.vc.getConfig(E);if(null!=u&&null!=c)throw new Error(S);c=null!=u?a.concat(u):c||a,Array.isArray(c)&&c.length>0&&(i=y(i,c)),i=O(i);var s=o.vc.getConfig("targetingControls.auctionKeyMaxChars");return s&&((0,r.logInfo)("Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of ".concat(s," characters. Running checks on auction keys...")),i=w(i,s)),t.forEach((function(e){i[e]||(i[e]={})})),i},o.vc.getConfig("targetingControls",(function(e){null!=(0,i.Z)(e,m)&&null!=(0,i.Z)(e,E)&&(0,r.logError)(S)})),n.setTargetingForGPT=function(e,n){window.googletag.pubads().getSlots().forEach((function(t){Object.keys(e).filter(n?n(t):(0,r.isAdUnitCodeMatchingSlot)(t)).forEach((function(n){Object.keys(e[n]).forEach((function(t){var r=e[n][t];"string"==typeof r&&-1!==r.indexOf(",")&&(r=r.split(",")),e[n][t]=r})),(0,r.logMessage)("Attempting to set targeting-map for slot: ".concat(t.getSlotElementId()," with targeting-map:"),e[n]),t.updateTargetingFromMap(e[n])}))}))},n.getWinningBids=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_(),t=B(e);return n.filter((function(e){return(0,l.q9)(t,e.adUnitCode)})).filter((function(e){return!0===f.S.get(e.bidderCode,"allowZeroCpmBids")?e.cpm>=0:e.cpm>0})).map((function(e){return e.adUnitCode})).filter(r.uniques).map((function(e){return n.filter((function(n){return n.adUnitCode===e?n:null})).reduce(r.getHighestCpm)}))},n.setTargetingForAst=function(e){var t=n.getAllTargeting(e);try{n.resetPresetTargetingAST(e)}catch(e){(0,r.logError)("unable to reset targeting for AST"+e)}Object.keys(t).forEach((function(e){return Object.keys(t[e]).forEach((function(n){if((0,r.logMessage)("Attempting to set targeting for targetId: ".concat(e," key: ").concat(n," value: ").concat(t[e][n])),(0,r.isStr)(t[e][n])||(0,r.isArray)(t[e][n])){var i={};n.search(/pt[0-9]/)<0?i[n.toUpperCase()]=t[e][n]:i[n]=t[e][n],window.apntag.setKeywords(e,i,{overrideKeyValue:!0})}}))}))},n.isApntagDefined=function(){if(window.apntag&&(0,r.isFn)(window.apntag.setKeywords))return!0},n}(c.K)},7112:function(e,n,t){"use strict";t.d(n,{k_:function(){return l}});var r=t(9853),i=t(8962),o=t(1879),a=t(5849);function c(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,o=[],a=!0,c=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){c=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(c)throw i}}return o}}(e,n)||function(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function s(){return s=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},s.apply(this,arguments)}i.vc.setDefaults({userSync:(0,r.deepClone)({syncEnabled:!0,filterSettings:{image:{bidders:"*",filter:"include"}},syncsPerBidder:5,syncDelay:3e3,auctionDelay:0})});var d=(0,a.eA)("usersync"),f=!(0,r.isSafariBrowser)()&&d.cookiesAreEnabled(),l=function(e){var n={},t={image:[],iframe:[]},a=new Set,u={},d={image:!0,iframe:!1},f=e.config;function l(){if(f.syncEnabled&&e.browserSupportsCookies){try{d.iframe&&g(t.iframe,(function(e){var n=c(e,2),i=n[0],o=n[1];(0,r.logMessage)("Invoking iframe user sync for bidder: ".concat(i)),(0,r.insertUserSyncIframe)(o),function(e,n){e.image=e.image.filter((function(e){return e[0]!==n}))}(t,i)})),d.image&&g(t.image,(function(e){var n=c(e,2),t=n[0],i=n[1];(0,r.logMessage)("Invoking image pixel user sync for bidder: ".concat(t)),(0,r.triggerPixel)(i)}))}catch(e){return(0,r.logError)("Error firing user syncs",e)}t={image:[],iframe:[]}}}function g(e,n){(0,r.shuffle)(e).forEach((function(e){n(e),a.add(e[0])}))}return i.vc.getConfig("userSync",(function(e){if(e.userSync){var n=e.userSync.filterSettings;(0,r.isPlainObject)(n)&&(n.image||n.all||(e.userSync.filterSettings.image={bidders:"*",filter:"include"}))}f=s(f,e.userSync)})),n.registerSync=function(e,i,o){return a.has(i)?(0,r.logMessage)('already fired syncs for "'.concat(i,'", ignoring registerSync call')):f.syncEnabled&&(0,r.isArray)(t[e])?i?0!==f.syncsPerBidder&&Number(u[i])>=f.syncsPerBidder?(0,r.logWarn)('Number of user syncs exceeded for "'.concat(i,'"')):n.canBidderRegisterSync(e,i)?(t[e].push([i,o]),void(u=function(e,n){return e[n]?e[n]+=1:e[n]=1,e}(u,i))):(0,r.logWarn)('Bidder "'.concat(i,'" not permitted to register their "').concat(e,'" userSync pixels.')):(0,r.logWarn)("Bidder is required for registering sync"):(0,r.logWarn)('User sync type "'.concat(e,'" not supported'))},n.syncUsers=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e)return setTimeout(l,Number(e));l()},n.triggerUserSyncs=function(){f.enableOverride&&n.syncUsers()},n.canBidderRegisterSync=function(e,n){return!f.filterSettings||!function(e,n){var t=f.filterSettings;if(function(e,n){if(e.all&&e[n])return(0,r.logWarn)('Detected presence of the "filterSettings.all" and "filterSettings.'.concat(n,'" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.')),!1;var t=e.all?e.all:e[n],i=e.all?"all":n;if(!t)return!1;var o=t.filter,a=t.bidders;return o&&"include"!==o&&"exclude"!==o?((0,r.logWarn)('UserSync "filterSettings.'.concat(i,".filter\" setting '").concat(o,"' is not a valid option; use either 'include' or 'exclude'.")),!1):!!("*"===a||Array.isArray(a)&&a.length>0&&a.every((function(e){return(0,r.isStr)(e)&&"*"!==e})))||((0,r.logWarn)('Detected an invalid setup in userSync "filterSettings.'.concat(i,".bidders\"; use either '*' (to represent all bidders) or an array of bidders.")),!1)}(t,e)){d[e]=!0;var i=t.all?t.all:t[e],a="*"===i.bidders?[n]:i.bidders,c={include:function(e,n){return!(0,o.q9)(e,n)},exclude:function(e,n){return(0,o.q9)(e,n)}};return c[i.filter||"include"](a,n)}return!d[e]}(e,n)},n}({config:i.vc.getConfig("userSync"),browserSupportsCookies:f})},9853:function(e,n,t){"use strict";t.r(n),t.d(n,{_each:function(){return de},_map:function(){return le},adUnitsFilter:function(){return xe},bind:function(){return _},buildUrl:function(){return Sn},callBurl:function(){return be},checkCookieSupport:function(){return Ve},chunk:function(){return pn},cleanObj:function(){return un},compareOn:function(){return bn},contains:function(){return fe},convertCamelToUnderscore:function(){return cn},convertTypes:function(){return fn},createInvisibleIframe:function(){return $},createTrackPixelHtml:function(){return Ee},createTrackPixelIframeHtml:function(){return Se},cyrb53Hash:function(){return In},debugTurnedOn:function(){return X},deepAccess:function(){return c.Z},deepClone:function(){return qe},deepEqual:function(){return An},deepSetValue:function(){return u.Z},delayExecution:function(){return He},fill:function(){return gn},flatten:function(){return Ie},formatQS:function(){return mn},generateUUID:function(){return D},getAdUnitSizes:function(){return x},getBidIdParameter:function(){return k},getBidRequest:function(){return Ce},getBidderCodes:function(){return _e},getDNT:function(){return $e},getDefinedParams:function(){return Ye},getGptSlotInfoForAdUnitCode:function(){return rn},getHighestCpm:function(){return De},getKeyByValue:function(){return Be},getKeys:function(){return we},getLatestHighestCpmBid:function(){return je},getMaxValueFromArray:function(){return yn},getMinValueFromArray:function(){return vn},getOldestHighestCpmBid:function(){return ke},getOrigin:function(){return Xe},getParameterByName:function(){return ee},getPerformanceNow:function(){return Le},getPrebidInternal:function(){return w},getUniqueIdentifierStr:function(){return R},getUserConfiguredParams:function(){return Qe},getValue:function(){return Oe},getValueString:function(){return Ae},getWindowFromDocument:function(){return Cn},getWindowLocation:function(){return L},getWindowSelf:function(){return z},getWindowTop:function(){return F},groupBy:function(){return Ze},hasConsoleLogger:function(){return Q},hasDeviceAccess:function(){return Ke},hasOwn:function(){return ge},inIframe:function(){return Me},insertElement:function(){return pe},insertHtmlIntoIframe:function(){return he},insertUserSyncIframe:function(){return me},internal:function(){return I},isA:function(){return ne},isAdUnitCodeMatchingSlot:function(){return nn},isApnGetTagDefined:function(){return Re},isArray:function(){return ie},isArrayOfNums:function(){return ln},isBoolean:function(){return ce},isEmpty:function(){return ue},isEmptyStr:function(){return se},isFn:function(){return te},isGptPubadsDefined:function(){return Ue},isInteger:function(){return an},isNumber:function(){return oe},isPlainObject:function(){return ae},isSafariBrowser:function(){return Ge},isSlotMatchingAdUnitCode:function(){return tn},isStr:function(){return re},isValidMediaTypes:function(){return Je},logError:function(){return Z},logInfo:function(){return V},logMessage:function(){return K},logWarn:function(){return H},mergeDeep:function(){return Tn},parseGPTSingleSizeArray:function(){return M},parseGPTSingleSizeArrayToRtbSize:function(){return G},parseQS:function(){return hn},parseQueryStringParameters:function(){return N},parseSizesInput:function(){return q},parseUrl:function(){return En},pick:function(){return sn},prefixLog:function(){return Y},replaceAuctionPrice:function(){return We},replaceClickThrough:function(){return Fe},shuffle:function(){return Pe},timestamp:function(){return ze},transformAdServerTargetingObj:function(){return P},transformBidderParamKeywords:function(){return dn},triggerPixel:function(){return ye},tryAppendQueryString:function(){return j},uniques:function(){return Te},unsupportedBidderMessage:function(){return on},waitForElementToLoad:function(){return ve}});var r=t(8962),i=t(7079),o=t.n(i),a=t(1879),c=t(265),u=t(4806);function s(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,n){if(e){if("string"==typeof e)return f(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?f(e,n):void 0}}function f(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function g(){return g=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},g.apply(this,arguments)}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}var v,y=t(5644),b=Object.prototype.toString,h=Boolean(window.console),m=Boolean(h&&window.console.log),E=Boolean(h&&window.console.info),S=Boolean(h&&window.console.warn),A=Boolean(h&&window.console.error),T=function(){return null==v&&(v=t(2319)),v.emit.apply(v,arguments)},I={checkCookieSupport:Ve,createTrackPixelIframeHtml:Se,getWindowSelf:z,getWindowTop:F,getWindowLocation:L,insertUserSyncIframe:me,insertElement:pe,isFn:te,triggerPixel:ye,logError:Z,logWarn:H,logMessage:K,logInfo:V,parseQS:hn,formatQS:mn,deepEqual:An},C={};function w(){return C}var O,B={},_=function(e,n){return n}.bind(null,1,B)()===B?Function.prototype.bind:function(e){var n=this,t=Array.prototype.slice.call(arguments,1);return function(){return n.apply(e,t.concat(Array.prototype.slice.call(arguments)))}},U=(O=0,function(){return++O});function R(){return U()+Math.random().toString(16).substr(2)}function D(e){return e?(e^(window&&window.crypto&&window.crypto.getRandomValues?crypto.getRandomValues(new Uint8Array(1))[0]%16:16*Math.random())>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,D)}function k(e,n){return n&&n[e]?n[e]:""}function j(e,n,t){return t?e+n+"="+encodeURIComponent(t)+"&":e}function N(e){var n="";for(var t in e)e.hasOwnProperty(t)&&(n+=t+"="+encodeURIComponent(e[t])+"&");return n.replace(/&$/,"")}function P(e){return e&&Object.getOwnPropertyNames(e).length>0?we(e).map((function(n){return"".concat(n,"=").concat(encodeURIComponent(Oe(e,n)))})).join("&"):""}function x(e){if(e){var n=[];if(e.mediaTypes&&e.mediaTypes.banner&&Array.isArray(e.mediaTypes.banner.sizes)){var t=e.mediaTypes.banner.sizes;Array.isArray(t[0])?n=t:n.push(t)}else Array.isArray(e.sizes)&&(Array.isArray(e.sizes[0])?n=e.sizes:n.push(e.sizes));return n}}function q(e){var n=[];if("string"==typeof e){var t=e.split(","),r=/^(\d)+x(\d)+$/i;if(t)for(var i in t)ge(t,i)&&t[i].match(r)&&n.push(t[i])}else if("object"===p(e)){var o=e.length;if(o>0)if(2===o&&"number"==typeof e[0]&&"number"==typeof e[1])n.push(M(e));else for(var a=0;a<o;a++)n.push(M(e[a]))}return n}function M(e){if(W(e))return e[0]+"x"+e[1]}function G(e){if(W(e))return{w:e[0],h:e[1]}}function W(e){return ie(e)&&2===e.length&&!isNaN(e[0])&&!isNaN(e[1])}function F(){return window.top}function z(){return window.self}function L(){return window.location}function K(){X()&&m&&console.log.apply(console,J(arguments,"MESSAGE:"))}function V(){X()&&E&&console.info.apply(console,J(arguments,"INFO:"))}function H(){X()&&S&&console.warn.apply(console,J(arguments,"WARNING:")),T(y.EVENTS.AUCTION_DEBUG,{type:"WARNING",arguments:arguments})}function Z(){X()&&A&&console.error.apply(console,J(arguments,"ERROR:")),T(y.EVENTS.AUCTION_DEBUG,{type:"ERROR",arguments:arguments})}function Y(e){function n(n){return function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];n.apply(void 0,[e].concat(r))}}return{logError:n(Z),logWarn:n(H),logMessage:n(K),logInfo:n(V)}}function J(e,n){e=[].slice.call(e);var t=r.vc.getCurrentBidder();return n&&e.unshift(n),t&&e.unshift(i("#aaa")),e.unshift(i("#3b88c3")),e.unshift("%cPrebid"+(t?"%c".concat(t):"")),e;function i(e){return"display: inline-block; color: #fff; background: ".concat(e,"; padding: 1px 4px; border-radius: 3px;")}}function Q(){return m}function X(){return!!r.vc.getConfig("debug")}function $(){var e=document.createElement("iframe");return e.id=R(),e.height=0,e.width=0,e.border="0px",e.hspace="0",e.vspace="0",e.marginWidth="0",e.marginHeight="0",e.style.border="0",e.scrolling="no",e.frameBorder="0",e.src="about:blank",e.style.display="none",e}function ee(e){return hn(L().search)[e]||""}function ne(e,n){return b.call(e)==="[object "+n+"]"}function te(e){return ne(e,"Function")}function re(e){return ne(e,"String")}function ie(e){return ne(e,"Array")}function oe(e){return ne(e,"Number")}function ae(e){return ne(e,"Object")}function ce(e){return ne(e,"Boolean")}function ue(e){if(!e)return!0;if(ie(e)||re(e))return!(e.length>0);for(var n in e)if(hasOwnProperty.call(e,n))return!1;return!0}function se(e){return re(e)&&(!e||0===e.length)}function de(e,n){if(!ue(e)){if(te(e.forEach))return e.forEach(n,this);var t=0,r=e.length;if(r>0)for(;t<r;t++)n(e[t],t,e);else for(t in e)hasOwnProperty.call(e,t)&&n.call(this,e[t],t)}}function fe(e,n){if(ue(e))return!1;if(te(e.indexOf))return-1!==e.indexOf(n);for(var t=e.length;t--;)if(e[t]===n)return!0;return!1}function le(e,n){if(ue(e))return[];if(te(e.map))return e.map(n);var t=[];return de(e,(function(r,i){t.push(n(r,i,e))})),t}function ge(e,n){return e.hasOwnProperty?e.hasOwnProperty(n):void 0!==e[n]&&e.constructor.prototype[n]!==e[n]}function pe(e,n,t,r){var i;n=n||document,i=t?n.getElementsByTagName(t):n.getElementsByTagName("head");try{if((i=i.length?i:n.getElementsByTagName("body")).length){i=i[0];var o=r?null:i.firstChild;return i.insertBefore(e,o)}}catch(e){}}function ve(e,n){var t=null;return new Promise((function(r){var i=function n(){e.removeEventListener("load",n),e.removeEventListener("error",n),null!=t&&window.clearTimeout(t),r()};e.addEventListener("load",i),e.addEventListener("error",i),null!=n&&(t=window.setTimeout(i,n))}))}function ye(e,n,t){var r=new Image;n&&I.isFn(n)&&ve(r,t).then(n),r.src=e}function be(e){var n=e.source,t=e.burl;n===y.S2S.SRC&&t&&I.triggerPixel(t)}function he(e){if(e){var n=document.createElement("iframe");n.id=R(),n.width=0,n.height=0,n.hspace="0",n.vspace="0",n.marginWidth="0",n.marginHeight="0",n.style.display="none",n.style.height="0px",n.style.width="0px",n.scrolling="no",n.frameBorder="0",n.allowtransparency="true",I.insertElement(n,document,"body"),n.contentWindow.document.open(),n.contentWindow.document.write(e),n.contentWindow.document.close()}}function me(e,n,t){var r=I.createTrackPixelIframeHtml(e,!1,"allow-scripts allow-same-origin"),i=document.createElement("div");i.innerHTML=r;var o=i.firstChild;n&&I.isFn(n)&&ve(o,t).then(n),I.insertElement(o,document,"html",!0)}function Ee(e){return e?'<div style="position:absolute;left:0px;top:0px;visibility:hidden;">'+'<img src="'+encodeURI(e)+'"></div>':""}function Se(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e?(n&&(e=encodeURI(e)),t&&(t='sandbox="'.concat(t,'"')),"<iframe ".concat(t,' id="').concat(R(),'"\n frameborder="0"\n allowtransparency="true"\n marginheight="0" marginwidth="0"\n width="0" hspace="0" vspace="0" height="0"\n style="height:0px;width:0px;display:none;"\n scrolling="no"\n src="').concat(e,'">\n </iframe>')):""}function Ae(e,n,t){return null==n?t:re(n)?n:oe(n)?n.toString():void I.logWarn("Unsuported type for param: "+e+" required type: String")}function Te(e,n,t){return t.indexOf(e)===n}function Ie(e,n){return e.concat(n)}function Ce(e,n){var t;if(e)return n.some((function(n){var r=(0,a.sE)(n.bids,(function(n){return["bidId","adId","bid_id"].some((function(t){return n[t]===e}))}));return r&&(t=r),r})),t}function we(e){return Object.keys(e)}function Oe(e,n){return e[n]}function Be(e,n){for(var t in e)if(e.hasOwnProperty(t)&&e[t]===n)return t}function _e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:pbjs.adUnits;return e.map((function(e){return e.bids.map((function(e){return e.bidder})).reduce(Ie,[])})).reduce(Ie,[]).filter(Te)}function Ue(){if(window.googletag&&te(window.googletag.pubads)&&te(window.googletag.pubads().getSlots))return!0}function Re(){if(window.apntag&&te(window.apntag.getTag))return!0}var De=Ne("timeToRespond",(function(e,n){return e>n})),ke=Ne("responseTimestamp",(function(e,n){return e>n})),je=Ne("responseTimestamp",(function(e,n){return e<n}));function Ne(e,n){return function(t,r){return t.cpm===r.cpm?n(t[e],r[e])?r:t:t.cpm<r.cpm?r:t}}function Pe(e){for(var n=e.length;n>0;){var t=Math.floor(Math.random()*n),r=e[--n];e[n]=e[t],e[t]=r}return e}function xe(e,n){return(0,a.q9)(e,n&&n.adUnitCode)}function qe(e){return o()(e)}function Me(){try{return I.getWindowSelf()!==I.getWindowTop()}catch(e){return!0}}function Ge(){return/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)}function We(e,n){if(e)return e.replace(/\$\{AUCTION_PRICE\}/g,n)}function Fe(e,n){if(e&&n&&"string"==typeof n)return e.replace(/\${CLICKTHROUGH}/g,n)}function ze(){return(new Date).getTime()}function Le(){return window.performance&&window.performance.now&&window.performance.now()||0}function Ke(){return!1!==r.vc.getConfig("deviceAccess")}function Ve(){if(window.navigator.cookieEnabled||document.cookie.length)return!0}function He(e,n){if(n<1)throw new Error("numRequiredCalls must be a positive number. Got ".concat(n));var t=0;return function(){++t===n&&e.apply(this,arguments)}}function Ze(e,n){return e.reduce((function(e,t){return(e[t[n]]=e[t[n]]||[]).push(t),e}),{})}function Ye(e,n){return n.filter((function(n){return e[n]})).reduce((function(n,t){return g(n,l({},t,e[t]))}),{})}function Je(e){var n=["banner","native","video"];return!!Object.keys(e).every((function(e){return(0,a.q9)(n,e)}))&&(!e.video||!e.video.context||(0,a.q9)(["instream","outstream","adpod"],e.video.context))}function Qe(e,n,t){return e.filter((function(e){return e.code===n})).map((function(e){return e.bids})).reduce(Ie,[]).filter((function(e){return e.bidder===t})).map((function(e){return e.params||{}}))}function Xe(){return window.location.origin?window.location.origin:window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")}function $e(){return"1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack}var en=function(e,n){return e.getAdUnitPath()===n||e.getSlotElementId()===n};function nn(e){return function(n){return en(e,n)}}function tn(e){return function(n){return en(n,e)}}function rn(e){var n;return Ue()&&(n=(0,a.sE)(window.googletag.pubads().getSlots(),tn(e))),n?{gptSlot:n.getAdUnitPath(),divId:n.getSlotElementId()}:{}}function on(e,n){var t=Object.keys(e.mediaTypes||{banner:"banner"}).join(", ");return"\n ".concat(e.code," is a ").concat(t," ad unit\n containing bidders that don't support ").concat(t,": ").concat(n,".\n This bidder won't fetch demand.\n ")}function an(e){return Number.isInteger?Number.isInteger(e):"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function cn(e){return e.replace(/(?:^|\.?)([A-Z])/g,(function(e,n){return"_"+n.toLowerCase()})).replace(/^_/,"")}function un(e){return Object.keys(e).reduce((function(n,t){return void 0!==e[t]&&(n[t]=e[t]),n}),{})}function sn(e,n){return"object"!==p(e)?{}:n.reduce((function(t,r,i){if("function"==typeof r)return t;var o=r,a=r.match(/^(.+?)\sas\s(.+?)$/i);a&&(r=a[1],o=a[2]);var c=e[r];return"function"==typeof n[i+1]&&(c=n[i+1](c,t)),void 0!==c&&(t[o]=c),t}),{})}function dn(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"keywords",t=[];return de(e,(function(e,r){if(ie(e)){var i=[];de(e,(function(e){((e=Ae(n+"."+r,e))||""===e)&&i.push(e)})),e=i}else{if(!re(e=Ae(n+"."+r,e)))return;e=[e]}t.push({key:r,value:e})})),t}function fn(e,n){return Object.keys(e).forEach((function(t){var r,i;n[t]&&(te(e[t])?n[t]=e[t](n[t]):n[t]=(r=e[t],i=n[t],"string"===r?i&&i.toString():"number"===r?Number(i):i),isNaN(n[t])&&delete n.key)})),n}function ln(e,n){return ie(e)&&(!n||e.length===n)&&e.every((function(e){return an(e)}))}function gn(e,n){for(var t=[],r=0;r<n;r++){var i=ae(e)?qe(e):e;t.push(i)}return t}function pn(e,n){for(var t=[],r=0;r<Math.ceil(e.length/n);r++){var i=r*n,o=i+n;t.push(e.slice(i,o))}return t}function vn(e){return Math.min.apply(Math,s(e))}function yn(e){return Math.max.apply(Math,s(e))}function bn(e){return function(n,t){return n[e]<t[e]?1:n[e]>t[e]?-1:0}}function hn(e){return e?e.replace(/^\?/,"").split("&").reduce((function(e,n){var t,r,i=(t=n.split("="),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,o=[],a=!0,c=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){c=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(c)throw i}}return o}}(t,r)||d(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[0],a=i[1];return/\[\]$/.test(o)?(e[o=o.replace("[]","")]=e[o]||[],e[o].push(a)):e[o]=a||"",e}),{}):{}}function mn(e){return Object.keys(e).map((function(n){return Array.isArray(e[n])?e[n].map((function(e){return"".concat(n,"[]=").concat(e)})).join("&"):"".concat(n,"=").concat(e[n])})).join("&")}function En(e,n){var t=document.createElement("a");n&&"noDecodeWholeURL"in n&&n.noDecodeWholeURL?t.href=e:t.href=decodeURIComponent(e);var r=n&&"decodeSearchAsString"in n&&n.decodeSearchAsString;return{href:t.href,protocol:(t.protocol||"").replace(/:$/,""),hostname:t.hostname,port:+t.port,pathname:t.pathname.replace(/^(?!\/)/,"/"),search:r?t.search:I.parseQS(t.search||""),hash:(t.hash||"").replace(/^#/,""),host:t.host||window.location.host}}function Sn(e){return(e.protocol||"http")+"://"+(e.host||e.hostname+(e.port?":".concat(e.port):""))+(e.pathname||"")+(e.search?"?".concat(I.formatQS(e.search||"")):"")+(e.hash?"#".concat(e.hash):"")}function An(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.checkTypes,i=void 0!==r&&r;if(e===n)return!0;if("object"!==p(e)||null===e||"object"!==p(n)||null===n||i&&e.constructor!==n.constructor)return!1;if(Object.keys(e).length!==Object.keys(n).length)return!1;for(var o in e){if(!n.hasOwnProperty(o))return!1;if(!An(e[o],n[o],{checkTypes:i}))return!1}return!0}function Tn(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];if(!t.length)return e;var i=t.shift();if(ae(e)&&ae(i)){var o=function(n){ae(i[n])?(e[n]||g(e,l({},n,{})),Tn(e[n],i[n])):ie(i[n])?e[n]?ie(e[n])&&i[n].forEach((function(t){for(var r=1,i=0;i<e[n].length;i++)if(An(e[n][i],t)){r=0;break}r&&e[n].push(t)})):g(e,l({},n,s(i[n]))):g(e,l({},n,i[n]))};for(var a in i)o(a)}return Tn.apply(void 0,[e].concat(t))}function In(e){for(var n,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=function(e,n){if(te(Math.imul))return Math.imul(e,n);var t=(4194303&e)*(n|=0);return 4290772992&e&&(t+=(4290772992&e)*n|0),0|t},i=3735928559^t,o=1103547991^t,a=0;a<e.length;a++)i=r(i^(n=e.charCodeAt(a)),2654435761),o=r(o^n,1597334677);return i=r(i^i>>>16,2246822507)^r(o^o>>>13,3266489909),(4294967296*(2097151&(o=r(o^o>>>16,2246822507)^r(i^i>>>13,3266489909)))+(i>>>0)).toString()}function Cn(e){return e?e.defaultView:null}},1929:function(e,n,t){"use strict";t.d(n,{Dn:function(){return d},LD:function(){return s},gZ:function(){return u},hD:function(){return f}});var r=t(265),i=t(9853),o=t(8962),a=t(3494),c=t(4766),u="outstream",s="instream";function d(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.index,i=void 0===t?c.K.index:t,o=(0,r.Z)(i.getMediaTypes(e),"video"),a=o&&(0,r.Z)(o,"context"),u=i.getAdUnit(e);return f(e,u,o,a)}var f=(0,a.z3)("sync",(function(e,n,t,r){return t&&r!==u?o.vc.getConfig("cache.url")||!e.vastXml||e.vastUrl?!(!e.vastUrl&&!e.vastXml):((0,i.logError)('\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: "..."} });\n '),!1):r!==u||!!(e.renderer||n&&n.renderer||t.renderer)}),"checkVideoBidSetup")},905:function(e,n,t){"use strict";t.d(n,{h:function(){return u},z:function(){return s}});var r=t(5755),i=t(8962),o=t(4766);function a(e,n){var t=n?"<![CDATA[".concat(n,"]]]]><![CDATA[>"):"";return'<VAST version="3.0">\n <Ad>\n <Wrapper>\n <AdSystem>prebid.org wrapper</AdSystem>\n <VASTAdTagURI><![CDATA['.concat(e,"]]]]><![CDATA[></VASTAdTagURI>\n <Impression>").concat(t,"</Impression>\n <Creatives></Creatives>\n </Wrapper>\n </Ad>\n </VAST>")}function c(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.index,r=void 0===t?o.K.index:t,c=e.vastXml?e.vastXml:a(e.vastUrl,e.vastImpUrl),u=r.getAuction(e),s={type:"xml",value:c,ttlseconds:Number(e.ttl)};return i.vc.getConfig("cache.vasttrack")&&(s.bidder=e.bidder,s.bidid=e.requestId,s.aid=e.auctionId),null!=u&&(s.timestamp=u.getAuctionStart()),"string"==typeof e.customCacheKey&&""!==e.customCacheKey&&(s.key=e.customCacheKey),s}function u(e,n){var t={puts:e.map(c)};(0,r.h)(i.vc.getConfig("cache.url"),function(e){return{success:function(n){var t;try{t=JSON.parse(n).responses}catch(n){return void e(n,[])}t?e(null,t):e(new Error("The cache server didn't respond with a responses property."),[])},error:function(n,t){e(new Error("Error storing video ad in the cache: ".concat(n,": ").concat(JSON.stringify(t))),[])}}}(n),JSON.stringify(t),{contentType:"text/plain",withCredentials:!0})}function s(e){return"".concat(i.vc.getConfig("cache.url"),"?uuid=").concat(e)}},265:function(e,n,t){"use strict";function r(e,n,t,r,i){for(n=n.split?n.split("."):n,r=0;r<n.length;r++)e=e?e[n[r]]:i;return e===i?t:e}t.d(n,{Z:function(){return r}})},4806:function(e,n,t){"use strict";function r(e,n,t){n.split&&(n=n.split("."));for(var r,i=0,o=n.length,a=e;i<o;++i)r=a[n[i]],a=a[n[i]]=i===o-1?t:null!=r?r:!~n[i+1].indexOf(".")&&+n[i+1]>-1?[]:{}}t.d(n,{Z:function(){return r}})},1432:function(e){a.SYNC=1,a.ASYNC=2,a.QUEUE=4;var n=Object.freeze({useProxy:!0,ready:0}),t=new WeakMap,r="2,1,0"===[1].reduce((function(e,n,t){return[e,n,t]}),2).toString()?Array.prototype.reduce:function(e,n){var t,r=Object(this),i=r.length>>>0,o=0;if(n)t=n;else{for(;o<i&&!(o in r);)o++;t=r[o++]}for(;o<i;)o in r&&(t=e(t,r[o],o,r)),o++;return t};function i(e,n){return Array.prototype.slice.call(e,n)}var o=Object.assign||function(e){return r.call(i(arguments,1),(function(e,n){return n&&Object.keys(n).forEach((function(t){e[t]=n[t]})),e}),e)};function a(e){var c,u={},s=[];function d(e,n){return"function"==typeof e?p.call(null,"sync",e,n):"string"==typeof e&&"function"==typeof n?p.apply(null,arguments):"object"==typeof e?f.apply(null,arguments):void 0}function f(e,n,t){var r=!0;void 0===n&&(n=Object.getOwnPropertyNames(e),r=!1);var i={},o=["constructor"];do{(n=n.filter((function(n){return!("function"!=typeof e[n]||-1!==o.indexOf(n)||n.match(/^_/))}))).forEach((function(n){var r=n.split(":"),o=r[0],a=r[1]||"sync";if(!i[o]){var c=e[o];i[o]=e[o]=p(a,c,t?[t,o]:void 0)}})),e=Object.getPrototypeOf(e)}while(r&&e);return i}function l(e){var n=Array.isArray(e)?e:e.split(".");return r.call(n,(function(t,r,i){var o=t[r],a=!1;return o||(i===n.length-1?(c||s.push((function(){a||console.warn("fun-hooks: referenced '"+e+"' but it was never created")})),t[r]=g((function(e){t[r]=e,a=!0}))):t[r]={})}),u)}function g(e){var n=[],r=[],i=function(){},a={before:function(e,t){return u.call(this,n,"before",e,t)},after:function(e,n){return u.call(this,r,"after",e,n)},getHooks:function(e){var t=n.concat(r);"object"==typeof e&&(t=t.filter((function(n){return Object.keys(e).every((function(t){return n[t]===e[t]}))})));try{o(t,{remove:function(){return t.forEach((function(e){e.remove()})),this}})}catch(e){console.error("error adding `remove` to array, did you modify Array.prototype?")}return t},removeAll:function(){return this.getHooks().remove()}},c={install:function(t,o,a){this.type=t,i=a,a(n,r),e&&e(o)}};return t.set(a.after,c),a;function u(e,t,o,a){var c={hook:o,type:t,priority:a||10,remove:function(){var t=e.indexOf(c);-1!==t&&(e.splice(t,1),i(n,r))}};return e.push(c),e.sort((function(e,n){return n.priority-e.priority})),i(n,r),this}}function p(n,r,u){var d=r.after&&t.get(r.after);if(d){if(d.type!==n)throw"fun-hooks: recreated hookable with different type";return r}var f,p,v=u?l(u):g(),y={get:function(e,n){return v[n]||Reflect.get.apply(Reflect,arguments)}};return c||s.push(b),e.useProxy&&"function"==typeof Proxy&&Proxy.revocable?p=new Proxy(r,y):(p=function(){return y.apply?y.apply(r,this,i(arguments)):r.apply(this,arguments)},o(p,v)),t.get(p.after).install(n,p,(function(e,t){var r,o=[];function a(e){o.push(e.hook)}e.length||t.length?(e.forEach(a),r=o.push(void 0)-1,t.forEach(a),f=function(e,t,a){var c,u=0,s="async"===n&&"function"==typeof a[a.length-1]&&a.pop();function d(e){"sync"===n?c=e:s&&s.apply(null,arguments)}function f(e){if(o[u]){var r=i(arguments);return f.bail=d,r.unshift(f),o[u++].apply(t,r)}"sync"===n?c=e:s&&s.apply(null,arguments)}return o[r]=function(){var r=i(arguments,1);"async"===n&&s&&(delete f.bail,r.push(f));var o=e.apply(t,r);"sync"===n&&f(o)},f.apply(null,a),c}):f=void 0,b()})),p;function b(){!c&&("sync"!==n||e.ready&a.SYNC)&&("async"!==n||e.ready&a.ASYNC)?"sync"!==n&&e.ready&a.QUEUE?y.apply=function(){var e=arguments;s.push((function(){p.apply(e[1],e[2])}))}:y.apply=function(){throw"fun-hooks: hooked function not ready"}:y.apply=f}}return(e=o({},n,e)).ready?d.ready=function(){c=!0,function(e){for(var n;n=e.shift();)n()}(s)}:c=!0,d.get=l,d}e.exports=a},7079:function(e){e.exports=function e(n){var t=Array.isArray(n)?[]:{};for(var r in n){var i=n[r];t[r]=i&&"object"==typeof i?e(i):i}return t}},5644:function(e){"use strict";e.exports=JSON.parse('{"JSON_MAPPING":{"PL_CODE":"code","PL_SIZE":"sizes","PL_BIDS":"bids","BD_BIDDER":"bidder","BD_ID":"paramsd","BD_PL_ID":"placementId","ADSERVER_TARGETING":"adserverTargeting","BD_SETTING_STANDARD":"standard"},"DEBUG_MODE":"pbjs_debug","STATUS":{"GOOD":1,"NO_BID":2},"CB":{"TYPE":{"ALL_BIDS_BACK":"allRequestedBidsBack","AD_UNIT_BIDS_BACK":"adUnitBidsBack","BID_WON":"bidWon","REQUEST_BIDS":"requestBids"}},"EVENTS":{"AUCTION_INIT":"auctionInit","AUCTION_END":"auctionEnd","BID_ADJUSTMENT":"bidAdjustment","BID_TIMEOUT":"bidTimeout","BID_REQUESTED":"bidRequested","BID_RESPONSE":"bidResponse","NO_BID":"noBid","BID_WON":"bidWon","BIDDER_DONE":"bidderDone","BIDDER_ERROR":"bidderError","SET_TARGETING":"setTargeting","BEFORE_REQUEST_BIDS":"beforeRequestBids","BEFORE_BIDDER_HTTP":"beforeBidderHttp","REQUEST_BIDS":"requestBids","ADD_AD_UNITS":"addAdUnits","AD_RENDER_FAILED":"adRenderFailed","AD_RENDER_SUCCEEDED":"adRenderSucceeded","TCF2_ENFORCEMENT":"tcf2Enforcement","AUCTION_DEBUG":"auctionDebug","BID_VIEWABLE":"bidViewable","STALE_RENDER":"staleRender","BILLABLE_EVENT":"billableEvent"},"AD_RENDER_FAILED_REASON":{"PREVENT_WRITING_ON_MAIN_DOCUMENT":"preventWritingOnMainDocument","NO_AD":"noAd","EXCEPTION":"exception","CANNOT_FIND_AD":"cannotFindAd","MISSING_DOC_OR_ADID":"missingDocOrAdid"},"EVENT_ID_PATHS":{"bidWon":"adUnitCode"},"GRANULARITY_OPTIONS":{"LOW":"low","MEDIUM":"medium","HIGH":"high","AUTO":"auto","DENSE":"dense","CUSTOM":"custom"},"TARGETING_KEYS":{"BIDDER":"hb_bidder","AD_ID":"hb_adid","PRICE_BUCKET":"hb_pb","SIZE":"hb_size","DEAL":"hb_deal","SOURCE":"hb_source","FORMAT":"hb_format","UUID":"hb_uuid","CACHE_ID":"hb_cache_id","CACHE_HOST":"hb_cache_host","ADOMAIN":"hb_adomain"},"DEFAULT_TARGETING_KEYS":{"BIDDER":"hb_bidder","AD_ID":"hb_adid","PRICE_BUCKET":"hb_pb","SIZE":"hb_size","DEAL":"hb_deal","FORMAT":"hb_format","UUID":"hb_uuid","CACHE_HOST":"hb_cache_host"},"NATIVE_KEYS":{"title":"hb_native_title","body":"hb_native_body","body2":"hb_native_body2","privacyLink":"hb_native_privacy","privacyIcon":"hb_native_privicon","sponsoredBy":"hb_native_brand","image":"hb_native_image","icon":"hb_native_icon","clickUrl":"hb_native_linkurl","displayUrl":"hb_native_displayurl","cta":"hb_native_cta","rating":"hb_native_rating","address":"hb_native_address","downloads":"hb_native_downloads","likes":"hb_native_likes","phone":"hb_native_phone","price":"hb_native_price","salePrice":"hb_native_saleprice","rendererUrl":"hb_renderer_url","adTemplate":"hb_adTemplate"},"S2S":{"SRC":"s2s","DEFAULT_ENDPOINT":"https://prebid.adnxs.com/pbs/v1/openrtb2/auction","SYNCED_BIDDERS_KEY":"pbjsSyncs"},"BID_STATUS":{"BID_TARGETING_SET":"targetingSet","RENDERED":"rendered","BID_REJECTED":"bidRejected"}}')}},t={};function r(e){var i=t[e];if(void 0!==i)return i.exports;var o=t[e]={exports:{}};return n[e].call(o.exports,o,o.exports,r),o.exports}r.m=n,e=[],r.O=function(n,t,i,o){if(!t){var a=1/0;for(d=0;d<e.length;d++){t=e[d][0],i=e[d][1],o=e[d][2];for(var c=!0,u=0;u<t.length;u++)(!1&o||a>=o)&&Object.keys(r.O).every((function(e){return r.O[e](t[u])}))?t.splice(u--,1):(c=!1,o<a&&(a=o));if(c){e.splice(d--,1);var s=i();void 0!==s&&(n=s)}}return n}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[t,i,o]},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,{a:n}),n},r.d=function(e,n){for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={5602:0};r.O.j=function(n){return 0===e[n]};var n=function(n,t){var i,o,a=t[0],c=t[1],u=t[2],s=0;if(a.some((function(n){return 0!==e[n]}))){for(i in c)r.o(c,i)&&(r.m[i]=c[i]);if(u)var d=u(r)}for(n&&n(t);s<a.length;s++)o=a[s],r.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return r.O(d)},t=self.pbjsChunk=self.pbjsChunk||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}();var i=r(2786);i=r.O(i)}(); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[3188],{4475:function(e,t,n){var r=n(9853),o=n(1609),s=n(5849);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var i="concert",d={code:i,isBidRequestValid:function(e){return!!e.params.partnerId||((0,r.logWarn)("Missing partnerId bid parameter"),!1)},buildRequests:function(e,t){(0,r.logMessage)(e),(0,r.logMessage)(t);var n={meta:{prebidVersion:"6.23.0",pageUrl:t.refererInfo.referer,screen:[window.screen.width,window.screen.height].join("x"),debug:(0,r.debugTurnedOn)(),uid:u(t),optedOut:p(),adapterVersion:"1.1.1",uspConsent:t.uspConsent,gdprConsent:t.gdprConsent}};return n.slots=e.map((function(e){return{name:e.adUnitCode,bidId:e.bidId,transactionId:e.transactionId,sizes:e.params.sizes||e.sizes,partnerId:e.params.partnerId,slotType:e.params.slotType,adSlot:e.params.slot||e.adUnitCode,placementId:e.params.placementId||"",site:e.params.site||t.refererInfo.referer}})),(0,r.logMessage)(n),{method:"POST",url:"".concat("https://bids.concert.io","/bids/prebid"),data:JSON.stringify(n)}},interpretResponse:function(e,t){(0,r.logMessage)(e),(0,r.logMessage)(t);var n,o=e.body;return o&&"object"===a(o)?(n=o.bids.map((function(e){return{requestId:e.bidId,cpm:e.cpm,width:e.width,height:e.height,ad:e.ad,ttl:e.ttl,meta:{advertiserDomains:e&&e.adomain?e.adomain:[]},creativeId:e.creativeId,netRevenue:e.netRevenue,currency:e.currency}})),(0,r.debugTurnedOn)()&&o.debug&&(0,r.logMessage)("CONCERT",o.debug),(0,r.logMessage)(n),n):[]},getUserSyncs:function(e,t,n,r){var o=[];if(e.iframeEnabled&&!p()){var s=[];n&&"boolean"==typeof n.gdprApplies&&s.push("gdpr_applies=".concat(n.gdprApplies?"1":"0")),n&&"string"==typeof n.consentString&&s.push("gdpr_consent=".concat(n.consentString)),r&&"string"==typeof r&&s.push("usp_consent=".concat(r)),o.push({type:"iframe",url:"https://cdn.concert.io/lib/bids/sync.html"+(s.length>0?"?".concat(s.join("&")):"")})}return o},onTimeout:function(e){(0,r.logMessage)("concert bidder timed out"),(0,r.logMessage)(e)},onBidWon:function(e){(0,r.logMessage)("concert bidder won bid"),(0,r.logMessage)(e)}};(0,o.registerBidder)(d);var c=(0,s.df)({bidderCode:i});function u(e){if(p()||!function(e){return!("string"===e.uspConsent&&"1YY"===e.uspConsent.toUpperCase().substring(0,2))}(e))return!1;var t="c_uid",n=c.getDataFromLocalStorage(t);return n||(n=(0,r.generateUUID)(),c.setDataInLocalStorage(t,n)),n}function p(){return"true"===c.getDataFromLocalStorage("c_nap")}window.pbjs.installedModules.push("concertBidAdapter")}},function(e){e(e.s=4475)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[1266],{1654:function(n,e,t){var o=t(9853),a=t(8962),r=t(7602),i=t(1879);function c(n){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},c(n)}function s(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,o)}return t}function l(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?s(Object(t),!0).forEach((function(e){d(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function d(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}var u,f,p,g,v,m={value:!0,definedInConfig:!1},b=0,C=!1,y={iab:function(n){var e=n.onSuccess,t=n.onError,a=n.width,r=n.height;function c(n,a){(0,o.logInfo)("Received a response from CMP",n),a?!1!==n.gdprApplies&&"tcloaded"!==n.eventStatus&&"useractioncomplete"!==n.eventStatus||D(n,{onSuccess:e,onError:t}):t("CMP unable to register callback function. Please check CMP setup.")}var s=function(){var n={};function a(){n.getConsentData&&n.getVendorConsents&&((0,o.logInfo)("Received all requested responses from CMP",n),D(n,{onSuccess:e,onError:t}))}return{consentDataCallback:function(e){n.getConsentData=e,a()},vendorConsentsCallback:function(e){n.getVendorConsents=e,a()}}}(),l={},u=function(){for(var n,e,t=window;!n;){try{if("function"==typeof t.__tcfapi||"function"==typeof t.__cmp){"function"==typeof t.__tcfapi?(b=2,e=t.__tcfapi):(b=1,e=t.__cmp),n=t;break}}catch(n){}try{if(t.frames.__tcfapiLocator){b=2,n=t;break}}catch(n){}try{if(t.frames.__cmpLocator){b=1,n=t;break}}catch(n){}if(t===window.top)break;t=t.parent}return{cmpFrame:n,cmpFunction:e}}(),f=u.cmpFrame,p=u.cmpFunction;if(!f)return t("CMP not found.");function g(n,e){window.$sf.ext.register(a,r,(function(t,o){if("cmpReturn"===t){var a="getConsentData"===n?o.vendorConsentData:o.vendorConsents;e(a)}})),window.$sf.ext.cmp(n)}function v(n,e,t){var o=2===b?"__tcfapi":"__cmp",a="".concat(o,"Call");function r(n){var e="".concat(o,"Return"),t="string"==typeof n.data&&(0,i.q9)(n.data,e)?JSON.parse(n.data):n.data;if(t[e]&&t[e].callId){var a=t[e];void 0!==l[a.callId]&&l[a.callId](a.returnValue,a.success)}}2===b?(window[o]=function(n,t,o,r){var i=Math.random()+"",c=d({},a,{command:n,version:t,parameter:r,callId:i});l[i]=o,e.postMessage(c,"*")},window.addEventListener("message",r,!1),window[o](n,b,t)):(window[o]=function(n,t,o){var r=Math.random()+"",i=d({},a,{command:n,parameter:t,callId:r});l[r]=o,e.postMessage(i,"*")},window.addEventListener("message",r,!1),window[o](n,void 0,t))}(0,o.isFn)(p)?((0,o.logInfo)("Detected CMP API is directly accessible, calling it now..."),1===b?(p("getConsentData",null,s.consentDataCallback),p("getVendorConsents",null,s.vendorConsentsCallback)):2===b&&p("addEventListener",b,c)):1===b&&window.$sf&&window.$sf.ext&&"function"==typeof window.$sf.ext.cmp?((0,o.logInfo)("Detected Prebid.js is encased in a SafeFrame and CMP is registered, calling it now..."),g("getConsentData",s.consentDataCallback),g("getVendorConsents",s.vendorConsentsCallback)):((0,o.logInfo)("Detected CMP is outside the current iframe where Prebid.js is located, calling it now..."),1===b?(v("getConsentData",f,s.consentDataCallback),v("getVendorConsents",f,s.vendorConsentsCallback)):2===b&&v("addEventListener",f,c))},static:function(n){var e=n.onSuccess,t=n.onError;D(g,{onSuccess:e,onError:t})}};function w(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=!1,a=null;function c(e,t,i){if(null!=a&&clearTimeout(a),o=!0,r.rp.setConsentData(e),null!=n){for(var c=arguments.length,s=new Array(c>3?c-3:0),l=3;l<c;l++)s[l-3]=arguments[l];n.apply(void 0,[t,i].concat(s))}}if((0,i.q9)(Object.keys(y),u)){var s={onSuccess:function(n){return c(n,!1)},onError:function(n){var e=null,t=!0;m.value&&1===b&&(e=P(void 0),t=!1);for(var o=arguments.length,a=new Array(o>1?o-1:0),r=1;r<o;r++)a[r-1]=arguments[r];c.apply(void 0,[e,t,n].concat(a))}};y[u](l({width:e,height:t},s)),o||(0===f?D(void 0,s):a=setTimeout((function(){2===b?c(P(void 0),!1,"No response from CMP, continuing auction..."):s.onError("CMP workflow exceeded timeout threshold.")}),f))}else c(null,!1,"CMP framework (".concat(u,") is not a supported framework. Aborting consentManagement module and resuming auction."))}function h(n,e){!function(){if(v)return(0,o.logInfo)("User consent information already known. Pulling internally stored information..."),function(n){n(!1)};var n=e.adUnits||pbjs.adUnits,t=1,a=1;if(Array.isArray(n)&&n.length>0){var r,i,c=(0,o.getAdUnitSizes)(n[0]);t=(null==c||null===(r=c[0])||void 0===r?void 0:r[0])||1,a=(null==c||null===(i=c[0])||void 0===i?void 0:i[1])||1}return function(n){w(n,t,a)}}()((function(t,a){if(a){var r=o.logWarn;1!==b||t?t&&(r=o.logError,a="".concat(a," Canceling auction as per consentManagement config.")):a="".concat(a," 'allowAuctionWithoutConsent' activated.");for(var i=arguments.length,c=new Array(i>2?i-2:0),s=2;s<i;s++)c[s-2]=arguments[s];r.apply(void 0,[a].concat(c))}t?"function"==typeof e.bidsBackHandler?e.bidsBackHandler():(0,o.logError)("Error executing bidsBackHandler"):n.call(this,e)}))}function D(n,e){var t=e.onSuccess,a=e.onError;"static"===u&&2==(b=n.getConsentData?1:n.getTCData?2:0)&&(n=n.getTCData);var r=1===b?function(n){var e=n&&n.getConsentData&&n.getConsentData.gdprApplies;return!("boolean"==typeof e&&(!0!==e||(0,o.isStr)(n.getConsentData.consentData)&&(0,o.isPlainObject)(n.getVendorConsents)&&Object.keys(n.getVendorConsents).length>1))}:2===b?function(){var e=n&&"boolean"==typeof n.gdprApplies?n.gdprApplies:p,t=n&&n.tcString;return!("boolean"==typeof e&&(!0!==e||(0,o.isStr)(t)))}:null;(0,o.isFn)(r)?r(n)?a("CMP returned unexpected value during lookup process.",n):t(P(n)):a("Unable to derive CMP version to process data. Consent object does not conform to TCF v1 or v2 specs.",n)}function P(n){return 1===b?v={consentString:n?n.getConsentData.consentData:void 0,vendorData:n?n.getVendorConsents:void 0,gdprApplies:n?n.getConsentData.gdprApplies:p}:(v={consentString:n?n.tcString:void 0,vendorData:n||void 0,gdprApplies:n&&"boolean"==typeof n.gdprApplies?n.gdprApplies:p},n&&n.addtlConsent&&(0,o.isStr)(n.addtlConsent)&&(v.addtlConsent=n.addtlConsent)),v.apiVersion=b,v}a.vc.getConfig("consentManagement",(function(n){return function(n){(n=n&&(n.gdpr||n.usp?n.gdpr:n))&&"object"===c(n)?((0,o.isStr)(n.cmpApi)?u=n.cmpApi:(u="iab",(0,o.logInfo)("consentManagement config did not specify cmp. Using system default setting (".concat("iab",")."))),(0,o.isNumber)(n.timeout)?f=n.timeout:(f=1e4,(0,o.logInfo)("consentManagement config did not specify timeout. Using system default setting (".concat(1e4,")."))),"boolean"==typeof n.allowAuctionWithoutConsent&&(m.value=n.allowAuctionWithoutConsent,m.definedInConfig=!0),p=!0===n.defaultGdprScope,(0,o.logInfo)("consentManagement module has been activated..."),"static"===u&&((0,o.isPlainObject)(n.consentData)?(g=n.consentData,f=0):(0,o.logError)("consentManagement config with cmpApi: 'static' did not specify consentData. No consents will be available to adapters.")),C||pbjs.requestBids.before(h,50),C=!0,r.rp.enable(),w(),m.definedInConfig&&2===b?(0,o.logWarn)("'allowAuctionWithoutConsent' ignored for TCF 2"):m.definedInConfig||1!==b||(0,o.logInfo)("'allowAuctionWithoutConsent' using system default: (".concat(!0,")."))):(0,o.logWarn)("consentManagement config not defined, exiting consent manager")}(n.consentManagement)})),window.pbjs.installedModules.push("consentManagement")}},function(n){n(n.s=1654)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[5160],{1366:function(n,t,e){var o=e(9853),a=e(8962),i=e(7602);function c(n){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},c(n)}var s,r,u,l,p=!1,f={iab:function(n){var t,e=n.onSuccess,a=n.onError,i=(t={},{consentDataCallback:function(n,o){o&&n.uspString&&(t.usPrivacy=n.uspString),t.usPrivacy?m(t,{onSuccess:e,onError:a}):a("Unable to get USP consent string.")}}),c={},s=function(){for(var n,t,e=window;!n;){try{if("function"==typeof e.__uspapi){t=e.__uspapi,n=e;break}}catch(n){}try{if(e.frames.__uspapiLocator){n=e;break}}catch(n){}if(e===window.top)break;e=e.parent}return{uspapiFrame:n,uspapiFunction:t}}(),r=s.uspapiFrame,u=s.uspapiFunction;if(!r)return a("USP CMP not found.");(0,o.isFn)(u)?((0,o.logInfo)("Detected USP CMP is directly accessible, calling it now..."),u("getUSPData",1,i.consentDataCallback)):((0,o.logInfo)("Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now..."),function(n,t,e){window.__uspapi=function(n,e,o){var a=Math.random()+"",i={__uspapiCall:{command:n,version:e,callId:a}};c[a]=o,t.postMessage(i,"*")},window.addEventListener("message",(function(n){var t=n&&n.data&&n.data.__uspapiReturn;t&&t.callId&&void 0!==c[t.callId]&&(c[t.callId](t.returnValue,t.success),delete c[t.callId])}),!1),window.__uspapi("getUSPData",1,e)}(0,r,i.consentDataCallback))},static:function(n){var t=n.onSuccess,e=n.onError;m(u,{onSuccess:t,onError:e})}};function d(n){var t=null,e=!1;function o(o,a){if(null!=t&&clearTimeout(t),e=!0,i.nX.setConsentData(o),null!=n){for(var c=arguments.length,s=new Array(c>2?c-2:0),r=2;r<c;r++)s[r-2]=arguments[r];n.apply(void 0,[a].concat(s))}}if(f[s]){var a={onSuccess:o,onError:function(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),a=1;a<t;a++)e[a-1]=arguments[a];o.apply(void 0,[null,"".concat(n," Resuming auction without consent data as per consentManagement config.")].concat(e))}};f[s](a),e||(0===r?m(void 0,a):t=setTimeout(a.onError.bind(null,"USPAPI workflow exceeded timeout threshold."),r))}else o(null,"USP framework (".concat(s,") is not a supported framework. Aborting consentManagement module and resuming auction."))}function g(n,t){var e=this;d((function(a){if(null!=a){for(var i=arguments.length,c=new Array(i>1?i-1:0),s=1;s<i;s++)c[s-1]=arguments[s];o.logWarn.apply(void 0,[a].concat(c))}n.call(e,t)}))}function m(n,t){var e=t.onSuccess,o=t.onError;n&&n.usPrivacy?(function(n){n&&n.usPrivacy&&(l=n.usPrivacy)}(n),e(l)):o("USPAPI returned unexpected value during lookup process.",n)}a.vc.getConfig("consentManagement",(function(n){return function(n){(n=n&&n.usp)&&"object"===c(n)?((0,o.isStr)(n.cmpApi)?s=n.cmpApi:(s="iab",(0,o.logInfo)("consentManagement.usp config did not specify cmpApi. Using system default setting (".concat("iab",")."))),(0,o.isNumber)(n.timeout)?r=n.timeout:(r=50,(0,o.logInfo)("consentManagement.usp config did not specify timeout. Using system default setting (".concat(50,")."))),(0,o.logInfo)("USPAPI consentManagement module has been activated..."),"static"===s&&((0,o.isPlainObject)(n.consentData)&&(0,o.isPlainObject)(n.consentData.getUSPData)?(n.consentData.getUSPData.uspString&&(u={usPrivacy:n.consentData.getUSPData.uspString}),r=0):(0,o.logError)("consentManagement config with cmpApi: 'static' did not specify consentData. No consents will be available to adapters.")),p||pbjs.requestBids.before(g,50),p=!0,i.nX.enable(),d()):(0,o.logWarn)("consentManagement.usp config not defined, exiting usp consent manager")}(n.consentManagement)})),window.pbjs.installedModules.push("consentManagementUsp")}},function(n){n(n.s=1366)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[8806],{2235:function(e,n,t){var i=t(9853),o=t(3494),r=t(2661),c=t(5849),d={},a=window===window.top?window:window.top,m=(0,c.eA)("enrichmentFpd");function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.hostname;if(!m.cookiesAreEnabled())return e;var n,t,o=e.split(".");if(2==o.length)return e;var r=-2,c="_rdc".concat(Date.now()),d="writeable";do{n=o.slice(r).join(".");var a=new Date((0,i.timestamp)()+1e4).toUTCString();m.setCookie(c,d,a,"Lax",n,void 0);var u=m.getCookie(c,void 0);u===d?(t=!1,m.setCookie(c,"","Thu, 01 Jan 1970 00:00:01 GMT",void 0,n,void 0)):(r+=-1,t=Math.abs(r)<=o.length)}while(t);return n}var l={name:"enrichments",queue:2,init:function(e,n){return d={},e.skipEnrichments?n:(0,i.mergeDeep)(((0,r.n)().referer&&(0,i.mergeDeep)(d,{site:{ref:(0,r.n)().referer}}),(0,r.n)().canonicalUrl&&(0,i.mergeDeep)(d,{site:{page:(0,r.n)().canonicalUrl}}),(t=function(e){if(e&&"string"==typeof e&&0!==e.length){var n=e.match(/^(?:https?:\/\/)?(?:www\.)?(.*?(?=(\?|\#|\/|$)))/i);return n&&n[1]}}((0,r.n)().canonicalUrl))&&((0,i.mergeDeep)(d,{site:{domain:t}}),(0,i.mergeDeep)(d,{site:{publisher:{domain:u(t)}}})),function(){var e,n;try{e=a.innerWidth||a.document.documentElement.clientWidth||a.document.body.clientWidth,n=a.innerHeight||a.document.documentElement.clientHeight||a.document.body.clientHeight}catch(t){e=window.innerWidth||window.document.documentElement.clientWidth||window.document.body.clientWidth,n=window.innerHeight||window.document.documentElement.clientHeight||window.document.body.clientHeight}(0,i.mergeDeep)(d,{device:{w:e,h:n}})}(),function(){var e;try{e=a.document.querySelector("meta[name='keywords']")}catch(n){e=window.document.querySelector("meta[name='keywords']")}e&&e.content&&(0,i.mergeDeep)(d,{site:{keywords:e.content.replace(/\s/g,"")}})}(),d),n);var t}};(0,o.Bx)("firstPartyData",l),window.pbjs.installedModules.push("enrichmentFpdModule")}},function(e){e(e.s=2235)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[7910],{8303:function(t,e,n){var o=n(8962),s=n(3494),u=n(2528),i=n(4892),f=[];function r(t,e){var n,s;n=o.vc.getConfig("firstPartyData")||{},s=o.vc.getConfig("ortb2")||{},f.sort((function(t,e){return(t.queue||1)-(e.queue||1)})).forEach((function(t){s=t.init(n,s)})),o.vc.setConfig({ortb2:s}),t.call(this,e),i.e0.getHooks({hook:r}).remove()}function c(){(0,s.v5)("addBidderRequests").before(r)}(0,s.bA)("firstPartyData",(function(t){f.push(t)})),c(),(0,u.R)().refreshFpd=c,window.pbjs.installedModules.push("fpdModule")}},function(t){t(t.s=8303)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[7083],{1489:function(e,r,n){var t=n(265),o=n(9853),i=n(8962),a=n(7602),c=n(1879),s=n(1609),l=n(3494),p=n(5849),u=n(2319),f=n(5644);function d(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function v(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?d(Object(n),!0).forEach((function(r){g(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}function g(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function b(){return b=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e},b.apply(this,arguments)}function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}var h,m,O,E,P={purpose1:{id:1,name:"storage"},purpose2:{id:2,name:"basicAds"},purpose7:{id:7,name:"measurement"}},j=[{purpose:"storage",enforcePurpose:!0,enforceVendor:!0,vendorExceptions:[]},{purpose:"basicAds",enforcePurpose:!0,enforceVendor:!0,vendorExceptions:[]}],C=[],A=[],D=[],w=!1,S=function(e){var r=null;if(e=e||i.vc.getCurrentBidder()){var n=a.ZP.getBidAdapter(e);n&&n.getSpec&&(r=n.getSpec().gvlid)}return r},k=function(e){return"object"===y(e)?e.gvlid:null},V=function(e){return a.ZP.getAnalyticsAdapter(e)&&(a.ZP.getAnalyticsAdapter(e).gvlid||null)};function T(e){var r=null;if(e){var n=i.vc.getConfig("gvlMapping"),t="string"==typeof e?e:e.name;if(n&&n[t])return n[t];r=S(t)||k(e)||V(t)}return r}function B(e,r,n,o){var i=P[Object.keys(P).filter((function(r){return P[r].name===e.purpose}))[0]].id;if((0,c.q9)(e.vendorExceptions||[],n))return!0;var a=(0,t.Z)(r,"vendorData.purpose.consents.".concat(i)),s=(0,t.Z)(r,"vendorData.vendor.consents.".concat(o)),l=(0,t.Z)(r,"vendorData.purpose.legitimateInterests.".concat(i)),p=!1===e.enforcePurpose||!0===a,u=!1===e.enforceVendor||!0===s;return 2===i?p&&u||!0===l:p&&u}function Z(e,r,n,t){if(t=b({},{hasEnforcementHook:!0}),(0,o.hasDeviceAccess)()){var c=a.rp.getConsentData();if(c&&c.gdprApplies)if(2===c.apiVersion){var s=i.vc.getCurrentBidder();r=s&&s!=n&&a.ZP.aliasRegistry[s]===n?T(s):T(n)||r;var l=n||s;B(h,c,l,r)?(t.valid=!0,e.call(this,r,n,t)):(l&&(0,o.logWarn)("TCF2 denied device access for ".concat(l)),t.valid=!1,C.push(l),e.call(this,r,n,t))}else t.valid=!0,e.call(this,r,n,t);else t.valid=!0,e.call(this,r,n,t)}else(0,o.logWarn)("Device access is disabled by Publisher"),t.valid=!1,e.call(this,r,n,t)}function W(e){for(var r=a.rp.getConsentData(),n=arguments.length,t=new Array(n>1?n-1:0),c=1;c<n;c++)t[c-1]=arguments[c];if(r&&r.gdprApplies)if(2===r.apiVersion){var s=i.vc.getCurrentBidder(),l=T(s),p=B(h,r,s,l);p?e.call.apply(e,[this].concat(t)):((0,o.logWarn)("User sync not allowed for ".concat(s)),C.push(s))}else e.call.apply(e,[this].concat(t));else e.call.apply(e,[this].concat(t))}function F(e,r,n){if(n&&n.gdprApplies)if(2===n.apiVersion){var t=r.map((function(e){var r=T(e.submodule),t=e.submodule.name;if(B(h,n,t,r))return e;(0,o.logWarn)("User denied permission to fetch user id for ".concat(t," User id module")),C.push(t)})).filter((function(e){return e}));e.call(this,t,v(v({},n),{},{hasValidated:!0}))}else e.call(this,r,n);else e.call(this,r,n)}function N(e,r){for(var n=a.rp.getConsentData(),t=arguments.length,i=new Array(t>2?t-2:0),s=2;s<t;s++)i[s-2]=arguments[s];n&&n.gdprApplies&&2===n.apiVersion?(r.forEach((function(e){e.bids=e.bids.filter((function(e){var r=e.bidder,t=T(r);if((0,c.q9)(A,r))return!1;var i=!!B(m,n,r,t);return i||((0,o.logWarn)("TCF2 blocked auction for ".concat(r)),A.push(r)),i}))})),e.call.apply(e,[this,r].concat(i))):e.call.apply(e,[this,r].concat(i))}function M(e,r){var n=a.rp.getConsentData();n&&n.gdprApplies&&2===n.apiVersion?((0,o.isArray)(r)||(r=[r]),r=r.filter((function(e){var r=e.provider,t=T(r),i=!!B(O,n,r,t);return i||(D.push(r),(0,o.logWarn)("TCF2 blocked analytics adapter ".concat(e.provider))),i})),e.call(this,r)):e.call(this,r)}u.on(f.EVENTS.AUCTION_END,(function(){var e=function(e){return e.filter((function(r,n){return null!==r&&e.indexOf(r)===n}))},r={storageBlocked:e(C),biddersBlocked:e(A),analyticsBlocked:e(D)};u.emit(f.EVENTS.TCF2_ENFORCEMENT,r)}));var x=function(e){return e.purpose===P.purpose1.name},U=function(e){return e.purpose===P.purpose2.name},q=function(e){return e.purpose===P.purpose7.name};i.vc.getConfig("consentManagement",(function(e){return function(e){var r=(0,t.Z)(e,"gdpr.rules");r?E=r:((0,o.logWarn)("TCF2: enforcing P1 and P2 by default"),E=j),h=(0,c.sE)(E,x),m=(0,c.sE)(E,U),O=(0,c.sE)(E,q),h||(h=j[0]),m||(m=j[1]),h&&!w&&(w=!0,p.S6.before(Z,49),s.registerSyncInner.before(W,48),(0,l.v5)("validateGdprEnforcement").before(F,47)),m&&(0,l.v5)("makeBidRequests").before(N),O&&(0,l.v5)("enableAnalyticsCb").before(M)}(e.consentManagement)})),window.pbjs.installedModules.push("gdprEnforcement")}},function(e){e(e.s=1489)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[5296],{7652:function(t,e,o){var n=o(9853),r=o(265),a=o(8962),d=o(3494),i=o(1879),u=void 0,c={},s=!1,f=function(t){var e=c.customGptSlotMatching;if((0,n.isGptPubadsDefined)()){var o=t.reduce((function(t,e){return t[e.code]=e,t}),{});window.googletag.pubads().getSlots().forEach((function(t){var r=(0,i.sE)(Object.keys(o),e?e(t):(0,n.isAdUnitCodeMatchingSlot)(t));if(r){var a=o[r];a.ortb2Imp=a.ortb2Imp||{},a.ortb2Imp.ext=a.ortb2Imp.ext||{},a.ortb2Imp.ext.data=a.ortb2Imp.ext.data||{};var d=a.ortb2Imp.ext.data;d.adserver=d.adserver||{},d.adserver.name="gam",d.adserver.adslot=p(t.getAdUnitPath())}}))}},p=function(t){return(a.vc.getConfig("gptPreAuction")||{}).mcmEnabled?t.replace(/(^\/\d*),\d*\//,"$1/"):t},l=function(t,e){var o=t.ortb2Imp.ext.data;if(o.pbadslot)return o.pbadslot;if((0,n.isGptPubadsDefined)()){var r=window.googletag.pubads().getSlots().filter((function(t){return t.getAdUnitPath()===e}));if(0!==r.length)return 1===r.length?e:"".concat(e,"#").concat(t.code)}},b=function(t){var e=t.ortb2Imp.ext.data,o=c.customPbAdSlot;if(!e.pbadslot)if(o)e.pbadslot=o(t.code,(0,r.Z)(e,"adserver.adslot"));else{try{var n=document.getElementById(t.code);if(n.dataset.adslotid)return void(e.pbadslot=n.dataset.adslotid)}catch(t){}if(!(0,r.Z)(e,"adserver.adslot"))return e.pbadslot=t.code,!0;e.pbadslot=e.adserver.adslot}},g=function(t,e){f(e);var o=c,n=o.useDefaultPreAuction,a=o.customPreAuction;e.forEach((function(t){t.ortb2Imp=t.ortb2Imp||{},t.ortb2Imp.ext=t.ortb2Imp.ext||{},t.ortb2Imp.ext.data=t.ortb2Imp.ext.data||{};var e=t.ortb2Imp.ext;if(a||n){var o,d=(0,r.Z)(e,"data.adserver.adslot");a?o=a(t,d):n&&(o=l(t,d)),o&&(e.gpid=e.data.pbadslot=o)}else{var i=b(t);e.gpid||i||(e.gpid=e.data.pbadslot)}}));for(var d=arguments.length,i=new Array(d>2?d-2:0),s=2;s<d;s++)i[s-2]=arguments[s];return t.call.apply(t,[u,e].concat(i))},m=function(t){(c=(0,n.pick)(t,["enabled",function(t){return!1!==t},"customGptSlotMatching",function(t){return"function"==typeof t&&t},"customPbAdSlot",function(t){return"function"==typeof t&&t},"customPreAuction",function(t){return"function"==typeof t&&t},"useDefaultPreAuction",function(t){return!0===t}])).enabled?s||((0,d.v5)("makeBidRequests").before(g),s=!0):((0,n.logInfo)("".concat("GPT Pre-Auction",": Turning off module")),c={},(0,d.v5)("makeBidRequests").getHooks({hook:g}).remove(),s=!1)};a.vc.getConfig("gptPreAuction",(function(t){return m(t.gptPreAuction)})),m({}),window.pbjs.installedModules.push("gptPreAuction")}},function(t){t(t.s=7652)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[6312],{7890:function(e,t,r){var n=r(9853),o=r(265),i=r(1609),a=r(8962),u=r(8265),c=r(2224);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f="sharethrough",m="https://btlr.sharethrough.com/universal/v1?supply_id=".concat("WYu2BXv1"),g=function(){return window.location.protocol},b={code:f,supportedMediaTypes:[u.pX,u.Mk],gvlid:80,isBidRequestValid:function(e){return!!e.params.pkey&&e.bidder===f},buildRequests:function(e,t){var r,i,u,s=a.vc.getConfig("bidderTimeout"),p=a.vc.getConfig("ortb2")||{},y=g().indexOf("http")<0||g().indexOf("https")>-1,f={id:(0,n.generateUUID)(),at:1,cur:["USD"],tmax:s,site:l({domain:window.location.hostname,page:window.location.href,ref:(0,o.Z)(t,"refererInfo.referer")},p.site),device:{ua:navigator.userAgent,language:navigator.language,js:1,dnt:"1"===navigator.doNotTrack?1:0,h:window.screen.height,w:window.screen.width},regs:{coppa:!0===a.vc.getConfig("coppa")?1:0,ext:{}},source:{ext:{version:"6.23.0",str:"4.1.0",schain:e[0].schain}},bcat:e[0].params.bcat||[],badv:e[0].params.badv||[],test:0};if(f.user=h(p.user,{}),f.user.ext||(f.user.ext={}),f.user.ext.eids=(r=e[0],i=(0,c.HQ)((0,o.Z)(r,"userId"))||[],(u=(0,o.Z)(r,"userId.flocId"))&&u.id&&u.version&&i.push({source:"chrome.com",uids:[{id:u.id,atype:1,ext:{ver:u.version}}]}),i),t.gdprConsent){var b=!0===t.gdprConsent.gdprApplies;f.regs.ext.gdpr=b?1:0,b&&(f.user.ext.consent=t.gdprConsent.consentString)}return t.uspConsent&&(f.regs.ext.us_privacy=t.uspConsent),e.map((function(e){var t={},r=(0,o.Z)(e,"ortb2Imp.ext.data.pbadslot");r&&(t.ext={gpid:r});var i,a,u,c,s,p,f=(0,o.Z)(e,"mediaTypes.video");if(f){var m=640,g=360;if(f.playerSize&&f.playerSize[0]&&f.playerSize[1]){var b=(s=f.playerSize,p=2,function(e){if(Array.isArray(e))return e}(s)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}(s,p)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(s,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());m=b[0],g=b[1]}t.video={pos:h(f.pos,0),topframe:(0,n.inIframe)()?0:1,skip:h(f.skip,0),linearity:h(f.linearity,1),minduration:h(f.minduration,5),maxduration:h(f.maxduration,60),playbackmethod:f.playbackmethod||[2],api:(u=f,c=u.api,c&&Array.isArray(c)&&c.length>0?c:[2]),mimes:f.mimes||["video/mp4"],protocols:(i=f,a=i.protocols,a&&Array.isArray(a)&&a.length>0?a:[2,3,5,6,7,8]),w:m,h:g,startdelay:h(f.startdelay,0),skipmin:h(f.skipmin,0),skipafter:h(f.skipafter,0),placement:"instream"===f.context?1:+(0,o.Z)(f,"placement",4)},f.delivery&&(t.video.delivery=f.delivery),f.companiontype&&(t.video.companiontype=f.companiontype),f.companionad&&(t.video.companionad=f.companionad)}else t.banner={pos:(0,o.Z)(e,"mediaTypes.banner.pos",0),topframe:(0,n.inIframe)()?0:1,format:e.sizes.map((function(e){return{w:+e[0],h:+e[1]}}))};return l({id:e.bidId,tagid:String(e.params.pkey),secure:y?1:0,bidfloor:v(e)},t)})).filter((function(e){return!!e})).map((function(e){return{method:"POST",url:m,data:l(l({},f),{},{imp:[e]})}}))},interpretResponse:function(e,t){var r=e.body;return r&&r.seatbid&&0!==r.seatbid.length&&r.seatbid[0].bid&&0!==r.seatbid[0].bid.length?r.seatbid[0].bid.map((function(e){var n={requestId:e.impid,width:+e.w,height:+e.h,cpm:+e.price,creativeId:e.crid,dealId:e.dealid||null,mediaType:t.data.imp[0].video?u.pX:u.Mk,currency:r.cur||"USD",netRevenue:!0,ttl:360,ad:e.adm,nurl:e.nurl,meta:{advertiserDomains:e.adomain||[]}};return n.mediaType===u.pX&&(n.ttl=3600,n.vastXml=e.adm),n})):[]},getUserSyncs:function(e,t,r,n){var o=n?"&us_privacy=".concat(n):"",i=[];return e.pixelEnabled&&t.length>0&&t[0].body&&t[0].body.cookieSyncUrls&&t[0].body.cookieSyncUrls.forEach((function(e){i.push({type:"image",url:e+o})})),i},onTimeout:function(e){},onBidWon:function(e){},onSetTargeting:function(e){}};function v(e){var t=null;if("function"==typeof e.getFloor){var r=e.getFloor({currency:"USD",mediaType:e.mediaTypes&&e.mediaTypes.video?"video":"banner",size:e.sizes.map((function(e){return{w:e[0],h:e[1]}}))});"object"!==s(r)||"USD"!==r.currency||isNaN(parseFloat(r.floor))||(t=parseFloat(r.floor))}return null!==t?t:e.params.floor}function h(e,t){return null==e?t:e}(0,i.registerBidder)(b),window.pbjs.installedModules.push("sharethroughBidAdapter")},2224:function(e,t,r){r.d(t,{HQ:function(){return u},Pv:function(){return c},UR:function(){return i}});var n=r(9853),o=r(265),i={trustpid:{source:"trustpid.com",atype:1,getValue:function(e){return e}},intentIqId:{source:"intentiq.com",atype:1},naveggId:{source:"navegg.com",atype:1},justId:{source:"justtag.com",atype:1},pubcid:{source:"pubcid.org",atype:1},tdid:{source:"adserver.org",atype:1,getUidExt:function(){return{rtiPartner:"TDID"}}},id5id:{getValue:function(e){return e.uid},source:"id5-sync.com",atype:1,getUidExt:function(e){if(e.ext)return e.ext}},ftrackId:{source:"flashtalking.com",atype:1,getValue:function(e){return e.uid},getUidExt:function(e){if(e.ext)return e.ext}},parrableId:{source:"parrable.com",atype:1,getValue:function(e){return e.eid?e.eid:e.ccpaOptout?"":null},getUidExt:function(e){var t=(0,n.pick)(e,["ibaOptout","ccpaOptout"]);if(Object.keys(t).length)return t}},idl_env:{source:"liveramp.com",atype:3},lipb:{getValue:function(e){return e.lipbid},source:"liveintent.com",atype:3,getEidExt:function(e){if(Array.isArray(e.segments)&&e.segments.length)return{segments:e.segments}}},britepoolid:{source:"britepool.com",atype:3},dmdId:{source:"hcn.health",atype:3},lotamePanoramaId:{source:"crwdcntrl.net",atype:1},criteoId:{source:"criteo.com",atype:1},merkleId:{source:"merkleinc.com",atype:3,getValue:function(e){return e.id},getUidExt:function(e){return e&&e.keyID?{keyID:e.keyID}:void 0}},netId:{source:"netid.de",atype:1},IDP:{source:"zeotap.com",atype:1},hadronId:{source:"audigent.com",atype:1},haloId:{source:"audigent.com",atype:1},quantcastId:{source:"quantcast.com",atype:1},nextrollId:{source:"nextroll.com",atype:1},idx:{source:"idx.lat",atype:1},connectid:{source:"verizonmedia.com",atype:3},fabrickId:{source:"neustar.biz",atype:1},mwOpenLinkId:{source:"mediawallahscript.com",atype:1},tapadId:{source:"tapad.com",atype:1},novatiq:{getValue:function(e){return e.snowflake},source:"novatiq.com",atype:1},uid2:{source:"uidapi.com",atype:3,getValue:function(e){return e.id}},dapId:{source:"akamai.com",atype:1},deepintentId:{source:"deepintent.com",atype:3},admixerId:{source:"admixer.net",atype:3},adtelligentId:{source:"adtelligent.com",atype:3},amxId:{source:"amxrtb.com",atype:1},publinkId:{source:"epsilon.com",atype:3},kpuid:{source:"kpuid.com",atype:3},imuid:{source:"intimatemerger.com",atype:1},connectId:{source:"yahoo.com",atype:3},qid:{source:"adquery.io",atype:1},dacId:{source:"impact-ad.jp",atype:1},"33acrossId":{source:"33across.com",atype:1,getValue:function(e){return e.envelope}}};function a(e,t){var r=i[t];if(r&&e){var o={};o.source=r.source;var a=(0,n.isFn)(r.getValue)?r.getValue(e):e;if((0,n.isStr)(a)){var u={id:a,atype:r.atype};if((0,n.isFn)(r.getUidExt)){var c=r.getUidExt(e);c&&(u.ext=c)}if(o.uids=[u],(0,n.isFn)(r.getEidExt)){var s=r.getEidExt(e);s&&(o.ext=s)}return o}}return null}function u(e){var t=[];for(var r in e)if(e.hasOwnProperty(r))if("pubProvidedId"===r)t=t.concat(e.pubProvidedId);else{var n=a(e[r],r);n&&t.push(n)}return t}function c(e){var t=[];return e.filter((function(e){return(0,n.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length})).forEach((function(e){Object.keys(e.idObj).forEach((function(r){(0,o.Z)(e,"config.bidders")&&Array.isArray(e.config.bidders)&&(0,o.Z)(i,r+".source")&&t.push({source:i[r].source,bidders:e.config.bidders})}))})),t}}},function(e){e(e.s=7890)}]); "use strict";(self.pbjsChunk=self.pbjsChunk||[]).push([[8029],{8973:function(e,r,t){var n=t(9853),i=t(265),a=t(1609),o=t(5849);function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?s(Object(t),!0).forEach((function(r){p(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function p(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var c="teads",u=(0,o.df)({gvlid:132,bidderCode:c}),f={code:c,gvlid:132,supportedMediaTypes:["video","banner"],isBidRequestValid:function(e){var r=!1;if(void 0!==e.params){var t=v((0,n.getValue)(e.params,"placementId")),i=v((0,n.getValue)(e.params,"pageId"));r=t&&i}return r||(0,n.logError)("Teads placementId and pageId parameters are required. Bid aborted."),r},buildRequests:function(e,r){var t,n,a=e.map(y),o=d(d(d({referrer:g(r),pageReferrer:document.referrer,networkBandwidth:(n=window.navigator,n&&n.connection&&n.connection.downlink>=0?n.connection.downlink.toString():""),timeToFirstByte:l(window),data:a,deviceWidth:screen.width,hb_version:"6.23.0"},function(e){if(!e)return{};var r=e.id?{cohortId:e.id}:{},t=e.version?{cohortVersion:e.version}:{};return d(d({},r),t)}((0,i.Z)(e,"0.userId.flocId"))),(t=(0,i.Z)(e,"0.userId.uid2"))?{unifiedId2:t.id}:{}),function(){if(!u.cookiesAreEnabled())return{};var e=u.getCookie("_tfpvi");return e?{firstPartyCookieTeadsId:e}:{}}());e[0].schain&&(o.schain=e[0].schain);var s=r.gdprConsent;if(r&&s){var p="boolean"==typeof s.gdprApplies,c="string"==typeof s.consentString,f=p?function(e,r,t){var n=12;return e?function(e,r){return e&&1===r?e.hasGlobalScope||e.hasGlobalConsent:!(!e||2!==r||e.isServiceSpecific)}(r,t)&&(n=11):n=0,n}(s.gdprApplies,s.vendorData,s.apiVersion):22;o.gdpr_iab={consent:c?s.consentString:"",status:f,apiVersion:s.apiVersion}}return r&&r.uspConsent&&(o.us_privacy=r.uspConsent),{method:"POST",url:"https://a.teads.tv/hb/bid-request",data:JSON.stringify(o)}},interpretResponse:function(e,r){var t=[];return(e=e.body).responses&&e.responses.forEach((function(e){var r={cpm:e.cpm,width:e.width,height:e.height,currency:e.currency,netRevenue:!0,ttl:e.ttl,meta:{advertiserDomains:e&&e.adomain?e.adomain:[]},ad:e.ad,requestId:e.bidId,creativeId:e.creativeId,placementId:e.placementId};e.dealId&&(r.dealId=e.dealId),t.push(r)})),t}};function g(e){var r="";return e&&e.refererInfo&&e.refererInfo.referer&&(r=e.refererInfo.referer),r}function l(e){var r=e.performance||e.webkitPerformance||e.msPerformance||e.mozPerformance,t=r&&"function"==typeof r.getEntriesByType&&"[object Function]"===Object.prototype.toString.call(r.getEntriesByType)&&r.getEntriesByType("navigation")[0]&&r.getEntriesByType("navigation")[0].responseStart&&r.getEntriesByType("navigation")[0].requestStart&&r.getEntriesByType("navigation")[0].responseStart>0&&r.getEntriesByType("navigation")[0].requestStart>0&&Math.round(r.getEntriesByType("navigation")[0].responseStart-r.getEntriesByType("navigation")[0].requestStart);if(t)return t.toString();var n=r&&r.timing.responseStart&&r.timing.requestStart&&r.timing.responseStart>0&&r.timing.requestStart>0&&r.timing.responseStart-r.timing.requestStart;return n?n.toString():""}function y(e){var r={},t=(0,n.getValue)(e.params,"placementId"),a=(0,n.getValue)(e.params,"pageId"),o=(0,i.Z)(e,"ortb2Imp.ext.gpid");return r.sizes=function(e){return(0,n.parseSizesInput)(function(e){var r=(0,i.Z)(e,"mediaTypes.video.playerSize"),t=(0,i.Z)(e,"mediaTypes.video.sizes"),a=(0,i.Z)(e,"mediaTypes.banner.sizes");return(0,n.isArray)(a)||(0,n.isArray)(r)||(0,n.isArray)(t)?[a,t,r].reduce((function(e,r){return(0,n.isArray)(r)&&((0,n.isArray)(r[0])?r.forEach((function(r){e.push(r)})):e.push(r)),e}),[]):e.sizes}(e))}(e),r.bidId=(0,n.getBidIdParameter)("bidId",e),r.bidderRequestId=(0,n.getBidIdParameter)("bidderRequestId",e),r.placementId=parseInt(t,10),r.pageId=parseInt(a,10),r.adUnitCode=(0,n.getBidIdParameter)("adUnitCode",e),r.auctionId=(0,n.getBidIdParameter)("auctionId",e),r.transactionId=(0,n.getBidIdParameter)("transactionId",e),o&&(r.gpid=o),r}function v(e){return parseInt(e)>0}(0,a.registerBidder)(f),window.pbjs.installedModules.push("teadsBidAdapter")}},function(e){e(e.s=8973)}]); pbjs.processQueue(); !function(){"use strict";var e={709:function(){var e=e||{};e.que=e.que||[]},427:function(){window.innerWidth>768&&(window.adUnits=[{code:"banner-1",mediaTypes:{banner:{sizes:[[728,90],[970,90],[970,250],[620,366]]}},bids:[{bidder:"concert",params:{partnerId:"phillymagazine"}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"teads",params:{placementId:110831,pageId:102392}}]},{code:"banner-2",mediaTypes:{banner:{sizes:[[728,90],[970,90],[970,250],[620,366]]}},bids:[{bidder:"concert",params:{partnerId:"phillymagazine"}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"teads",params:{placementId:110831,pageId:102392}}]},{code:"rail-1",mediaTypes:{banner:{sizes:[[300,250],[300,600],[620,366]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]},{code:"rail-2",mediaTypes:{banner:{sizes:[[300,250],[300,600],[620,366]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]},{code:"rail-3",mediaTypes:{banner:{sizes:[[300,250],[300,600],[620,366]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]}]),window.innerWidth>768&&"true"===window.mcAds.hasBannerThree&&window.adUnits.push({code:"banner-3",mediaTypes:{banner:{sizes:[[728,90],[970,90],[970,250],[620,366]]}},bids:[{bidder:"concert",params:{partnerId:"phillymagazine"}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"teads",params:{placementId:110831,pageId:102392}}]})},591:function(){window.innerWidth<=768&&(window.adUnits=[{code:"banner-1",mediaTypes:{banner:{sizes:[[320,50],[320,100]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"teads",params:{placementId:142225,pageId:129517}}]},{code:"banner-2",mediaTypes:{banner:{sizes:[[320,50],[320,100],[300,250],[325,204],[325,508],[325,204]]}},bids:[{bidder:"teads",params:{placementId:142225,pageId:129517}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]},{code:"rail-1",mediaTypes:{banner:{sizes:[[300,250],[300,600],[320,100],[320,50],[325,204],[325,508],[325,204]]}},bids:[{bidder:"concert",params:{partnerId:"phillymagazine"}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}}]},{code:"rail-2",mediaTypes:{banner:{sizes:[[300,250],[300,600],[320,100],[320,50],[325,204],[325,508],[325,204]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]},{code:"rail-3",mediaTypes:{banner:{sizes:[[300,250],[300,600],[320,100],[320,50],[325,204],[325,508],[325,204]]}},bids:[{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}},{bidder:"concert",params:{partnerId:"phillymagazine"}}]},{code:"mobile_sticky",mediaTypes:{banner:{sizes:[[320,50],[325,204],[1,2]]}},bids:[{bidder:"concert",params:{partnerId:"phillymagazine"}},{bidder:"sharethrough",params:{pkey:"kmKwq9T16wzAfZvjzoFhDLco"}}]}])}},r={};function a(d){var i=r[d];if(void 0!==i)return i.exports;var n=r[d]={exports:{}};return e[d](n,n.exports,a),n.exports}a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,{a:r}),r},a.d=function(e,r){for(var d in r)a.o(r,d)&&!a.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:r[d]})},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a(427),a(591),a(709)}(); /* ]]> */ </script> <script type="text/javascript" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" id="gpt-js" async></script> <script type="text/javascript" id="gpt-js-after"> /* <![CDATA[ */ !function(){var e={909:function(){window.googletag=window.googletag||{},googletag.cmd=googletag.cmd||[],googletag.cmd.push((function(){mcAds.mapping={},mcAds.mapping.bannerOneMapping=googletag.sizeMapping().addSize([0,0],[[320,100],[320,50]]).addSize([768,200],[[728,90]]).addSize([1050,200],[[728,90],[970,90],[970,250]]).build(),mcAds.mapping.bannerMapping=googletag.sizeMapping().addSize([0,0],[[300,250],[320,100],[320,50]]).addSize([768,200],[[728,90]]).addSize([1050,200],[[728,90],[970,90],[970,250]]).build(),mcAds.mapping.railMapping=googletag.sizeMapping().addSize([0,0],[[300,250],[320,100],[320,50]]).addSize([768,200],[[300,250],[300,600]]).addSize([1050,200],[[300,250],[300,600]]).build(),mcAds.mapping.toprailMapping=googletag.sizeMapping().addSize([0,0],[[300,150],[300,90]]).addSize([768,200],[[300,150],[300,90]]).addSize([1050,200],[[300,150],[300,90]]).build(),mcAds.mapping.inlineMapping=googletag.sizeMapping().addSize([0,0],[[300,250],[320,50],[320,100]]).addSize([768,200],[[300,250],[320,50],[320,100]]).addSize([1050,200],[[300,250],[320,50],[320,100]]).build(),mcAds.mapping.searchMapping=googletag.sizeMapping().addSize([0,0],[[300,250],[320,100],[320,50]]).addSize([768,200],[[728,90],[300,250]]).addSize([1050,200],[[728,90],[970,90],[970,250],[300,250]]).build(),mcAds.mapping.adrevealMapping=googletag.sizeMapping().addSize([0,0],[[360,585]]).addSize([650,200],[[780,300]]).addSize([1050,200],[[1300,500]]).build()}))},786:function(){const e=parseInt(mcAds.prebidTimeout,10)||1e3,t=parseInt(mcAds.prebidFailsafeTimeout,10)||3e3;window.pbjs=window.pbjs||{},pbjs.que=pbjs.que||[],pbjs.que.push((function(){if("undefined"===typeof window.adUnits)return void(mcAds.debug&&console.log("Aborting prebid, window.adUnits is undefined."));const t=[];for(let e=window.adUnits.length-1;e>=0;e--)window.mcAds.slots.hasOwnProperty(window.adUnits[e].code)&&window.mcAds.slots[window.adUnits[e].code].hasOwnProperty("isPrebid")&&"true"===window.mcAds.slots[window.adUnits[e].code].isPrebid&&t.push(window.adUnits[e]);0!==t.length?(pbjs.addAdUnits(t),pbjs.requestBids({bidsBackHandler:i,timeout:e})):mcAds.debug&&console.log("Aborting prebid, filteredAdUnits is empty.")}));var i=function(){pbjs.adserverRequestSent||(pbjs.adserverRequestSent=!0,googletag.cmd.push((function(){pbjs.que.push((function(){window.gtpMaybeMoveRailOneSlot(),pbjs.setTargetingForGPTAsync();for(const e in mcAds.slotsFired)-1!==mcAds.slotsPrebid.indexOf(e)&&(googletag.display(e),mcAds.slots[e].isLazy&&"true"===mcAds.slots[e].isLazy||(googletag.pubads().refresh([mcAds.slotsFired[e]]),mcAds.debug&&console.log("Initial refresh for prebid slot:",e)))}))})))};setTimeout((function(){i()}),t)},90:function(){gtpMaybeMoveRailOneSlot=function(){if(!(window.innerWidth<=768)&&"undefined"!==typeof mcAds&&mcAds.isSingle){var e=document.querySelector(".sidebar");if(e){var t=document.getElementById("rail-1");if(t){var i=e.children.length;e.insertBefore(t,e.children[i]),window.stickyAds&&window.stickyAds.update()}}}},gptDirectoryMaybeRepositionBannerSlot=function(){if(!(window.innerWidth<=768)&&"undefined"!==typeof mcgdVars&&"isSingle"in mcgdVars&&"true"===mcgdVars.isSingle){var e=document.getElementById("banner-1"),t=document.getElementById("geodir-wrapper-content").querySelector(".listing-profile");e&&t&&t.insertBefore(e,t.lastChild.nextSibling)}}},547:function(){window.googletag=window.googletag||{},googletag.cmd=googletag.cmd||[],googletag.cmd.push((function(){if(mcAds.slots){window.gptDirectoryMaybeRepositionBannerSlot();var e=window.innerWidth<=768;if("targeting"in mcAds&&"object"===typeof mcAds.targeting&&null!==mcAds.targeting)for(var t in mcAds.targeting)googletag.pubads().setTargeting(t,mcAds.targeting[t]);for(var i in mcAds.slots){var s;if((!("isMobile"in mcAds.slots[i])||!mcAds.slots[i].isMobile||e)&&((!("isDesktop"in mcAds.slots[i]&&mcAds.slots[i].isDesktop&&e)||document.getElementById("bestof-nav-wrapper"))&&document.getElementById(i))){if("outOfPage"in mcAds.slots[i]&&mcAds.slots[i].outOfPage){var d=mcAds.slots[i].id;"outOfPageFormat"in mcAds.slots[i]&&(d=googletag.enums.OutOfPageFormat[mcAds.slots[i].outOfPageFormat]),s=googletag.defineOutOfPageSlot(mcAds.gptNetworkID+mcAds.slots[i].adUnit,d)}else{var o=mcAds.slots[i].adSizes;0===o.lastIndexOf("[",0)&&(o=JSON.parse(o)),s=googletag.defineSlot(mcAds.gptNetworkID+mcAds.slots[i].adUnit,o,mcAds.slots[i].id)}if("mapping"in mcAds&&"mapping"in mcAds.slots[i]&&mcAds.slots[i].mapping in mcAds.mapping&&s.defineSizeMapping(mcAds.mapping[mcAds.slots[i].mapping]),"targeting"in mcAds.slots[i]&&"object"===typeof mcAds.slots[i].targeting&&null!==mcAds.slots[i].targeting)for(var n in mcAds.slots[i].targeting)s.setTargeting(n,mcAds.slots[i].targeting[n]);s.addService(googletag.pubads()),"doPrebid"in mcAds&&"true"===mcAds.doPrebid&&"isPrebid"in mcAds.slots[i]&&"true"===mcAds.slots[i].isPrebid&&mcAds.slotsPrebid.push(mcAds.slots[i].id),mcAds.slotsFired[mcAds.slots[i].id]=s}}for(var a in googletag.pubads().enableAsyncRendering(),googletag.pubads().collapseEmptyDivs(),googletag.pubads().disableInitialLoad(),googletag.pubads().enableSingleRequest(),googletag.enableServices(),mcAds.slotsFired)-1===mcAds.slotsPrebid.indexOf(a)&&("undefined"===typeof mcAds.slots[a].outOfPageFormat&&googletag.display(a),mcAds.slots[a].isLazy&&"true"===mcAds.slots[a].isLazy||googletag.pubads().refresh([mcAds.slotsFired[a]]));document.addEventListener("lazybeforeunveil",(function(e){var t=e.target.getAttribute("data-ad");t&&mcAds.slotsFired[t]&&(googletag.pubads().refresh([mcAds.slotsFired[t]]),mcAds.debug&&console.log("Initial refreshing for lazy loaded slot:",t))})),googletag.pubads().addEventListener("slotRenderEnded",(function(t){var i=t.slot.getSlotElementId();t.isEmpty||(mcAds.debug&&console.log("Calling stickyAds.update() after slotRenderEnded:",i),window.stickyAds&&window.stickyAds.update());var s=String(t.size);if(!t.isEmpty&&"1,1"===s&&["banner-1","banner-3","adslot_0","adslot_1","adslot_2","native_related","rail-1","rail-2","rail-3","toprailsponsor-1"].indexOf(i)){var d=document.getElementById(i);if(d)if("banner-1"===i&&"true"===mcAds.isGeodir)d.style.visibility="hidden";else document.getElementById("bestof-nav-wrapper")||(d.style.height="1px",d.style.overflow="hidden",d.style.marginTop="-8px")}if(!t.isEmpty&&"ad-reveal"===i){document.body.classList.add("has-reveal");var o=document.getElementById("ad-reveal"),n=o.clientHeight,a=document.getElementsByTagName("body")[0],l=document.body,g=document.documentElement,r=Math.max(l.scrollHeight,l.offsetHeight,g.clientHeight,g.scrollHeight,g.offsetHeight),c=document.getElementById("under-reveal"),p=document.getElementById("wpadminbar");p&&(p.style.position="absolute",p.style.top=0),c.style.height=r+"px";var m=n,u=(m-0)/60,f=0,b=!1,A=setInterval((function(){if((f+=u)>=m)return clearInterval(A),a.style.marginTop=m+"px",c.style.top=m+"px",p&&(p.style.top=m+"px"),b=!0,void("undefined"!==window.stickyHeader&&window.mcStickyHeader.update());a.style.marginTop=f+"px",c.style.top=f+"px",p&&(p.style.top=f+"px")}),1e3/60);document.addEventListener("scroll",(function(t){if(b)if(window.pageYOffset>n){var i=document.getElementById("js-mobile-sticky");e&&(i.style.display="block"),p&&(p.style.position="fixed",p.style.top=0),o.style.visibility="hidden"}else p&&(p.style.position="absolute",p.style.top=m+"px"),o.style.visibility="visible"}))}}))}})),document.addEventListener("lazybeforeunveil",(function(e){var t=e.target.getAttribute("data-ad");t&&mcAds.slotsPrebid.indexOf(t)&&(mcAds.slots[t].isLazy=!1,mcAds.debug&&console.log("Ad slot unveiled early:",t))}))},193:function(){window.addEventListener("message",(function(e){if("initdfp"===e.data){if(!e.source)return;var t=window.innerWidth||document.body.clientWidth,i="tiny";t>=1400?i="x-large":t>=1024?i="large":t>=970?i="fullmenu":t>=768?i="medium":t>=560?i="small-medium":t>=320&&(i="small");var s="breakpoint:"+i+"-mc";e.source.postMessage(s,"*")}}),!1)}},t={};function i(s){var d=t[s];if(void 0!==d)return d.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,i),o.exports}i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";i(90),i(909),i(547),i(786),i(193)}()}(); /* ]]> */ </script> <script type="text/javascript" src="https://static.criteo.net/js/ld/publishertag.js?ver=6.4.3" id="criteo-js" async></script> <script type="text/javascript" src="https://s.ntv.io/serve/load.js" id="nativo-tracking-js" async></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp-phillymag/countdown-clock/countdown.js?ver=0.4.37" id="phillymag-countdown-js-js" async></script> <link rel="https://api.w.org/" href="https://www.phillymag.com/wp-json/"><link rel="alternate" type="application/json" href="https://www.phillymag.com/wp-json/wp/v2/posts/4043503"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.phillymag.com/xmlrpc.php?rsd"> <meta name="generator" content="WordPress 6.4.3"> <link rel="shortlink" href="https://www.phillymag.com/?p=4043503"> <meta property="og:published_time" content="2024-04-07T00:00:50+00:00"> <meta property="og:modified_time" content="2024-04-06T16:49:08+00:00"> <link rel="preload" href="https://www.phillymag.com/wp-content/themes/metrocorp/dist/fonts/noetext-regular-v11-woff-eot/Noe-Text-Regular.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://www.phillymag.com/wp-content/themes/metrocorp/dist/fonts/noetext-regularitalic-v11-woff-eot/Noe-Text-Regular-Italic.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://www.phillymag.com/wp-content/themes/metrocorp/dist/fonts/noetext-semibold-v11-woff-eot/Noe-Text-Semibold.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://www.phillymag.com/wp-content/themes/metrocorp/dist/fonts/noetext-semibolditalic-v11-woff-eot/Noe-Text-Semibold-Italic.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/fonts/TypeTrustWebFonts17080803686/heroiccondweb-bold.ttf" as="font" type="font/ttf" crossorigin> <script type="application/ld+json">{ "@context": "http:\/\/schema.org", "@type": "NewsArticle", "publisher": { "@type": "Organization", "name": "Philadelphia Magazine", "logo": { "@type": "ImageObject", "url": "https:\/\/www.phillymag.com\/wp-content\/themes\/metrocorp-phillymag\/images\/logo-philadelphia.png" } }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https:\/\/www.phillymag.com\/news\/2024\/04\/06\/philadelphia-crime-public-safety\/" }, "headline": "Yes, Philadelphia Is Safer Than They Say on TV", "datePublished": "2024-04-06T20:00:50-04:00", "dateModified": "2024-04-06T12:49:08-04:00", "author": [ { "@type": "Person", "name": "Victor Fiorillo" } ], "image": { "@type": "ImageObject", "url": "https:\/\/www.phillymag.com\/wp-content\/uploads\/sites\/3\/2024\/04\/900-OptSafetyWeb900x600.jpg", "height": 600, "width": 900 }, "keywords": "Bad Behavior,Cherelle Parker,Crime,public safety", "articleSection": "Longform" }</script><meta name="google-site-verification" content="jaT6k5odH6wQbrXb-WKQeHiEFFkfePsGXSELOChSybY"><link rel="icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-32x32.png" sizes="32x32"> <link rel="icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-192x192.png" sizes="192x192"> <link rel="apple-touch-icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-180x180.png"> <meta name="msapplication-TileImage" content="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-270x270.png"> <script>dataLayer = [{"post_id":4043503,"content_type":"blog","category":"longform","tag":"bad-behavior cherelle-parker crime public-safety","author":"Victor Fiorillo"}];gtmLoaded=true;</script><!-- Google Tag Manager --> <noscript> &lt;iframe src="//www.googletagmanager.com/ns.html?id=GTM-PLKVN8" height="0" width="0" style="display:none;visibility:hidden"&gt;</noscript> <script> window.dataLayer = window.dataLayer || []; if ( typeof dataLayer[0].gaReferer === 'undefined' ) { var referrer = document.referrer, siteURL = window.location.origin; if ( ! referrer || referrer.indexOf( siteURL ) === 0 ) { dataLayer[0].gaReferer = null; } else { dataLayer[0].gaReferer = referrer; } } dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); </script> <script async type="text/javascript" src="https://www.googletagmanager.com/gtm.js?id=GTM-PLKVN8"></script><!-- End Google Tag Manager --> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '907137196060410'); fbq('track', 'PageView'); </script> <noscript>&lt;img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=907137196060410&amp;amp;ev=PageView&amp;amp;noscript=1"&gt;</noscript> <!-- End Facebook Pixel Code --> <!-- Facebook --> <script> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <!-- End Facebook Tag --> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/510637.js"></script> <!-- End of HubSpot Embed Code --> <!-- Start of Teads Embed Code --> <script async src="https://a.teads.tv/analytics/tag.js"></script> <script> window.teads_analytics = window.teads_analytics || {}; window.teads_analytics.analytics_tag_id = "PUB_14921"; window.teads_analytics.share = window.teads_analytics.share || function() { (window.teads_analytics.shared_data = window.teads_analytics.shared_data || []).push(arguments); }; </script> <!-- End of Teads Embed Code --> <script type="text/javascript"> _linkedin_partner_id = "1153130"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script> <noscript> &lt;img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=1153130&amp;amp;fmt=gif"&gt; </noscript> </head> <bod |
| 25 |
Error
On line 250, column 117 > </head> <body class="post-template-default single single-post postid-4043503 single-format-standard current-site-phillymag"> < |
| 26 |
Error
On line 690, column 120 hillymag"> <div id="ad-reveal" class="gpt-ad"></div><div id="under-reveal"></div><div class="header-navigation-spacer"></div> <div class="header-navigation js-header-menu-full" id="js-header-navigation"> <div class="container header-navigation-inner"> <div class="navigation-logo"> <a href="//www.phillymag.com"> <svg class="mc-icon phillymag-logo" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-logo"></use></svg> </a> </div> <button id="js-mobile-menu-toggle" class="mobile-menu-toggle" aria-hidden="true"> <svg class="mc-icon hamburger" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-hamburger"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> <div class="header-menu-wrapper" id="js-header-navigation-wrapper"> <div class="header-menu"><ul id="menu-primary-menu" class="menu-header-main"><li id="menu-item-3441760" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li id="menu-item-3441764" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li id="menu-item-3441765" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li id="menu-item-3556438" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li id="menu-item-3441767" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li id="menu-item-3441776" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li id="menu-item-3570068" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li id="menu-item-3869015" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li id="menu-item-3869012" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li id="menu-item-3357928" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li id="menu-item-3701551" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li id="menu-item-3357931" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li id="menu-item-3358386" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li id="menu-item-3358357" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li id="menu-item-3357976" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li id="menu-item-3358644" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li id="menu-item-3357934" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li id="menu-item-3357978" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li id="menu-item-3357983" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li id="menu-item-3358174" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li id="menu-item-3357984" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li id="menu-item-3357987" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li id="menu-item-3358017" class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li id="menu-item-3357997" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li id="menu-item-3357998" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li id="menu-item-3358019" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li id="menu-item-3570077" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li id="menu-item-3870342" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li id="menu-item-3358000" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li id="menu-item-3357999" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li id="menu-item-3358002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li id="menu-item-3358004" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li id="menu-item-3358006" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li id="menu-item-3358022" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li id="menu-item-4031702" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li id="menu-item-3358008" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div class="header-tablet-elements"> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left" class="menu-header-subscribe js-menu-zephr"><li id="menu-item-921051" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li id="menu-item-3821020" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li id="menu-item-3703713" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu" class="menu-header-social"><li id="menu-item-3357935" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li id="menu-item-3357936" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li id="menu-item-3357939" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> </div> </div> <div class="header-search"> <div class="search-form-wrapper" id="js-search-form-wrapper" aria-hidden="true"> <form role="search" method="get" class="search-form" action="https://www.phillymag.com/"> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" title="Search for:"> </label> <button type="submit"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <span class="screen-reader-text">Search</span> </button> </form> </div> <button id="js-toggle-search" aria-expanded="false" aria-controls="js-search-form-wrapper"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> </div> </div> </div> <header class="site-header" role="banner" id="js-header"> <div class="site-header-inner container"> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu-1" class="menu-header-social"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> <div class="header-logo"> <div itemscope itemtype="https://schema.org/Organization"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> <span class="screen-reader-text">Philadelphia Magazine</span> </a> <span class="section-front-tagline"></span></div> </div> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left-1" class="menu-header-subscribe js-menu-zephr"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> </div> </header> <div class="mobile-section-front"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> </a> <span class="section-front-tagline"> </span> </div> <div class="header-navigation-secondary container"><ul id="menu-primary-menu-1" class="menu-topics"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div style="width:1px;height:1px;margin:-1px 0 0 0;padding:0;display:block;"> <div id="skin" class="gpt-ad"></div> </div> <div id="interstitial" class="gpt-ad out-of-page"></div><div id="teads-video-oop" class="gpt-ad out-of-page"></div><div id="bottom-anchor" class="gpt-ad out-of-page"></div> <div class="container"> <hr class="double"> </div> <div id="banner-1" class="gpt-ad advertisement container"></div> <div class="container" role="main"> <div class="list-post" style="display:none"> <a href="https://www.phillymag.com/scrapertrap" class="post-image-link"><img width="400" height="250" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" class="attachment-image-list size-image-list wp-post-image" alt=""></a> <div class="list-post-card"> <a href="https://www.phillymag.com/scrapertrap" class="post-slug">I'm a scraper</a> <div class="post-title"> <a href="https://www.phillymag.com/scrapertrap">This search result is here to prevent scraping</a> </div> <div class="post-excerpt"> <p>If you're a human and see this, please ignore it. If you're a scraper, please click the link below :-) Note that clicking the link below will block access to this site for 24 hours.</p> </div> <span class="byline-wrapper">By <a href="https://www.phillymag.com/scrapertrap" class="byline">I'm a scraper</a></span> </div> </div> <div class="content-with-sidebar"> <div class="wysiwyg post-article-wrapper"> <article id="post-4043503" class="post-article"> <div> <a href="https://www.phillymag.com/category/longform/" class="post-slug" id="post-rubric" itemprop="articleSection">Longform</a><br> <h1 class="post-title" itemprop="headline">Yes, Philadelphia Is Safer Than They Say on TV</h1> <div class="post-excerpt"><p class="p1"><span class="s1">The city has made the national news far too often recently for incidents involving crime and public safety. A new administration has big plans to change — and correct — the narrative.</span></p> </div> <div class="byline-wrapper"> <div class="author-date-wrapper"> By <span itemprop="author"><a href="https://www.phillymag.com/author/victor-fiorillo/" class="byline" itemprop="url"><span itemprop="name">Victor Fiorillo</span></a></span><span id="byline-dot">·</span> <span itemprop="datePublished"> <time datetime="2024-04-06" pubdate> 4/6/2024, 8:00 p.m. </time> </span> </div> <div class="social-sharing"> </div> </div> <div class="container post-article-container"> <hr class="double"> <div class="newsletter"> <h2 class="newsletter-title"> Get a compelling long read and must-have lifestyle tips in your inbox every Sunday morning — great with coffee! </h2> <div class="newsletter-inner"> <div class="hbspt-form js-hubspot-newsletter"></div> </div> </div> </div> <div id="attachment_4042844" style="width: 970px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-4042844" class="wp-image-4042844 size-large lazyload lazyload" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-960x684.jpg" alt="philadelphia crime optimist guide public safety philly optimism" width="960" height="684" srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-960x684.jpg 960w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-605x431.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-300x214.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-115x82.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-600x428.jpg 600w" sizes="(max-width: 960px) 100vw, 960px"><p id="caption-attachment-4042844" class="wp-caption-text">Philadelphia’s public safety — from guns to ATVs to retail crime — is changing for the better. / Photo-Illustration by Leticia R. Albano; photographs via Visit Philly, AP and Getty Images</p></div> <p>There are many memorable scenes in Martin Scorsese’s dark but gorgeously filmed 1976 movie <em>Taxi Driver</em>, in which Robert DeNiro plays a New York City cabbie who’s both physically and psychologically repulsed by the decaying metropolis in which he’s drowning. He watches crimes as they unfold and prays that a “real rain will come and wash all this scum off the streets.”</p> <p>If you’ve been a regular viewer of local TV news over the past few years — and especially if you’re a fan and follower of Fox 29 if-it-bleeds-it-leads reporter <a href="https://www.phillymag.com/news/2023/03/10/steve-keeley-fox-29/">Steve Keeley</a> — it’s easy to feel this way about Philadelphia. I have many suburban friends who routinely ask me questions like, “What’s going on this weekend?” and “Where should we have dinner next week?” More recently, though, those questions frequently are suffixed by the phrase “ … but not in the city.” Tragic.</p> <p>True, Philly has seen an ominous surge in gun violence and other types of crimes. These trends were echoed in most other major cities and driven, in part, by the pandemic — but weren’t helped at all by a totally <a href="https://www.phillymag.com/news/2022/07/06/mayor-kenney-worst-of-philly/">checked-out mayor</a> and an utter breakdown in the relationship between our police department and hyper-progressive District Attorney Larry Krasner. But we have a new mayor. We have new public safety officials. And the fact is: Things <em>are</em> changing. Here, a look at four major categories of crime and why there’s reason for hope. </p><div id="in_content" class="gpt-ad in-content-ad"></div><div id="in_content_2" class="gpt-ad in-content-ad"></div><p></p> <h3>The Gun Crisis</h3> <p>We thought things were bad in 2006. That’s when Philadelphia recorded 406 homicides in one year, the most we had seen in a decade. But before long, homicide numbers started trending downward, bottoming out at 246 in 2013 before ticking up again and eventually landing at 353 in both 2018 and 2019. Then 2020 happened.</p> <p>Along with an unprecedented global health crisis came unprecedented homicide statistics. We managed to stay just one murder shy of 500 in 2020 but easily exceeded that in a still-tumultuous 2021, with 562 homicides. In 2022, the count dipped to 514 — a decrease, though hardly worth celebrating. But 2023 seemed to signify that true change was in the air, with 410 homicides recorded — still more than we saw in 2006, but a drastic and welcome decline from the peak in 2021.</p> <p>It’s too early in 2024 to know where we’ll end up. But as of the beginning of April, Philadelphia had seen 34 percent fewer homicides compared to the same period last year. If that percentage were to hold — and that’s a big if, but hardly ­impossible — we’d end the year with around 270 homicides. That would be the fewest in a decade. Additionally, overall shooting victims (including those who survive, which are by far the majority) are way down, with fewer recorded in each month so far this year than in any month since February 2019.</p> <p>Any <a href="https://www.phillymag.com/news/gun-violence-prevention/">expert on the subject</a> will tell you that truly solving the homicide problem isn’t possible with the easy availability of guns in America, not to mention systemic scourges like intergenerational poverty and a criminally underfunded public-education system. And it’s not exactly clear how Mayor Cherelle Parker plans to fully address those issues. But what is clear is that she hopes to use law enforcement more effectively and more voluminously to keep the numbers at bay.</p> <p>In late February, the Philadelphia police department unleashed a new unit, the <a href="https://6abc.com/philadelphia-police-mobile-surge-team-new-crime-fighting-strategy-mayor-cherelle-parker/14462364/" target="_blank" rel="noopener">Mobile Surge Team</a>, which deploys extra officers to known violent-crime hot spots on Friday and Saturday nights. Throughout this year, the city has plans to install 200 new officers, beginning with 51 this month, to help make up for a drastic shortage of squad cars on the streets, as well as to launch a new community-policing initiative to engage with people in high-risk neighborhoods <em>before</em> they’re pulling out guns. It doesn’t hurt that Parker is a truly inspirational speaker who seems to connect with the public even more than did, say, Ed Rendell, and one who effectively communicates the message: <em>We really don’t have to be this way. Not only that — we can’t be.</em></p> <h3>Those Damn Bikes</h3> <p>Let’s be clear about one thing: The vast majority of people riding dirt bikes and ATVs around the city aren’t breaking any laws other than the ban on said vehicles. While incidents of violence and other crimes have happened during these en masse processions, they’re few and far between.</p> <p>Still, being surrounded by dozens or hundreds of bikes when you’re in your car or hearing them throttle through your residential neighborhood at 2 a.m. can be unnerving. And the videos of hundreds of bikers swarming the streets — videos that inevitably wind up going viral — don’t exactly help our image. They make Philadelphia seem lawless.</p> <p>For years, officials didn’t seem to know what to do about the marauding bikers, and it wasn’t even clear that they <em>wanted</em> to do anything. One person changed all that.</p> <p>Google the name “Cody Heron,” and you’ll be reminded of the chaotic incident last October when Heron was riding his motorcycle at night in a pack near City Hall. For reasons that still aren’t entirely clear, he wound up smashing out the rear window of a car that had two kids in the back seat. The mother got out and confronted him. He pulled a gun on her. Thank God nobody was injured.</p> <p>All of this was caught on video, which made national news. Krasner’s office threw the book at Heron, and when Heron’s lawyer asked a judge to reduce the already-high bail, the judge actually <a href="https://www.phillymag.com/news/2023/10/17/cody-heron-philadelphia-biiker-arrest/"><em>increased</em> it</a>. Heron recently <a href="https://www.phillymag.com/news/2024/02/08/cody-heron-guilty-arrest-motorcycle/">pleaded guilty</a> to aggravated assault.</p> <p>The incident was so notorious that it marked a turning point in the city. The public said enough is enough with the wild bikers.</p> <p>Parker made it clear to Police Commissioner Kevin Bethel, whom she tabbed in November, that the police department needed to step up its efforts to <a href="https://www.fox29.com/news/philadelphia-atv-dirtbike-enforcement-crackdown" target="_blank" rel="noopener">combat illegal biking</a> — efforts that are generally limited to confiscation and the issuance of a code violation. On the first day this year to breach 60 degrees, the police ATV unit confiscated 15 bikes in under two hours. A drop in the bucket, yes, but it no doubt sent a message: More confiscations are coming.</p> <p><img class="aligncenter wp-image-4044035 lazyload lazyload" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-960x461.jpg" alt="philadelphia crime public safety politics" width="1080" height="518" srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-960x461.jpg 960w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-605x290.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-300x144.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-115x55.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-600x288.jpg 600w" sizes="(max-width: 1080px) 100vw, 1080px"></p> <h3>Kensington</h3> <p>It’s been called the largest open-air drug market on the East Coast. People shoot up — in their necks, in their toes — right on the street. Political candidates including <a href="https://www.inquirer.com/philly/columnists/mike_newall/HEROIN-FAIRHILL-EL-CAMPAMENTO-DR-OZ.html" target="_blank" rel="noopener">Dr. Oz</a> and Vivek Ramaswamy like to show up there for photo ops to make the point that liberal leadership has put Philadelphia on the brink of ruin.</p> <p>Kenney and former police commissioner Danielle Outlaw took a more or less hands-off approach to Kensington. But Parker hasn’t. She campaigned on cleaning it up, even going so far as to say that she’ll <a href="https://www.phillymag.com/news/2023/10/25/cherelle-parker-kensington-national-guard/">bring in the National Guard</a>.</p> <p>The National Guard hasn’t shown up just yet, which is probably a good thing. But Parker did create a new <a href="https://6abc.com/who-is-philadelphia-deputy-police-commissioner-mayor-cherelle-parker-kevin-bethel-kensington/14309952/" target="_blank" rel="noopener">deputy police commissioner</a> position, naming longtime Kensington-area police captain Pedro Rosario to the post. His main focus: Kensington.</p> <p>“It’s something that’s been taking place for decades,” Rosario said at an event in January. “What do I think success is? Let me make this very basic for you: For all the parents in the room, anyone who has driven by Kensington, it’s not something I would ever want to subject my two daughters to. What makes it okay for it to be happening here?”</p> <p>The Pennsylvania Attorney General’s office is also involved in the battle over Kensington, performing a large military-style <a href="https://whyy.org/articles/philadelphia-kensington-police-crime-attorney-general/" target="_blank" rel="noopener">drug raid</a> in February that involved camouflaged agents seizing fentanyl and guns, among other contraband. And the police department began conducting its own new operations in recent weeks, the tactics and results of which <a href="https://www.inquirer.com/news/philadelphia/kensington-law-enforcement-drug-market-questions-20240225.html" target="_blank" rel="noopener">aren’t exactly yet clear</a>.</p> <p>This sudden influx of law-enforcement activity in Kensington is a welcome change for some residents and business owners. Others are concerned about where it all might lead, the alarming specter of National Guard troops looming in their minds. And will the efforts in Kensington just move all the drug activity to another neighborhood?</p> <p>We’ll start seeing what this looks like very soon. On April 3rd, Parker signed a <a href="https://www.phila.gov/2024-04-04-mayor-cherelle-l-parker-signs-three-new-public-safety-bills-into-law/" target="_blank" rel="noopener">new bill</a> forcing certain types of businesses on specific blocks in Kensington to close by 11 p.m. every night. And Police Commissioner Bethel and Rosario are expected to deliver a comprehensive plan for Kensington to Parker this month.</p> <h3>Retail Crime</h3> <p>Shoplifting was long considered the pettiest of crimes. But along with 2020’s civil unrest came looting, some of which had nothing to do with police brutality, and a surge in individual instances of retail theft. And the surge continued long after the civil unrest was over.</p> <p>In 2021, retail theft was up 30 percent. In 2022, it was up 52 percent over that. And the numbers just continued to grow in 2023, with a jump of another 28 percent. The large-scale looting certainly died down from what we saw in 2020, but last September, another round of looting, which spread all over the city, <a href="https://www.cnn.com/2023/09/27/us/philadelphia-looting-arrests/index.html" target="_blank" rel="noopener">made national news</a>.</p> <p>Some stores claim to have closed as a result of the wanton acts, which included not just shoplifting but also armed robberies, and <a href="https://www.phillyvoice.com/wawa-closes-center-city-12th-market-19th-market-security-crime/" target="_blank" rel="noopener">Wawa pulled back</a> from Center City over these issues. Some retail-crime incidents have turned deadly.</p> <p>All the while, District Attorney Krasner had garnered a reputation for playing softball with retail-theft suspects. Krasner’s office has insisted this was an unfair characterization, but he is clearly taking steps to change the narrative. In early February, two months after a shoplifter <a href="https://www.inquirer.com/news/philadelphia/macys-stabbing-philadelphia-center-city-20231204.html" target="_blank" rel="noopener">killed a security guard at the Center City Macy’s</a> — which reported 250 instances of retail theft in 2023 — Krasner <a href="https://www.nbcphiladelphia.com/news/local/philly-da-larry-krasner-to-unveil-retail-theft-task-force/3766954/" target="_blank" rel="noopener">announced a task force</a> devoted to retail theft. Krasner said the task force will be focused on repeat offenders and fencing operations.</p> <p><strong><a href="https://www.phillymag.com/news/optimist-guide-philadelphia-future/">&gt;&gt; Click here to return to An Optimist’s Guide to Philadelphia</a></strong></p> <p><em>Published as “Philadelphia Is Safer Than They Say on TV” in the April 2024 issue of </em>Philadelphia<em> magazine.</em></p> <script type="text/javascript"> if (!window.Zephr) window.Zephr = {}; if (!window.Zephr.outcomes) window.Zephr.outcomes = {}; window.Zephr.outcomes['article'] = { featureLabel: 'Philly/Boston Paywall Experience', outcomeId: 'transformation/5', outcomeLabel: 'show article' }; </script> <div class="pagination"> </div></div> <div class="post-tags"> <span class="post-subtitle"> Read More About: </span> <ul itemprop="keywords"> <li><a href="https://www.phillymag.com/tag/bad-behavior/" class="button">Bad Behavior</a></li> <li><a href="https://www.phillymag.com/tag/cherelle-parker/" class="button">Cherelle Parker</a></li> <li><a href="https://www.phillymag.com/tag/crime/" class="button">Crime</a></li> <li><a href="https://www.phillymag.com/tag/public-safety/" class="button">public safety</a></li> </ul> <div id="rail-1" class="gpt-ad lazyload sticky-single-ad" data-ad="rail-1"></div> </div> <hr class="double"> <div class="author-module" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a href="#" class="author-module-avatar"><img width="170" height="170" class="avatar avatar-170 photo lazyload wp-post-image" alt="" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-170x170.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-170x170.jpg 170w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-360x360.jpg 360w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-100x100.jpg 100w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-50x50.jpg 50w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-95x95.jpg 95w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar.jpg 400w" data-sizes="(max-width: 170px) 100vw, 170px"></a> <div class="author-module-card"> <span class="author-module-name post-subtitle"> <a href="https://www.phillymag.com/author/victor-fiorillo/" itemprop="url"><span itemprop="name">Victor Fiorillo</span></a> </span> <span class="author-module-position">Senior Reporter at Philadelphia Magazine</span> <a href="https://twitter.com/phillyvictor" class="author-module-twitter author-social"><svg class="mc-icon twitter" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-twitter"></use></svg> @phillyvictor</a> <br> <a href="http://facebook.com/https://www.facebook.com/VictorKnowsPhilly/" class="author-module-facebook author-social"><svg class="mc-icon facebook" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-facebook"></use></svg>https://www.facebook.com/VictorKnowsPhilly/</a> <br> <a href="mailto:[email protected]" class="author-module-email author-social"><svg class="mc-icon email" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-email"></use></svg>[email protected]</a> </div> </div> <hr class="solid"> <div id="related-posts" class="related-module"> <span class="post-subtitle">You Might Also Like</span> <div class="grid-content small-gutter six-mods"> <div class="grid-post"> <a href="https://www.phillymag.com/news/kid-friendly-city-planning/" data-gtm-title="17 Big Ideas to Make Philly a Kid-Friendly City"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>17 Big Ideas to Make Philly a Kid-Friendly City</p> </span> </a> </div> <div id="directory_edl-1" class="gpt-ad"></div> <div id="native_related" class="gpt-ad"></div> <div id="directory_edl-2" class="gpt-ad"></div> <div class="grid-post"> <a href="https://www.phillymag.com/news/dating-in-philly/" data-gtm-title="How Philly Dates Now"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>How Philly Dates Now</p> </span> </a> </div> <div class="grid-post"> <a href="https://www.phillymag.com/news/2023/07/15/public-transit-septa-kids/" data-gtm-title="4 Ways to Make Public Transit Easier for Kids"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>4 Ways to Make Public Transit Easier for Kids</p> </span> </a> </div> <div class="grid-post nativo1"></div> <div class="grid-post nativo2"></div> <div class="grid-post nativo3"></div> </div> </div> </article> </div><script type="text/javascript"> if (!window.Zephr) window.Zephr = {}; if (!window.Zephr.outcomes) window.Zephr.outcomes = {}; window.Zephr.outcomes['all-access-page'] = { featureLabel: 'All Access Pages', outcomeId: 'transformation/3', outcomeLabel: 'Remove' }; </script> <div class="sidebar"> <div class="trending-widget"> <div id="toprailsponsor-1" class="gpt-ad toprail-bewell"></div> <h2 class="title-line">Trending</h2> <ol> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/05/septa-fare-evasion-gates/"> SEPTA’s New “High-Tech” Fare Gates Are Very, Very Easy to Beat </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/08/philadelphia-crime-shootings-homicide/"> Philadelphia Shootings Have Plummeted to Pre-Pandemic Levels </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/08/wrestlemania-40-philadelphia/"> 10 Bonkers Things That Happened at WrestleMania 40 </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/optimist-guide-philadelphia-future/"> An Optimist’s Guide to Philadelphia </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/06/allan-domb-philadelphia-economy/"> Why Allan Domb Is Upbeat About Philadelphia’s Economy </a> </h3> </li> </ol> </div> <div id="native_sidebar" class="gpt-ad native_sidebar"></div> <div id="native_sidebar" class="gpt-ad native_sidebar"></div> |
| 27 |
Info
On line 690, column 55 hillymag"> <div id="ad-reveal" class="gpt-ad"></div><div id="under-reveal"></div><div class="header-navigation-spacer"></div> <div class="header-navigation js-header-menu-full" id="js-header-navigation"> <div class="container header-navigation-inner"> <div class="navigation-logo"> <a href="//www.phillymag.com"> <svg class="mc-icon phillymag-logo" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-logo"></use></svg> </a> </div> <button id="js-mobile-menu-toggle" class="mobile-menu-toggle" aria-hidden="true"> <svg class="mc-icon hamburger" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-hamburger"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> <div class="header-menu-wrapper" id="js-header-navigation-wrapper"> <div class="header-menu"><ul id="menu-primary-menu" class="menu-header-main"><li id="menu-item-3441760" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li id="menu-item-3441764" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li id="menu-item-3441765" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li id="menu-item-3556438" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li id="menu-item-3441767" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li id="menu-item-3441776" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li id="menu-item-3570068" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li id="menu-item-3869015" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li id="menu-item-3869012" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li id="menu-item-3357928" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li id="menu-item-3701551" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li id="menu-item-3357931" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li id="menu-item-3358386" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li id="menu-item-3358357" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li id="menu-item-3357976" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li id="menu-item-3358644" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li id="menu-item-3357934" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li id="menu-item-3357978" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li id="menu-item-3357983" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li id="menu-item-3358174" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li id="menu-item-3357984" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li id="menu-item-3357987" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li id="menu-item-3358017" class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li id="menu-item-3357997" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li id="menu-item-3357998" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li id="menu-item-3358019" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li id="menu-item-3570077" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li id="menu-item-3870342" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li id="menu-item-3358000" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li id="menu-item-3357999" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li id="menu-item-3358002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li id="menu-item-3358004" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li id="menu-item-3358006" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li id="menu-item-3358022" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li id="menu-item-4031702" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li id="menu-item-3358008" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div class="header-tablet-elements"> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left" class="menu-header-subscribe js-menu-zephr"><li id="menu-item-921051" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li id="menu-item-3821020" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li id="menu-item-3703713" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu" class="menu-header-social"><li id="menu-item-3357935" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li id="menu-item-3357936" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li id="menu-item-3357939" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> </div> </div> <div class="header-search"> <div class="search-form-wrapper" id="js-search-form-wrapper" aria-hidden="true"> <form role="search" method="get" class="search-form" action="https://www.phillymag.com/"> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" title="Search for:"> </label> <button type="submit"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <span class="screen-reader-text">Search</span> </button> </form> </div> <button id="js-toggle-search" aria-expanded="false" aria-controls="js-search-form-wrapper"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> </div> </div> </div> <header class="site-header" role="banner" id="js-header"> <div class="site-header-inner container"> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu-1" class="menu-header-social"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> <div class="header-logo"> <div itemscope itemtype="https://schema.org/Organization"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> <span class="screen-reader-text">Philadelphia Magazine</span> </a> <span class="section-front-tagline"></span></div> </div> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left-1" class="menu-header-subscribe js-menu-zephr"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> </div> </header> <div class="mobile-section-front"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> </a> <span class="section-front-tagline"> </span> </div> <div class="header-navigation-secondary container"><ul id="menu-primary-menu-1" class="menu-topics"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div style="width:1px;height:1px;margin:-1px 0 0 0;padding:0;display:block;"> <div id="skin" class="gpt-ad"></div> </div> <div id="interstitial" class="gpt-ad out-of-page"></div><div id="teads-video-oop" class="gpt-ad out-of-page"></div><div id="bottom-anchor" class="gpt-ad out-of-page"></div> <div class="container"> <hr class="double"> </div> <div id="banner-1" class="gpt-ad advertisement container"></div> <div class="container" role="main"> <div class="list-post" style="display:none"> <a href="https://www.phillymag.com/scrapertrap" class="post-image-link"><img width="400" height="250" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" class="attachment-image-list size-image-list wp-post-image" alt=""></a> <div class="list-post-card"> <a href="https://www.phillymag.com/scrapertrap" class="post-slug">I'm a scraper</a> <div class="post-title"> <a href="https://www.phillymag.com/scrapertrap">This search result is here to prevent scraping</a> </div> <div class="post-excerpt"> <p>If you're a human and see this, please ignore it. If you're a scraper, please click the link below :-) Note that clicking the link below will block access to this site for 24 hours.</p> </div> <span class="byline-wrapper">By <a href="https://www.phillymag.com/scrapertrap" class="byline">I'm a scraper</a></span> </div> </div> <div class="content-with-sidebar"> <div class="wysiwyg post-article-wrapper"> <article id="post-4043503" class="post-article"> <div> <a href="https://www.phillymag.com/category/longform/" class="post-slug" id="post-rubric" itemprop="articleSection">Longform</a><br> <h1 class="post-title" itemprop="headline">Yes, Philadelphia Is Safer Than They Say on TV</h1> <div class="post-excerpt"><p class="p1"><span class="s1">The city has made the national news far too often recently for incidents involving crime and public safety. A new administration has big plans to change — and correct — the narrative.</span></p> </div> <div class="byline-wrapper"> <div class="author-date-wrapper"> By <span itemprop="author"><a href="https://www.phillymag.com/author/victor-fiorillo/" class="byline" itemprop="url"><span itemprop="name">Victor Fiorillo</span></a></span><span id="byline-dot">·</span> <span itemprop="datePublished"> <time datetime="2024-04-06" pubdate> 4/6/2024, 8:00 p.m. </time> </span> </div> <div class="social-sharing"> </div> </div> <div class="container post-article-container"> <hr class="double"> <div class="newsletter"> <h2 class="newsletter-title"> Get a compelling long read and must-have lifestyle tips in your inbox every Sunday morning — great with coffee! </h2> <div class="newsletter-inner"> <div class="hbspt-form js-hubspot-newsletter"></div> </div> </div> </div> <div id="attachment_4042844" style="width: 970px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-4042844" class="wp-image-4042844 size-large lazyload lazyload" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-960x684.jpg" alt="philadelphia crime optimist guide public safety philly optimism" width="960" height="684" srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-960x684.jpg 960w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-605x431.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-300x214.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-115x82.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/03/F-OptimismSafety_01-600x428.jpg 600w" sizes="(max-width: 960px) 100vw, 960px"><p id="caption-attachment-4042844" class="wp-caption-text">Philadelphia’s public safety — from guns to ATVs to retail crime — is changing for the better. / Photo-Illustration by Leticia R. Albano; photographs via Visit Philly, AP and Getty Images</p></div> <p>There are many memorable scenes in Martin Scorsese’s dark but gorgeously filmed 1976 movie <em>Taxi Driver</em>, in which Robert DeNiro plays a New York City cabbie who’s both physically and psychologically repulsed by the decaying metropolis in which he’s drowning. He watches crimes as they unfold and prays that a “real rain will come and wash all this scum off the streets.”</p> <p>If you’ve been a regular viewer of local TV news over the past few years — and especially if you’re a fan and follower of Fox 29 if-it-bleeds-it-leads reporter <a href="https://www.phillymag.com/news/2023/03/10/steve-keeley-fox-29/">Steve Keeley</a> — it’s easy to feel this way about Philadelphia. I have many suburban friends who routinely ask me questions like, “What’s going on this weekend?” and “Where should we have dinner next week?” More recently, though, those questions frequently are suffixed by the phrase “ … but not in the city.” Tragic.</p> <p>True, Philly has seen an ominous surge in gun violence and other types of crimes. These trends were echoed in most other major cities and driven, in part, by the pandemic — but weren’t helped at all by a totally <a href="https://www.phillymag.com/news/2022/07/06/mayor-kenney-worst-of-philly/">checked-out mayor</a> and an utter breakdown in the relationship between our police department and hyper-progressive District Attorney Larry Krasner. But we have a new mayor. We have new public safety officials. And the fact is: Things <em>are</em> changing. Here, a look at four major categories of crime and why there’s reason for hope. </p><div id="in_content" class="gpt-ad in-content-ad"></div><div id="in_content_2" class="gpt-ad in-content-ad"></div><p></p> <h3>The Gun Crisis</h3> <p>We thought things were bad in 2006. That’s when Philadelphia recorded 406 homicides in one year, the most we had seen in a decade. But before long, homicide numbers started trending downward, bottoming out at 246 in 2013 before ticking up again and eventually landing at 353 in both 2018 and 2019. Then 2020 happened.</p> <p>Along with an unprecedented global health crisis came unprecedented homicide statistics. We managed to stay just one murder shy of 500 in 2020 but easily exceeded that in a still-tumultuous 2021, with 562 homicides. In 2022, the count dipped to 514 — a decrease, though hardly worth celebrating. But 2023 seemed to signify that true change was in the air, with 410 homicides recorded — still more than we saw in 2006, but a drastic and welcome decline from the peak in 2021.</p> <p>It’s too early in 2024 to know where we’ll end up. But as of the beginning of April, Philadelphia had seen 34 percent fewer homicides compared to the same period last year. If that percentage were to hold — and that’s a big if, but hardly ­impossible — we’d end the year with around 270 homicides. That would be the fewest in a decade. Additionally, overall shooting victims (including those who survive, which are by far the majority) are way down, with fewer recorded in each month so far this year than in any month since February 2019.</p> <p>Any <a href="https://www.phillymag.com/news/gun-violence-prevention/">expert on the subject</a> will tell you that truly solving the homicide problem isn’t possible with the easy availability of guns in America, not to mention systemic scourges like intergenerational poverty and a criminally underfunded public-education system. And it’s not exactly clear how Mayor Cherelle Parker plans to fully address those issues. But what is clear is that she hopes to use law enforcement more effectively and more voluminously to keep the numbers at bay.</p> <p>In late February, the Philadelphia police department unleashed a new unit, the <a href="https://6abc.com/philadelphia-police-mobile-surge-team-new-crime-fighting-strategy-mayor-cherelle-parker/14462364/" target="_blank" rel="noopener">Mobile Surge Team</a>, which deploys extra officers to known violent-crime hot spots on Friday and Saturday nights. Throughout this year, the city has plans to install 200 new officers, beginning with 51 this month, to help make up for a drastic shortage of squad cars on the streets, as well as to launch a new community-policing initiative to engage with people in high-risk neighborhoods <em>before</em> they’re pulling out guns. It doesn’t hurt that Parker is a truly inspirational speaker who seems to connect with the public even more than did, say, Ed Rendell, and one who effectively communicates the message: <em>We really don’t have to be this way. Not only that — we can’t be.</em></p> <h3>Those Damn Bikes</h3> <p>Let’s be clear about one thing: The vast majority of people riding dirt bikes and ATVs around the city aren’t breaking any laws other than the ban on said vehicles. While incidents of violence and other crimes have happened during these en masse processions, they’re few and far between.</p> <p>Still, being surrounded by dozens or hundreds of bikes when you’re in your car or hearing them throttle through your residential neighborhood at 2 a.m. can be unnerving. And the videos of hundreds of bikers swarming the streets — videos that inevitably wind up going viral — don’t exactly help our image. They make Philadelphia seem lawless.</p> <p>For years, officials didn’t seem to know what to do about the marauding bikers, and it wasn’t even clear that they <em>wanted</em> to do anything. One person changed all that.</p> <p>Google the name “Cody Heron,” and you’ll be reminded of the chaotic incident last October when Heron was riding his motorcycle at night in a pack near City Hall. For reasons that still aren’t entirely clear, he wound up smashing out the rear window of a car that had two kids in the back seat. The mother got out and confronted him. He pulled a gun on her. Thank God nobody was injured.</p> <p>All of this was caught on video, which made national news. Krasner’s office threw the book at Heron, and when Heron’s lawyer asked a judge to reduce the already-high bail, the judge actually <a href="https://www.phillymag.com/news/2023/10/17/cody-heron-philadelphia-biiker-arrest/"><em>increased</em> it</a>. Heron recently <a href="https://www.phillymag.com/news/2024/02/08/cody-heron-guilty-arrest-motorcycle/">pleaded guilty</a> to aggravated assault.</p> <p>The incident was so notorious that it marked a turning point in the city. The public said enough is enough with the wild bikers.</p> <p>Parker made it clear to Police Commissioner Kevin Bethel, whom she tabbed in November, that the police department needed to step up its efforts to <a href="https://www.fox29.com/news/philadelphia-atv-dirtbike-enforcement-crackdown" target="_blank" rel="noopener">combat illegal biking</a> — efforts that are generally limited to confiscation and the issuance of a code violation. On the first day this year to breach 60 degrees, the police ATV unit confiscated 15 bikes in under two hours. A drop in the bucket, yes, but it no doubt sent a message: More confiscations are coming.</p> <p><img class="aligncenter wp-image-4044035 lazyload lazyload" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-960x461.jpg" alt="philadelphia crime public safety politics" width="1080" height="518" srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-960x461.jpg 960w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-605x290.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-300x144.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-115x55.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2024/04/players-horizontal-600x288.jpg 600w" sizes="(max-width: 1080px) 100vw, 1080px"></p> <h3>Kensington</h3> <p>It’s been called the largest open-air drug market on the East Coast. People shoot up — in their necks, in their toes — right on the street. Political candidates including <a href="https://www.inquirer.com/philly/columnists/mike_newall/HEROIN-FAIRHILL-EL-CAMPAMENTO-DR-OZ.html" target="_blank" rel="noopener">Dr. Oz</a> and Vivek Ramaswamy like to show up there for photo ops to make the point that liberal leadership has put Philadelphia on the brink of ruin.</p> <p>Kenney and former police commissioner Danielle Outlaw took a more or less hands-off approach to Kensington. But Parker hasn’t. She campaigned on cleaning it up, even going so far as to say that she’ll <a href="https://www.phillymag.com/news/2023/10/25/cherelle-parker-kensington-national-guard/">bring in the National Guard</a>.</p> <p>The National Guard hasn’t shown up just yet, which is probably a good thing. But Parker did create a new <a href="https://6abc.com/who-is-philadelphia-deputy-police-commissioner-mayor-cherelle-parker-kevin-bethel-kensington/14309952/" target="_blank" rel="noopener">deputy police commissioner</a> position, naming longtime Kensington-area police captain Pedro Rosario to the post. His main focus: Kensington.</p> <p>“It’s something that’s been taking place for decades,” Rosario said at an event in January. “What do I think success is? Let me make this very basic for you: For all the parents in the room, anyone who has driven by Kensington, it’s not something I would ever want to subject my two daughters to. What makes it okay for it to be happening here?”</p> <p>The Pennsylvania Attorney General’s office is also involved in the battle over Kensington, performing a large military-style <a href="https://whyy.org/articles/philadelphia-kensington-police-crime-attorney-general/" target="_blank" rel="noopener">drug raid</a> in February that involved camouflaged agents seizing fentanyl and guns, among other contraband. And the police department began conducting its own new operations in recent weeks, the tactics and results of which <a href="https://www.inquirer.com/news/philadelphia/kensington-law-enforcement-drug-market-questions-20240225.html" target="_blank" rel="noopener">aren’t exactly yet clear</a>.</p> <p>This sudden influx of law-enforcement activity in Kensington is a welcome change for some residents and business owners. Others are concerned about where it all might lead, the alarming specter of National Guard troops looming in their minds. And will the efforts in Kensington just move all the drug activity to another neighborhood?</p> <p>We’ll start seeing what this looks like very soon. On April 3rd, Parker signed a <a href="https://www.phila.gov/2024-04-04-mayor-cherelle-l-parker-signs-three-new-public-safety-bills-into-law/" target="_blank" rel="noopener">new bill</a> forcing certain types of businesses on specific blocks in Kensington to close by 11 p.m. every night. And Police Commissioner Bethel and Rosario are expected to deliver a comprehensive plan for Kensington to Parker this month.</p> <h3>Retail Crime</h3> <p>Shoplifting was long considered the pettiest of crimes. But along with 2020’s civil unrest came looting, some of which had nothing to do with police brutality, and a surge in individual instances of retail theft. And the surge continued long after the civil unrest was over.</p> <p>In 2021, retail theft was up 30 percent. In 2022, it was up 52 percent over that. And the numbers just continued to grow in 2023, with a jump of another 28 percent. The large-scale looting certainly died down from what we saw in 2020, but last September, another round of looting, which spread all over the city, <a href="https://www.cnn.com/2023/09/27/us/philadelphia-looting-arrests/index.html" target="_blank" rel="noopener">made national news</a>.</p> <p>Some stores claim to have closed as a result of the wanton acts, which included not just shoplifting but also armed robberies, and <a href="https://www.phillyvoice.com/wawa-closes-center-city-12th-market-19th-market-security-crime/" target="_blank" rel="noopener">Wawa pulled back</a> from Center City over these issues. Some retail-crime incidents have turned deadly.</p> <p>All the while, District Attorney Krasner had garnered a reputation for playing softball with retail-theft suspects. Krasner’s office has insisted this was an unfair characterization, but he is clearly taking steps to change the narrative. In early February, two months after a shoplifter <a href="https://www.inquirer.com/news/philadelphia/macys-stabbing-philadelphia-center-city-20231204.html" target="_blank" rel="noopener">killed a security guard at the Center City Macy’s</a> — which reported 250 instances of retail theft in 2023 — Krasner <a href="https://www.nbcphiladelphia.com/news/local/philly-da-larry-krasner-to-unveil-retail-theft-task-force/3766954/" target="_blank" rel="noopener">announced a task force</a> devoted to retail theft. Krasner said the task force will be focused on repeat offenders and fencing operations.</p> <p><strong><a href="https://www.phillymag.com/news/optimist-guide-philadelphia-future/">&gt;&gt; Click here to return to An Optimist’s Guide to Philadelphia</a></strong></p> <p><em>Published as “Philadelphia Is Safer Than They Say on TV” in the April 2024 issue of </em>Philadelphia<em> magazine.</em></p> <script type="text/javascript"> if (!window.Zephr) window.Zephr = {}; if (!window.Zephr.outcomes) window.Zephr.outcomes = {}; window.Zephr.outcomes['article'] = { featureLabel: 'Philly/Boston Paywall Experience', outcomeId: 'transformation/5', outcomeLabel: 'show article' }; </script> <div class="pagination"> </div></div> <div class="post-tags"> <span class="post-subtitle"> Read More About: </span> <ul itemprop="keywords"> <li><a href="https://www.phillymag.com/tag/bad-behavior/" class="button">Bad Behavior</a></li> <li><a href="https://www.phillymag.com/tag/cherelle-parker/" class="button">Cherelle Parker</a></li> <li><a href="https://www.phillymag.com/tag/crime/" class="button">Crime</a></li> <li><a href="https://www.phillymag.com/tag/public-safety/" class="button">public safety</a></li> </ul> <div id="rail-1" class="gpt-ad lazyload sticky-single-ad" data-ad="rail-1"></div> </div> <hr class="double"> <div class="author-module" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a href="#" class="author-module-avatar"><img width="170" height="170" class="avatar avatar-170 photo lazyload wp-post-image" alt="" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-170x170.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-170x170.jpg 170w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-360x360.jpg 360w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-100x100.jpg 100w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-50x50.jpg 50w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar-95x95.jpg 95w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2018/05/fiorillo-avatar.jpg 400w" data-sizes="(max-width: 170px) 100vw, 170px"></a> <div class="author-module-card"> <span class="author-module-name post-subtitle"> <a href="https://www.phillymag.com/author/victor-fiorillo/" itemprop="url"><span itemprop="name">Victor Fiorillo</span></a> </span> <span class="author-module-position">Senior Reporter at Philadelphia Magazine</span> <a href="https://twitter.com/phillyvictor" class="author-module-twitter author-social"><svg class="mc-icon twitter" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-twitter"></use></svg> @phillyvictor</a> <br> <a href="http://facebook.com/https://www.facebook.com/VictorKnowsPhilly/" class="author-module-facebook author-social"><svg class="mc-icon facebook" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-facebook"></use></svg>https://www.facebook.com/VictorKnowsPhilly/</a> <br> <a href="mailto:[email protected]" class="author-module-email author-social"><svg class="mc-icon email" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-email"></use></svg>[email protected]</a> </div> </div> <hr class="solid"> <div id="related-posts" class="related-module"> <span class="post-subtitle">You Might Also Like</span> <div class="grid-content small-gutter six-mods"> <div class="grid-post"> <a href="https://www.phillymag.com/news/kid-friendly-city-planning/" data-gtm-title="17 Big Ideas to Make Philly a Kid-Friendly City"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-Kids_07.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>17 Big Ideas to Make Philly a Kid-Friendly City</p> </span> </a> </div> <div id="directory_edl-1" class="gpt-ad"></div> <div id="native_related" class="gpt-ad"></div> <div id="directory_edl-2" class="gpt-ad"></div> <div class="grid-post"> <a href="https://www.phillymag.com/news/dating-in-philly/" data-gtm-title="How Philly Dates Now"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/05/900-Dating_01.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>How Philly Dates Now</p> </span> </a> </div> <div class="grid-post"> <a href="https://www.phillymag.com/news/2023/07/15/public-transit-septa-kids/" data-gtm-title="4 Ways to Make Public Transit Easier for Kids"> <div class="grid-post-image"> <img width="300" height="200" class="attachment-thumbnail size-thumbnail lazyload" alt="" decoding="async" loading="lazy" data-src="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-300x200.jpg" data-srcset="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-300x200.jpg 300w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-605x403.jpg 605w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-115x77.jpg 115w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids-600x400.jpg 600w, https://cdn10.phillymag.com/wp-content/uploads/sites/3/2023/07/900-septa-kids.jpg 900w" data-sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 969px) calc( ( ( 100vw - 30px ) / 3 ) - 35px ), 605px"> </div> <span class="post-title"> <p>4 Ways to Make Public Transit Easier for Kids</p> </span> </a> </div> <div class="grid-post nativo1"></div> <div class="grid-post nativo2"></div> <div class="grid-post nativo3"></div> </div> </div> </article> </div><script type="text/javascript"> if (!window.Zephr) window.Zephr = {}; if (!window.Zephr.outcomes) window.Zephr.outcomes = {}; window.Zephr.outcomes['all-access-page'] = { featureLabel: 'All Access Pages', outcomeId: 'transformation/3', outcomeLabel: 'Remove' }; </script> <div class="sidebar"> <div class="trending-widget"> <div id="toprailsponsor-1" class="gpt-ad toprail-bewell"></div> <h2 class="title-line">Trending</h2> <ol> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/05/septa-fare-evasion-gates/"> SEPTA’s New “High-Tech” Fare Gates Are Very, Very Easy to Beat </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/08/philadelphia-crime-shootings-homicide/"> Philadelphia Shootings Have Plummeted to Pre-Pandemic Levels </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/08/wrestlemania-40-philadelphia/"> 10 Bonkers Things That Happened at WrestleMania 40 </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/optimist-guide-philadelphia-future/"> An Optimist’s Guide to Philadelphia </a> </h3> </li> <li> <h3 class="trending-post-title post-title"> <a href="https://www.phillymag.com/news/2024/04/06/allan-domb-philadelphia-economy/"> Why Allan Domb Is Upbeat About Philadelphia’s Economy </a> </h3> </li> </ol> </div> <div id="native_sidebar" class="gpt-ad native_sidebar"></div> |
| 28 |
Error
On line 768, column 40 _sidebar"></div> </div> </div> </div><!-- .col-main --> <div class="three-column-module container"> <h2 class="title-line">IN THIS SECTION</h2> <div class="grid-content with-separator"> <div class="grid-post"><div id="curated_module-1" class="gpt-ad lazyload" data-ad="curated_module-1"></div></div><div class="grid-post"><div id="curated_module-2" class="gpt-ad lazyload" data-ad="curated_module-2"></div></div><div class="grid-post"><div id="curated_module-3" class="gpt-ad lazyload" data-ad="curated_module-3"></div></div> </div> </div> <div id="banner-2" class="gpt-ad lazyload advertisement container" data-ad="banner-2"></div> <footer class="site-footer" role="contentinfo" id="js-footer"> <div class="footer-navigation"><ul id="menu-footer" class="menu-footer-main container"><li id="menu-item-1312111" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1312111"><a href="https://www.phillymag.com/about-philadelphia-magazine/">About</a></li> <li id="menu-item-1172051" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1172051"><a href="https://phillymag.com/contact/">Contact</a></li> <li id="menu-item-3545622" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3545622"><a href="https://www.phillymag.com/issues/">Magazine</a></li> <li id="menu-item-1359951" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1359951"><a href="https://www.phillymag.com/subscribe-to-philadelphia/">Subscribe</a></li> <li id="menu-item-900141" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-900141"><a href="/philadelphia-magazine-media-kit/">Advertise</a></li> <li id="menu-item-3966784" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3966784"><a href="https://metrocorp.cloud.buysub.com/login">Customer Service</a></li> <li id="menu-item-3358026" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358026"><a href="https://www.phillymag.com/careers/">Careers</a></li> <li id="menu-item-3358028" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358028"><a href="https://www.phillymag.com/privacy-policy/">Privacy Policy</a></li> </ul></div> <div class="site-footer-inner container"> <a href="https://www.phillymag.com" class="footer-logo"> <span><svg class="mc-icon phillymag-logo" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-logo"></use></svg></span> <span class="screen-reader-text">Philadelphia Magazine</span> </a> <ul id="menu-social-menu-2" class="menu-footer-social"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> <p class="footer-copyright">2024 © Metro Corp. All Rights Reserved.</p> </div> </footer> <div class="container" id="gutter-container"></div> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-zephr/js/blaize-front-end-sdk.min.js?ver=1.0.4" id="blaize-sdk-js" defer></script> <script type="text/javascript" id="metrocorp-zephr-js-extra"> /* <![CDATA[ */ var mcZephr = {"ajaxurl":"https:\/\/www.phillymag.com\/wp-admin\/admin-ajax.php","pageslug":"philadelphia-crime-public-safety","hbpageurl":"https:\/\/www.phillymag.com\/news\/2024\/04\/06\/philadelphia-crime-public-safety\/","hbpagename":"Yes, Philadelphia Is Safer Than They Say on TV","hbportalid":"510637","formId":{"register":"bcb5c500-550a-47a6-bd37-ca98e1557872","meter":"5abdf84d-a6ba-444c-bdc7-8ce82290ccae"},"nonce":{"register":"c2b9b6612d","meter":"5fd0d64bac"},"pushArray":"[]"}; /* ]]> */ </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-zephr/js/metrocorp-zephr.js?ver=1.0.4" id="metrocorp-zephr-js" defer></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-breakingnewsbanner/assets/js/breaking-news-bar.js?ver=1" id="mc-breaking-news-banner-script-js"></script> <script type="text/javascript" id="metrocorp-js-extra"> /* <![CDATA[ */ var mcGlobal = {"isSingle":"1","directoryName":"Philadelphia Magazine"}; /* ]]> */ </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/js/metrocorp.min.js?ver=87" id="metrocorp-js" defer></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/js/metrocorp-secondary.min.js?ver=87" id="metrocorp-secondary-js" defer></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-google-tag-manager/assets/js/datalayer-philly-best-restaurants.js?ver=1.0.0" id="mc-datalayer-js" defer></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-google-tag-manager/assets/js/datalayer-yaml.js?ver=1.0.0" id="mc-datalayer-yaml-js"></script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-ads//dist/js/metrocorp-ads-secondary.js?ver=842a0c154e5d9bc4a95b" id="metrocorp-ads-secondary-js" defer></script> <!--[if if lte IE 8]> <script type="text/javascript" src="//js.hsforms.net/forms/v2-legacy.js?ver=1.0.0" id="mc-integrations-hubspot-legacy-js"></script> <![endif]--> <script type="text/javascript" src="//js.hsforms.net/forms/v2.js?ver=1.0.0" id="mc-integrations-hubspot-js"></script> <script type="text/javascript" id="mc-hubspot-subscription-form-js-extra"> /* <![CDATA[ */ var mcHubSpot = {"portalId":"510637","formId":"1eb0cd17-b648-4155-bc2f-9026b5cbb937","isSingle":"true","title":"Yes, Philadelphia Is Safer Than They Say on TV","vertical":"City Life"}; /* ]]> */ </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-hubspot/assets/js/metrocorp-hubspot-subscription-form.js?ver=87" id="mc-hubspot-subscription-form-js" defer></script> <!-- Start of AdCellerant Embed Code --> <script src="https://js.adsrvr.org/up_loader.1.1.0.js" type="text/javascript"></script> <script type="text/javascript"> ttd_dom_ready( function() { if (typeof TTDUniversalPixelApi === 'function') { var universalPixelApi = new TTDUniversalPixelApi(); universalPixelApi.init("1qqfa0h", ["g7kke2y"], "https://insight.adsrvr.org/track/up"); } }); </script> <!-- End of AdCellerant Embed Code --> <link rel="stylesheet" href="//cloud.typography.com/6851996/6329192/css/fonts.css" type="text/css" media="print" onload="this.media='all'"> <div id="bottom-anchor" class="gpt-ad"></div> |
| 29 |
Info
On line 465, column 167 hillymag"> <div id="ad-reveal" class="gpt-ad"></div><div id="under-reveal"></div><div class="header-navigation-spacer"></div> <div class="header-navigation js-header-menu-full" id="js-header-navigation"> <div class="container header-navigation-inner"> <div class="navigation-logo"> <a href="//www.phillymag.com"> <svg class="mc-icon phillymag-logo" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-logo"></use></svg> </a> </div> <button id="js-mobile-menu-toggle" class="mobile-menu-toggle" aria-hidden="true"> <svg class="mc-icon hamburger" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-hamburger"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> <div class="header-menu-wrapper" id="js-header-navigation-wrapper"> <div class="header-menu"><ul id="menu-primary-menu" class="menu-header-main"><li id="menu-item-3441760" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li id="menu-item-3441764" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li id="menu-item-3441765" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li id="menu-item-3556438" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li id="menu-item-3441767" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li id="menu-item-3441776" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li id="menu-item-3570068" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li id="menu-item-3869015" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li id="menu-item-3869012" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li id="menu-item-3357928" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li id="menu-item-3701551" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li id="menu-item-3357931" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li id="menu-item-3358386" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li id="menu-item-3358357" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li id="menu-item-3357976" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li id="menu-item-3358644" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li id="menu-item-3357934" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li id="menu-item-3357978" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li id="menu-item-3357983" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li id="menu-item-3358174" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li id="menu-item-3357984" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li id="menu-item-3357987" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li id="menu-item-3358017" class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li id="menu-item-3357997" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li id="menu-item-3357998" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li id="menu-item-3358019" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li id="menu-item-3570077" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li id="menu-item-3870342" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li id="menu-item-3358000" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li id="menu-item-3357999" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li id="menu-item-3358002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li id="menu-item-3358004" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li id="menu-item-3358006" class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li id="menu-item-3358022" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li id="menu-item-4031702" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li id="menu-item-3358008" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div class="header-tablet-elements"> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left" class="menu-header-subscribe js-menu-zephr"><li id="menu-item-921051" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li id="menu-item-3821020" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li id="menu-item-3703713" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu" class="menu-header-social"><li id="menu-item-3357935" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li id="menu-item-3357936" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li id="menu-item-3357939" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> </div> </div> <div class="header-search"> <div class="search-form-wrapper" id="js-search-form-wrapper" aria-hidden="true"> <form role="search" method="get" class="search-form" action="https://www.phillymag.com/"> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" title="Search for:"> </label> <button type="submit"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <span class="screen-reader-text">Search</span> </button> </form> </div> <button id="js-toggle-search" aria-expanded="false" aria-controls="js-search-form-wrapper"> <svg class="mc-icon icon-search" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-icon-search"></use></svg> <svg class="mc-icon close" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-close"></use></svg> </button> </div> </div> </div> <header class="site-header" role="banner" id="js-header"> <div class="site-header-inner container"> <div class="header-social"> <div class="thin-line"> <span class="screen-reader-text">Follow</span> <svg class="mc-icon phillymag-follow" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-follow"></use></svg> </div> <ul id="menu-social-menu-1" class="menu-header-social"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357935"><a target="_blank" rel="noopener" href="https://www.facebook.com/philadelphiamagazine"><span class="screen-reader-text">Facebook</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357936"><a target="_blank" rel="noopener" href="https://www.instagram.com/phillymag/"><span class="screen-reader-text">Instagram</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357939"><a target="_blank" rel="noopener" href="https://twitter.com/phillymag"><span class="screen-reader-text">Twitter</span></a></li> </ul> </div> <div class="header-logo"> <div itemscope itemtype="https://schema.org/Organization"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> <span class="screen-reader-text">Philadelphia Magazine</span> </a> <span class="section-front-tagline"></span></div> </div> <div class="header-subscribe"> <div class="thin-line"> <span class="screen-reader-text">Subscribe</span> <svg class="mc-icon phillymag-subscribe" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-subscribe"></use></svg> </div> <ul id="menu-sitenav_left-1" class="menu-header-subscribe js-menu-zephr"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-921051"><a href="/all-access/">All Access</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3821020"><a href="/newsletters">Newsletters</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3703713"><a href="/loginphilly">Sign In</a></li> </ul> </div> </div> </header> <div class="mobile-section-front"> <a href="https://www.phillymag.com/news"> <svg class="mc-icon phillymag-section-news" aria-hidden="true"><use xlink:href="/wp-content/themes/metrocorp/images/sprite.svg?ver=87#mc-icon-phillymag-section-news"></use></svg> </a> <span class="section-front-tagline"> </span> </div> <div class="header-navigation-secondary container"><ul id="menu-primary-menu-1" class="menu-topics"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-3441760"><a href="/find-it-philly-search/">Find It/Philly</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441764"><a href="/find-a-doctor/">Doctors</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441765"><a href="/dentists/">Dentists</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3556438"><a href="/home-design/">Home Design Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441767"><a href="/senior-living/">Senior Living</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3441776"><a href="/weddings/">Wedding Experts</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570068"><a href="/real-estate-agents/">Real Estate Agents</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869015"><a href="/private-schools">Private Schools</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3869012"><a href="/mortgage-lenders">Mortgage Professionals</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-3357928"><a href="https://www.phillymag.com/news">City Life</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical current-post-ancestor current-menu-parent current-post-parent menu-item-3701551"><a href="https://www.phillymag.com/news">The Latest</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357931"><a href="https://www.phillymag.com/foobooz">Restaurants</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358386"><a href="https://www.phillymag.com/foobooz">Foobooz</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358357"><a href="https://www.phillymag.com/foobooz/50-best-restaurants/">50 Best Restaurants</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357976"><a href="https://www.phillymag.com/restaurant-finder/">Restaurant Finder</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358644"><a href="https://www.phillymag.com/foobooz/philadelphia-restaurant-jobs/">Jobs</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357934"><a href="https://www.phillymag.com/be-well-philly">Health</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357978"><a href="https://www.phillymag.com/be-well-philly">Be Well Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357983"><a href="https://www.phillymag.com/dentists/">Find a Dentist</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358174"><a href="https://www.phillymag.com/find-a-doctor/">Find a Doctor</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3357984"><a href="https://www.phillymag.com/senior-living/">Senior Living</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357987"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a> <ul class="sub-menu"> <li class="hide-on-desktop menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358017"><a href="https://www.phillymag.com/life-style">Life &amp; Style</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3357997"><a href="https://www.phillymag.com/property">Real Estate &amp; Home</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357998"><a href="https://www.phillymag.com/property">Properties &amp; News</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358019"><a href="/home-design/">Find a Home &amp; Design Pro</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3570077"><a href="/real-estate-agents/">Find a Real Estate Agent</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3870342"><a href="/mortgage-lenders">Find a Mortgage Professional</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358000"><a href="https://www.phillymag.com/things-to-do">Things To Do</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3357999"><a href="https://www.phillymag.com/things-to-do">Events in Philly</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358002"><a href="https://www.phillymag.com/events">Philly Mag Events</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-has-children menu-item-3358004"><a href="https://www.phillymag.com/philadelphia-wedding">Wedding</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-mc-tax-vertical menu-item-3358006"><a href="https://www.phillymag.com/philadelphia-wedding">Guides &amp; Advice</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358022"><a href="https://www.phillymag.com/weddings/">Find a Wedding Expert</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4031702"><a href="/bubblybrunch">Bubbly Brunch Event</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3358008"><a href="https://www.phillymag.com/best-of-philly/">Best of Philly</a></li> </ul></div> <div style="width:1px;height:1px;margin:-1px 0 0 0;padding:0;display:block;"> <div id="skin" class="gpt-ad"></div> </div> <div id="interstitial" class="gpt-ad out-of-page"></div><div id="teads-video-oop" class="gpt-ad out-of-page"></div><div id="bottom-anchor" class="gpt-ad out-of-page"></div> |
| 30 |
Error
On line 894, column 7 ="gpt-ad"></div> <script type="text/javascript"> window.Zephr = window.Zephr || {}; window.Zephr.includeOutcomes = true; window.Zephr.outcomesAsEvents = true; window.Zephr.groupFields = false; (function() { var xhr = new(XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0'); xhr.open('GET', '/blaize/datalayer', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { var response; try { response = JSON.parse(xhr.response); } catch (e) { response = xhr.response; } if (xhr.status === 200) { for (var dataLayerFieldName in response) { if (!(dataLayerFieldName in window)) window[dataLayerFieldName] = []; var pageView = response[dataLayerFieldName]; var events = []; if (window.Zephr && window.Zephr.includeOutcomes && window.Zephr.outcomes) { pageView.zephrOutcomes = window.Zephr.outcomes; if (window.Zephr.outcomesAsEvents) { Object.keys(window.Zephr.outcomes || []).forEach(function(outcomeKey) { var outcomeEvent = { event: "zephr-outcome-" + outcomeKey, featureId: outcomeKey, featureLabel: window.Zephr.outcomes[outcomeKey].featureLabel, outcomeId: window.Zephr.outcomes[outcomeKey].outcomeId, outcomeLabel: window.Zephr.outcomes[outcomeKey].outcomeLabel, }; events.push(outcomeEvent); }); } } if (window.Zephr && window.Zephr.accessDetails) { Object.keys((window.Zephr.accessDetails.trials || {})).forEach(function(trialId){ var trial = window.Zephr.accessDetails.trials[trialId] if(trial.reportInDataLayer){ var usedCredits = trial.totalCredits - trial.remainingCredits if (window.Zephr.groupFields && !pageView.zephrTrials) pageView.zephrTrials = {}; var target = window.Zephr.groupFields ? pageView.zephrTrials : pageView if (trial.dataLayerCreditsUsedKey) { target[trial.dataLayerCreditsUsedKey] = usedCredits; } if (trial.dataLayerCreditsRemainingKey) { target[trial.dataLayerCreditsRemainingKey] = trial.remainingCredits; } } }); (window.Zephr.accessDetails.trialTrackingDetails || []).forEach(function(details) { var type = details.entitlementType === 'credits' ? 'credits' : 'meters'; var trial = (window.Zephr.accessDetails[type] || {})[details.entitlementId]; if (!trial) return; if (window.Zephr.groupFields && !pageView.zephrTrials) pageView.zephrTrials = {}; if (details.creditsRemainingKey) { if (window.Zephr.groupFields) { pageView.zephrTrials[details.creditsRemainingKey] = trial.remainingCredits; } else { pageView[details.creditsRemainingKey] = trial.remainingCredits; } } if (details.creditsUsedKey) { if (window.Zephr.groupFields) { pageView.zephrTrials[details.creditsUsedKey] = trial.totalCredits - trial.remainingCredits; } else { pageView[details.creditsUsedKey] = trial.totalCredits - trial.remainingCredits; } } }); try { (Object.keys(window.Zephr.accessDetails.timeTrials || {})).forEach(function(timeTrialId) { var timeTrial = window.Zephr.accessDetails.timeTrials[timeTrialId] if(timeTrial.reportInDataLayer){ if (window.Zephr.groupFields && !pageView.zephrTrials) pageView.zephrTrials = {}; var target = window.Zephr.groupFields ? pageView.zephrTrials : pageView if (timeTrial.dataLayerTrialDurationKey) { target[timeTrial.dataLayerTrialDurationKey] = timeTrial.trialDuration; } if (timeTrial.dataLayerTrialDurationUnitsKey) { target[timeTrial.dataLayerTrialDurationUnitsKey] = timeTrial.trialDurationUnits; } if (timeTrial.dataLayerTrackerEntryTimeKey) { target[timeTrial.dataLayerTrackerEntryTimeKey] = timeTrial.entryTime; } if (timeTrial.dataLayerTrackerHitsKey) { target[timeTrial.dataLayerTrackerHitsKey] = timeTrial.trackerHits; } if (timeTrial.dataLayerTrialTimeRemainingKey) { target[timeTrial.dataLayerTrialTimeRemainingKey] = timeTrial.timeRemainingInTrial; } } }); } catch (err) { console.error("Error aggregating Zephr time trials", err); } } if (Object.keys(pageView).length) { pageView.event = "zephr-pageview"; events.unshift(pageView); } if (!events.length) continue; events.forEach(function(event) { window[dataLayerFieldName].push(event); }); } var readyEvent = document.createEvent('Event'); readyEvent.initEvent('zephr.dataLayerReady', true, true); document.dispatchEvent(readyEvent); } } } xhr.send({}); })(); </script> <script type="text/javascript"> if (!window.Zephr) window.Zephr = {}; window.Zephr.accessDetails = {"isAuthenticated":false,"accessDecisions":{"M3A9uZ":true},"entitlements":{},"credits":{},"meters":{"M3A9uZ":{"isUsedInDecision":true,"isDecrementedInDecision":true,"totalCredits":3,"remainingCredits":2},"yd5xCQ":{"isUsedInDecision":false,"isDecrementedInDecision":false,"totalCredits":3,"remainingCredits":3}},"trials":{},"timeTrials":{},"trialTrackingDetails":[{"creditsUsedKey":"BOSregisteredTrialUsed","creditsRemainingKey":"BOSregisteredTrialRemaining","entitlementId":"8PkFKn","entitlementType":"meter"},{"creditsUsedKey":"PHIunRegisteredTrialUsed","creditsRemainingKey":"PHIunRegisteredTrialRemaining","entitlementId":"M3A9uZ","entitlementType":"meter"},{"creditsUsedKey":"PHIregisteredTrialUsed","creditsRemainingKey":"PHIregisteredTrialRemaining","entitlementId":"X8GVUi","entitlementType":"meter"},{"creditsUsedKey":"BOSunRegisteredTrialUsed","creditsRemainingKey":"BOSunRegisteredTrialRemaining","entitlementId":"yd5xCQ","entitlementType":"meter"}],"testGroups":{"a92a3049-5eae-42b9-a584-32c777aeb20f":"A","3b01d163-59e0-4572-93b2-2ccaee467b4c":"A","a866aafc-5caa-4bfc-968d-3be9056b2733":"B","e00c1d35-cbaa-4515-bdea-241356f6f120":"A"},"activeProducts":[]}; </script> </body> </htm |
| 31 |
Error
On line 3, column 44 ymag.com/?p=4043503>; rel= |
| 32 |
Error
On line 2, column 61 v2/posts/4043503>; rel= |
| 33 |
Error
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 34 |
Error
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 35 |
Error
On line 1, column 36 ymag.com/wp-json/>; rel= |
| 36 |
Error
On line 31, column 106 ative."> <link rel="canonical" href="https://www.phillymag.com/news/2024/04/06/philadelphia-crime-public-safety/"> <met |
| 37 |
Info
On line 61, column 31 phy.com"> <script type="text/javascript"> /* <! |
| 38 |
Info
On line 68, column 55 </script> <style id="wp-emoji-styles-inline-css" style="background-color: #ffff80;">type="text/css"> img |
| 39 |
Info
On line 82, column 60 </style> <style id="classic-theme-styles-inline-css" style="background-color: #ffff80;">type="text/css"> /*! T |
| 40 |
Info
On line 86, column 53 </style> <style id="global-styles-inline-css" style="background-color: #ffff80;">type="text/css"> body{ |
| 41 |
Error
On line 87, column 2801 .is-layout-flex){gap: 0.5em;}: |
| 42 |
Error
On line 87, column 2837 .is-layout-grid){gap: 0.5em;}b |
| 43 |
Error
On line 87, column 2918 -inline-start: 0;margin-inline |
| 44 |
Error
On line 87, column 2941 line-end: 2em;}body |
| 45 |
Error
On line 87, column 3015 ne-start: 2em;margi |
| 46 |
Error
On line 87, column 3036 in-inline-end: 0;}body .is-lay |
| 47 |
Error
On line 87, column 3209 -inline-start: 0;margin-inline |
| 48 |
Error
On line 87, column 3232 line-end: 2em;}body |
| 49 |
Error
On line 87, column 3313 ne-start: 2em;margi |
| 50 |
Error
On line 87, column 3334 in-inline-end: 0;}body .is-lay |
| 51 |
Error
On line 87, column 3526 not(.alignfull)){max-width: va |
| 52 |
Error
On line 87, column 3968 .is-layout-flex){gap: 2em;}:wh |
| 53 |
Error
On line 87, column 4019 .is-layout-grid){gap: 2em;}:wh |
| 54 |
Error
On line 87, column 4076 .is-layout-flex){gap: 1.25em;} |
| 55 |
Error
On line 87, column 4136 .is-layout-grid){gap: 1.25em;} |
| 56 |
Error
On line 88, column 54 element-button)){color: inheri |
| 57 |
Error
On line 89, column 46 .is-layout-flex){gap: 1.25em;} |
| 58 |
Error
On line 89, column 106 .is-layout-grid){gap: 1.25em;} |
| 59 |
Error
On line 90, column 40 .is-layout-flex){gap: 2em;}:wh |
| 60 |
Error
On line 90, column 91 .is-layout-grid){gap: 2em;} .w |
| 61 |
Info
On line 95, column 49 ia="all"> <script type="text/javascript" id="gpt-js-extra"> /* <! |
| 62 |
Info
On line 100, column 50 </script> <script type="text/javascript" id="gpt-js-before"> /* <! |
| 63 |
Info
On line 120, column 108 </script> <script type="text/javascript" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" id="gpt-js" async></scri |
| 64 |
Info
On line 121, column 49 </script> <script type="text/javascript" id="gpt-js-after"> /* <! |
| 65 |
Info
On line 126, column 116 </script> <script type="text/javascript" src="https://static.criteo.net/js/ld/publishertag.js?ver=6.4.3" id="criteo-js" async></scri |
| 66 |
Info
On line 127, column 98 </script> <script type="text/javascript" src="https://s.ntv.io/serve/load.js" id="nativo-tracking-js" async></scri |
| 67 |
Info
On line 128, column 180 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp-phillymag/countdown-clock/countdown.js?ver=0.4.37" id="phillymag-countdown-js-js" async></scri |
| 68 |
Error
On line 129, column 73 </script> <link rel="https://api.w.org/" href="https://www.phillymag.com/wp-json/"><link |
| 69 |
Error
On line 129, column 180 wp-json/"><link rel="alternate" type="application/json" href="https://www.phillymag.com/wp-json/wp/v2/posts/4043503"><link |
| 70 |
Error
On line 129, column 287 /4043503"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.phillymag.com/xmlrpc.php?rsd"> <meta |
| 71 |
Error
On line 131, column 66 s 6.4.3"> <link rel="shortlink" href="https://www.phillymag.com/?p=4043503"> < |
| 72 |
Error
On line 172, column 239 LOChSybY"><link rel="icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-32x32.png" sizes="32x32"> <link |
| 73 |
Error
On line 173, column 141 ="32x32"> <link rel="icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-192x192.png" sizes="192x192"> <link |
| 74 |
Error
On line 174, column 137 192x192"> <link rel="apple-touch-icon" href="https://cdn10.phillymag.com/wp-content/uploads/sites/3/2017/10/cropped-phillymag-favicon-180x180.png"> <meta |
| 75 |
Info
On line 195, column 97 </script> <script async type="text/javascript" src="https://www.googletagmanager.com/gtm.js?id=GTM-PLKVN8"></scri |
| 76 |
Info
On line 223, column 101 Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/510637.js"></scri |
| 77 |
Info
On line 235, column 31 Code --> <script type="text/javascript"> _link |
| 78 |
Info
On line 239, column 40 tner_id); </script><script type="text/javascript"> (func |
| 79 |
Info
On line 363, column 59 div> <header class="site-header" role="banner" id="js-header"> < |
| 80 |
Info
On line 553, column 31 /em></p> <script type="text/javascript"> if |
| 81 |
Info
On line 640, column 39 rticle> </div><script type="text/javascript"> if |
| 82 |
Info
On line 705, column 62 "></div> <footer class="site-footer" role="contentinfo" id="js-footer"> <div |
| 83 |
Info
On line 728, column 169 "></div> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-zephr/js/blaize-front-end-sdk.min.js?ver=1.0.4" id="blaize-sdk-js" defer></scri |
| 84 |
Info
On line 729, column 61 </script> <script type="text/javascript" id="metrocorp-zephr-js-extra"> /* <! |
| 85 |
Info
On line 734, column 165 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-zephr/js/metrocorp-zephr.js?ver=1.0.4" id="metrocorp-zephr-js" defer></scri |
| 86 |
Info
On line 735, column 192 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-breakingnewsbanner/assets/js/breaking-news-bar.js?ver=1" id="mc-breaking-news-banner-script-js"></scri |
| 87 |
Info
On line 736, column 55 </script> <script type="text/javascript" id="metrocorp-js-extra"> /* <! |
| 88 |
Info
On line 741, column 149 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/js/metrocorp.min.js?ver=87" id="metrocorp-js" defer></scri |
| 89 |
Info
On line 742, column 169 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/themes/metrocorp/dist/js/metrocorp-secondary.min.js?ver=87" id="metrocorp-secondary-js" defer></scri |
| 90 |
Info
On line 743, column 200 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-google-tag-manager/assets/js/datalayer-philly-best-restaurants.js?ver=1.0.0" id="mc-datalayer-js" defer></scri |
| 91 |
Info
On line 744, column 180 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-google-tag-manager/assets/js/datalayer-yaml.js?ver=1.0.0" id="mc-datalayer-yaml-js"></scri |
| 92 |
Info
On line 745, column 200 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-ads//dist/js/metrocorp-ads-secondary.js?ver=842a0c154e5d9bc4a95b" id="metrocorp-ads-secondary-js" defer></scri |
| 93 |
Info
On line 749, column 108 endif]--> <script type="text/javascript" src="//js.hsforms.net/forms/v2.js?ver=1.0.0" id="mc-integrations-hubspot-js"></scri |
| 94 |
Info
On line 750, column 74 </script> <script type="text/javascript" id="mc-hubspot-subscription-form-js-extra"> /* <! |
| 95 |
Info
On line 755, column 204 </script> <script type="text/javascript" src="https://cdn10.phillymag.com/wp-content/mu-plugins/metrocorp-hubspot/assets/js/metrocorp-hubspot-subscription-form.js?ver=87" id="mc-hubspot-subscription-form-js" defer></scri |
| 96 |
Info
On line 757, column 78 Code --> <script src="https://js.adsrvr.org/up_loader.1.1.0.js" type="text/javascript"></scri |
| 97 |
Info
On line 758, column 31 </script> <script type="text/javascript"> ttd_ |
| 98 |
Info
On line 769, column 31 d"></div> <script type="text/javascript"> win |
| 99 |
Info
On line 890, column 31 </script> <script type="text/javascript"> if |
| 100 |
Error
On line 495, column 131 <a href="https://www.phillymag.com/category/longform/" class="post-slug" id="post-rubric" itemprop="articleSection">Longfo |
β