\n ').concat(ei[a.l.name],"\n
\n ").concat(o,"\n ").concat(null===(_=a.reason)||void 0===_?void 0:_.text,"\n
\n
\n \n ")}var _9=new Set(j("breakout_71_unlocked_levels",[]));function te(){return t_.apply(this,arguments)}function t_(){return(t_=(0,k._)(function(){var e;return(0,q.__generator)(this,function(_){switch(_.label){case 0:return[4,tg()];case 1:if(_.sent()||tw.running)return[2];return tw.running=!0,tw.ballStickToPuck=!1,!function(e){if(ed("record")&&!i){if(!c){p=(c=document.createElement("canvas")).getContext("2d",{antialias:!1,alpha:!1}),u=(l=c.captureStream(0)).getVideoTracks()[0];var _=(ev(),s);_&&l.addTrack(_.stream.getAudioTracks()[0])}c.width=e.gameZoneWidthRoundedUp,c.height=e.gameZoneHeight;var t=[],a=new MediaRecorder(l,{videoBitsPerSecond:35e5});i=a,a.start(),i.pause(),a.ondataavailable=function(e){t.push(e.data)},a.onstop=(0,k._)(function(){var e,_,a,r;return(0,q.__generator)(this,function(s){switch(s.label){case 0:if((_=new Blob(t,{type:"video/webm"})).size<2e5)return[2];s.label=1;case 1:if(e=document.getElementById("level-recording-container"))return[3,3];return[4,new Promise(function(e){return setTimeout(e,200)})];case 2:return s.sent(),[3,1];case 3:var o;if((a=document.createElement("video")).autoplay=!0,a.controls=!1,a.disablePictureInPicture=!0,a.disableRemotePlayback=!0,a.width=c.width,a.height=c.height,a.loop=!0,a.muted=!0,a.playsInline=!0,a.src=URL.createObjectURL(_),e.appendChild(a),(r=document.createElement("a")).download=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"webm";return"breakout-71-capture-"+new Date().toISOString().replace(/[^0-9\-]+/gi,"-")+"."+e}("webm"),r.target="_blank",!window.location.href.endsWith("index.html?isInWebView=true"))return[3,5];return[4,(o=_,new Promise(function(e,_){var t=new FileReader;t.onload=function(){e(t.result)},t.onerror=function(e){console.error(e),_(Error("Failed to readAsDataURL of the video "))},t.readAsDataURL(o)}))];case 4:return r.href=s.sent(),[3,6];case 5:r.href=a.src,s.label=6;case 6:return r.textContent=Z("settings.record_download",{size:(_.size/1e6).toFixed(2)}),e.appendChild(r),[2]}})})}}(tw),null===(e=ev())||void 0===e||e.resume(),ed("record")&&(null==i?void 0:i.state)==="paused"&&i.resume(),[2]}})})).apply(this,arguments)}function tt(e){if(tw.running&&!tw.pauseTimeout&&!tw.computer_controlled){var _=function(){tw.running=!1,setTimeout(function(){var e;tw.running||null===(e=ev())||void 0===e||e.suspend()},1e3),_i(),tw.pauseTimeout=null,_t.className="",tw.needsRender=!0};e?(tw.pauseUsesDuringRun++,tw.pauseTimeout=setTimeout(_,Math.min(50*Math.max(0,tw.pauseUsesDuringRun-5),500))):_(),document.exitPointerLock&&document.exitPointerLock()}}var ta=function(e){var _=function(_){_.x=e.offsetXRoundedDown+(_.x-a)/r*e.gameZoneWidthRoundedUp,_.y=_.y/s*e.gameZoneHeight},t=function(_){_.x=e.offsetXRoundedDown+(_.x-a)/r*e.gameZoneWidthRoundedUp,_.y=_.y/s*e.gameZoneHeight,_.previousX=_.x,_.previousY=_.y};if(!e)throw Error("Missign game state");var a=e.offsetXRoundedDown,r=e.gameZoneWidthRoundedUp,s=e.gameZoneHeight,o=window.innerWidth,n=window.innerHeight;e.canvasWidth=o,e.canvasHeight=n,eJ.width=o,eJ.height=n,e0.width=o,e0.height=n,e1.width=o/16,e1.height=n/16,e.gameZoneHeight=ed("mobile-mode")?Math.floor(.8*n):n;var i=Math.round(Math.min(e.canvasWidth,.73*e.gameZoneHeight*(e.gridSize+2*e.perks.unbounded)/e.gridSize));e.brickWidth=2*Math.floor(i/(e.gridSize+2*e.perks.unbounded)/2),e.gameZoneWidth=e.brickWidth*e.gridSize,e.offsetX=Math.floor((e.canvasWidth-e.gameZoneWidth)/2),e.offsetXRoundedDown=e.offsetX-e.perks.unbounded*e.brickWidth,e.offsetX.95?(t++,e.rerolls++,r=Z("level_up.plus_one_upgrade_and_reroll")):_>.9&&(t++,r=Z("level_up.plus_one_upgrade")),e.levelMisses<3?(t++,e.rerolls++,o=Z("level_up.plus_one_upgrade_and_reroll")):e.levelMisses<6&&(t++,o=Z("level_up.plus_one_upgrade")),u.label=1;case 1:var c,p;if(!t--||(c=3+e.perks.one_more_choice-e.perks.instant_upgrade,(p=eL(e).map(function(_){return x(w({},_),{score:Math.random()+(e.lastOffered[_.id]||0)})}).sort(function(e,_){return e.score-_.score}).filter(function(_){return e.perks[_.id]<_.max+e.perks.limitless}).slice(0,c).sort(function(e,_){return e.id>_.id?1:-1})).forEach(function(_){_R(e,_.id)}),!(n=p.map(function(_){return{text:_.name+(e.perks[_.id]?Z("level_up.upgrade_perk_to_level",{level:e.perks[_.id]+1}):""),icon:ei["icon:"+_.id],value:_.id,help:_.help(e.perks[_.id]+1)}})).length))return[3,3];return e.rerolls&&n.push({text:Z("level_up.reroll",{count:e.rerolls}),help:Z("level_up.reroll_help"),value:"reroll",icon:ei["icon:reroll"]}),i=a&&r&&o&&s&&Z("level_up.compliment_perfect")||(a||r||o||s)&&Z("level_up.compliment_good")||Z("level_up.compliment_advice"),[4,_g(x(w({},{title:Z("level_up.pick_upgrade_title")+(t?" ("+(t+1)+")":""),content:["".concat(Z("level_up.before_buttons",{score:e.score-e.levelStartScore,catchGain:r,levelSpawnedCoins:e.levelSpawnedCoins,time:Math.round(e.levelTime/1e3),timeGain:a,levelMisses:e.levelMisses,missesGain:o,levelWallBounces:e.levelWallBounces,wallHitsGain:s,compliment:i}),"\n
\n ").concat(Z("level_up.after_buttons",{level:e.currentLevel+1,max:eR(e)}),"
\n ").concat(eC(e,e.currentLevel+1),"
\n")].concat(z(n),[eB(e),_8(e),''])}),{allowClose:!1}))];case 2:return"reroll"===(l=u.sent())?(t++,e.rerolls--):(e.perks[l]++,"instant_upgrade"===l&&(t+=2),e.runStatistics.upgrades_picked++),[3,1];case 3:return[2]}})})).apply(this,arguments)}function ts(e,_){return eG(tw,Math.floor(_/tw.brickWidth),Math.floor((e-tw.offsetX)/tw.brickWidth))}function to(e){if(tw.bricks[e])return e}function tn(e,_,t){var a,r,s;return null!==(s=null!==(r=null!==(a=to(ts(e-t,_-t)))&&void 0!==a?a:to(ts(e+t,_-t)))&&void 0!==r?r:to(ts(e+t,_+t)))&&void 0!==s?s:to(ts(e-t,_+t))}window.addEventListener("resize",function(){return ta(tw)}),window.addEventListener("fullscreenchange",function(){return ta(tw)}),setInterval(function(){var e=window.innerWidth,_=window.innerHeight;(e!==tw.canvasWidth||_!==tw.canvasHeight)&&ta(tw)},1e3),eJ.addEventListener("mouseup",function(e){0===e.button&&(tw.running?tt(!0):(te(),ed("pointerLock")&&eJ.requestPointerLock&&eJ.requestPointerLock().then()))}),eJ.addEventListener("mousemove",function(e){document.pointerLockElement===eJ?_w(tw,tw.puckPosition+e.movementX):_w(tw,e.x)}),eJ.addEventListener("touchstart",function(e){var _;e.preventDefault(),(null===(_=e.touches)||void 0===_?void 0:_.length)&&(_w(tw,e.touches[0].pageX),_S(tw),te())}),eJ.addEventListener("touchend",function(e){e.preventDefault(),tt(!0)}),eJ.addEventListener("touchcancel",function(e){e.preventDefault(),tt(!0)}),eJ.addEventListener("touchmove",function(e){var _;(null===(_=e.touches)||void 0===_?void 0:_.length)&&_w(tw,e.touches[0].pageX)});var ti=0,tl=60;setInterval(function(){tl=ti,ti=0},1e3),setInterval(function(){tw.creative||(d||(d=eu.map(function(e,_){return w({name:e.name,li:_,l:e},eV(_))})),d.forEach(function(e){var _=e.name,t=e.minScore,a=e.forbidden,r=e.required;e.l,!(_9.has(_)||tw.score"+Z("unlocks.just_unlocked")+""),_B(tw,"colorChange",0,1)))}))},500),window.addEventListener("visibilitychange",function(){document.hidden&&tt(!0)}),_t.addEventListener("click",function(e){e.preventDefault(),_u||_6(tw)}),document.addEventListener("visibilitychange",function(){document.hidden&&tt(!0)}),document.getElementById("menu").addEventListener("click",function(e){e.preventDefault(),_u||tc()});var tu=(m=Math).max.apply(m,z(ec.map(function(e){return e.threshold})));function tc(){return tp.apply(this,arguments)}function tp(){return(tp=(0,k._)(function(){var e,_;return(0,q.__generator)(this,function(t){switch(t.label){case 0:var a;return tt(!0),e=[{icon:ei["icon:new_run"],text:Z("main_menu.normal"),help:(eN()?Z("main_menu.high_score",{score:eN()}):"")||Z("main_menu.normal_help"),value:function(){tx({levelToAvoid:eT(tw).name})}},{icon:ei["icon:creative"],text:Z("lab.menu_entry"),help:A()').concat(e.label,"")}).join(""),s=a.sort(function(e,a){return t*(r[_].field(e)-r[_].field(a))}).map(function(e){return""+r.map(function(_){var t,a=null!==(t=_.field(e))&&void 0!==t?t:0;return""+(_.render||function(e){return e.toString()})(a)+" | "}).join("")+"
"}).join(""),[4,_g({title:Z("history.title"),className:"history",content:["\n\n".concat(e,"
\n").concat(s,"\n
\n ")]})];case 1:if(!(o=i.sent()))return[2,{v:void 0}];return o.startsWith("sort:")&&((n=parseInt(o.split(":")[1]))==_?t*=-1:(t=-1,_=n)),[2]}})},_=0,t=-1,r=[{label:Z("history.columns.started"),field:function(e){return e.started},render:function(e){return new Date(e).toISOString().slice(0,10)}},{label:Z("history.columns.score"),field:function(e){return e.score}}].concat(z(Q.map(function(e){return{label:ei["icon:"+e.id],tooltip:e.name,field:function(_){var t;return(null===(t=_.perks)||void 0===t?void 0:t[e.id])||0},render:function(e){return e||"-"}}}))),o.label=1;case 1:return[5,(0,q.__values)(e())];case 2:if(s=o.sent(),"object"===(0,_5._)(s))return[2,s.v];return[3,1];case 3:return[2]}})})()}}),{icon:ei["icon:unlocks"],text:Z("main_menu.unlocks"),help:Z("main_menu.unlocks_help"),value:function(){(function(){tv.apply(this,arguments)})()}}].concat(z(function(e){if(!ed("donation_reminder"))return[];var _=Y();return[{text:Z("main_menu.donate",{hours:_}),help:Z("main_menu.donate_help",{suggestion:Math.min(20,Math.max(1,.2*_)).toFixed(0)}),icon:ei["icon:premium"],value:function(){window.open("https://paypal.me/renanlecaro","_blank")}}]}(0)),[{text:Z("main_menu.settings_title"),help:Z("main_menu.settings_help"),icon:ei["icon:settings"],value:function(){td()}},{icon:ei["icon:help"],text:Z("help.title"),help:Z("help.help"),value:function(){return(0,k._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return[4,_g({title:Z("help.title"),allowClose:!0,content:[J(Z("help.content",{catchRateBest:95,catchRateGood:90,levelTimeBest:30,levelTimeGood:60,missesBest:3,missesGood:6,wallBouncedBest:3,wallBouncedGood:10})),J(Z("help.upgrades"))].concat(z(ec.map(function(e){return'\n\n '.concat(e.icon,"\n
\n ").concat(e.name,"
\n ").concat(e.help(1),"\n
\n
\n \n ").concat(J(e.fullHelp),"\n")})),[""+Z("help.levels")+"
"],z(eu.filter(function(e){var _;return null===(_=e.credit)||void 0===_?void 0:_.trim()}).map(function(e){return'\n\n '.concat(ei[e.name],"\n
\n
\n ").concat(e.name," \n
\n ").concat(J(e.credit||""),"\n
\n \n
")})))})];case 1:return e.sent(),[2]}})})()}}]),[4,_g({title:Z("main_menu.title"),content:z(e).concat([' \n Made in France by Renan LE CARO. \n Donate\n Discord\n F-Droid\n Google Play\n itch.io \n Gitlab\n Web version\n HackerNews\n Privacy Policy\n Archives\n v.'.concat(en,"\n
")]),allowClose:!0})];case 1:return(_=t.sent())&&(_(),tw.needsRender=!0),[2]}})})).apply(this,arguments)}function td(){return tm.apply(this,arguments)}function tm(){return(tm=(0,k._)(function(){var e,_,t,a,r,s,o,n,i;return(0,q.__generator)(this,function(l){switch(l.label){case 0:tt(!0),(_=[{disabled:ed("easy"),icon:ei["icon:starting_perks"],text:Z("starting_perks.title"),help:Z("starting_perks.help"),value:function(){return(0,k._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return[4,_K()];case 1:return e.sent(),[2]}})})()}}]).push({icon:ei[null===(e=D.find(function(e){return e.value===V()}))||void 0===e?void 0:e.levelName],text:Z("settings.language"),help:Z("settings.language_help"),value:function(){return(0,k._)(function(){var e,_;return(0,q.__generator)(this,function(t){switch(t.label){case 0:return[4,_g({title:Z("settings.language"),content:[Z("settings.language_help")].concat(z(D.map(function(e){return x(w({},e),{icon:ei[e.levelName]})}))),allowClose:!0})];case 1:if(!(_=(e=t.sent())&&e!==V()))return[3,3];return[4,th(tw)];case 2:_=t.sent(),t.label=3;case 3:return _&&(E("lang",e),window.location.reload()),[2]}})})()}}),t=!0,a=!1,r=void 0;try{for(s=function(){var e=n.value;ep[e]&&_.push({icon:ed(e)?ei["icon:checkmark_checked"]:ei["icon:checkmark_unchecked"],text:ep[e].name,help:ep[e].help,value:function(){em(e),ta(tw),tg(),td()}})},o=Object.keys(ep)[Symbol.iterator]();!(t=(n=o.next()).done);t=!0)s()}catch(e){a=!0,r=e}finally{try{t||null==o.return||o.return()}finally{if(a)throw r}}return _.push({icon:ei["icon:download"],text:Z("settings.download_save_file"),help:Z("settings.download_save_file_help"),value:function(){return(0,k._)(function(){var e,_;return(0,q.__generator)(this,function(t){return e=_2(),(_=document.createElement("a")).setAttribute("href","data:application/json;base64,"+btoa(JSON.stringify({fileType:"B71-save-file",appVersion:en,signedPayload:e,key:et("Security by obscurity, but really the game is oss so eh"+e)}))),_.setAttribute("download","b71-save-"+new Date().toISOString().slice(0,19).replace(/[^0-9]+/gi,"-")+".b71"),document.body.appendChild(_),_.click(),setTimeout(function(){return document.body.removeChild(_)},1e3),[2]})})()}}),_.push({icon:ei["icon:upload"],text:Z("settings.load_save_file"),help:Z("settings.load_save_file_help"),value:function(){return(0,k._)(function(){var e,_;return(0,q.__generator)(this,function(t){if(!document.getElementById("save_file_picker")){var a;(_=document.createElement("input")).setAttribute("type","file"),_.setAttribute("id","save_file_picker"),_.setAttribute("accept",".b71,.json"),_.style.position="absolute",_.style.left="-1000px",_.addEventListener("change",(a=(0,k._)(function(e){var t,a,r,s,o,n,i,l,u;return(0,q.__generator)(this,function(e){switch(e.label){case 0:if(e.trys.push([0,4,,6]),!(a=_&&(null===(t=_.files)||void 0===t?void 0:t.item(0))))return[3,3];return[4,new Promise(function(e,_){var t=new FileReader;t.onload=function(){var _;e((null===(_=t.result)||void 0===_?void 0:_.toString())||"")},t.onerror=function(){_(t.error)},t.readAsText(a)})];case 1:if(s=(r=JSON.parse(e.sent())).fileType,o=r.appVersion,n=r.signedPayload,i=r.key,"B71-save-file"!==s)throw Error("Not a B71 save file");if(o>en)throw Error("Please update your app first, this file is for version "+o+" or newer.");if(i!==et("Security by obscurity, but really the game is oss so eh"+n))throw Error("Key does not match content.");for(var c in l=JSON.parse(n),localStorage.clear(),l)localStorage.setItem(c,l[c]);return[4,_g({title:Z("settings.save_file_loaded"),content:[Z("settings.save_file_loaded_help"),{text:Z("settings.save_file_loaded_ok")}]})];case 2:e.sent(),window.location.reload(),e.label=3;case 3:return[3,6];case 4:return u=e.sent(),[4,_g({title:Z("settings.save_file_error"),content:[u.message,{text:Z("settings.save_file_loaded_ok")}]})];case 5:return e.sent(),[3,6];case 6:return _.value="",[2]}})}),function(e){return a.apply(this,arguments)})),document.body.appendChild(_)}return null===(e=document.getElementById("save_file_picker"))||void 0===e||e.click(),[2]})})()}}),_.push({icon:ei["icon:coins"],text:Z("settings.max_coins",{max:H()}),help:Z("settings.max_coins_help"),value:function(){return(0,k._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return E("max_coins",(j("max_coins",1)+1)%6),[4,td()];case 1:return e.sent(),[2]}})})()}}),_.push({icon:ei["icon:particles"],text:Z("settings.max_particles",{max:F()}),help:Z("settings.max_particles_help"),value:function(){return(0,k._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return E("max_particles",(j("max_particles",1)+1)%6),[4,td()];case 1:return e.sent(),[2]}})})()}}),_.push({icon:ei["icon:reset"],text:Z("settings.reset"),help:Z("settings.reset_help"),value:function(){return(0,k._)(function(){return(0,q.__generator)(this,function(e){switch(e.label){case 0:return[4,_g({title:Z("settings.reset"),content:[Z("settings.reset_instruction"),{text:Z("settings.reset_confirm"),value:!0},{text:Z("settings.reset_cancel"),value:!1}],allowClose:!0})];case 1:return e.sent()&&(localStorage.clear(),window.location.reload()),[2]}})})()}}),[4,_g({title:Z("main_menu.settings_title"),content:[Z("main_menu.settings_help")].concat(z(_)),allowClose:!0,className:"settings"})];case 1:return(i=l.sent())&&(i(),tw.needsRender=!0),[2]}})})).apply(this,arguments)}function tg(){return tb.apply(this,arguments)}function tb(){return(tb=(0,k._)(function(){var e;return(0,q.__generator)(this,function(_){switch(_.label){case 0:if(_.trys.push([0,10,,11]),!(document.fullscreenEnabled||document.webkitFullscreenEnabled))return[2,!1];if(!(null!==document.fullscreenElement&&!ed("fullscreen")))return[3,5];if(!document.exitFullscreen)return[3,2];return[4,document.exitFullscreen()];case 1:case 3:case 6:case 8:return _.sent(),[2,!0];case 2:if(!document.webkitCancelFullScreen)return[3,4];return[4,document.webkitCancelFullScreen()];case 4:return[3,9];case 5:if(!(ed("fullscreen")&&!document.fullscreenElement))return[3,9];if(!(e=document.documentElement).requestFullscreen)return[3,7];return[4,e.requestFullscreen()];case 7:if(!e.webkitRequestFullscreen)return[3,9];return[4,e.webkitRequestFullscreen()];case 9:return[3,11];case 10:return console.warn(_.sent()),[3,11];case 11:return[2,!1]}})})).apply(this,arguments)}function tv(){return(tv=(0,k._)(function(){var e,_,t,a,r,s;return(0,q.__generator)(this,function(o){switch(o.label){case 0:return e=A(),_=ed("mobile-mode")?"help":"tooltip",t=ec.sort(function(e,_){return e.threshold-_.threshold}).map(function(t){var a=t.name,r=t.id,s=t.threshold,o=t.icon,n=t.help;return W({text:a,disabled:e'):"";return W({text:e.name+s,disabled:!!r,value:{level:e.name},icon:ei[e.name]},_,(null==r?void 0:r.text)||ex(e))}),[4,_g({title:Z("unlocks.title_upgrades",{unlocked:t.filter(function(e){return!e.disabled}).length,out_of:t.length}),content:["".concat(Z("unlocks.intro",{ts:e}),"\n ").concat(t.find(function(e){return e.disabled})?Z("unlocks.greyed_out_help"):"","
")].concat(z(t),[Z("unlocks.level",{unlocked:r.filter(function(e){return!e.disabled}).length,out_of:r.length})],z(r)),allowClose:!0,className:ed("mobile-mode")?"":"actionsAsGrid"})];case 1:if(!(s=o.sent()))return[3,3];return[4,th(tw)];case 2:o.sent()&&tx(w({},s)),o.label=3;case 3:return[2]}})})).apply(this,arguments)}function th(e){return ty.apply(this,arguments)}function ty(){return(ty=(0,k._)(function(e){return(0,q.__generator)(this,function(_){return!e.currentLevel||_u?[2,!0]:(tt(!0),[2,_g({title:Z("confirmRestart.title"),content:[Z("confirmRestart.text"),{value:!0,text:Z("confirmRestart.yes")},{value:!1,text:Z("confirmRestart.no")}]})])})})).apply(this,arguments)}var tf={ArrowLeft:0,ArrowRight:0,Shift:0};function tk(e,_){tf[e]=_,tw.keyboardPuckSpeed=(tf.ArrowRight-tf.ArrowLeft)*(1+2*tf.Shift)*tw.gameZoneWidth/50}document.addEventListener("keydown",(t=(0,k._)(function(e){return(0,q.__generator)(this,function(_){return"f"!==e.key.toLowerCase()||e.ctrlKey||e.metaKey?e.key in tf&&tk(e.key,1):(em("fullscreen"),tg())," "!==e.key||_u||(tw.running?tt(!0):te(),e.preventDefault()),[2]})}),function(e){return t.apply(this,arguments)}));var tW=new Date;document.addEventListener("keyup",(a=(0,k._)(function(e){var _,t,a,r,s;return(0,q.__generator)(this,function(o){switch(o.label){case 0:if(s=document.querySelector("button:focus"),!(e.key in tf))return[3,1];return tk(e.key,0),[3,10];case 1:if("ArrowDown"!==e.key||(null==s?void 0:null===(_=s.nextElementSibling)||void 0===_?void 0:_.tagName)!=="BUTTON")return[3,2];return null==s||null===(t=s.nextElementSibling)||void 0===t||t.focus(),[3,10];case 2:if("ArrowUp"!==e.key||(null==s?void 0:null===(a=s.previousElementSibling)||void 0===a?void 0:a.tagName)!=="BUTTON")return[3,3];return null==s||null===(r=s.previousElementSibling)||void 0===r||r.focus(),[3,10];case 3:if(!("Escape"===e.key&&_c))return[3,4];return _c(),[3,10];case 4:if(!("Escape"===e.key&&tw.running))return[3,5];return tt(!0),[3,10];case 5:if(!("m"===e.key.toLowerCase()&&!_u))return[3,6];return tc().then(),[3,10];case 6:if(!("s"===e.key.toLowerCase()&&!_u))return[3,7];return _6(tw).then(),[3,10];case 7:if(!("r"===e.key.toLowerCase()&&!_u&&tW1&&void 0!==arguments[1]?arguments[1]:1;e.computer_controlled&&function(e){var _=e.puckPosition,t=eP(e,e.puckPosition,e.gameZoneHeight);if(t){var a=(et(e.runStatistics.puck_bounces+"goeirjgoriejg")%100-50)/100*e.puckWidth;if(t.y>e.gameZoneHeight/2&&t.vy>0)_=t.x+a;else{var r=0,s=0;_X(e.coins,function(_){_.vy>0&&_.y>e.gameZoneHeight/2&&(r+=_.x,s++)}),_=s?r/s:t.x}e.puckPosition+=U((_-e.puckPosition)/10,-10,10),e.levelTime>3e4&&tS()}}(e),e.runStatistics.max_combo=Math.max(e.runStatistics.max_combo,e.combo),e.lastCombo=e.combo,e.perks.addiction&&e.lastBrickBroken&&e.lastBrickBrokene.lastTickDown+1e3&&e.perks.hot_start&&(e.lastTickDown=e.levelTime,_O(e,e.perks.hot_start,e.puckPosition,e.gameZoneHeight-2*e.puckHeight)),t<=e.perks.skip_last&&!e.autoCleanUses&&(e.bricks.forEach(function(_,t){_&&_L(e,t,e.balls[0],!0)}),e.autoCleanUses++);var a=_Z(e.respawns);if(!e.running||t||a?e.winAt=0:e.winAt||(e.winAt=e.levelTime+5e3),e.running&&e.winAt&&e.levelTime>e.winAt||e.levelTime&&!t&&!_Z(e.coins))e.computer_controlled?tS():e.currentLevel+1l&&i<16*l*e.perks.ball_attracts_coins){var u=1-.02*(.5+e.perks.ball_attracts_coins);t.vx*=u,t.vy*=u,t.vy*=u;var c=(n.x-t.x)/i*50*e.perks.ball_attracts_coins,p=(n.y-t.y)/i*50*e.perks.ball_attracts_coins;t.vx+=c,t.vy+=p,!ed("basic")&&Math.random()*e.perks.ball_attracts_coins*_>.9&&_D(e,t.x+5*c,t.y+5*p,2*c,2*p,_A(),!0,e.coinSize/2,100)}}}e.perks.bricks_attract_coins&&_Y(e,t,e.perks.bricks_attract_coins*_,2,!1);var d=1-(.03*e.perks.viscosity+.002)*_/(1+e.perks.etherealcoins);e.perks.etherealcoins||(t.vy*=d,t.vx*=d),t.vx>7*e.baseSpeed&&(t.vx=7*e.baseSpeed),t.vx<-7*e.baseSpeed&&(t.vx=-7*e.baseSpeed),t.vy>7*e.baseSpeed&&(t.vy=7*e.baseSpeed),t.vy<-7*e.baseSpeed&&(t.vy=-7*e.baseSpeed),t.a+=t.sa;var m=e.perks.helium>0&&2*Math.abs(t.x-e.puckPosition)>e.puckWidth+t.size,g=_*t.weight*.8*(m?-e.perks.helium:1);e.perks.etherealcoins&&(e.perks.helium?g*=.2/e.perks.etherealcoins:g*=0),t.vy+=g,e.perks.helium&&!ed("basic")&&Math.random()<.1*_&&_D(e,t.x,t.y,0,10*g,e.perks.metamorphosis||ed("colorful_coins")?t.color:"#ffd300",!0,5,250);var b=(Math.abs(t.vx)+Math.abs(t.vy))*10,v=_F(e,t,t.size/2,_);t.y>e.gameZoneHeight-r-e.puckHeight&&t.yt&&_.threshold<=a&&(_B(e,"colorChange",0,1),_W(ei["icon:"+_.id]+""+Z("gameOver.unlocked_perk")+""))})}}(e,t.points),e.score>e.highScore&&!e.creative&&(e.highScore=e.score,localStorage.setItem("breakout-3-hs-short",e.score.toString())),ed("basic")||_D(e,t.previousX,t.previousY,(e.canvasWidth-t.x)/100,-t.y/100,e.perks.metamorphosis||ed("colorful_coins")?t.color:"#ffd300",!0,e.coinSize/2,100+50*Math.random()),_B(e,"coinCatch",t.x,1),e.runStatistics.score+=t.points,e.perks.asceticism&&_O(e,3*e.perks.asceticism*t.points,t.x,t.y),_V(e.coins,a)):t.y>e.canvasHeight+10*r&&(e.levelLostCoins+=t.points,_V(e.coins,a),e.perks.compound_interest&&_q(e,t.x,e.gameZoneHeight-20),e.combo<30*e.perks.fountain_toss&&Math.random()<1/e.combo*e.perks.fountain_toss&&_M(e,1,t.x,e.gameZoneHeight-20));var h=function(e,_){var t,a,r=_.size/2,s=_.x,o=_.y,n=_.previousX,i=_.previousY,l=tn(n,o,r),u=tn(s,i,r),c=void 0===l&&void 0===u&&tn(s,o,r)||void 0;if(e.perks.ghost_coins)void 0!==(null!==(t=null!=l?l:u)&&void 0!==t?t:c)&&(_.vy*=1-.2/e.perks.ghost_coins,_.vx*=1-.2/e.perks.ghost_coins);else{if(void 0!==l||void 0!==c){_.y=_.previousY,_.vy*=-1;var p=e.bricks[ts(s-r,o+r)],d=e.bricks[ts(s+r,o+r)];p&&!d&&(_.vx+=1,_.sa-=1),!p&&d&&(_.vx-=1,_.sa+=1)}(void 0!==u||void 0!==c)&&(_.x=_.previousX,_.vx*=-1)}return null!==(a=null!=l?l:u)&&void 0!==a?a:c}(e,t);if(e.perks.metamorphosis&&void 0!==h&&e.bricks[h]&&t.color!==e.bricks[h]&&"black"!==e.bricks[h]&&t.metamorphosisPoints&&(e.bricks[h]=t.color,t.metamorphosisPoints--,_B(e,"colorChange",t.x,.3),e.perks.hypnosis)){var y=eP(e,t.x,t.y);y&&(t.x=y.x,t.y=y.y,t.vx=(Math.random()-.5)*e.baseSpeed,t.vy=(Math.random()-.5)*e.baseSpeed,t.metamorphosisPoints=e.perks.metamorphosis)}if(!e.perks.ghost_coins&&void 0!==h||v){var f=1-.2/(1+e.perks.etherealcoins);t.vx*=f,t.vy*=f,1>Math.abs(t.vy)&&(t.vy=0),t.sa*=.9,b>20&&!t.collidedLastFrame&&_B(e,"coinBounce",t.x,.2),t.collidedLastFrame=!0}else t.collidedLastFrame=!1}),e.balls.forEach(function(t){return function(e,_,t){_.previousVX=_.vx,_.previousVY=_.vy;var a,r=1+e.perks.telekinesis+e.perks.ball_repulse_ball+e.perks.puck_repulse_ball+e.perks.ball_attract_ball;eA(e,_)>0&&(r+=3,_.vx+=(e.puckPosition-_.x)/1e3*t*e.perks.telekinesis*eA(e,_)),eH(e,_)>0&&(r+=3,_.vx+=(e.puckPosition-_.x)/1e3*t*e.perks.yoyo*eH(e,_)),_.hitSinceBounce<3*e.perks.bricks_attract_ball&&_Y(e,_,e.perks.bricks_attract_ball*t*.2,2+e.perks.bricks_attract_ball,Math.random()<.5*t),_.vx*_.vx+_.vy*_.vy0?1:-1)*.02/r);var s=!0,o=!1,n=void 0;if(e.perks.ball_repulse_ball)try{for(var i,l=e.balls[Symbol.iterator]();!(s=(i=l.next()).done);s=!0){var u=i.value;u.x>=_.x||_H(e,_,u,e.perks.ball_repulse_ball,!0)}}catch(e){o=!0,n=e}finally{try{s||null==l.return||l.return()}finally{if(o)throw n}}var c=!0,p=!1,d=void 0;if(e.perks.ball_attract_ball)try{for(var m,g=e.balls[Symbol.iterator]();!(c=(m=g.next()).done);c=!0){var b=m.value;b.x>=_.x||function(e,_,t,a){var r=eD(_,t),s=3*e.gameZoneWidth/4;if(!(re.offsetX+e.gameZoneWidth/2&&_q(e,_.x,_.y),e.perks.top_is_lava&&v>=2&&_q(e,_.x,_.y+3*e.ballSize),e.perks.trampoline&&_O(e,e.perks.trampoline,_.x,_.y+e.ballSize),_B(e,"wallBeep",_.x,1),e.levelWallBounces++,e.runStatistics.wall_bounces++);var h=e.gameZoneHeight-e.puckHeight-e.ballSize/2,y=Math.abs(_.x-e.puckPosition)h&&_.vy>0&&(y||e.balls.length<2&&e.perks.extra_life&&_.y>h+e.puckHeight/2)){if(y){var f=Math.sqrt(_.vx*_.vx+_.vy*_.vy),k=Math.atan2(-e.puckWidth/2,(_.x-e.puckPosition)*(e.perks.concave_puck?-1/(1+e.perks.concave_puck):1));_.vx=f*Math.cos(k),_.vy=f*Math.sin(k),_B(e,"wallBeep",_.x,1)}else _.vy*=-1,function(e,_,t,a){if(e.perks.extra_life-=1,e.perks.extra_life<0?e.perks.extra_life=0:e.perks.sacrifice&&(e.combo*=e.perks.sacrifice,e.bricks.forEach(function(t,a){return t&&_L(e,a,_,!0)})),_B(e,"lifeLost",_.x,1),!ed("basic"))for(var r=0;r<10;r++)_D(e,t,a,Math.random()*e.baseSpeed*3,3*e.baseSpeed,"#FF0000",!1,e.coinSize/2,150)}(e,_,_.x,_.y);if(e.perks.streak_shots&&_q(e,_.x,_.y),e.perks.trampoline&&_M(e,e.perks.trampoline,_.x,_.y),e.perks.nbricks&&_.hitSinceBouncee.gameZoneHeight+e.ballSize/2&&(_.destroyed=!0,e.runStatistics.balls_lost++,e.balls.find(function(e){return!e.destroyed})||(e.computer_controlled?tS():_h(Z("gameOver.lost.title"),Z("gameOver.lost.summary",{score:e.score}))));var w=e.ballSize/2,x=_.x,S=_.y,z=_.previousX,q=_.previousY,M=tn(z,S,w),O=tn(x,q,w),G=void 0===M&&void 0===O&&tn(x,S,w)||void 0,P=null!==(a=null!=M?M:O)&&void 0!==a?a:G;if(void 0!==P){var L=e.bricks[P];_.hitSinceBounce++,e.perks.nbricks&&(_.hitSinceBounce>e.perks.nbricks?_q(e,_.x,_.y):_M(e,e.perks.nbricks,_.x,_.y));var R=!1,B=1+(e.perks.pierce_color&&(void 0===M||e.bricks[M]===e.ballsColor)&&(void 0===O||e.bricks[O]===e.ballsColor)&&(void 0===G||e.bricks[G]===e.ballsColor)?e.perks.pierce_color:0);e.brickHP[P]-=B;var C=Math.min(_.piercePoints,Math.max(1,e.brickHP[P]+1));e.brickHP[P]-=C,_.piercePoints-=C,e.brickHP[P]<0&&(e.brickHP[P]=0,R=!0),void 0===M&&void 0===G||R||(_.y=_.previousY,_.vy*=-1),void 0===O&&void 0===G||R||(_.x=_.previousX,_.vx*=-1),e.brickHP[P]?(_B(e,"wallBeep",x,1),function(e,_,t,a){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:8,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:150;_N(e.lights,function(o){o.time=e.levelTime,o.x=_,o.y=t,o.color=a,o.size=r,o.duration=s})}(e,eM(e,P),eO(e,P),"#FFFFFF",e.brickWidth+2,50*e.brickHP[P])):(_.brokenSinceBounce++,_L(e,P,_,!1),_.sapperUses0&&!_.hitSinceBounce,A=e.combo-1;if(E||A&&Math.random()>.1/(1+A)||j&&Math.random()>.1/(1+j)||A&&Math.random()>.1/(1+A)){var H=j&&(Math.random()>.5?"#ffb92a":"#FF0000")||E&&"#FF0000"||e.ballsColor;_D(e,_.x,_.y,e.perks.pierce_color||T?-_.vx+(Math.random()-.5)*e.baseSpeed/3:(Math.random()-.5)*e.baseSpeed,e.perks.pierce_color||T?-_.vy+(Math.random()-.5)*e.baseSpeed/3:(Math.random()-.5)*e.baseSpeed,H,!0,e.coinSize/2,100)}}}(e,t,_)}),e.perks.shocks&&e.balls.forEach(function(_,t){return e.balls.forEach(function(a,r){if(t.5&&_D(e,e.offsetXRoundedDown+Math.random()*e.gameZoneWidthRoundedUp,Math.random()*e.gameZoneHeight,8*s,0,_A(),!0,e.coinSize/2,150);_X(e.particles,function(t,a){t.x+=t.vx*_,t.y+=t.vy*_,!t.ethereal&&(t.vy+=.5*_,to(ts(t.x,t.y))&&_V(e.particles,a))})}if(e.combo>_z(e)&&!ed("basic")&&(e.combo-_z(e))*Math.random()>5){if(e.perks.top_is_lava&&_D(e,e.offsetXRoundedDown+Math.random()*e.gameZoneWidthRoundedUp,0,(Math.random()-.5)*10,5,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.left_is_lava&&_D(e,e.offsetXRoundedDown,Math.random()*e.gameZoneHeight,5,(Math.random()-.5)*10,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.right_is_lava&&_D(e,e.offsetXRoundedDown+e.gameZoneWidthRoundedUp,Math.random()*e.gameZoneHeight,-5,(Math.random()-.5)*10,"#FF0000",!0,e.coinSize/2,100*(Math.random()+1)),e.perks.compound_interest){var n=e.puckPosition,i=0;do n=e.offsetXRoundedDown+e.gameZoneWidthRoundedUp*Math.random(),i++;while(Math.abs(n-e.puckPosition)_.time)_j(e,_.index,_.color),_V(e.respawns,t);else{var a=_.index,r=_.color,s=Math.random()>.5,o=Math.random()>.5?1:-1,n=Math.random()>.5?1:-1;_D(e,eM(e,a)+o*e.brickWidth/2,eO(e,a)+n*e.brickWidth/2,s?0:-o*e.baseSpeed,s?-n*e.baseSpeed:0,r,!0,e.coinSize/2,250)}}),_X(e.particles,function(_,t){e.levelTime>_.time+_.duration&&_V(e.particles,t)}),_X(e.texts,function(_,t){e.levelTime>_.time+_.duration&&_V(e.texts,t)}),_X(e.lights,function(_,t){e.levelTime>_.time+_.duration&&_V(e.lights,t)})}(tw,a)),(tw.running||tw.needsRender)&&(tw.needsRender=!1,function(e){var _=eT(e),t=e.combo>_z(e),a=eJ.width,r=eJ.height;if(a&&r){e.currentLevel||e.levelTime?_a.innerText=Z("play.current_lvl",{level:e.currentLevel+1,max:eR(e)}):_a.innerText=Z("play.menu_label");var s=e.levelSpawnedCoins?(e.levelSpawnedCoins-e.levelLostCoins)/e.levelSpawnedCoins:1;if(_t.innerHTML=(ed("show_fps")?' \n Math.abs(tl-60)&&"good"||"bad",'">\n ').concat(tl," FPS\n / \n \n "):"")+(ed("show_stats")?' \n .9&&"good"||"",'" data-tooltip="').concat(Z("play.stats.coins_catch_rate"),'">\n ').concat(Math.floor(100*s),'%\n / \n \n ').concat(Math.ceil(e.levelTime/1e3),'s \n / \n \n ').concat(e.levelWallBounces,' B \n / \n \n ').concat(e.levelMisses," M\n / \n "):"")+'$').concat(e.score,""),_t.className=e.lastScoreIncrease>e.levelTime-500?"active":"",!ed("basic")&&_.svg&&"#000000"===_.color){e2.globalCompositeOperation="source-over",e2.globalAlpha=.99,e2.fillStyle=_.color,e2.fillRect(0,0,a/16,r/16);var o=ed("extra_bright")?3:1;if(e2.globalCompositeOperation="lighten",e2.globalAlpha=.1+5/(_Z(e.coins)+10),_X(e.coins,function(_){e9(e2,_n(e,_),2*e.coinSize*o/16,_.x/16,_.y/16)}),e.balls.forEach(function(_){e2.globalAlpha=.3*(1-eU(_,e)),e9(e2,e.ballsColor,2*e.ballSize*o/16,_.x/16,_.y/16)}),e2.globalAlpha=.05,e.bricks.forEach(function(_,t){if(_){var a=eM(e,t),r=eO(e,t);e9(e2,"black"==_?"#666666":_,Math.min(200,1.5*e.brickWidth*o)/16,a/16,r/16)}}),e2.globalCompositeOperation="screen",_X(e.particles,function(_){var t=_.x,a=_.y,r=_.time,s=_.color,n=_.size,i=_.duration;e2.globalAlpha=.1*Math.min(1,2-(e.levelTime-r)/i*2),e9(e2,s,3*n*o/16,t/16,a/16)}),e$.globalAlpha=1,e$.globalCompositeOperation="source-over",e$.imageSmoothingEnabled=!0,e$.imageSmoothingQuality="high",e$.drawImage(e1,0,0,a,r),e$.imageSmoothingEnabled=!1,e$.globalAlpha=1,e$.globalCompositeOperation="multiply",_.svg&&eQ.width&&eQ.complete){if(e0.title!==_.name){e0.title=_.name,e0.width=e.canvasWidth,e0.height=e.canvasHeight;var n=e0.getContext("2d");if(n.globalCompositeOperation="source-over",n.fillStyle=_.color||"#000",n.fillRect(0,0,e.canvasWidth,e.canvasHeight),e.perks.clairvoyant>=3)for(var i=document.body.innerHTML.replace(/\s+/gi,""),l=Math.ceil(e.canvasWidth/15),u=Math.ceil(e.canvasHeight/20),c=Math.ceil(Math.random()*(i.length-l*u)),p=0;p_z(tw),_=e&&tw.perks.picky_eater&&ej(tw),t=e&&eI(tw),a=eE(tw),r=tw.perks.clairvoyant,s=_o(tw);_||t||-1!==a||tw.perks.zen||(s=0);var o=r&&tw.brickHP.reduce(function(e,_){return e+_},0),n=tw.gameZoneWidth+"_"+tw.bricks.join("_")+eK.complete+"_"+a+"_"+_+"_"+t+"_"+tw.ballsColor+"_"+tw.perks.pierce_color+"_"+o+"_"+s;if(n!==e5){e5=n,e3.width=tw.gameZoneWidth,e3.height=tw.gameZoneWidth+1;var i=e3.getContext("2d");i.clearRect(0,0,tw.gameZoneWidth,tw.gameZoneWidth),i.resetTransform(),i.translate(-tw.offsetX,0),tw.bricks.forEach(function(o,n){var l=eM(tw,n),u=eO(tw,n);if(o){var c=a===Math.floor(n/tw.level.size),p=tw.ballsColor!==o&&"black"!==o&&_||e&&tw.perks.zen&&"black"===o||c||t;i.globalCompositeOperation="source-over",_e(tw,i,o,l,u,p?s:-1,r>=2),tw.brickHP[n]>1&&r&&(i.globalCompositeOperation="source-over",__(i,tw.brickHP[n].toString(),r>=2?o:tw.level.color,tw.puckHeight,l,u)),"black"===o&&(i.globalCompositeOperation="source-over",function(e,_,t,a,r){var s="svg"+_+"_"+t+"_"+_.complete;if(!e6[s]){var o=document.createElement("canvas");o.width=t,o.height=t;var n=o.getContext("2d"),i=t/Math.max(_.width,_.height),l=_.width*i,u=_.height*i;n.drawImage(_,(t-l)/2,(t-u)/2,l,u),e6[s]=o}e.drawImage(e6[s],Math.round(a-t/2),Math.round(r-t/2))}(i,eK,tw.brickWidth,l,u))}})}e$.drawImage(e3,tw.offsetX,0)}(),e$.globalCompositeOperation="screen",_X(e.lights,function(_){var t=_.x,a=_.y,r=_.time,s=_.color,o=(_.size,_.duration);e$.globalAlpha=.5*Math.min(1,2-(e.levelTime-r)/o*2),_e(e,e$,s,t,a,-1,e.perks.clairvoyant>=2)}),e$.globalCompositeOperation="screen",_X(e.texts,function(_){var t=_.x,a=_.y,r=_.time,s=_.color,o=_.size,n=_.duration,i=e.levelTime-r;e$.globalAlpha=Math.max(0,Math.min(1,2-i/n*2)),e$.globalCompositeOperation="source-over",__(e$,_.text,s,o,t,a-i/10)}),_X(e.particles,function(_){var t=_.x,a=_.y,r=_.time,s=_.color,o=_.size,n=_.duration;e$.globalAlpha=Math.max(0,Math.min(1,2-(e.levelTime-r)/n*2)),e$.globalCompositeOperation="screen",e7(e$,s,o,t,a)}),e.perks.extra_life){e$.globalAlpha=1,e$.globalCompositeOperation="source-over",e$.fillStyle=e.puckColor;for(var v=0;v4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5?arguments[5]:void 0,o=arguments.length>6?arguments[6]:void 0,n="puck"+_+"_"+t+"_"+a+"_"+s+"_"+o;if(!e6[n]){var i=document.createElement("canvas");i.width=t,i.height=2*a;var l=i.getContext("2d");l.fillStyle=_,l.beginPath(),l.moveTo(0,2*a),s?(l.lineTo(0,.75*a),l.bezierCurveTo(t/2,a*(2+s)/3,t/2,a*(2+s)/3,t,.75*a)):(l.lineTo(0,1.25*a),l.bezierCurveTo(0,.75*a,t,.75*a,t,1.25*a)),l.lineTo(t,2*a),l.fill(),-1!==o&&(l.strokeStyle="#FF0000",l.lineWidth=4,l.setLineDash(_s),l.lineDashOffset=o,l.stroke()),e6[n]=i}e.drawImage(e6[n],Math.round(tw.puckPosition-t/2),tw.gameZoneHeight-2*a+r)}(e$,e.puckColor,e.puckWidth,e.puckHeight,0,e.perks.concave_puck,e.perks.streak_shots&&t?_o(e):-1),e.combo>1){e$.globalCompositeOperation="source-over";var h="x "+e.combo,y=h.length*e.puckHeight/1.8,f=y+2*e.coinSize,k=e.puckPosition-f/2;fe.puckWidth?e.combo.toString():h,"#000",y>e.puckWidth?12:20,e.puckPosition,e.gameZoneHeight-e.puckHeight/2,!1)}e$.globalCompositeOperation="source-over",e$.globalAlpha=1;var W=t&&(e.perks.left_is_lava||e.perks.trampoline),w=t&&(e.perks.right_is_lava||e.perks.trampoline),x=t&&(e.perks.top_is_lava||e.perks.trampoline);e.offsetXRoundedDown?(e4(e$,e,W&&"#FF0000"||"#FFFFFF",e.offsetXRoundedDown-1,0,e.offsetXRoundedDown-1,r,1),e4(e$,e,w&&"#FF0000"||"#FFFFFF",a-e.offsetXRoundedDown+1,0,a-e.offsetXRoundedDown+1,r,1)):(e4(e$,e,W&&"#FF0000"||"",0,0,0,r,1),e4(e$,e,w&&"#FF0000"||"",a-1,0,a-1,r,1)),x&&e4(e$,e,"#FF0000",e.offsetXRoundedDown,1,a-e.offsetXRoundedDown,1,1),e$.globalAlpha=1,e4(e$,e,t&&e.perks.compound_interest&&"#FF0000"||ed("mobile-mode")&&"#FFFFFF"||"",e.offsetXRoundedDown,e.gameZoneHeight,a-e.offsetXRoundedDown,e.gameZoneHeight,1),!ed("basic")&&ed("contrast")&&_.svg&&"#000000"===_.color&&(e$.imageSmoothingEnabled=!0,e2.fillStyle="#FFFFFF",e2.globalAlpha=.25,e2.globalCompositeOperation="screen",e2.fillRect(0,0,e1.width,e1.height),e$.globalAlpha=1,e$.globalCompositeOperation="overlay",e$.drawImage(e1,0,0,a,r),e$.imageSmoothingEnabled=!1),e$.globalCompositeOperation="source-over",e$.globalAlpha=1,ed("mobile-mode")&&!e.running&&__(e$,Z("play.mobile_press_to_play"),e.puckColor,e.puckHeight,e.canvasWidth/2,e.gameZoneHeight+(e.canvasHeight-e.gameZoneHeight)/2),g&&e$.resetTransform()}}(tw)),tw.running&&function(e){if(ed("record")){var _;l&&(_=e,p&&(p.drawImage(eJ,_.offsetXRoundedDown,0,_.gameZoneWidthRoundedUp,_.gameZoneHeight,0,0,c.width,c.height),p.fillStyle="#FFFFFF",p.textBaseline="top",p.font="12px monospace",p.textAlign="right",p.fillText(_.score.toString(),c.width-12,12),p.textAlign="left",p.fillText("Level "+(_.currentLevel+1)+"/"+eR(_),12,12)),(null==u?void 0:u.requestFrame)?null==u||u.requestFrame():(null==l?void 0:l.requestFrame)&&l.requestFrame())}}(tw),ed("sound")&&function(e){if(!(eg>Date.now()-60))for(var _ in eg=Date.now(),e.aboutToPlaySound){var t,a=e.aboutToPlaySound[_];a.vol&&(eb[_](Math.min(2,a.vol),(t=e,Math.max(0,Math.min(1,(a.x-t.offsetXRoundedDown)/t.gameZoneWidthRoundedUp))),e.combo),a.vol=0)}}(tw),requestAnimationFrame(e),ti++}(),function(){var e=document.getElementById("tooltip");if(ed("mobile-mode")){e.style.display="none";return}function _(_){e.style.transform="translate(".concat(_.clientX,"px,").concat(_.clientY,"px) translate(").concat(_.clientX>window.innerWidth/2?"-100%":"0",",").concat(_.clientY>2*window.innerHeight/3?"-100%":"20px",")")}function t(){e.style.display="none",a=null}var a=null;document.body.addEventListener("mouseenter",function(r){for(var s,o=r.target;o&&!o.hasAttribute("data-tooltip");)o=o.parentElement;(null==o?void 0:null===(s=o.getAttribute("data-tooltip"))||void 0===s?void 0:s.trim())?(e.innerHTML=(a=o).getAttribute("data-tooltip")||"",e.style.display="",_(r)):t()},!0),setInterval(function(){a&&!document.body.contains(a)&&t()},200),document.body.addEventListener("mousemove",function(t){e.style.display||_(t)},!0),document.body.addEventListener("mouseleave",function(e){t()},!0)}(),null===(g=document.getElementById("menu"))||void 0===g||g.setAttribute("data-tooltip",Z("play.menu_tooltip"))}();