\n\n\n',Xt=e=>{const t=e?"gray":"white";return``};var ei=o(3128),ti=o.n(ei),ii=o(8075),ri=o.n(ii),ni=o(8462),si=o.n(ni),oi=o(653),ai=o.n(oi),ci=o(7950),li=o.n(ci);const di=e=>"boolean"==typeof e,ui=e=>si()(e),hi=e=>"[object String]"===Object.prototype.toString.call(e),gi=e=>{var t;return li()(t=["top","bottom"]).call(t,e)};const pi=()=>Math.round((new Date).getTime()/1e3);var fi=e=>{const t=new a("user_engagement"),i="utsid-send";let n,o=0,c=!1,l=!1,d={clientHints:{},isScrollable:0,totalClicks:0,sessionLength:0,ippMissclicks:0,visible:0,caught:0,lastevent:0,isFullscreen:0,isTabFocused:0,eventImps:0,retryCounts:0,isScrolled:0,isMouseMoved:0,pagePercentageSeen:0,belowTheFoldSeen:0,touchEnd:0,touchMove:0,clicksByType:{idle:0,input:0,video:0,button:0,link:0,img:0},browsingTopics:[],ufp:ie()},u=L(),g=pi();function p(){var i,r;0===d.isFullscreen&&(d.isFullscreen=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement?1:0),d.isTabFocused=document.hidden||document.mozHidden||document.webkitHidden?0:1,d.sessionStartTime=g,d.sessionId=u,d.sessionLength=pi()-g,d.timeZoneOffset=(new Date).getTimezoneOffset(),d.zones=[],e&&(d.zones=e.getZoneIds()),d.pUrl=encodeURIComponent(I()),d.pReferrer=encodeURIComponent((()=>{const e=document.referrer;return e?O(e):""})()),d.pTitle=encodeURI(U()),d.pDescription=encodeURIComponent(F("description",t)),d.pKeywords=encodeURIComponent(F("keywords",t)),d.pHasIframes=(()=>{const e=document.getElementsByTagName("iframe");return e.length?e.length:0})(),d.pWidth=Math.ceil(window.scrollWidth||document.body.scrollWidth),d.pHeight=Math.ceil(window.scrollHeight||document.body.scrollHeight),d.vWidth=Math.ceil(window.innerWidth||document.body.clientWidth),d.vHeight=Math.ceil(window.innerHeight||document.body.clientHeight),d.inIframe=R(),sessionStorage.getItem("template")&&(d.ippTemplate=sessionStorage.getItem("template")),d.visible=(i=d.vWidth,r=d.vHeight,R()&&(i<10||r<10)?0:1),d.caught=(()=>{let e=0;if(R())try{window.top.location.href}catch(t){e=1}return e})(),d.isScrollable=((e,t)=>{if(e>t){const i=.05;return e-t>Math.ceil(t*i)?1:0}return 0})(d.pHeight,d.vHeight)}function f(){t.debug("Touch move detected."),d.touchMove++,l=!0}function m(){1!==d.isMouseMoved&&(t.debug("Mouse move tracked"),d.isMouseMoved=1,l=!0)}function v(){t.debug("Touch end detected."),d.touchEnd++,l=!0,b()}function b(){if(t.debug("checkScrolling()"),d.pHeight<=d.vHeight)return d.pagePercentageSeen=100,void(d.belowTheFoldSeen=100);var e=Math.ceil(window.scrollTop||document.body.scrollTop),i=Math.ceil((e+d.vHeight)/d.pHeight*100);i>100&&(i=100),i!=d.pagePercentageSeen&&(t.debug("Scroll event detected."),d.isScrolled=1,l=!0),i>d.pagePercentageSeen&&(t.debug("Page percentage seen updated."),d.pagePercentageSeen=i,l=!0);var r=Math.ceil(e/(d.pHeight-d.vHeight)*100);r>100&&(r=100),r>d.belowTheFoldSeen&&(t.debug("Bellow the fold percentage seen updated."),d.belowTheFoldSeen=r,l=!0)}function y(){d.ippMissclicks++,l=!0}function w(e){t.debug("Click tracked"),d.totalClicks++;var i=e.target,r=null;do{null!==r&&""!==r||(r=k(i)),i=i.parentElement}while(i&&"body"!==i.nodeName.toLowerCase()&&"document"!==i.nodeName.toLowerCase());null===r&&(r="idle"),d.clicksByType[r]++,l=!0}function k(e){var t=null,i=["a","video","button","input","textarea","img","select"];return-1!==h()(i).call(i,e.nodeName.toLowerCase())&&("a"===(t=e.nodeName.toLowerCase())?t="link":"textarea"!==t&&"select"!==t||(t="input")),t}function A(){t.debug("Impression tracked"),d.eventImps++}function T(){t.debug("Retry tracked!"),d.retryCounts++}function x(){var e="//usrpubtrk.com/ut/hb.php?cb="+Math.random();return e+="&v=1",t.debug("Target Url: "+e.toString()),e}function S(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!c){if(c=!0,p(),e&&(d.lastevent=1),t.isDebugEnabled&&t.debug("send payload:",JSON.parse(Fe()(d))),"navigator"in window&&"sendBeacon"in window.navigator&&void 0!==navigator.sendBeacon&&void 0!==Blob){d.sentTimestamp=r()();var i=new Blob([Fe()(d)],{type:"text/plain; charset=UTF-8"});navigator.sendBeacon(x(),i)}else{var n="XMLHttpRequest"in window?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");n.open("POST",x(),!0),n.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{d.sentTimestamp=r()(),n.send(Fe()(d))}catch(e){}}d.lastevent=0,c=!1}}function C(){t.debug("visibility state is",document.visibilityState),"hidden"===document.visibilityState&&l?(clearInterval(n),S(),l=!1):"visible"===document.visibilityState&&(n=he()(N,6e4))}function P(){var e=new CustomEvent(i,{detail:{issued:"UT",data:{utsid:u}}});document.dispatchEvent(e)}function N(){if(d.sessionLength=pi()-g,d.sessionLength>=7200)return t.debug("Session limit reached! Send last payload and tear down"),S(),clearInterval(n),t.debug("detaching behavior listeners"),document.removeEventListener("click",w,!1),document.removeEventListener("mousemove",m,!1),document.removeEventListener("scroll",b,!1),document.removeEventListener("in-page-missclick",y,!1),document.removeEventListener("impression-event",A,!1),document.removeEventListener("impression-retry-event",T,!1),document.removeEventListener("touchend",v,!1),document.removeEventListener("touchmove",f,!1),document.removeEventListener("touchcancel",b,!1),document.removeEventListener("visibilitychange",C),void window.removeEventListener("beforeunload",S);0!==o&&1!==o&&5!==o&&10!==o&&o%30!=0||S(),o++}!async function e(){if("complete"===document.readyState||"interactive"===document.readyState)return d.clientHints=await E(t,true),d.browsingTopics=await async function(){let e=[];if("browsingTopics"in document&&document.featurePolicy.allowsFeature("browsing-topics"))try{e=await document.browsingTopics(),t.debug("document.browsingTopics() return value:",e)}catch(e){t.debug("Error calling document.browsingTopics(): ",e)}return e}(),"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?(document.addEventListener("touchend",v,!1),document.addEventListener("touchmove",f,!1),document.addEventListener("touchcancel",b,!1)):(document.addEventListener("mousemove",m,!1),document.addEventListener("scroll",b,!1)),document.addEventListener("click",w,!1),document.addEventListener("impression-event",A,!1),document.addEventListener("impression-retry-event",T,!1),document.addEventListener("in-page-missclick",y,!1),p(),b(),0===o&&N(),n=he()(N,6e4),window[i]=u,P(),s()(P,2e4),document.addEventListener("visibilitychange",C),void window.addEventListener("beforeunload",(()=>{S(!0)}));s()(e,100)}()},mi=o(3038),vi=o.n(mi);const bi="sandboxedDetector";var yi=class{#i;#ue;#he;#ge=!1;#pe=!1;#fe=!1;constructor(e,t,i){this.#i=e,this.#ue=t,this.#he=i}isSandboxed(){return this.#pe}load(){var e;if(this.#ge)return void this.#i.debug("already checked");if(this.#ge=!0,this.#i.debug("load sandbox detector"),!R())return void this.#i.debug("not in iframe. exit");this.#i.debug("iframe detected");const i=this.#he.getState();if(i&&i.expiresAt>r()())return this.#i.debug("previous state present. Expires at:",new Date(i.expiresAt)),i.isSandboxed?(this.#i.debug("sandboxed recently! show overlay"),void(this.#pe=!0)):void this.#i.debug("not sandboxed recently. dont check further");this.#i.debug("attach detector listener to events");const n={zoneId:bi,callback:t()(e=this.#me).call(e,this)};J||this.#ue.subscribe("mousedown",n,!0),this.#ue.subscribe("click",n,!0)}#me(e){if(!e.isTrusted)return void this.#i.debug(`${e.type} on ${e.target.tagName}. Detector skipped: event is not trusted`,e);if(this.#ue.isShowingPop)return void this.#i.debug("detector skipped: pop being currently shown");this.#ue.isShowingPop=!0,this.#i.debug("detector taking action. prevent other pops from showing");let t=null;try{t=window.open("about:blank","_blank")}catch(e){this.#i.error("detector error",e)}t&&t.close(),null===t&&(this.#i.debug("sandbox detected"),this.#pe=!0),this.#he.setState({expiresAt:r()()+36e5,isSandboxed:this.#pe}),J||this.#ue.unsubscribe("mousedown",bi,!0),this.#ue.unsubscribe("click",bi,!0),s()((()=>{this.#ue.isShowingPop=!1}),300)}showSandboxWarningOverlay(){this.#fe||(this.#fe=!0,this.#i.debug("show sandbox warning overlay"),this.#ve())}#be(){const e=document.createElement("div");e.id="sbxwo",vi()(e.style,{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.8)",color:"#fff",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",padding:"20px",boxSizing:"border-box",textAlign:"center"});const t=document.createElement("div");t.innerHTML="\n
Ad Functionality Blocked
\n
\n It looks like your page is running in a sandbox that blocks certain functionality.\n This setting is preventing our ads from working properly.\n Please disable the sandbox restrictions or adjust your settings.\n
\n To continue playing please remove Sandbox from iframe tab or add "allow-popups" to Sandbox\n
\n ',e.appendChild(t),document.body.appendChild(e)}};const wi="x4G9Tq2Kw6R7v1Dy3P0B5N8Lc9M2zF",ki="ZpQw9XkLmN8c3vR3",Ai="adblock-settings",Ti=(()=>{let e=document.currentScript;return e||(e=document.getElementById("aclib")),e||(e=document.getElementById("adcash-lib")),e})();let xi=null;var Si=class{#ye;#we={pop:!1,autoTag:!1,inPagePush:!1,interstitial:!1,videoSlider:!1};#ke;#v;#Ae=new(ri());#Te=new(ri());#i;#xe=!1;#Se=!1;#Ce={mousedown:[],click:[],touchstart:[]};#Ee={mousedown:[],scroll:[],click:[],touchstart:[]};#m="adexchangeclear.com";#k="65.0";#o=null;#Ie="aclib";#Re;#Oe=!1;isShowingPop=!1;#S;#Le=!1;#Pe={};#Ne;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(xi)return xi;xi=this;let t="aclib";if(e.classes&&(this.#Pe=e.classes,t="aclib_adbl"),this.#i=new a(t),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("win mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("win mousedown: calling observer"),t.callback(e)}))}),!1),window.addEventListener("click",(e=>{var t;this.#i.debug("win click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("win click with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("click",(e=>{var t;this.#i.debug("win click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("win click: calling observer"),t.callback(e)}))}),!1),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("doc mousedown: calling observer"),t.callback(e)}))})),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("doc mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("scroll",(e=>{var t;x()(t=this.#Ee.scroll).call(t,(t=>{t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("doc click: calling observer"),t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("doc click with capture: calling observer"),t.callback(e)}))}),!0),this.getClientHints(),this.#Re=L(),this.#S=ie(),this.#Ne=new yi(new a("sd"),xi,new ze("sndbxchckiborjforqp2")),this.#i.debug("init adcash lib. listeners attached. ready to publish"),this.#i.debug("is mobile device:",J),window[wi]&&(this.#o=JSON.parse(Fe()(window[wi])),this.#ye=this.#o.cdnDomain,delete window[wi]),window[ki]&&(this.#o=JSON.parse(function(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"xR9tB2pL6q7MwVe";const r=atob(e);return A()(t=[...r]).call(t,((e,t)=>String.fromCharCode(e.charCodeAt(0)^i.charCodeAt(t%i.length)))).join("")}(window[ki])),this.#ye=this.#o.cdnDomain,delete window[ki]),this.#o||(this.#ye=new(m())(Ti.src).host,Ti.hasAttribute(Ai)&&(this.#o=JSON.parse(Ti.getAttribute(Ai)),Ti.removeAttribute(Ai))),this.#o&&this.#i.debug("adblock settings:",this.#o),Ti.getAttribute("data-preview"))return this.#i.debug("preview mode"),void(this.#Le=!0);this.#Ue(),this.#$e(),this.#Fe(),this.#Ne.load()}isSandboxed(){return this.#Ne.isSandboxed()}showSandboxWarningOverlay(){this.#Ne.showSandboxWarningOverlay()}async getClientHints(e){if(void 0===this.#ke){this.#ke=await E(this.#i,!0);let e="";for(const t in this.#ke)e+=`&${t}=${this.#ke[t]}`;this.#v=e}return e?this.#ke:this.#v}getCdnDomain(){return this.#ye}getSesionRandomString(){return this.#Re}enableAdbMode(){this.#i.debug("enable adb mode"),this.#Oe=!0}isAdbMode(){return this.#Oe}subscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);i?this.#Ce[e].push(t):this.#Ee[e].push(t)}unsubscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);if(i)for(let i=0;i{const t=document.createElement("link");t.rel="dns-prefetch",t.href=`//${e}`,document.head.appendChild(t)}))}s()(t()(e=this.#Ue).call(e,this),100)}getZoneIds(){return w()(this.#Ae)}runPop(e){const{zoneId:t,delay:i,targetElementsCssSelector:r,triggerOnTargetElementsClick:n,targetCountries:s,triggerOnTargetCountries:o,sub1:a,sub2:c,publisherUrl:l,storeUrl:d,c1:u,c2:h,c3:g,pubHash:p,pubClickId:f,pubValue:m,fallbackOn:v,isAutoTag:b,collectiveZoneId:y,aggressivity:w,recordPageView:k,linkedZoneId:A,abTest:T,tagVersionSuffix:x}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r){if(!hi(r))throw new Error("targetElementsCssSelector is not a string");if(!(e=>{try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0})(r))throw new Error("targetElementsCssSelector is not a valid css selector");if(!di(n))throw new Error("triggerOnTargetElementsClick is not a boolean")}if(void 0!==s){if(!(e=>{if(!ai()(e))return!1;if(0===e.length)return!1;for(let t=0;t{window.PopUnder&&(this.#Ae.add(S.zoneId),new PopUnder(S),clearInterval(e))}),100)}else{this.#i.debug("loading suv5 script on page"),this.#xe=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/suv5.js`,e.onload=()=>{this.#we.pop=!0,this.#xe=!1,b?this.#Ae.add(y):this.#Ae.add(S.zoneId),new PopUnder(S)},e.onerror=()=>{this.#we.pop=!1,this.#xe=!1,this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runInPagePush(e){if(this.#we.inPagePush)return void this.#i.error("in-page push zone already loaded on page");this.#we.inPagePush=!0;const{zoneId:t,delay:i,maxAds:r,renderPosDesktop:n,renderPosMobile:s,offsetTop:o,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p}=e;let{refreshRate:f}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==f&&(!ui(f)||f<0))throw new Error("refreshRate is not an integer or is less than zero");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r&&(!ui(r)||r<1))throw new Error("maxAds is not an integer or is less than one");if(void 0!==n&&!gi(n))throw new Error("renderPosDesktop is not valid");if(void 0!==s&&!gi(s))throw new Error("renderPosMobile is not valid");if(void 0!==o&&(!ui(o)||o<0))throw new Error("offsetTop is not an integer or is less than zero");this.#i.debug("loading in-page push on page"),c?this.#Ae.add(l):this.#Ae.add(t),void 0!==f&&f>0&&f<10&&(f<5?f*=60:f=30),this.#i.debug("ipp rr set to",f);const m={zoneId:t,refreshRate:f??60,delay:i??0,maxAds:r??1,renderPosDesktop:n??"top",renderPosMobile:s??"top",offsetTop:o??0,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p,adserverDomain:this.#m,adblockSettings:this.#o,adcashGlobalName:this.#Ie,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.InPagePush)return m.isLoadedAsPartOfLibrary=!0,void new this.#Pe.InPagePush(m);if(window.InPagePush)new window.InPagePush(m);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${window.location.protocol}//${this.#ye}/script/inpagepush.js`,e.setAttribute("nipp","1"),e.onload=()=>{new window.InPagePush(m)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runBanner(e){const{zoneId:t,width:i,height:r,renderIn:n,sub1:s,currentScript:o}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&!ui(i))throw new Error("Banner width is not an integer");if(void 0!==r&&!ui(r))throw new Error("Banner height is not an integer");let a;this.#i.debug("loading banner on page",t),n||(document.currentScript&&document.currentScript.parentElement&&(a=document.currentScript.parentElement),o&&(a=o.parentElement));const c={zoneId:t,width:i,height:r,renderIn:n,currentElement:a,sub1:s,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,adblockSettings:this.#o};if(this.#Pe.Banner)new this.#Pe.Banner(c);else if(this.#we.banner||this.#Se){if(window.Banner)return this.#Ae.add(c.zoneId),void new Banner(c);const e=he()((()=>{window.Banner&&(this.#Ae.add(c.zoneId),new Banner(c),clearInterval(e))}),100)}else{this.#Se=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/banner.js`,e.onload=()=>{this.#we.banner=!0,this.#Se=!1,this.#Ae.add(c.zoneId),new Banner(c)},e.onerror=()=>{this.#we.banner=!1,this.#Se=!1,this.#i.error(`failed loading ${e.src}`)},e.setAttribute("data-adel","ban"),e.setAttribute("a-lib","1"),document.head.appendChild(e)}}runInterstitial(e){if(this.#we.interstitial)return void this.#i.error("interstitial zone already loaded on page");this.#we.interstitial=!0;const{zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");this.#i.debug("loading interstitial on page");const d={zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l,adcashGlobalName:this.#Ie,adserverDomain:this.#m,adblockSettings:this.#o,uniqueFingerprint:this.#S,isLoadedAsPartOfLibrary:!1};if(this.#Ae.add(t),this.#Pe.Interstitial)return d.isLoadedAsPartOfLibrary=!0,void new this.#Pe.Interstitial(d);if(window.Interstitial)new Interstitial(d);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/interstitial.js`,e.setAttribute("a-lib","1"),e.onload=()=>{new Interstitial(d)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}async#ze(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.#i.debug("fetch collective zone config");let i=`${window.location.protocol}//${this.#m}/ad/czcf.php`;if(this.isAdbMode()){const e=`/${ee("abcdefgh0123456789")}`;i=`${window.location.protocol}//${this.#o.adserverDomain}${e}`}i+=`?cz=${e}`,i+=`&atv=${this.#k}`;const r=await this.getClientHints();let n;r&&(i+=r),this.isAdbMode()&&(i+="&sadbl=2",i+="&fmt=atg",i=te(i)),this.#i.debug("collective zone config url: ",i);try{n=await fetch(i)}catch(i){return this.#i.error(i),this.#o&&t?(this.#i.debug("collective zone config fetch failed: try alt domain and path"),this.enableAdbMode(),this.#ze(e,!1)):null}return 200!==n.status?null:(n=await n.json(),se(n))}async runAutoTag(e){if(this.#we.autoTag)return void this.#i.error("autotag zone already loaded on page");this.#we.autoTag=!0;const t=e.zoneId;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const i=await this.#ze(t);if(!i)return void this.#i.error(`failed to fetch collective zone config! czid: ${t}`);if(this.#i.debug("collective zone config:",i),!i.rotationList){this.#i.debug("running in NORMAL MODE (no rotation)");const r=i.indexedFormats;let n=!0;for(const s in r){switch(s){case"suv4":case"pop":this.runPop({zoneId:r[s].zoneId.toString(),targetElementsCssSelector:r[s]["element-list"],triggerOnTargetElementsClick:"allow"===r[s]["element-action"],targetCountries:r[s]["country-list"],triggerOnTargetCountries:"allow"===r[s]["country-action"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"interstitial":this.runInterstitial({zoneId:r[s].zoneId.toString(),isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"ippg":this.runInPagePush({zoneId:r[s].zoneId.toString(),refreshRate:r[s].rr,delay:r[s].d,maxAds:r[s].mads,renderPosDesktop:r[s]["render-pos-desktop"],renderPosMobile:r[s]["render-pos-mobile"],offsetTop:r[s]["offset-top"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;default:this.#i.error(`ad format type not recognised from collective zone config. adformat.type: ${s}; czid: ${t}`)}n=!1}return}this.#i.debug("running in ROTATION MODE (rotation present)");const r={adcashGlobalName:this.#Ie,collectiveZoneConfig:i,adserverDomain:this.#m,adblockSettings:this.#o,clientHintsQueryStr:this.#v,tagVersionSuffix:e.tagVersionSuffix,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.AutoTagRotation)return this.#Ae.add(t),r.isLoadedAsPartOfLibrary=!0,void new this.#Pe.AutoTagRotation(r);this.#i.debug("loading autotag rotation script on page");const n=document.createElement("script");n.type="text/javascript",n.src=`${location.protocol}//${this.#ye}/script/atagv2.js`,n.onload=()=>{this.#Ae.add(t),new De(r)},n.onerror=()=>{this.#i.error(`failed loading ${n.src}`)},document.head.appendChild(n)}runVideoSlider(e){if(this.#we.videoSlider)return void this.#i.error("videoslider zone already loaded on page");this.#we.videoSlider=!0;const{zoneId:t,sub1:i,vastXml:r,useAlternative:n,linkedZoneId:s}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const o={zoneId:t,sub1:i,adserverDomain:this.#m,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,isPreviewMode:this.#Le,useAlternative:n,vastXml:r,linkedZoneId:s,adblockSettings:this.#o};if(this.#Pe.VideoSlider)return o.isLoadedAsPartOfLibrary=!0,void new this.#Pe.VideoSlider(o);if(window.VideoSlider)new VideoSlider(o);else{const e=document.createElement("script");e.type="text/javascript",Math.round(Math.random())?(e.src=`${window.location.protocol}//${this.#ye}/script/videoSliderAlt.js`,o.tagVersionSuffix="-b",this.#i.debug("VideoSlider A/B test: using alternative video slider")):(e.src=`${window.location.protocol}//${this.#ye}/script/videoSlider.js`,o.tagVersionSuffix="-a",this.#i.debug("VideoSlider A/B test: using video slider")),e.onload=()=>{this.#Ae.add(t),new VideoSlider(o)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}};const Ci=new a("aclib_adblock_index");window.Adcash?Ci.debug("lib already on page. exit"):(Ci.debug("load lib on page"),function(){var e;const t={aclib:new Si(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Adcash:Si,AtcshAltNm:Si};x()(e=it()(t)).call(e,(e=>{ti()(window,e,{value:t[e]})}))}({classes:{AutoTagRotation:De,PopUnder:class{#s;#y=null;#t={};#L=!1;#De=!1;#Be=!1;#Me=!1;#P;#b=!1;#R=!0;#i;#k="65.0";#N=null;#Ve=12;#T=!1;constructor(e){var i,n;this.#i=new a(`suv5_${e.zoneId}`),this.#s=window[e.adcashGlobalName],e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k),this.#i.debug("init pop with config:",e),this.#t=e,this.elementTargeting=new je(this.#t.targetElementsCssSelector,this.#t.triggerOnTargetElementsClick,this.#t.zoneId),!J||this.elementTargeting.isPresent()||this.#t.linkedZoneId||(this.#R=!1),this.#i.debug("useCapture:",this.#R),this.overlays=new He(this.elementTargeting,t()(i=this.#U).call(i,this),t()(n=this.#He).call(n,this),this.#i,this.#t.zoneId,this.#R),this.#z(),this.localStorage=new ze(`suv5_${e.zoneId}_state`);const o=this.localStorage.getState();o&&o.adbExpiresAt>r()()&&this.#s.enableAdbMode();const c=r()();if(o&&o.renderAfterTimestamp>c){var l;const e=o.renderAfterTimestamp-c;this.#i.debug(`previous state present. bid after ${e/1e3} sec`),s()(t()(l=this.#je).call(l,this),e)}else this.#je()}async#C(){const e=await this.#s.getClientHints(!1);let t=`${window.location.protocol}//${this.#t.adserverDomain}/script/suurl5.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:e}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;t=`${window.location.protocol}//${e}${i}`}if(t+=`?r=${this.#t.zoneId}`,this.#b&&(t+="&rbd=1"),this.#t.targetCountries){const e=this.#t.targetCountries.join(",");this.#t.triggerOnTargetCountries?t+="&allowed_countries="+encodeURIComponent(e):t+="&excluded_countries="+encodeURIComponent(e)}return t=t+e+"&cbur="+Math.random()+"&cbiframe="+R()+"&cbWidth="+P()+"&cbHeight="+N()+"&cbtitle="+encodeURIComponent(U())+"&cbpage="+encodeURIComponent(I())+"&cbref="+encodeURIComponent($())+"&cbdescription="+encodeURIComponent(F("description"))+"&cbkeywords="+encodeURIComponent(F("keywords"))+"&cbcdn="+encodeURIComponent(this.#s.getCdnDomain())+"&ufp="+encodeURIComponent(this.#t.uniqueFingerprint)+"&ts="+r()()+"&srs="+this.#s.getSesionRandomString()+"&atv="+this.#k,this.#t.sub1&&(t+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#t.sub2&&(t+=`&sub2=${encodeURIComponent(this.#t.sub2)}`),this.#t.publisherUrl&&(t+=`&pu=${encodeURIComponent(this.#t.publisherUrl)}`),this.#t.storeUrl&&(t+=`&storeurl=${encodeURIComponent(this.#t.storeUrl)}`),this.#t.c1&&(t+=`&c1=${encodeURIComponent(this.#t.c1)}`),this.#t.c2&&(t+=`&c2=${encodeURIComponent(this.#t.c2)}`),this.#t.c3&&(t+=`&c3=${encodeURIComponent(this.#t.c3)}`),this.#t.pubHash&&(t+=`&pub_hash=${encodeURIComponent(this.#t.pubHash)}`),this.#t.pubClickId&&(t+=`&pub_clickid=${encodeURIComponent(this.#t.pubClickId)}`),this.#t.pubValue&&(t+=`&pub_value=${encodeURIComponent(this.#t.pubValue)}`),this.#t.fallbackOn&&(t+=`&fallbackon=${encodeURIComponent(this.#t.fallbackOn)}`),this.#t.adblockSettings&&(t+="&abtg=1"),this.#t.isAutoTag&&(t+="&atag=1"),this.#t.aggressivity&&(t+=`&aggr=${this.#t.aggressivity}`),this.#t.collectiveZoneId&&(t+=`&czid=${this.#t.collectiveZoneId}`),this.#t.recordPageView&&(t+="&ppv=1"),this.#t.linkedZoneId&&(t+=`&pblcz=${this.#t.linkedZoneId}`),this.#t.abTest&&(t+=`&ab_test=${this.#t.abTest}`),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(t+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(t+="&sbx=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(t+="&sadbl=2",t+="&fmt=suv5",this.#i.debug(`bid url: ${t}`),te(t)):(this.#i.debug(`bid url: ${t}`),t)}#F(e){try{let t=this.#N?this.#N(""):window.open("");return t.document.open(),t.document.writeln('
17 OCT 2024 - Welcome Back to TorrentFunk! Get your pirate hat back out. Streaming is dying and torrents are the new trend. Account Registration works again and so do Torrent Uploads. We invite you all to start uploading torrents again!
TORRENT DETAILS
SQL For Data Analysis - Advanced SQL Querying Techniques (2025)
Level: All | Genre: eLearning | Language: English | Duration: 95 Lectures ( 9h 3m ) | Size: 3 GB
From SQL Basics to Modern Analytics with Polars – Hands-On Data Skills for 2025
What you'll learn
Learn strategies to optimize memory usage and processing speed when dealing with massive datasets.
Master Subqueries & Common Table Expressions (CTEs) – Break down complex problems into manageable, efficient queries.
Solve Real-World Data Challenges – Work on practical, project-based problems that mimic real business scenarios.
Taking advantage of parallel and optimised analysis with Polars
Unlock the Power of Joins & Multi-Table Analysis – Master INNER, LEFT, RIGHT, FULL, SELF, and CROSS JOINs to combine data like a pro.
Analyze Trends with Window Functions – Use RANK, LAG, LEAD, NTILE, and more to perform advanced data analysis.
Requirements
No prior experience is required! This course is designed for beginners, Basic knowledge of Python & SQL is good to have, and I'll guide you step by step. All you need is a computer with an internet connection and a willingness to learn."
VISITOR COMMENTS (0 )
FILE LIST
Filename
Size
~Get Your Files Here !/1 - Introduction/1 -Introduction.mp4
23.4 MB
~Get Your Files Here !/10 - Partitions/1 -Range Partition Create.mp4
23.6 MB
~Get Your Files Here !/10 - Partitions/2 -Range Partition Insert.mp4
24.8 MB
~Get Your Files Here !/10 - Partitions/3 -Range Partition Select & Filters.mp4
24.1 MB
~Get Your Files Here !/10 - Partitions/4 -List Partition Create.mp4
22 MB
~Get Your Files Here !/10 - Partitions/5 -List Partition Insert.mp4
23.5 MB
~Get Your Files Here !/10 - Partitions/6 -List Partition Select & Filters.mp4
25.3 MB
~Get Your Files Here !/10 - Partitions/7 -Hash Partition Create.mp4
27.6 MB
~Get Your Files Here !/10 - Partitions/8 -Hash Partition Insert.mp4
33.8 MB
~Get Your Files Here !/10 - Partitions/9 -Default Partition.mp4
24.7 MB
~Get Your Files Here !/11 - SQL with Python Analysis/1 -Mac Python Installation.mp4
8.4 MB
~Get Your Files Here !/11 - SQL with Python Analysis/10 -Read Files using Polars.mp4
84 MB
~Get Your Files Here !/11 - SQL with Python Analysis/11 -Read JSON Files using Polars.mp4
27.9 MB
~Get Your Files Here !/11 - SQL with Python Analysis/12 -Write Files using Polars.mp4
13.9 MB
~Get Your Files Here !/11 - SQL with Python Analysis/13 -Select Multiple Columns.mp4
80 MB
~Get Your Files Here !/11 - SQL with Python Analysis/14 -Add Column Using Constant Value.mp4
55.5 MB
~Get Your Files Here !/11 - SQL with Python Analysis/15 -Add Column Multiple Columns at Once.mp4
60.5 MB
~Get Your Files Here !/11 - SQL with Python Analysis/16 -Transform Data Frame.mp4
24.3 MB
~Get Your Files Here !/11 - SQL with Python Analysis/17 -Iterating Data Frame.mp4
37 MB
~Get Your Files Here !/11 - SQL with Python Analysis/18 -Aggregate Functions.mp4
29.3 MB
~Get Your Files Here !/11 - SQL with Python Analysis/19 -Distinct Queries.mp4
16.7 MB
~Get Your Files Here !/11 - SQL with Python Analysis/2 -Python - SQL Connectivity.mp4
34.4 MB
~Get Your Files Here !/11 - SQL with Python Analysis/20 -Python Way Square Brackets.mp4
19.3 MB
~Get Your Files Here !/11 - SQL with Python Analysis/21 -Integer Columns.mp4
32.8 MB
~Get Your Files Here !/11 - SQL with Python Analysis/22 -String Columns.mp4
21.8 MB
~Get Your Files Here !/11 - SQL with Python Analysis/23 -Date Columns.mp4
22.3 MB
~Get Your Files Here !/11 - SQL with Python Analysis/24 -Boolean Columns.mp4
22.3 MB
~Get Your Files Here !/11 - SQL with Python Analysis/3 -Pandas - SQL Connectivity.mp4
36.5 MB
~Get Your Files Here !/11 - SQL with Python Analysis/4 -Introduction of Polars.mp4
60 MB
~Get Your Files Here !/11 - SQL with Python Analysis/5 -Pandas Vs. Polars.mp4
69 MB
~Get Your Files Here !/11 - SQL with Python Analysis/6 -Mac Installation of Python and Polars Library.mp4
19.5 MB
~Get Your Files Here !/11 - SQL with Python Analysis/7 -Create Data Frame using Multiple Methods.mp4
68.7 MB
~Get Your Files Here !/11 - SQL with Python Analysis/8 -Series and Data Frame Objects.mp4
27.7 MB
~Get Your Files Here !/11 - SQL with Python Analysis/9 -Conversion from Pandas or Numpy.mp4
32.6 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/1 -Group By Examples.mp4
47.5 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/10 -Join Examples.mp4
55.1 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/2 -Group By with Having.mp4
27.9 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/3 -Iterating on Group By Object.mp4
38.5 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/4 -Case Conditions.mp4
35.3 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/5 -Quantiles & Histogram.mp4
44.8 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/6 -Sorting.mp4
74 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/7 -Finding Missing Values.mp4
39 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/8 -Replace Missing Values.mp4
52.5 MB
~Get Your Files Here !/12 - SQL Python Analysis Advanced/9 -Vertically & Horizontal Concatenating Data Frames.mp4
98.4 MB
~Get Your Files Here !/2 - Installation & Setup/1 -Installation on Mac.mp4
71.5 MB
~Get Your Files Here !/2 - Installation & Setup/2 -Installation on Windows.mp4
32.9 MB
~Get Your Files Here !/2 - Installation & Setup/3 -Backup & Restore DVD Rental Database.mp4
36.7 MB
~Get Your Files Here !/2 - Installation & Setup/4 -Backup & Restore Pagila Database.mp4
45 MB
~Get Your Files Here !/2 - Installation & Setup/5 -Backup & Restore North Wind Database.mp4
32.2 MB
~Get Your Files Here !/3 - SQL Basics Review/1 -Base Tables.mp4
31.1 MB
~Get Your Files Here !/3 - SQL Basics Review/10 -Filters with IN.mp4
15.5 MB
~Get Your Files Here !/3 - SQL Basics Review/11 -Filters with Between.mp4
12.8 MB
~Get Your Files Here !/3 - SQL Basics Review/12 -Filters with Like.mp4
23.4 MB
~Get Your Files Here !/3 - SQL Basics Review/2 -Insert into Tables.mp4
17.5 MB
~Get Your Files Here !/3 - SQL Basics Review/3 -Select Behind the Screen.mp4
22.7 MB
~Get Your Files Here !/3 - SQL Basics Review/4 -Distinct.mp4
23.2 MB
~Get Your Files Here !/3 - SQL Basics Review/5 -Aggregate Functions.mp4
32.5 MB
~Get Your Files Here !/3 - SQL Basics Review/6 -Filters with Numeric.mp4
27.5 MB
~Get Your Files Here !/3 - SQL Basics Review/7 -Filters with String.mp4
22.1 MB
~Get Your Files Here !/3 - SQL Basics Review/8 -Filters with Date.mp4
30.3 MB
~Get Your Files Here !/3 - SQL Basics Review/9 -Filters with Boolean.mp4
27.3 MB
~Get Your Files Here !/4 - Multi Table Analysis/1 -Introduction Inner Join.mp4
37.8 MB
~Get Your Files Here !/4 - Multi Table Analysis/2 -Introduction Left Join.mp4
33.4 MB
~Get Your Files Here !/4 - Multi Table Analysis/3 -Introduction Right Join.mp4
42.5 MB
~Get Your Files Here !/4 - Multi Table Analysis/4 -Views.mp4
34.1 MB
~Get Your Files Here !/4 - Multi Table Analysis/5 -Materialized Views.mp4
36.3 MB
~Get Your Files Here !/4 - Multi Table Analysis/6 -Union.mp4
18.6 MB
~Get Your Files Here !/4 - Multi Table Analysis/7 -Union All.mp4
17 MB
~Get Your Files Here !/5 - Function Analytics/1 -String Functions.mp4
15.7 MB
~Get Your Files Here !/5 - Function Analytics/2 -Sub-Strings.mp4
20.4 MB
~Get Your Files Here !/5 - Function Analytics/3 -Concat.mp4
24.8 MB
~Get Your Files Here !/5 - Function Analytics/4 -Handling Default Values.mp4
19 MB
~Get Your Files Here !/5 - Function Analytics/5 -Handling Null.mp4
41.6 MB
~Get Your Files Here !/5 - Function Analytics/6 -Case Conditional Functions.mp4
55.7 MB
~Get Your Files Here !/5 - Function Analytics/7 -Coalesce.mp4
32 MB
~Get Your Files Here !/5 - Function Analytics/8 -Null IF.mp4
24.1 MB
~Get Your Files Here !/6 - Working with Dates/1 -Date Create Records.mp4
15.7 MB
~Get Your Files Here !/6 - Working with Dates/2 -Date to String Type Cast.mp4
25.2 MB
~Get Your Files Here !/6 - Working with Dates/3 -Extract -- Day, Month & Year.mp4
28.7 MB
~Get Your Files Here !/6 - Working with Dates/4 -Date Truncate, Addition of Days and Many More.mp4
35.9 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/1 -Inner Queries.mp4
42.1 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/2 -Experiments Inner Queries.mp4
37.4 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/3 -CTEs Select.mp4
28.1 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/4 -CTEs Filters.mp4
21.4 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/5 -CTEs Union All.mp4
11.7 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/6 -CTEs Recursive Generate Numbers.mp4
11.9 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/7 -CTEs Recursive Even Numbers.mp4
7.4 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/8 -CTEs Recursive Fibonacci Number.mp4
12.4 MB
~Get Your Files Here !/7 - Sub-Queries & CTEs/9 -CTEs Recursive Hierarchical.mp4
36.3 MB
~Get Your Files Here !/8 - Complex Data/1 -Arrays Basics.mp4
39.5 MB
~Get Your Files Here !/8 - Complex Data/2 -Arrays with Aggregate Functions.mp4
16.5 MB
~Get Your Files Here !/8 - Complex Data/3 -Arrays with Filters.mp4
20.4 MB
~Get Your Files Here !/9 - CATS & Temp Tables/1 -Temp Tables.mp4
46.3 MB
~Get Your Files Here !/9 - CATS & Temp Tables/2 -Copy Temp Tables.mp4
21.6 MB
~Get Your Files Here !/9 - CATS & Temp Tables/3 -Copy Tables From other Tables.mp4