Photo-Illustration: Maya Robinson/Vulture and Photos by Getty Images
In 2013, Vulture assembled a list of 50 comedians we had been hearing about with such frequency that we needed to alert our readers. That was only four years ago, but it seems like it’s been much longer considering the list contained such current household names as Amy Schumer, Kumail Nanjiani, Abbi Jacobson, and Ilana Glazer. You also already know many of the comedians from our 2015 list. But who you likely don’t know, yet, are the comics on this year’s list, which is why you’re here. Thanks for coming.
To compile the list we polled dozens of bookers for stand-up clubs, improv venues, and comedy festivals, as well as development execs from HBO, IFC, Comedy Central, TruTV, TBS, Adult Swim, and a few prominent podcast networks. The result is a list of 20 comedians that represent a consensus of who the industry is talking about. Some are stand-ups, some are sketch performers, some are writers, but you should and will know all of them.
Marcella Arguello
Twitter: @marcellacomedy Location: Los Angeles The moment Marcella Arguello takes a stage, she exudes command. Her presence is felt (and not just because she stands over six feet tall) and the energy she brings is reminiscent of ’90s-era “I ain’t scared” Bernie Mac, with material about current issues segueing into spot-on impressions of such personalities as Beyoncé and Mariah Carey. She thrives in competitive comedy settings, having won @midnight six times and emerging as the victor on TruTV’s Comedy Knockout, so it’s little surprise that the comic and writer for Drop the Mic got the most votes from our industry panel.
Joel Kim Booster
Twitter:@ihatejoelkim Location: New York Sure, you could focus on Booster’s backstory — he was adopted into a very midwestern, very religious white family who homeschooled him, only for him to become an outspoken gay comic in a big city — but his whip-smart comedy makes him a mischievous delight to watch even without the bio. Booster is a strong, incisive joke writer, but he’s at his best interacting with a crowd, striking a nice balance between inviting and button-pushing. As a result, Booster has racked up great credits, including multiple Conan sets, his standout appearance on The Meltdown With Jonah and Kumail, his Comedy Central Stand-Up Presents, and his writing on Billy on the Street and Problematic With Moshe Kasher. Next up, Booster is developing a show about his childhood with Jax Media.
Nick Ciarelli and Brad Evans
Twitter: @nickciarelli & @bradfordevans Location: Los Angeles While you may know more performers who came up through the Upright Citizens Brigade Theatre — from Adam Pally to Ellie Kemper to Donald Glover to Aubrey Plaza — there have been just as many amazing writers who developed on UCB’s stages. In L.A., writing duo Nick Ciarelli and Brad Evans are among the latest to make a name for themselves. The pair are involved in several shows each week, including their monthly sketch showcase, “Atlantic City.” Their comedy is silly yet quietly sinister, as seen in “Death Valley Tween Fest,” a send-up of both Coachella and YouTube stars, which was a sensation as a live show before being adapted into an Emmy-nominated webseries. Ciarelli and Evans’s other credits include Billy on the Street, Clickhole, TBS, and the Stitcher podcast Strictly Business.
Cocoon Central Dance Team (Sunita Mani, Eleanore Pienta, Tallie Mara Medel)
Twitter:@cocooncentral Location: New York The exuberance of Cocoon Central Dance Team is undeniable. Sunita Mani, Eleanore Pienta, and Tallie Medel choreograph and perform dance routines that are as fun as they are meticulously detailed in concept, movement, and execution. The pieces tend to be abstract character studies, with the women inhabiting a world free of words. Since the early aughts, CCDT has been performing everywhere from MOMA PS1 to Caroline’s on Broadway, while each of its members have been developing individually as actors, most prominently Mani’s role on Glow). The team’s first film, Snowy Bing Bongs, premiered at BAM CinemaFest this summer.
Naomi Ekperigin
Twitter:@blacktress Location: New York Naomi Ekperigin is a talker. Obviously, all comedians get up there and blab, but with Ekperigin you feel like you’re sitting down with a very funny best friend over a cup of tea. She is conversational while remaining pointed, regaling audiences with stories of crime procedurals before transitioning into sharp commentary on the behavior of white women. The difference between her and your chatty friend is that Ekperigin — who had a half-hour special on Comedy Central in 2016 — is also a strong joke writer, and has written for shows such as Broad City, Difficult People, and, most recently, Great News.
Chris Garcia
Twitter:@_chrisgarcia Location: Los Angeles Chris Garcia’s comedy celebrates life’s weirdness, and often takes the form of stories about life as the son of Cuban immigrants who went from being a poetry major at Berkeley to a fast-rising comedian. Garcia’s experiences inform his material, which ranges from heartwarming stories drawn from childhood (an approach that landed him on This American Life) to pure silliness (like singing a word-for-word English translation to the classic pop song “La Bamba”). Garcia is at his best sharing tales of his Cuban heritage (he has even made trips to Cuba to better inform his writing), so it makes sense that he’s developing a show with the Lonely Island about growing up as a first-generation Cuban-American.
Patti Harrison
Twitter:@party_harderson Location: New York Patti Harrison got a big break when The Tonight Show invited her on to discuss Trump’s attempt to ban trans men and women from the military, but that bit only barely scratched the surface of Harrison’s talent and voice. Her deadpan delivery hides comedy that can be deeply absurd, pitch black, and occasionally gross. She flourishes in the wild, whether that means hosting on-the-street segments or interacting with animals on her webseries, “Patti Reviews Exotic Animals.” It’s understandable, then, that Harrison is amassing TV credits, including spots on Broad City, Search Party, and The Chris Gethard Show.
Matt Ingebretson
Twitter: @mattingebretson Location: Los Angeles Matt Ingebretson represents the rise of a talented subset of L.A.’s comedy scene, one that established itself in the city about eight or nine years ago. Others in that cohort include Jake Weisman and Pat Bishop, Ingebretson’s fellow co-creators on Corporate, an upcoming scripted series from Comedy Central. Prior to arriving in L.A., Ingebretson started out in Austin, Texas, and since then has refined his dark, wry, slightly goofy stand-up into one of L.A.’s favorite acts. He’s also made waves as a writer of short films, including Oh Damn, which was an official selection at this year’s Tribeca Film Fest and named 2017 Nonplussed Fest Audience Award Winner for Best Narrative.
Sam Jay
Twitter: @samjaycomic Location: New York If you were to imagine what Patrice O’Neal might have been like if he were a bit less caustic (and also a gay woman), you’d come up with someone close to Sam Jay. Brash and brilliant, she’s just as unapologetic in her beliefs and deft at weaving jokes through onstage diatribes as O’Neal was, and similarly likable. Jay started doing stand-up in Boston, then had a relatively brief stint in L.A. before landing a gig as one of SNL’s newest writers.
Langston Kerman
Twitter: @langstonkerman Location: Los Angeles Langston Kerman has come a long way from his days as a poet and teacher to a gig writing jokes for the Chris Rock–hosted Oscars to his current recurring role on HBO’s Insecure. Kerman’s act tends to focus on his surroundings, with a particular interest in the ideas and idiosyncrasies of community. His jokes often deal with difficult subjects, focusing on topics like gentrification and the black experience, but he’s so charming you can’t help but want to hear what he has to say. In addition to his growing role on Insecure, Kerman was recently cast as a series regular on FX’s Seth Rogen and Evan Goldberg–produced sci-fi comedy, Singularity.
Natalie Palamides
Twitter: @natdogkatdog Location: Los Angeles Some comedians have an innate ability to take a character, heighten it to the extreme, and yet somehow still make it feel real and grounded. Palamides is one such magician, able to disappear into every role she plays, whether it’s on The Powerpuff Girls or a UCB stage. Her deeply committed character work has paid dividends, as her solo show “LAID” won Best Newcomer Award at the Edinburgh Fringe Festival this year. Anyone obsessed with Kristen Wiig, Amy Sedaris, and Kate McKinnon can safely assume they’re going to also love Palamides.
Joe Pera
Twitter: @JosephPera Location: New York Anti-comedy is rarely this wholesome. Joe Pera shares Andy Kaufman’s penchant for playing with an audience’s expectation, but replaces the cynicism with a deeply peculiar “aww shucks” attitude, subverting his unassuming appearance and hyperpolite manner of speaking with some truly weird comedy. His jokes tend to build around caring deeply about very simple things, whether it’s the size of his future children, reviewing pancakes, or trying to help you pick a Christmas tree. All of it makes the audience question whether he’s really a comedian, or actually some folksy middle manager who accidentally stumbled onstage. Pera will be channeling that odd energy into an Adult Swim series, which begins shooting in Wisconsin this winter.
Gary Richardson
Twitter: @garyyesgary Location: New York Gary Richardson has spent time in the country’s three biggest comedy cities, and while he currently lives in New York, where he writes on SNL, he is a Chicago comic at the core. Richardson was part of a crew of performers from Chicago’s Annoyance Theatre that made the move to NYC a few years back (the group opened a well-received East Coast version of the Annoyance in Brooklyn, but it has since closed). As a comic, he operates with a more deadpan version of the boundary-pushing, character-obsessed style associated with the Annoyance. Not afraid to really commit to a scene or bit, he enjoys pushing the limits of his audience’s patience — for example, questioning the pronunciation of the word “pizza” for several minutes. Richardson recently stepped out of the writers room to briefly play the love child of Leslie Jones and Kyle Mooney on SNL, which surely won’t be the last time we see him on camera.
Dulcé Sloan
Twitter: @dulcesloan Location: New York Dulcé Sloan’s comedy is to be savored: While delivering bits, she speaks slowly and confidently, as if to say “take this in.” There’s a lot to absorb from her act, too, which covers a wide array of topics — from gay friends touching her boobs to white women touching her hair — with the same brassy charm. It’s why Sloan was able to rocket in seemingly no time from Atlanta to L.A. to New York, where she is the Daily Show’s newestcorrespondent. Just as quickly, she’s managed to set herself apart from many great comics who have starred in Daily Show segments before her.
Julio Torres
Twitter: @juliothesquare Location: New York It’s incredibly rare that a writer at SNL is so distinct that viewers can identify their sketches. When “Papyrus” aired during the show’s season premiere earlier this year, everyone who follows SNL knew: That has to be Julio Torres. Dreamlike and gentle, Torres’s comedy focuses on small things that he clearly obsesses over, be it a sink he saw one time or the fact that Avatar used the much-hated font Papyrus. Torres is also a wonderfully specific stand-up comedian — like if Steven Wright was raised in El Salvador by an architect and grew up to live in a vegan queer collective. In the same vein, Torres is currently working on a live show where he tells the stories behind shapes and objects he likes. If anyone is going to get a Robert Smigel–like arrangement, where he’s allowed to make his own short films under his own name on the show, it’s Torres.
Shane Torres
Twitter: @shanetorres Location: New York There’s power in having a signature bit. It’s a guiding light. It’s a calling card. And it’s the easiest way to convince your friends to check someone out. Hannibal Buress had “Pickle Juice,” Ron Funches had “F*ck Linda,” and now, Shane Torres has “Guy Fieri,” a joke so good it has actually changed opinions about a man who wears his sunglasses on the back of his head. The success of that joke says a lot about Torres: He approaches every subject with an interesting, low-key optimism. Whether self-deprecating or taking on heavy subjects such as his father’s death, Torres is never cynical, always finding the absurdity in a situation. You can see that point of view on full display on his Comedy Central Stand-Up Presents and debut album, Established 1981, which is easily one of the best of the year.
Liza Treyger
Twitter: @glittercheese Location: New York Liza Treyger has carved out a persona for herself that feels entirely fresh, while also being reminiscent of brassy classic comedians like Mae West. Unapologetic and unafraid to open up about the messy parts of her life, such as having immigrated from the USSR or her sexual escapades, Treyger’s act is deceptively political and firmly feminist. She knows who she is onstage, and projects confidence that can win over any audience. She will next bring that approach to a scripted project she is developing for TruTV.
Ahamed Weinberg
Twitter: @ahamedweinberg Location: Los Angeles His name is Ahamed Weinberg, and as he says, “[his] parents wrote that joke.” That’s because Weinberg’s origin story sounds like the setup: He’s the son of a Jewish father and a Catholic mother, both of whom converted to Islam. He’s also a gifted stand-up, skilled at examining himself and his experiences while mixing in silly insights about the world around him. Offstage he works at Tim & Eric’s company, Absolutely, producing some of the best sketch comedy of the last few years, including The Birthday Boys, Comedy Bang! Bang!, and W/ Bob and David. Weinberg’s skills as a writer, director, and producer can be seen his short film Raspberries, and his Comedy Central webseries “Ahamed’s Ramadan Diary.”
Jaboukie Young-White
Twitter: @jaboukie Location: Los Angeles While Twitter has increasingly been looked upon as a way to get noticed in comedy (especially with the flood of self-styled pun machines created by @midnight), there are still a handful of writers, like Jaboukie Young-White, who manage to break through the site’s noise on their own comedic merits. His balanced mix of sociopolitical commentary and millennial devil-may-care attitude have earned him Twitter fame, in addition to being the bedrock of his stand-up. Onstage, Young-White possesses that rare quality shared by Dave Chappelle and Jerrod Carmichael, where he can bring audiences to an enthralled hush with his own carefully timed silences. After recently moving from Chicago to Brooklyn, Young-White has already had to make the (temporary, for now…) move to L.A., to bring his youthful insight to the writing staff of Netflix’s American Vandal.
Ramy Youssef
Twitter: @cdramy Location: Los Angeles Ramy Youssef has a joke about the day the Muslim ban was announced: He says it was really hard, because he has family without citizenship … but, otherwise, it was a really good day. It’s not that his comedy is about seeing the bright side of things so much as he’s simply gifted at examining how to be a person while also staying engaged in the world around you. Youssef is not by definition a “political comedian,” but a personal comedian who is sensitive to the power structures that affect his life. It makes sense that Youssef is working with Jerrod Carmichael, a master at doing just that, on a pilot for A24 and Hulu about being a Egyptian-American Muslim in 2017.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]