CM – Dave Chappelle achieved exactly what he wanted

0

Dave Chappelle is hot for his latest Netflix special, The Closer. Chappelle’s 72-minute bit directly aims to set the record straight after being widely criticized for his previous specials in which he defrauded trans people, gays, and survivors of sexual violence. That is his intention, he says right at the beginning. We should take him at his word. His routine – as controversial as it is – achieved exactly what he set out to do.

What this accomplishment does not reveal is that he is not (he is) funny. It’s not just that he hits (it is) or that his jokes haven’t aged well (they aren’t). His latest special confirms once and for all that Chappelle was never the progressive darling he was thought by many. When Chappelle won the Mark Twain Award for American Humor in 2019, Jon Stewart called him the « Black Bourdain, » a reference to the widely popular chef and documentary filmmaker whose work explored the intricacies of human existence.

That characterization is reasonably understandable. The beauty and ultimately the downfall of Chappelle’s show was that it skillfully and publicly explored the trials and tribulations of black life. His comedy at the time was provocative, novel, even revealing. It makes sense that we expected the same nuance in relation to other oppressed groups. But in the end we were just projecting something onto him that wasn’t really reflected in his work. We expected intersectional analysis where none existed.

The line that runs through all of Chappelle’s comedies is that anti-blackness is the ultimate boss of all oppression. Everyone else’s pain and suffering is not as bad by comparison and therefore does not deserve the outrage and attention it currently receives in progressive circles. Check out one of his opening jokes in The Closer. « I would like to start by addressing the LGBTQ community directly, » he says with a smile. « I want every member in this fellowship to know that I am coming in peace, and I hope I can negotiate DaBaby’s release. » Chappelle admits that DaBaby made « a very egregious mistake » when he did made derogatory comments about people living with HIV / AIDS at a concert in Miami in July. But then the joke takes a turn.

He shot a n *** a once and killed him in Walmart…. Oh that’s true. Google it. DaBaby shot a n *** a in Walmart, North Carolina and nothing bad happened to his career. Do you see where I’m going with this? In our country, you can shoot and kill a n *** a, but you’d better not hurt a gay’s feelings. And that is exactly the disparity I want to talk about…. You think I hate gays and what you really see is that I’m jealous of gays. Oh, I’m jealous. And I’m not the only black man who feels that way. We blacks look at the gay community and say, damn it, see how well this movement is going. Take a look at how well you are and we have been trapped in this predicament for hundreds of years. How the hell are you making such progress?

This so-called disparity has been at the center of Chappelle’s work for years. But he finally makes it unmistakably clear. On one side we have the black community, which deals with the daily trauma, exploitation and humiliation of living under white domination. And on the other hand the LGBTQ community, which in the eyes of Chappelle has overcome the worst oppression in record time. In this world these two camps are separate and opposed, without any overlap. (LGBTQ blacks may disagree.)

As Chappelle describes it, overcoming oppression is a race, a jealous competition in which one group’s progress is at the expense of another. But the oppression of gays is hardly a thing of the past. We are still debating whether conservative Christians need to bake cakes for same-sex weddings. I still try to keep trans people out of toilets and sports teams. LGBT teenagers are four times more likely than their heterosexual peers to contemplate and attempt suicide. And trans people face exceptionally high rates of violence, unemployment and housing insecurity. Do I have to continue?

But I also understand where Chappelle is from. He is not mistaken that racism against blacks is brutal and ubiquitous. We are just over a year away from the millions of people who flock to the streets to protest against state-sanctioned violence against blacks. The same violence we’ve been protesting for decades. In many ways, blacks in this country are worse off than almost any other ethnic group. So when I stop and think about the source of Chappelle’s alleged jealousy, I hear him say: If this country really cares about black people, we’d be outraged every day and on the streets.

But I’m not writing this, about Dave Giving Chappelle a permit for the comparisons he makes. I am writing this to acknowledge that Chappelle has always focused closely on the black pain. And when he talks about the black community, he mostly talks about black men. He talks about the experience he knows best, his own. But he always fails when he turns to other marginalized groups. “I’m not indifferent to someone else’s suffering,” he says, acknowledging the meanness of North Carolina’s bathroom bills. The moment of insight is short-lived. In the next breath he makes a series of crude jokes that reduce trans people to body parts.

Over the course of his career, Chappelle has dealt with a very real victim role and created lasting art from it (he tries to describe his work in The Closer as To designate art). What worries many of his fans and admirers is that the depth with which he understands his position in the world and the pain that goes with it has not necessarily led to greater empathy and generosity for the plight of others. In other words, Chappelle was never really on anyone’s side. His latest special is not betrayal and cannot be dismissed as the misguided deliberations of a contactless and aging comedian. In fact, we’re the ones who got him wrong.

Take an early 2003 sketch from Chappelle’s Show, a parody of a R. Kelly music video in which Chappelle mocked Kelly’s victim. (The song was called « Piss On You ».) Or the « Ask a Gay Dude » segment, in which straight men asked the gay actor Mario Cantone disgusting questions. “Ay yo, I just have one question for you fruity pants out there: What is the rainbow about? I don’t feel the rainbow, ”asks a man. Have we forgotten how women were depicted in many of his sketches? Or as Helen Lewis writes in The Atlantic, « Didn’t any of The Closer’s recent critics notice the way Chappelle used to talk about bitches – sorry women? » This partly reflects the cultural advancement that Chappelle jealously points out. And his bitterness for others at this progress and the ongoing backlash against his jokes is demonstrable. He openly rejects the criticism he puts down. And he clearly sees himself as a misunderstood victim. « The transgender … these n *** s want to see me dead, » he says.

Where are we? Is Chapelle a tyrant? A victim? Can we still laugh at his jokes? Yes, also yes, and yes. He awkwardly, and perhaps unknowingly, invites us to think about how much work remains to be done to achieve equality. And it also reminds us that intersectionality is hard and complicated. His attempts to describe the balance of power within and between marginalized groups fail too often.

At the helm of The Closer, Chappelle lays out his mission and nods to the controversy surrounding his comedy. « I came here tonight because I’m going to finish this job I did on Netflix, » he said. « Any questions you may have had about all of these jokes I’ve said over the years, I hope to answer this evening. »

These questions have been answered. Chappelle hasn’t grown or learned from past reviews, but with The Closer, he hasn’t left any confusion about his views. It’s time to believe him.

« )); var p = g (h [i.size_id] .split ( » x « ). Map (function (e) {return Number (e)} ), 2); f.width = p [0], f.height = p [1]} f.rubiconTargeting = (Array.isArray (i.targeting)? I.targeting: []). Reduce (function (e , t) {return e [t.key] = t. values ​​[0], e}, {rpfl_elemid: l.adUnitCode}), t.push (f)} else r.logError (« Rubicon: bidRequest undefined at index position : « . concat (o), n, e); return t}, []). sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)}) }, getUserSyncs: function (e, t, n, r) {if (! U&&e.iframeEnabled) {var i = «  »; return n&& « string » == typeof n.consentString&& = (« type boolean » .= ? i = « ? gdpr = » (concat (Number) n.gdprApplies), « &gdpr_consent = »). concat (n.consentString): i = « ? gdpr_consent = ». concat (n.consentString)), r&& (i = «  ». concat (i? « & »: « ? », « us_privacy = ») .concat (encodeURIComponent (r))), U =! 0, {type: « iframe », url: « https: // « .concat (v.syncHost || » eus « , » .rubiconproject.com / usync.html « ) i}}}, transformBidP arams: function (e, t) {return r.convertTypes ({acc ountId: « number », siteId: « number », zoneId: « number »}, e)}}; function S (e, t) {var n = obgetConfig (« pageUrl »); return e.params.referrer? n = e.params.referrer: n || (n = t.refererInfo.referer), e.params.secure? n.replace (/ ^ http: / i, « https: »): n} Function A (e ) {var t, n = document.getElementById (e.adUnitCode); (t = n.querySelector (« div [id ^ = ‘google_ads’] »)) &&t.style.setProperty (« display », « none ») , function (e) {var t = e.querySelector (« script [id ^ = ‘sas_script’] »), n = t&&t.nextSibling; n&& « iframe » === n.localName&&n.sterty (« display » «  »Perty.sterty , « none »)} (n); var r = e.renderer.getConfig (); e.renderer.push (function () {window.MagniteApex.renderAd ({width: e.width, height: e.height, vastUrl: e.vastUrl, placement: {attachTo: « # ». concat (e.adUnitCode), align: r.align || « center », position: r.position || « append »}, closeButton: r.closeButton ||! 1, label: r.label || void 0, collapse: r.collapse ||! 0})})} Function I (e, t) {var n = e.params; if (« video » = == t) {var i = []; return n.video&CSSEANDCH ARn.video.playerWidth&&n.video.playerHeight? i = [n.video.playerWidth, n.video.playerHeight]: Array.isAr ray (r.deepAccess (e, « mediaTypes.video.playerSize »)) &&1 === e .mediaTypes.video.playerSize.length? i = e.mediaTypes.video.playerSize [0]: Array.isArray (e. sizes) &&e.sizes.length> 0&&Array.isArray (e.sizes [0]) &&e.sizes [0] .length> 1&& (i = e.sizes [0], i} return o .isArray (n.sizes)? o = n.sizes: void 0! == r.deepAccess (e, « mediaTypes.banner.sizes »)? o = T (e.mediaTypes.banner.sizes): Array.isArray (e.sizes) &&e.sizes.length> 0? o = T (e.sizes): r.logWarn (« Rubicon: No sizes were set up or found »), x (o)} function E (e, t , n) {var i = {user: {ext: {data: f ({}, e. params.visitor)}}, site: {ext: {data: f ({}, e.params.inventory)}}}; e.params.keywords&& (i.site.keywords = r.isArray (e.params. keywords)? e.params.keywords.join (« , »): e.params.keywords); var s = r.mergeDeep ({}, obgetConfig (« ortb2 ») | | {}, i), c = r .deepAccess (e.ortb2Imp, « ext.data ») || {}, u = {user: [3], site: [1,2]}, d = {user: « tg_v. », site: « tg_i . « , adserver: » tg_i.dfp_ad_unit_code « , pbadslot: » tg_i.pbadslot « , keywords: » kw « }, l = function (e, t, n) {if ( » data « === t&&Array.isArray (e )) return e.filter (function (e) {return e.segment&&r.deepAccess (e, « ext.segtax ») &&u [n] &&-1! == u [n] .indexOf (r.deepAccess (e, « ext.segtax »))}). map (function (e) {var t = e.segment.filter (function (e) {return e.id}). reduce (function (e, t) {return e. push (t.id), e}, []); if (t.length> 0) return t.toString ()}). toString (); if (« Object »! == y (e) || Array .isArray (e)) {if (void 0! == e) return Array.isArray (e)? e.filter (function (e) {if (« Object »! = = y (e) &&void 0! == e) return e.to String (); r.logWarn (« Rubicon: Filtered value: », e, « for key », t, « : Expected value is String, Integer, or an array of Strings / Ints »)}). ToString (): e.toString ()} else r.logWarn (« Rubicon: Filtered FPD key: », t, « : Expected value is String, Integer, or an array of Strings / Ints »)}, p = function (e, t , r) {var i =! (arguments.length> 3&&void 0! == arguments [3]) || arguments [3], o = l (e, r, t), a = d [r] &&i?  » « .concat (d [r]): » data « === r? » « . concat (d [t], » iab « ): » « . concat (d [t]). concat (r); n [a] = n [a]? n [a] .concat (« , », o): o}; Object.keys (c) .forEach (function (e) {« adserver » === e? [ » name « , » adslot « ]. forEach (function (t) {c [e] [t] && (c [e] [t] = c [e] [t] .toString (). replace (/ ^ / /, «  »))}): « pbadslot » === e&& (c [e] = c [e] .toString (). replace (/ ^ / /, » »)))),t===ab?([« site », »user » Autovermietung ).forEach(function(e){Object.keys(s[e]).forEach (function (t) {« site » === e&& « content » === t&&s [e] [t] .data? p (s [e] [t] .data, e, « data »): « ext « ! == t? p (s [e] [t], e, t): s [e] [t] .data&&Object.keys (s [e] .ext.data) .forEach (function (t) { p (s [e] .ext.data [t], e, t,! 1)})})}), Object.keys (c) .forEach (function (e) {« adserver » === e? p (c [e] .adslot, name, e): p (c [e], « site », e)})) 🙁 Object.keys (c) .length&&r.merg eDeep (n.imp [0] .ext, {data: c}), r.mergeDeep (n, s))} function T (e) {return r.parseSizesInput (e) .reduce (function (e, t) {var n = parseInt (h [ t], 10); return n&&e.push (n), e}, [])} function O (e) {return « object » === y (r.deepAccess (e, « params.video »)) &&void 0! == r.deepAccess (e, « mediaTypes. ». Concat (ad))} function C (e) {var t = arguments.length> 1&&void 0! == arguments [1] &&Argumente [1]; O ( e) return? -1 === [« outstream », « instream »]. indexOf (r.deepAccess (e , « mediaTypes. ». concat (ad, « . context »)))? void (t&&r.logError (« Rubicon: mediaTypes.video.context must be outstream or instream »)): I (e, « video »). length-1 || i> -1? -1 === r? 1: -1 === i? -1: ri: en})} function j (e) {var t = parseInt (r.deepAccess ( e, « params.video.size_id »)); return isNaN (t)? « outstream » === r.deepAccess (e, « mediaTypes. ». concat (ad, « . context »))? 203: 201: t} Function D (e) {return {ranges: {low: [{max: 5, increment: .5}], medium: [{max: 20, increment: .1}], high: [{max: 20 , Increment: .01}], auto: [{max: 5, increment: .05}, {min: 5, max: 10, increment: .1}, {min: 10, max: 20, increment :. 5}], dense: [{max: 3, increment: .01}, {min: 3, max: 8, increment: .05}, {min: 8, max: 20, increment: .5}], custom : e.getConfig (« customPriceBucket ») &&e.getConfig (« customPriceBucket ») .buckets} [e.getConfig (« priceGranularity »)]}} function k (e) {var t =! 0, n = Object.prototype. toString.call ([]), i = {mimes: n, protocols: n, linearity: Object.prototype.toString.call (0), api: n}; return Object.keys (i) .forEach (function (n ) {Object.prototype.toStri ng.call (r.deepAccess (e, « mediaTypes.video. » n))! == i [n] && (t =! 1, r.logError (« Rubicon: mediaTypes.video. » n « is required and must be of the type: « i [n]))}), t} Function P (e) {var t =! 1, n = [ » asi « , » sid « , » hp « ]; return e.nodes? ((t = e.nodes.reduce (function (e, t) {return e? n.every (function (e) {return t.hasOwnProperty (e)}): e} ,! 0)) || r. logError (« Rubicon: required Schain parameters are missing »), t): t} Function R (e, t) {return « rp_schain » === e? « rp_schain = ». concat (t): «  ». concat ( e, « = »). concat (encodeURIComponent (t))} var U =! 1; Object t (i.registerBidder) (_)}}, [622]), pbjsChunk ([87], {696: function ( e, t, n) {e.exports = n (697)}, 697: function (e, t, n) {Object.defineProperty (t, « __ esModule », {value:! 0}), nd (t, « tripleliftAdapterSpec », function () {return b}); var r = n (2), i = n (1), o = n (0), a = n (3); function s () {return (s = Object.assign || function (e) {for (var t = 1; te.length) && (t = e.length); for (var n = 0, r = new Array (t); n0&& (t. user = {ext: {eids: i}}); var c = function (e, t) {var n = {}; return o.isEm pty (e) || (n.schain = d ({}, e)), o.isEmpty (t) || (n.fpd = d ({}, t)), n} (n, r); return o.isEmpty (c) || ​​(t.ext = c), t} (e); if (n = o.tryAppendQueryString (n, « lib », « prebid »), n = o.tryAppendQueryString (n, « v », « 5.2.0 »), t&&t.refererInfo) {var i = t.refererInfo.referer; n = o.tryAppendQueryString (n, « referrer », i)} return t&&t.timeoutCSSE.CHARingApp (nQueryStringApp (n, « tmax », t.timeout)), t&&t.gdprConsent&& (void 0! == t.gdprConsent.gdCHARCSSEANDgSSEAND (void) rApplies, n = o.dtopringtring (« , gString ») ), void 0! == t.gdprConsent.consentString&& (m = t.gdprConsent.consentString, n = o. « us_privacy », t.uspConsent)) ,! 0 === abgetConfig (« coppa ») && (n = o.tryAppendQueryString (n, « coppa »,! 0)), n.lastIndexOf (« & ») == = n.length-1&& (n = n.substring (0, n.length-1)), o .logMessage (« tlCall request created: » n), {method: « POST », url: n, data: r, bidderRequest: t}}, interpretResponse: function (e, t) {var n = t.bidderRequest; return (e.body. Commandments || []). Map (function (e) {return function (e, t) {var n = {}, r = t.width || 1, i = t.height || 1, o = t. deal_id || «  », a = t.crid || «  », s = e.bids [t.imp_id]; return 0! = t.cpm&&t.ad&& (n = {requestId: s.bidId, cpm: t. cpm, width: r, height: i, netRevenue:! 0, ad: t.ad, creativeId: a, dealId: o, currency: « USD », ttl: 300, tl_source: t.tl_source, meta: {}} , y (s) CSSEUNDCHARCSEA NDCHAR (n.vastXml = t.ad, n.mediaType = « video »), t.advertiser_name&& (n.meta.advertiserName = t.advertiser_name), t.adomain&&t.&t.adom. meta.advertiserDomains = t adomain), t.tl_source&& « hdx » == t.tl_source&& (n.meta.mediaType = « banner »), t.tl_sourceCSSEANDmedia=& = « t.metlANDCHAR = » t.metlANDCHAR = « tlx » native « ) n} (n, e)})}, getUserSyncs: function (e, t, n, r) {var i = function (e) {if (e) return e.iframeEnabled? » iframe « : e. pixelEnabled? « image »: void 0} (e); if (i) {var a = « https://eb2.3lift.com/sync? »; return « image » === i& & (a = o.tryAppendQueryString (a, « px », 1), a = o.tryAppendQueryString (a, « src », « prebid »)), null! == m&& (a = o.tryAppendQueryString (a,  » gdpr « , g), a = o. tryAppendQueryString (a, « cmp_cs », m)), r&& (a = o.tryAppendQueryString (a, « us_privacy », r)), [{type: i, url: a}]}}}; function y (e) {return !! e.mediaTypes.video&& !! e.mediaTypes.vi deo.context&& « instream » === e.mediaTypes.video.context.toLowerCase ()} function v (e) {var t = null; if ( « function » == typeof e.getFloor) {var n = e. getFloor ({currency: « USD », mediaType: y (e)? « video »: « banner », size: « * »}); « object »! == c (n) || « USD »! == n.currency || isNaN (parseFloat (n.floor)) || (t = parseFloat (n.floor))} return null! == t? t: e.params.floor} function h (e, t) { o.isEmpty (t) || Object.keys (t) .forEach (function (n) {null! = t [n] && (e [n] = t [n])})} function _ (e, t , n, r) {return e.map (function (e) {return function (t) {return t&&t.userId&&t.userId [e]}} (t)). filter (function (e) {return !! e} ) .map (function (e, t) {return function (n) {return {source: e, uids: [{id: n, ext: {rtiPartner: t}}]}}} (n, r))} Function S (e) {return e.filter (A) .map (function (e) {return {w: e [0], h: e [1]}})} function A (e) {return 2 == = e.length&& « number » == typeof e [0] && « number » == typeof e [1]} Object (i.registerBidder) (b)}}, [696]), pbjsChunk ([7], { 21: Function (e, t, n) {tb = Function (e) {var t = []; for (var n in e) if (e.hasOwnProperty (n)) if (« pubProvidedId » === n) t = t.concat (e.pubProvidedId); else {var r = o (e [n], n); r&CSSEAN DCHARt.push (r)} return t}, ta = function (e) {var t = []; return e.filter (function (e) {return r.isPlainObject (e.idObj) &&Object.keys (e.idObj ) .length}). forEach (function (e) {Object.keys (e.idObj) .forEach (function (n) {r.deepAccess (e, « config.bidders ») &&Array.isArray (e.config.bidders ) &&r.deepAccess (i, n « .source ») &&t.push ({source: i [n] .source, bidders: e.config.bidders})})}), t}; var r = n (0 ), i = {intentIqId: {source: « intentiq.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}}, parrableId: {source: « parrable.com », atype: 1, getValue: function (e) {return e.eid? e.eid: e.ccpaOptout? « : null}, getUidExt: function (e) {var t = r.pick (e, [ » ibaOptout « , » ccpaOptout « ]); if (Object.keys (t) .length) return t} }, idl_env: {source: « liveramp.com », atype: 3}, lipb: {getValu e: 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}, 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}}, deepintentId: {source: « deepintent.com », atype: 3}, admixerId: {source: « admixer.net », atype: 3}, amxId: {source: « amxrtb.com », atype: 1}}; function o (e, t) {var n = i [t]; if (n&&e ) {var o = {}; o.source = n.source; var a = r.isFn (n.getValue)? n.getValue (e): e; if (r.isStr (a)) {var s = {id: a, atype: n.atype}; if (r.isFn (n.getUidExt)) {var c = n.getUidExt (e); c&& (s.ext = c)} if (o.uids = [ s], r.isFn (n.getEidExt)) {var u = n.getEidExt (e); u&& (o.ext = u)} return o}} return null}}, 716: function (e, t, n ) {e.exports = n (717)}, 717: function (e, t, n) {Object.defineProperty (t, « __ esModule », {value:! 0}), nd (t, « PBJS_USER_ID_OPTOUT_NAME », function () {return w}), nd (t, « coreStorage », function () {return x}), nd (t, « syncDelay », function () {return S}), nd (t, « auctionDelay », function () {return A}), t.setSubmoduleRegistry = Funk tion (e) {R = e}, t.setStoredValue = U, t.setStoredConsentData = M, t.findRootDomain = L, t.requestBidsHook = G, nd (t, « validateGdprEnforcement », function () {return Q}) , t.attachIdSystem = $, t.init = Z; var r = n (11), i = nn (r), o = n (3), a = n (9), s = nn (a), c = n (0), u = n (16), d = n (7), l = n (5), f = nn (l), p = n (10), g = n (21), m = n (8), b = n (12), y = nn (b); function v (e, t) {(zero == t || t> e.length) && (t = e.length); for (var n = 0, r = new Array (t); n1&&void 0! == arguments [1]? arguments [1]: void 0, r = n? «  ». concat (e.name, « _ »). concat (n): e.name; try {if (e.type === E) t = x.getCookie (r); else if (e.type === T) {var i = x.getDataFromLocalStorage ( » « .concat (e.name, » _ exp « )); » « === i? t = x.getDataFromLocalStorage (r): i&&new Date (i) .getTime () – Date.now ()> 0&& (t = decodeURIComponent (x.getDataFromLocalStorage (r)))} « string » == typeof t&& « { » === t.trim (). charAt (0) && (t = JSON.parse (t))} catch (e) {c.logError (e)} return t} function N (e) {var t = {consentString: «  », gdprApplies:! 1, apiVersion: 0}; retu rn eCS SEANDCHAR& (t.consentString = e.consentString, t.gdprApplies = e.gdprApplies, t.apiVersion = e.apiVersion), c.cyrb53Hash (JSON.stringify (t))} function M (e) {try {var t = new Date (Date.now () 864e5 * C) .toUTCString (); x.setCookie (O, N (e), t, « Lax »)} catch (e) {c.logError (e)}} function q () {try {return x.getCookie (O)} catch (e) {c.logError (e)}} function F (e) {if (e&& « boolean » == typeof e.gdprApplies&&e.gdprApplies) { if (! e.consentString) return! 1; if (1 === e.apiVersion&&! 1 === c.deepAccess (e, « vendorData.purposeConsents.1 »)) return! 1; if (2 === e. apiVersion&&! 1 === c.deepAccess (e, « vendorData.purpose.consents.1 »)) return! 1} return! 0} function L () {var e = arguments.length> 0&&void 0! == arguments [ 0]? Arguments [0]: window.location.hostname; if (! X.cookiesAreEnabled ()) return e; var t, n, r = e.split (« . »); If (2 == r.length ) return e; var i = -2, o = « _ rdc » .concat (Date.now ()), a = « writeable »; do {t = r.slice (i) .join (« . »); var s = new date (c.timestamp () 1e4) .toUTCString (); x .setCookie (o, a, s, « Lax », t, void 0), x.getCookie (o, void 0) === a ? (n =! 1, x.setCookie (o, «  », « Thu, 01 Jan 1970 00:00:01 GMT », void 0, t, void 0)) 🙁 i = -1, n = Math. abs (i) 0) {t =! 0; var r =! 1, i = function () {r || (r =! 0, e ())}; c.logInfo («  ». concat (I, « – auction delayed by ») .concat (A, « to get at most IDs »)), _ = setTimeout (i, A), z (n, i)} else saon (faEVENTS.AUCTION_END, function e () {saoff (faEVENTS.AUCTION_END, e), S> 0? setTimeout (function () {z (n)}, S): z (n)})} e&&! t&&e ()} Function G (e, t) {V ( function () {(function (e, t) {[e] .some (function (e) {return! Array.i sArray (e) ||! e.length}) || e.forEach (function (e) {e.bids&&c.isArray (e.bids) &&e.bids .forEach (function (e) {var n = function (e , t) {return Array.isArray (e) &&e.length&&t? e.filter (function (e) {return! e.config.bidders ||! c. isArray (e.config.bidders) || y () (e.config.bidders, t)}). filter (function (e) {return c.isPlainObject (e.idObj) &&Object.keys (e.idObj). Length}). Reduce (function (e, t) {return Object.keys (t.idObj) .forEach (function (n) {e [n] = t.idObj [n]}), e}, {}): {}} (t, e.bidder); Object.keys (n) .length&& (e.userId = n, e.userIdAsEids = Object (gb) (n))})})}) (t.adUnits || Object (ua ) (). adUnits, h), e.call (this, t)})} function K () {return V (), W (h)} function H () {return V (), Object (gb) ( W (h))} Function J (e, t) {var n = e? E.submoduleNames: null; n || (n = []), V (function () {var e = d.gdprDataHandler.getConsentData ( ), r = Q (k, e), i = r.userIdModules; if (r.hasValidated || F (e)) {var o = q (); M (e); var a, s = [], u = function (e, t) {var n = « undefined »! = typeof Symbol&&e [Symbol.iterator] || e [« @@ iterator »]; if (! n) {if (Array.isArray (e) | | (n = function (e, t) {if (e) {if (« string » == typeof e) return v (e, t); var n = Object.prototype.toString.call (e) .slice ( 8, -1); return « Object » === n&&e.constructor&& (n = e.constructor.name), « Map » === n || « Set » === n? Array.from (e): « Arguments » === n || / ^ (?: Ui | I) nt (?: 8 | 16 | 32) (?: Clamped)? Array $ /. Test (n)? V (e, t): void 0}} (e)) || t&C SSEAND CHARe&& « number » == typeof e.length) {n&& (e = n); var r = 0, i = function () {}; return {s: i, n: function () {return r> = e . length? {done:! 0}: {done:! 1, value: e [r]}}, e: function (e) {throw e}, f: i}} throw new TypeError (« Invalid attempt, non – iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. « )} var o, a =! 0, s =! 1; return {s: function () {n = n.call (e)}, n: function () {var e = n.next (); return a = e.done, e}, e: function (e) {s =! 0, o = e}, f: function () {try {a || null == n.return || n.return ()} finally {if (s) throw o}}}} (i); try {for (us ( );! (a = un ()). done;) {var l = a.value; n.length> 0&&-1 === n.indexOf (l.submodul.name) || (c.logInfo ( » « .concat (I, » – Update « ) .concat (l.submodule.name)), Y (l, e, o,! 0), c.isFn (l.callback) &&s.push (l))} } catch (e) {ue (e)} finally {uf ()} s.length> 0&&z (s), t&&t ()} else c.logWarn («  ». concat (I, « – gdpr authorization not valid for local storage or cookies, exit module « ))})} var Q = Object (pb) ( » sync « , function (e, t) {return {userIdModules: e, hasValidated: t&&t.hasValidated}}, » validate GdprEnforcement « ); Function Y (e, t, n, r) {if (e.config.storage) {var i, o = B (e.config.storage), a =! 1; if ( » number « = = typeof e.config.storage.refreshInSeconds) {var s = new date (B (e.config.storage, « last »)); a = s&&Date.now () – s.getTime ()> 1e3 * e.config .storage.refreshInSeconds}! o || a || r ||! function (e, t) {return null! = n&&n === N (t)} (0, t)? i = e.submodule.getId (e.config, t, o): « function » == typeof e.submodule.extendId&& (i = e.submodule.extendId (e.config, t, o)), c.isPlainObject (i) && (i.id&& (U (e, i.id), o = i.id), « function » == typeof i.callback&& (e.callback = i.callback)), o&& (e.idObj = e.submodule.decode (o, e.config))} else if (e. config.value) e.idObj = e.config.value; else {var u = e.submodule.getId (e.config, t, void 0); c.isPlainObject (u) && (« function » == typeof u .Call back&& (e.callback = u.callback), u.id&& (e.idObj = e.submodule.decode (u.id, e.config)))}} function X () {var e = function (e , t, n) {return Array.isArray (e)? e.reduce (function (e, t) {return! t || c.isEmptyStr (t.name) || (! t.storage || c.isEmptyStr (t .storage.type) || c.isEmptyStr (t.storage.name) || -1 === n.indexOf (t.storage.type)? c.isPlainObject (t.value)? e.push ( t): t.storage || t.value || e.push ( t): e.push (t)), e}, []): []} (P, 0, j); if (e.length) {var t = R.filter (function (e) {return! i () (k, function (t) {return t.name === e.name})}); k = t.map (function (t) {var n = i () (e, function (e) {return e.name&& (e.name.toLowerCase () === t.name.toLowerCase () || t.aliasName&&e.name.toLowerCase () = == t.aliasName.toLowerCase ())}); return n& .name! == n.name&& (n.name = t.name), t.findRootDomain = L, n? {submodule: t, config: n, callback: void 0, idObj: void 0}: null}). filter (function (e) {return null! == e}),! D&&k.length&& (Object (u. a) (). requestBids.before (G, 40), c.logInfo («  ». concat (I, « – usersync configuration updated for ») .concat (k.length, « sub-modules: »), k.map (function (e) {return e.submodule.name})), D =! 0)}} function $ (e) {i () (R, function (t) {return t.name === e.name } )||(R.push(e),X())}Funktion Z(e){k=[],P=[],D=!1,h=void 0,-1!==(j = [x.localStorageIsEnabled()?T:null,x.cookiesAreEnabled()?E:null].filter(function(e){return null!==e})).indexOf(E)&&x.getCookie(w) ? c.logInfo(«  ».concat(I, » – Opt-Out-Cookie gefunden, Exit-Modul »)):-1!==j.indexOf(T)&&x.getDataFromLocalStorage(w)?c.logInfo(«  ». concat(I, » – Opt-out localStorage gefunden, Modul beenden »)):(e.getConfig(function(e){var t=e.userSync;t&&t.userIds&&(P=t.userIds,S=c.isNumber (t.syncDelay)?t.syncDelay:500,A=c.isNumber(t.auctionDelay)?t.auctionDelay:0,X())}),Object(ua)().getUserIds=K,Object(ua )().getUserIdsAsEids=H,Object(ua)().refreshUserIds=J)}Z(ob),Object(pc)(« userId »,$)}},[716]),pbjs.processQueue();
}, {}];
window.modules[« visibility.legacy »] = [function(require,module,exports){« use strict »;DS.service(« $visibility »,[« $document », »$window », »_throttle », « Eventify »,function(e,t,n,i){var o,r,h=[];function s(e,t){return et?e:t}function d(e,t,n){ !e.preload&&e.preloadThreshhold&&function(e,t,n,i){return t.top=e.shownThreshold&&!e.seen?(e.seen=!0,setTimeout(function(){e.trigger(« shown » ,new r(« gezeigt »,t))},15)):(!n||i1&&(h =e(r,Math.floor(n/o),i-1,o)),h}, this.getVerticallyVisiblePixels=f,this.getViewportHeight=function(){return t.innerHeight||e.documentElement.clientHeight||e.body.clientHeight},this.getViewportWidth=function(){return t.innerWidth||e. documentElement.clientWidth||e.body.clientWidth},this.isElementNotHidden=u,this.isElementInViewport=function(n){var i=n.getBoundingClientRect();return i.top>=0&&i.left>=0&&i.bottom = o.length) return { done: true }; return { done: false, Wert: o[i] }; }, e: Funktion e(_e) { Throw _e; }, f: F}; } throw new TypeError(« Ungültiger Versuch, eine nicht iterierbare Instanz zu iterieren.nUm iterierbar zu sein, müssen Nicht-Array-Objekte eine [Symbol.iterator]()-Methode haben. »); } var normalCompletion = true, didErr = false, err; return { s: Funktion s() { it = o[Symbol.iterator](); }, n: Funktion n() { var step = it.next(); normalCompletion = step.done; Rückkehrschritt; }, e: Funktion e(_e2) { didErr = true; Fehler = _e2; }, f: Funktion f() { try { if (!normalCompletion && it.return != null) it.return(); } endlich { if (didErr) throw err; } } }; }

Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === « string ») return _arrayLikeToArray (o, minLen); var n = Object.prototype.toString.call (o) .slice (8, -1); if (n === « Object » && o.constructor) n = o.constructor.name; if (n === « Map » || n === « Set ») return Array.from (o); if (n === « Arguments » || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }

function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new Array (len); i

Keywords:

Dave Chappelle,Netflix,Ted Sarandos,Dave Chappelle, Netflix, Ted Sarandos,,,,Dave Chappelle,Netflix,transgender,,Dave chappelle,Netflix,Ted Sarandos,Cancel culture,Conservatives,Premium,,comedy, race, lgbtq,

Donnez votre avis et abonnez-vous pour plus d’infos

[gs-fb-comments]

[comment]

[supsystic-newsletter-form id=4]

Vidéo du jour: