(() => { var bundles = [['mutations', () => { var define = true; !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.obBundle=e():(t.obBundle=t.obBundle||{},t.obBundle.dresscode=e())}(self,()=>(()=>{"use strict";var i={d:(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},t={};i.r(t),i.d(t,{DressCode:()=>l,factory:()=>e});function o(){for(var t=[],e=0;e ")}function u(t){if(t)return t.id||(t.attribs?t.attribs.id:void 0)}function m(t){if(t)return t.className||(t.attribs?t.attribs.class:void 0)}function f(t,e){var n;void 0===e&&(e=window);var i,o,a=[];try{a=Array.from(null==(n=e.document)?void 0:n.querySelectorAll(t))}catch(t){e=t,void 0===i&&(i="codeless"),void 0===o&&(o=2),Math.floor(100*Math.random())<=o&&c({app:i,message:e.message,extra:{name:e.name,line:e.lineNumber||e.line,script:e.fileName||e.sourceURL||e.script,stack:e.stackTrace||e.stack}})}return r("last selector used ".concat(t," results ").concat(a.length)),a}function p(t){try{var e=new URL(t).hostname,n=e.split(".").reverse();return 2<=n.length?n[1]+"."+n[0]:e}catch(e){return console.error("Invalid URL:",t),""}}function w(s){var c,t,l,d,e,n=document.createElement("style");function i(){window.clearTimeout(t),t=setTimeout(function(){d=null},2e3)}document.head.appendChild(n),n.innerHTML="@keyframes heartfade {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n }\n .heart {\n z-index: 999;\n animation: heartfade 6s linear;\n position: absolute;\n }",c=document.createElement("DIV"),document.body.prepend(c),l=[],d=null,document.onmousedown=function(t){d=t,i()},document.onmouseup=function(t){i()},document.onmousemove=function(t){d=t,i()},document.ontouchstart=function(t){d=t.touches[0],i()},document.ontouchend=function(t){i()},document.ontouchmove=function(t){d=t.touches[0],i()},e=Date.now(),setInterval(function(){var t=Date.now(),i=t-e;e=t,l.forEach(function(t,e){var n=t.heart,t=t.heartEl;n.time-=i,0s[0]&&e[1] "),i=e.split(" > ");if(0===n.length||0===i.length)return 1;for(var o=Math.max(n.length,i.length);n.length=i)return this.log("(sticky)Randomly selected variation idx ".concat(a," random: ").concat(i,", i: ").concat(a),t[a]),a;throw new Error("weightedRandomSelection: should never get here")},d.prototype.getPinnedMutationAndVariation=function(){var t=null==(t=null==(t=new URL(this._window.location.href).searchParams.get("ob-var"))?void 0:t.trim())?void 0:t.toLocaleLowerCase();if(null!=t&&0!=t.length)return 1==(t=t.split(",")).length?"control"==t[0].trim().toLocaleLowerCase()?{mIdx:void 0,vIdx:0}:{mIdx:void 0,vIdx:isNaN(parseInt(t[0]))?void 0:parseInt(t[0])}:2<=t.length?{mIdx:isNaN(parseInt(t[0]))?void 0:parseInt(t[0]),vIdx:isNaN(parseInt(t[1]))?void 0:parseInt(t[1])}:{mIdx:void 0,vIdx:void 0}},d.prototype.setImageSource=function(n,i){var t=new Image;t.src=i,t.onload=function(){var t,e;"img"===n.tagName.toLowerCase()?(t=n.parentElement,e=[],t&&"picture"===t.tagName.toLowerCase()&&(e=Array.from(t.querySelectorAll("source"))),n.style.transition="opacity 0.5s ease-in-out",n.style.opacity=0,setTimeout(function(){n.src=i,e.forEach(function(t){return t.srcset=i}),n.srcset&&(n.srcset=i),n.style.opacity=1},500)):"div"===n.tagName.toLowerCase()&&(n.style.transition="opacity 0.5s ease-in-out",n.style.opacity=0,setTimeout(function(){n.style.setProperty("background-image","url(".concat(i,")"),"important"),n.style.opacity=1},500))},t.onerror=function(){console.error("Failed to load image: ".concat(i))}},d.prototype.setCssAttributes=function(t,m,f){return g(this,void 0,void 0,function(){var e,n,i,o,a,r,s,c,l,d,u,h;return S(this,function(t){if(!(m instanceof window.Element))return[2,!1];if(f){if(e=f.attributes,n=f.css,e)for(i=0,o=Object.entries(e);io||i.top>a)&&(t.contains(e(i.left+(i.right-i.left)/2,i.top))||t.contains(e(i.left,i.top))||t.contains(e(i.right,i.top))||t.contains(e(i.right,i.bottom))||t.contains(e(i.left,i.bottom)))},d.prototype.doMutate=function(y,v){var b;return g(this,void 0,void 0,function(){var h,m,f,p,g;return S(this,function(t){switch(t.label){case 0:return t.trys.push([0,9,,10]),(h=this.similarityCalculator.extractWithSimilarity(this.boundElements,y.domTrail,y.cssSelectors,{name:y.name,id:"".concat(y.id)}))?(m=h.el,-1!==this.boundElements.indexOf(m)?[2,{method:h.method,domEl:m,status:"DUPLICATE"}]:(f=(null==(b=null==(b=v.cssAttributes.attributes)?void 0:b.textContent)?void 0:b.trim().toLocaleLowerCase())||"",p=function(){var t=f.match(/^(.+):(.+)$/);if(t){t[0];var e=t[1],t=t[2];if(x.includes(e)&&T.includes(t))return[e,t]}return[]}(),g=p[0],p=p[1],g&&"flow"===p?(w(g),[3,8]):[3,1])):[2,{status:"NOT_FOUND"}];case 1:return"soccer ball"!=f?[3,2]:(I(m,f),[3,8]);case 2:return["valentines heart","slot machine"].includes(f)?(this.log("adding ".concat(f," icon")),I(m,f),[3,8]):[3,3];case 3:return"pumpkins fall"!=f&&"pumpkins flow"!==f?[3,4]:(w("pumpkin"),[3,8]);case 4:if("xmas snow"!==f)return[3,5];else{this.log("XMS XMS XMS - adding a xmas snow");{function e(){if(r)for(var t=window.innerWidth,e=window.innerHeight,n=(a.width=t*s,a.height=e*s,a.style.width="".concat(t,"px"),a.style.height="".concat(e,"px"),r.scale(s,s),c.length=0,Math.floor(t*e/2e3)),i=0;ia.height+this.size},d.prototype.reset=function(){this.x=Math.random()*a.width,this.y=-this.size},d.prototype.update=function(){this.windAngle+=this.windSpeed,this.wind=.5*Math.cos(this.windAngle),this.x+=this.wind,this.y+=this.velocity,this.isOutsideCanvas()&&this.reset()},d.prototype.draw=function(){r&&(r.beginPath(),r.arc(this.x,this.y,this.size,0,2*Math.PI),r.fillStyle=this.fill,r.shadowColor="rgba(0, 0, 0, 0.3)",r.shadowBlur=2,r.fill(),r.closePath())},d);function d(){this.x=Math.random()*a.width,this.y=Math.random()*a.height,this.size=2*Math.random()+1,this.velocity=.35*this.size;var t=Math.min(this.size/3+.3,1);this.fill="rgba(255, 255, 255, ".concat(t,")"),this.windSpeed=.1*(Math.random()-.5),this.windAngle=Math.random()*Math.PI*2,this.wind=0}window.addEventListener("resize",e),e();function u(){r&&(requestAnimationFrame(u),r.clearRect(0,0,a.width,a.height),c.forEach(function(t){t.update(),t.draw()}))}u()}return[3,8]}case 5:return[4,this.resolveCssAttributes(y,m,v.cssAttributes)];case 6:return p=t.sent(),[4,this.setCssAttributes(y,m,p)];case 7:if(!t.sent())return[2,{domEl:m,status:"ERROR"}];t.label=8;case 8:return this.boundElements.push(m),[2,{status:"APPLIED",method:h.method,domEl:m}];case 9:return g=t.sent(),this.log("error while trying to mutate",g),[2,{status:"ERROR"}];case 10:return[2]}})})},d.prototype.resolveCssAttributes=function(i,o,a){var r;return g(this,void 0,void 0,function(){var e,n;return S(this,function(t){switch(t.label){case 0:return"ac-image"!==i.name?[3,4]:(e=this.getMacroParam("ad_id"))?[4,fetch("https://my.outbrain.com/mtGetImageExternalUrlFromAdID/handler?adId=".concat(e,"&width=").concat(o.offsetWidth,"&height=").concat(o.offsetHeight))]:[2,a];case 1:return(e=t.sent()).ok?[4,e.json()]:[3,3];case 2:n=t.sent().cachedImageUrl,null!=(r=a.attributes)&&r.src?a.attributes.src=n:null!=(r=a.css)&&r.backgroundImage&&(a.css.backgroundImage=n),t.label=3;case 3:case 4:return[2,a]}})})},d.prototype.loadVariationIdFromStorage=function(t){var e=this._window.document.cookie.split(";").find(function(t){return t.trim().startsWith("dicbo_id")});if(e){e=e.split("=")[1];if(e){e=decodeURIComponent(e);try{var n=JSON.parse(e);if(null!=n.variations){var i=n.variations;if(this.log("we have vars in cookies",JSON.stringify(i)),null!=i&&0!=i.length){var o=i.split(",").filter(function(t){return!isNaN(parseInt(t))}).map(function(t){return parseInt(t)});if(0==o.length)this.log("could not find any variation id in cookies [".concat(o,"]"));else{var a,r=t.map(function(t){return t.variations.map(function(t){return t.id})}).flat(),s=o.filter(function(t){return r.includes(t)});if(this.log("we have ".concat(s.length," relevant variations in cookies"),s),0!=s.length)return a=s[Math.floor(Math.random()*s.length)],this.log("we picked variationId ".concat(a," from cookies")),a}}}}catch(t){}}}},d.prototype.getMutationAndVariationFromStorage=function(t){var e,n=this.loadVariationIdFromStorage(t);if(null!=n)return e=t.findIndex(function(t){return-1!=t.variations.findIndex(function(t){return t.id==n})}),t=t[e].variations.findIndex(function(t){return t.id==n}),this.log("found variation id ".concat(t," part of ").concat(e," in cookies, will use it")),{mIdx:e,vIdx:t};this.log("could not find variation id in cookies, will randomize")},d.prototype.selectAndMutate=function(o){return g(this,void 0,void 0,function(){var e,n,i;return S(this,function(t){switch(t.label){case 0:return(i=this.getPinnedMutationAndVariation())?(e=null==i.mIdx?Math.floor(Math.random()*o.length):Math.min(i.mIdx,o.length-1),n=null==i.vIdx?Math.floor(Math.random()*o[e].variations.length):Math.min(i.vIdx,o[e].variations.length-1),this.log("we have pinned mutation ".concat(e," and variant ").concat(n))):(i=this.getMutationAndVariationFromStorage(o))?(e=i.mIdx,n=i.vIdx):(e=Math.floor(Math.random()*o.length),n=this.weightedRandomSelection(o[e].variations),this.log("nothing in cookies, let's random mutataionId: ".concat(e," and variant ").concat(n))),[4,this.mutate(o[e],n)];case 1:return[2,t.sent()]}})})},d.prototype.mutate=function(o,a){var r;return g(this,void 0,void 0,function(){var e,n,i;return S(this,function(t){switch(t.label){case 0:return i=function(t){return 0===t.type},e=o.variations[a],this.log("we picked variant ".concat(a),e),(n=o.variations.find(i))?i(e)?(this.addMutation(e.id),[2,{status:"APPLIED"}]):[4,this.doMutate(o,e)]:(this.log("no control variant found for mutation ".concat(o.id," ").concat(o.name)),[2,{status:"ERROR"}]);case 1:return"APPLIED"===(i=t.sent()).status?(this.addMutation(e.id),o.domEl=i.domEl):"NOT_FOUND"!==i.status&&"DUPLICATE"!==i.status&&(this.addMutation(n.id),c({app:"dresscode",error:"failed to apply",marketerID:null==(r=window.obApi)?void 0:r.marketerId,status:i.status})),[2,i]}})})},d.prototype.addMutation=function(t){void 0!==window.obApi&&(null!==obApi&&void 0!==obApi&&obApi.addVariation(t),null!==obApi&&void 0!==obApi&&obApi("track","OB_MUTATION_IMPRESSION"),this.log("firing OB_MUTATION_IMPRESSION with",{variationId:t}))},d.prototype.getMacroParam=function(t){return this.getQueryParam("".concat("obac_").concat(t))||this.getQueryParam(t)},d.prototype.execute=function(d){return g(this,void 0,void 0,function(){var a,e,o,r,s,c,n,i,l=this;return S(this,function(t){switch(t.label){case 0:if(e=!(a=[]),o=function(t){return["ac-image","ac-header"].includes(t.name)},r=d.filter(function(t){return!(1!==t.status&&!l.isDraft)&&(o(t)?!!t.campaignId&&t.campaignId===l.getMacroParam("campaign_id")&&p(window.location.href)!==p(document.referrer):(e=l._window.location.href,t=t.finalUrl,!(!e||!t)&&(t=new URL(t.toLowerCase()),e=new URL(e.toLowerCase()),t.pathname=t.pathname.replace(/\/+$/,""),e.pathname=e.pathname.replace(/\/+$/,""),t.hash="",e.hash="",t.origin===e.origin)&&t.pathname===e.pathname&&(""===t.search&&""===e.search||(t=new URLSearchParams(t.search),n=new URLSearchParams(e.search),i=!0,t.forEach(function(t,e){(!n.has(e)||t&&n.get(e)!==t)&&(i=!1)}),i))));var e,n,i}),i=r.reduce(function(t,e){return o(e)?[y(y([],t[0],!0),[e],!1),t[1]]:[t[0],y(y([],t[1],!0),[e],!1)]},[[],[]]),s=i[0],c=i[1],this.log("handling ".concat(d.length," mutations, ad continuity mutations: ").concat(s.length,", regular experiments: ").concat(c.length),d),!r||0==(null==r?void 0:r.length))return[2,[]];n=function(){return g(l,void 0,void 0,function(){var e,n,i,o;return S(this,function(t){switch(t.label){case 0:if(this.log("only live(or draft) ".concat(r.length," mutations are relevant for url ").concat(this._window.location.href),r),a.find(function(t){return"APPLIED"===t.status}))return[2];if(!this._window.document)throw"document does not exist";if(this._window)return this.log("doc state is ".concat(this._window.document.readyState," trying to apply mutations")),c.length?[4,this.selectAndMutate(c)]:[3,2];throw"window does not exist";case 1:o=t.sent(),a.push(o),t.label=2;case 2:e=0,n=s,t.label=3;case 3:return e").map(function(t){return t.trim()}),i=/#([\w-]+)/,o=n.filter(function(t){return i.test(t)});return o.length?(n=n[n.length-1],o=o.join(" ").trim()+" "+n,f(o,t._window)):[]},function(t,e,n){n[0],n[1];var n=n[2].split(">").map(function(t){return t.trim()}),i=n.pop(),o=n.filter(function(t){return t.match(/.\w+$/)});if(!o.length)return[];for(var a=[],r=!0;!a.length&&o.length;)r||o.shift(),a=f(o.join(" ").trim()+" "+i,t._window),r=!1;return a},function(t,e,n){for(var i=n[0],o=i.replace(/:nth-of-type\(\d+\)/gi,""),a=[];i!==o&&a.length<3;)i=i.replace(/:nth-of-type\(\d+\)/,""),a=f(i,t._window);return a}],this.locationHref=t}return t})()),"undefined"!=typeof obBundle&&(new obBundle.dresscode.DressCode).execute([{id:214,name:"Constative Revenge",finalUrl:"https://constative.com/lifestyle/acts-of-revenge-is-m/?utm_source=outbrain",status:1,modificationDate:"2024-02-20T20:16:38.000Z",creationDate:"2024-02-20T20:16:38.000Z",variations:[{id:804,mutationId:214,content:"These Small Acts of Revenge Are Oddly Satisfying",cssAttributes:{attributes:{textContent:"These Small Acts of Revenge Are Oddly Satisfying"}},type:0,allocation:25,status:1,modificationDate:"2024-08-08T12:07:25.000Z",creationDate:"2024-02-20T20:16:38.000Z"},{id:805,mutationId:214,content:"Discover the Thrill of Sweet, Subtle Revenge",cssAttributes:{attributes:{textContent:"Discover the Thrill of Sweet, Subtle Revenge"}},type:1,allocation:20,status:1,modificationDate:"2024-08-08T12:07:25.000Z",creationDate:"2024-02-20T20:16:38.000Z"},{id:806,mutationId:214,content:"The Satisfaction of Clever Revenge: Unexpected Delights",cssAttributes:{attributes:{textContent:"The Satisfaction of Clever Revenge: Unexpected Delights"}},type:1,allocation:20,status:1,modificationDate:"2024-08-08T12:07:25.000Z",creationDate:"2024-02-20T20:16:38.000Z"},{id:807,mutationId:214,content:"The Joy of Crafty Retribution: Moments That Will Make You Smile",cssAttributes:{attributes:{textContent:"The Joy of Crafty Retribution: Moments That Will Make You Smile"}},type:1,allocation:20,status:1,modificationDate:"2024-08-08T12:07:25.000Z",creationDate:"2024-02-20T20:16:38.000Z"},{id:808,mutationId:214,content:"Unleash Your Inner Prankster: Revenge That's Surprisingly Gratifying",cssAttributes:{attributes:{textContent:"Unleash Your Inner Prankster: Revenge That's Surprisingly Gratifying"}},type:1,allocation:20,status:1,modificationDate:"2024-08-08T12:07:25.000Z",creationDate:"2024-02-20T20:16:38.000Z"}],cssSelectors:["html > body > div:nth-of-type(4) > div:nth-of-type(1) > div > main#genesis-content > article > header > h1","html > body.post-template-default > div.site-container > div.site-inner > div.content-sidebar-wrap > main.content > article.post-49784 > header.entry-header > h1.entry-title","html > body.post-template-default.single > div.site-container > div.site-inner > div.content-sidebar-wrap > main.content.animate-content > article.post-49784.post > header.entry-header > h1.entry-title","html > body.post-template-default.single.single-post > div.site-container > div.site-inner > div.content-sidebar-wrap > main.content.animate-content.fadeUp > article.post-49784.post.type-post > header.entry-header > h1.entry-title"],domTrail:[{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24253,elementCssClasses:"entry-title",elementAttributeNames:"class:entry-title;itemprop:headline;",tagName:"H1",elementId:"",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24254,elementCssClasses:"entry-header",elementAttributeNames:"class:entry-header;",tagName:"HEADER",elementId:"",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24255,elementCssClasses:"post-49784 post type-post status-publish format-standard has-post-thumbnail category-lifestyle tag-infinitescroll tag-mobile tag-noshow entry",elementAttributeNames:"class:post-49784 post type-post status-publish format-standard has-post-thumbnail category-lifestyle tag-infinitescroll tag-mobile tag-noshow entry;itemscope:;itemtype:https://schema.org/CreativeWork;",tagName:"ARTICLE",elementId:"",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24256,elementCssClasses:"content animate-content fadeUp",elementAttributeNames:"class:content animate-content fadeUp;id:genesis-content;",tagName:"MAIN",elementId:"genesis-content",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24257,elementCssClasses:"content-sidebar-wrap",elementAttributeNames:"class:content-sidebar-wrap;",tagName:"DIV",elementId:"",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24258,elementCssClasses:"site-inner",elementAttributeNames:"class:site-inner;",tagName:"DIV",elementId:"",elementNthChild:1,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24259,elementCssClasses:"site-container",elementAttributeNames:"class:site-container;",tagName:"DIV",elementId:"",elementNthChild:4,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24260,elementCssClasses:"post-template-default single single-post postid-49784 single-format-standard wp-custom-logo wp-embed-responsive content-sidebar genesis-breadcrumbs-hidden genesis-singular-image-hidden",elementAttributeNames:"class:post-template-default single single-post postid-49784 single-format-standard wp-custom-logo wp-embed-responsive content-sidebar genesis-breadcrumbs-hidden genesis-singular-image-hidden;itemscope:;itemtype:https://schema.org/WebPage;data-new-gr-c-s-check-loaded:14.1155.0;data-gr-ext-installed:;",tagName:"BODY",elementId:"",elementNthChild:0,type:1},{entityId:214,creationDate:"Tue Feb 20 2024 15:16:38 GMT-0500 (Eastern Standard Time)",domTrailId:24261,elementCssClasses:"",elementAttributeNames:"lang:en-US;",tagName:"HTML",elementId:"",elementNthChild:0,type:1}]}]); }]]; for (var i = 0; i < bundles.length; i++) { var bundle = bundles[i]; bundle[1].call(window, bundle[2]); } })()