\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]"));function X(e){for(var _=0,t=0;t \n ").concat(_.name,"\n ").concat(_.help(Math.max(1,e.perks[_.id])),"\n ".concat(E("score_panel.upgrades_picked")," ".concat(E("score_panel.upcoming_levels")," ").concat(_,"\n '.concat(e.title,'\n \n
\n '.concat(c.title,'\n \n
\n\n'),i.slice(i.indexOf(c)+1).slice(0,3).forEach(function(e){l+='\n\n '.concat(e.title," \n
\n")})}var g=i.filter(function(e){return e.threshold>o&&e.threshold".concat(_,"
\n").concat(E("gameOver.cumulative_total",{startTs:o,endTs:s}),"
\n ").concat(l," \n "),{value:null,text:E("gameOver.restart"),help:""},' \n '.concat(eW(_$),"\n ").concat(function(e){var _="";try{var t=JSON.parse(localStorage.getItem("breakout_71_runs_history")||"[]");t.sort(function(e,_){return e.score-_.score}).reverse(),(t=t.slice(0,100)).push(W(k({},e.runStatistics),{perks:e.perks,mode:e.mode,appVersion:Q})),localStorage.setItem("breakout_71_runs_history",JSON.stringify(t,null,2));var r=function(_,r,a){var n,l,s,o=t.filter(function(_){return(_.mode||"short")===e.mode}).map(function(e){return r(e)||0}),i=(n=Math).min.apply(n,x(o)),u=(l=Math).max.apply(l,x(o));if(i===u)return"";u-i<10&&(i=Math.max(0,u-10),u=Math.max(u,i+10));var c=Math.min(o.length,10);if(c<3)return"";for(var p=[],d=[],m=0;m".concat(E("gameOver.stats.intro",{count:t.length-1}),"
")+_)}catch(e){console.warn(e)}return _}(_$)," \n ")]}).then(function(){return _0({levelToAvoid:ex(_$).name})})}}function _t(e,_){var t=(null==_?void 0:_.level)?ee.filter(function(e){return e.name===(null==_?void 0:_.level)}):[],r=ee.filter(function(_){return e>=_.threshold}).filter(function(e){return e.name!==(null==_?void 0:_.level)}).filter(function(e){return e.name!==(null==_?void 0:_.levelToAvoid)}).sort(function(){return Math.random()-.5});return t.concat(r.slice(0,10).sort(function(e,_){return e.sortKey-_.sortKey}))}function _r(e){var _=B(),t=_t(_,e),r=k({},eh(e_),(null==e?void 0:e.perks)||{}),a=W(k({runLevels:t,level:t[0],currentLevel:0,upgradesOfferedFor:-1,perks:r,bannedPerks:eh(e_),puckWidth:200,baseSpeed:12,combo:1,gridSize:12,running:!1,isGameOver:!1,ballStickToPuck:!0,puckPosition:400,lastPuckPosition:400,lastPuckMove:0,pauseTimeout:null,canvasWidth:0,canvasHeight:0,offsetX:0,offsetXRoundedDown:0,gameZoneWidth:0,gameZoneWidthRoundedUp:0,gameZoneHeight:0,brickWidth:0,score:0,lastScoreIncrease:-1e3,lastExplosion:-1e3,lastBrickBroken:0,highScore:parseFloat(localStorage.getItem("breakout-3-hsbreakout-3-hs-"+(null==e?void 0:e.mode))||"0"),balls:[],ballsColor:"white",bricks:[],brickHP:[],lights:{indexMin:0,total:0,list:[]},particles:{indexMin:0,total:0,list:[]},texts:{indexMin:0,total:0,list:[]},coins:{indexMin:0,total:0,list:[]},respawns:{indexMin:0,total:0,list:[]},levelStartScore:0,levelMisses:0,levelSpawnedCoins:0,puckColor:"#FFF",ballSize:20,coinSize:14,puckHeight:20,totalScoreAtRunStart:_,pauseUsesDuringRun:0,keyboardPuckSpeed:0,lastTick:performance.now(),lastTickDown:0,runStatistics:{started:Date.now(),levelsPlayed:0,runTime:0,coins_spawned:0,score:0,best_level_score:-1,worst_level_score:-1,bricks_broken:0,misses:0,balls_lost:0,puck_bounces:0,wall_bounces:0,upgrades_picked:1,max_combo:1,max_level:0},lastOffered:{},levelTime:0,winAt:0,levelWallBounces:0,needsRender:!0,autoCleanUses:0},{aboutToPlaySound:{wallBeep:{vol:0,x:0},comboIncreaseMaybe:{vol:0,x:0},comboDecrease:{vol:0,x:0},coinBounce:{vol:0,x:0},explode:{vol:0,x:0},lifeLost:{vol:0,x:0},coinCatch:{vol:0,x:0},colorChange:{vol:0,x:0}}}),{rerolls:0,loop:0,baseCombo:1,mode:(null==e?void 0:e.mode)||"short",readyToRender:!0});if(_l(a),!eg(a.perks)){var n=ey(a).filter(function(e){return e.giftable}),l=er("easy")&&"slow_down"||n[Math.floor(Math.random()*n.length)].id;r[l]=1,_m(a,l)}var s=!0,o=!1,i=void 0;try{for(var u,c=e_[Symbol.iterator]();!(s=(u=c.next()).done);s=!0){var p=u.value;a.perks[p.id]&&_m(a,p.id)}}catch(e){o=!0,i=e}finally{try{s||null==c.return||c.return()}finally{if(o)throw i}}return a}var f=b("5mG9B"),S=b("6QuVk");function _a(){return(_a=(0,f._)(function(e,_){var t,r,a;return(0,S.__generator)(this,function(n){switch(n.label){case 0:e.readyToRender=!1,t=R("creativeModePerks_"+_,{}),e_.forEach(function(_){t[_.id]=Math.min(t[_.id]||0,_.max-e.bannedPerks[_.id])}),a=["extra_levels","shunt","one_more_choice","instant_upgrade"],n.label=1;case 1:return[4,e7({title:E("lab.title",{lvl:_+1}),actionsAsGrid:!0,content:[E("lab.instructions"),{value:"reset",text:E("lab.reset"),disabled:!eg(t)}].concat(x(e_.filter(function(e){return!a.includes(e.id)}).map(function(_){return{icon:_.icon,text:_.name,help:(t[_.id]||0)+"/"+(_.max-e.bannedPerks[_.id]),value:_,disabled:_.max-e.bannedPerks[_.id]<=0,className:t[_.id]?"sandbox":"sandbox grey-out-unless-hovered",tooltip:_.help(t[_.id]||1)}})),[E("lab.select_level")],x(ee.map(function(e){return{icon:$[e.name],text:e.name,value:e,tooltip:em(e)}})))})];case 2:if(!(r=n.sent()))return[3,3];if("reset"===r)e_.forEach(function(e){t[e.id]=0});else{if("bricks"in r)return L("creativeModePerks_"+_,t),e_.forEach(function(_){e.perks[_.id]=t[_.id],e.bannedPerks[_.id]+=t[_.id]}),e.runLevels[_]=r,[3,3];r&&(t[r.id]=((t[r.id]||0)+1)%(r.max-e.bannedPerks[r.id]+1))}return[3,1];case 3:return[2]}})})).apply(this,arguments)}function _n(e,_){e.puckPosition=_,e.needsRender=!0}function _l(e){_s(e);var _,t=1+((null===(_=e.perks)||void 0===_?void 0:_.multiball)||0),r=e.puckWidth/(t+1);e.balls=[],e.ballsColor="#FFF",(e.perks.picky_eater||e.perks.pierce_color)&&(e.ballsColor=function(e){var _,t,r={};e.forEach(function(e){return r[e]=(r[e]||0)+1});var a=(t=Math).max.apply(t,x(Object.keys(r).map(function(e){return r[e]})));return(_=Object.keys(r).filter(function(e){return r[e]==a}))[Math.floor(_.length*Math.random())]}(e.bricks.filter(function(e){return e}))||"#FFF");for(var a=0;a".concat(E("level_up.before_buttons",{score:e.score-e.levelStartScore,catchGain:a,levelSpawnedCoins:e.levelSpawnedCoins,time:Math.round(e.levelTime/1e3),timeGain:r,levelMisses:e.levelMisses,missesGain:l,levelWallBounces:e.levelWallBounces,wallHitsGain:n,compliment:o}),"\n
\n").concat(E("level_up.after_buttons",{level:e.currentLevel+1,max:ek(e)}),"
\n").concat(ew(e),"
\n")].concat(x(s),[eW(e),''])})];case 2:return"reroll"===(i=u.sent())?(t++,e.rerolls--):(e.perks[i]++,"instant_upgrade"===i&&(t+=2),e.runStatistics.upgrades_picked++),[3,1];case 3:return[2]}})})).apply(this,arguments)}function _B(e,_){return ef(_$,Math.floor(_/_$.brickWidth),Math.floor((e-_$.offsetX)/_$.brickWidth))}function _C(e){if(_$.bricks[e])return e}function _O(e,_,t){var r,a,n;return null!==(n=null!==(a=null!==(r=_C(_B(e-t,_-t)))&&void 0!==r?r:_C(_B(e+t,_-t)))&&void 0!==a?a:_C(_B(e+t,_+t)))&&void 0!==n?n:_C(_B(e-t,_+t))}window.addEventListener("resize",_R),window.addEventListener("fullscreenchange",_R),setInterval(function(){var e=eC.getBoundingClientRect(),_=e.width,t=e.height;(_!==_$.canvasWidth||t!==_$.canvasHeight)&&_R()},1e3),eC.addEventListener("mouseup",function(e){0===e.button&&(_$.running?_H(!0):(_P(),er("pointerLock")&&eC.requestPointerLock&&eC.requestPointerLock().then()))}),eC.addEventListener("mousemove",function(e){document.pointerLockElement===eC?_n(_$,_$.puckPosition+e.movementX):_n(_$,e.x)}),eC.addEventListener("touchstart",function(e){var _;e.preventDefault(),(null===(_=e.touches)||void 0===_?void 0:_.length)&&(_n(_$,e.touches[0].pageX),_s(_$),_P())}),eC.addEventListener("touchend",function(e){e.preventDefault(),_H(!0)}),eC.addEventListener("touchcancel",function(e){e.preventDefault(),_H(!0)}),eC.addEventListener("touchmove",function(e){var _;(null===(_=e.touches)||void 0===_?void 0:_.length)&&_n(_$,e.touches[0].pageX)});var _T=0,_A=60;function _E(){return _j.apply(this,arguments)}function _j(){return(_j=(0,f._)(function(){return(0,S.__generator)(this,function(e){switch(e.label){case 0:return _H(!0),[4,e8({title:_$.loop?E("score_panel.title_looped",{loop:_$.loop,score:_$.score,level:_$.currentLevel+1,max:ek(_$)}):E("score_panel.title",{score:_$.score,level:_$.currentLevel+1,max:ek(_$)}),content:[eW(_$),ew(_$),_$.rerolls?E("score_panel.rerolls_count",{rerolls:_$.rerolls}):""],allowClose:!0})];case 1:return e.sent(),[2]}})})).apply(this,arguments)}setInterval(function(){_A=_T,_T=0},1e3),window.addEventListener("visibilitychange",function(){document.hidden&&_H(!0)}),eY.addEventListener("click",function(e){e.preventDefault(),e2||_E()}),document.addEventListener("visibilitychange",function(){document.hidden&&_H(!0)}),document.getElementById("menu").addEventListener("click",function(e){e.preventDefault(),e2||_V()});var _D=(p=Math).max.apply(p,x(e_.map(function(e){return e.threshold})));function _V(){return _Z.apply(this,arguments)}function _Z(){return(_Z=(0,f._)(function(){var e,_;return(0,S.__generator)(this,function(t){switch(t.label){case 0:return _H(!0),e=[{icon:$["icon:7_levels_run"],text:E("main_menu.normal"),help:eH("short")||E("main_menu.normal_help"),value:function(){_0({levelToAvoid:ex(_$).name,mode:"short"})}},{icon:$["icon:loop"],text:E("main_menu.loop_run"),help:eH("long")||B()<_D&&E("lab.unlocks_at",{score:_D})||E("main_menu.loop_run_help"),value:function(){_0({levelToAvoid:ex(_$).name,mode:"long"})},disabled:B()<_D},{icon:$["icon:sandbox"],text:E("lab.menu_entry"),help:eH("creative")||B()<_D&&E("lab.unlocks_at",{score:_D})||E("lab.help"),disabled:B()<_D,value:function(){return(0,f._)(function(){return(0,S.__generator)(this,function(e){switch(e.label){case 0:return[4,_U(_$)];case 1:return e.sent()&&_0({mode:"creative"}),[2]}})})()}},{icon:$["icon:unlocks"],text:E("main_menu.unlocks"),help:E("main_menu.unlocks_help"),value:function(){(function(){_X.apply(this,arguments)})()}}].concat(x(function(e){if(!er("donation_reminder"))return[];var _=V();return[{text:E("main_menu.donate",{hours:_}),help:E("main_menu.donate_help",{suggestion:Math.min(20,Math.max(1,.2*_)).toFixed(0)}),icon:$["icon:premium"],value:function(){window.open("https://paypal.me/renanlecaro","_blank")}}]}(0)),[{text:E("main_menu.settings_title"),help:E("main_menu.settings_help"),icon:$["icon:settings"],value:function(){_I()}},{icon:$["icon:help"],text:E("main_menu.help_title"),help:E("main_menu.help_help"),value:function(){return(0,f._)(function(){return(0,S.__generator)(this,function(e){switch(e.label){case 0:return[4,e8({title:E("main_menu.help_title"),allowClose:!0,content:[Z(E("main_menu.help_content")),E("main_menu.help_upgrades")].concat(x(e_.map(function(e){return'\n\n ").concat(e.name,"
\n ").concat(e.help(1),"\n
\n ").concat(e.name,'
\n ').concat(e.credit," \n
".concat(E("unlocks.intro",{ts:e}),"\n ").concat(r<100?E("unlocks.greyed_out_help"):"","
")].concat(x(_),[E("unlocks.level")],x(t)),allowClose:!0,actionsAsGrid:!0})];case 1:if(!(a=n.sent()))return[3,3];return[4,_U(_$)];case 2:n.sent()&&_0(W(k({},a),{mode:"short"})),n.label=3;case 3:return[2]}})})).apply(this,arguments)}function _U(e){return _Y.apply(this,arguments)}function _Y(){return(_Y=(0,f._)(function(e){return(0,S.__generator)(this,function(_){return!e.currentLevel||e2?[2,!0]:[2,e8({title:E("confirmRestart.title"),content:[E("confirmRestart.text"),{value:!0,text:E("confirmRestart.yes")},{value:!1,text:E("confirmRestart.no")}]})]})})).apply(this,arguments)}var _J={ArrowLeft:0,ArrowRight:0,Shift:0};function _K(e,_){_J[e]=_,_$.keyboardPuckSpeed=(_J.ArrowRight-_J.ArrowLeft)*(1+2*_J.Shift)*_$.gameZoneWidth/50}document.addEventListener("keydown",(t=(0,f._)(function(e){return(0,S.__generator)(this,function(_){return"f"!==e.key.toLowerCase()||e.ctrlKey||e.metaKey?e.key in _J&&_K(e.key,1):(ea("fullscreen"),_N())," "!==e.key||e2||(_$.running?_H(!0):_P(),e.preventDefault()),[2]})}),function(e){return t.apply(this,arguments)}));var _Q=new Date;document.addEventListener("keyup",(r=(0,f._)(function(e){var _,t,r,a,n;return(0,S.__generator)(this,function(l){switch(l.label){case 0:if(n=document.querySelector("button:focus"),!(e.key in _J))return[3,1];return _K(e.key,0),[3,10];case 1:if("ArrowDown"!==e.key||(null==n?void 0:null===(_=n.nextElementSibling)||void 0===_?void 0:_.tagName)!=="BUTTON")return[3,2];return null==n||null===(t=n.nextElementSibling)||void 0===t||t.focus(),[3,10];case 2:if("ArrowUp"!==e.key||(null==n?void 0:null===(r=n.previousElementSibling)||void 0===r?void 0:r.tagName)!=="BUTTON")return[3,3];return null==n||null===(a=n.previousElementSibling)||void 0===a||a.focus(),[3,10];case 3:if(!("Escape"===e.key&&e4))return[3,4];return e4(),[3,10];case 4:if(!("Escape"===e.key&&_$.running))return[3,5];return _H(!0),[3,10];case 5:if(!("m"===e.key.toLowerCase()&&!e2))return[3,6];return _V().then(),[3,10];case 6:if(!("s"===e.key.toLowerCase()&&!e2))return[3,7];return _E().then(),[3,10];case 7:if(!("r"===e.key.toLowerCase()&&!e2&&_Q>Date.now()+1e3))return[3,9];return[4,_U(_$)];case 8:return l.sent()&&_0({levelToAvoid:ex(_$).name,mode:_$.mode}),[3,10];case 9:return[2];case 10:return e.preventDefault(),[2]}})}),function(e){return r.apply(this,arguments)}));var _$=_r({mode:"short"});function _0(e){_R(),Object.assign(_$,_r(e)),e0(),_b(_$,0)}_0(window.location.search.includes("stressTest")&&{perks:{pierce:2,bigger_explosions:10,sapper:3},mode:"long"}||{mode:"short"}),function e(){var _=performance.now(),t=_-_$.lastTick;_$.lastTick=_;var r=Math.min(4,t/(1e3/60));_$.keyboardPuckSpeed&&_n(_$,_$.puckPosition+_$.keyboardPuckSpeed),_s(_$),_$.running&&(_$.levelTime+=t,_$.runStatistics.runTime+=t,function(e){var _=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;e.runStatistics.max_combo=Math.max(e.runStatistics.max_combo,e.combo),e.perks.addiction&&e.lastBrickBroken&&e.lastBrickBroken