quotes fix
diff --git a/.eslintrc.json b/.eslintrc.json
index a03f5f6..ec17483 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -24,7 +24,6 @@
         "keyword-spacing": "off",
         "spaced-comment": "off",
         "max-len": "off",
-        "quotes": "off",
         "space-infix-ops": "off",
         "semi-spacing": "off",
         "one-var-declaration-per-line": "off",
diff --git a/player/js/3rd_party/BezierEaser.js b/player/js/3rd_party/BezierEaser.js
index 85b8634..82c4268 100644
--- a/player/js/3rd_party/BezierEaser.js
+++ b/player/js/3rd_party/BezierEaser.js
@@ -33,7 +33,7 @@
     var kSplineTableSize = 11;
     var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
 
-    var float32ArraySupported = typeof Float32Array === "function";
+    var float32ArraySupported = typeof Float32Array === 'function';
 
     function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }
     function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }
diff --git a/player/js/3rd_party/howler.js b/player/js/3rd_party/howler.js
index d8890e1..fbaacbe 100644
--- a/player/js/3rd_party/howler.js
+++ b/player/js/3rd_party/howler.js
@@ -1,4 +1,4 @@
 /*! howler.js v2.2.0 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
-!function(){ "use strict";var e=function(){ this.init() };e.prototype={init:function(){ var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e },volume:function(e){ var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){ if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){ var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e) }return o }return o._volume },mute:function(e){ var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){ var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted) }return o },stop:function(){ for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e },unload:function(){ for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e },codecs:function(e){ return(this||n)._codecs[e.replace(/^x-/,"")] },_setup:function(){ var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{ var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay") }catch(n){ e.noAudio=!0 }else e.noAudio=!0;try{ var o=new Audio;o.muted&&(e.noAudio=!0) }catch(e){}return e.noAudio||e._setupCodecs(),e },_setupCodecs:function(){ var e=this||n,o=null;try{ o="undefined"!=typeof Audio?new Audio:null }catch(n){ return e }if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e },_unlockAudio:function(){ var e=this||n;if(!e._audioUnlocked&&e.ctx){ e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){ for(;e._html5AudioPool.length<e.html5PoolSize;)try{ var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t) }catch(n){ e.noAudio=!0;break }for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){ var i=e._howls[r]._soundById(a[u]);i&&i._node&&!i._node._unlocked&&(i._node._unlocked=!0,i._node.load()) }e._autoResume();var d=e.ctx.createBufferSource();d.buffer=e._scratchBuffer,d.connect(e.ctx.destination),void 0===d.start?d.noteOn(0):d.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),d.onended=function(){ d.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",o,!0),document.removeEventListener("touchend",o,!0),document.removeEventListener("click",o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock") } };return document.addEventListener("touchstart",o,!0),document.addEventListener("touchend",o,!0),document.addEventListener("click",o,!0),e } },_obtainHtml5Audio:function(){ var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){ console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.") }),new Audio },_releaseHtml5Audio:function(e){ var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o },_autoSuspend:function(){ var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){ for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){ if(e.autoSuspend){ e._suspendTimer=null,e.state="suspending";var n=function(){ e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume()) };e.ctx.suspend().then(n,n) } },3e4),e } },_autoResume:function(){ var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then(function(){ e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume") }),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e }};var n=new e,o=function(e){ var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e) };o.prototype={init:function(e){ var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){ o.play() }}),o._preload&&"none"!==o._preload&&o.load(),o },load:function(){ var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){ var u,i;if(e._format&&e._format[r])u=e._format[r];else{ if("string"!=typeof(i=e._src[r])){ e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue }u=/^data:audio\/([^;,]+);/i.exec(i),u||(u=/\.([^.]+)$/.exec(i.split("?",1)[0])),u&&(u=u[1].toLowerCase()) }if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){ o=e._src[r];break } }return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.") },play:function(e,o){ var t=this,r=null;if("number"==typeof e)r=e,e=null;else{ if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){ for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null } }var i=r?t._soundById(r):t._inactiveSound();if(!i)return null;if(r&&!e&&(e=i._sprite||"__default"),"loaded"!==t._state){ i._sprite=e,i._ended=!1;var d=i._id;return t._queue.push({event:"play",action:function(){ t.play(d) }}),d }if(r&&!i._paused)return o||t._loadQueue("play"),i._id;t._webAudio&&n._autoResume();var _=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;i._sprite=e,i._ended=!1;var p=function(){ i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=!(!i._loop&&!t._sprite[e][2]) };if(_>=f)return void t._ended(i);var m=i._node;if(t._webAudio){ var v=function(){ t._playLock=!1,p(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?i._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):i._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){ t._emit("play",i._id),t._loadQueue() },0) };"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(i._id)) }else{ var h=function(){ m.currentTime=_,m.muted=i._muted||t._muted||n._muted||m.muted,m.volume=i._volume*n.volume(),m.playbackRate=i._rate;try{ var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){ t._playLock=!1,m._unlocked=!0,o||(t._emit("play",i._id),t._loadQueue()) }).catch(function(){ t._playLock=!1,t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),i._ended=!0,i._paused=!0 })):o||(t._playLock=!1,p(),t._emit("play",i._id),t._loadQueue()),m.playbackRate=i._rate,m.paused)return void t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){ t._ended(i),m.removeEventListener("ended",t._endTimers[i._id],!1) },m.addEventListener("ended",t._endTimers[i._id],!1)) }catch(e){ t._emit("playerror",i._id,e) } };"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{ t._playLock=!0;var g=function(){ h(),m.removeEventListener(n._canPlayEvent,g,!1) };m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(i._id) } }return i._id },pause:function(e){ var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){ n.pause(e) }}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){ n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){ if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node) }else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null) }return n },stop:function(e,n){ var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){ o.stop(e) }}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){ o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit("stop",a._id)) }return o },mute:function(e,o){ var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){ t.mute(e,o) }}),t;if(void 0===o){ if("boolean"!=typeof e)return t._muted;t._muted=e }for(var r=t._getSoundIds(o),a=0;a<r.length;a++){ var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id)) }return t },volume:function(){ var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){ t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0]) }else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){ t.volume.apply(t,r) }}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t },fade:function(e,o,t,r){ var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){ a.fade(e,o,t,r) }}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),i=0;i<u.length;i++){ var d=a._soundById(u[i]);if(d){ if(r||a._stopFade(u[i]),a._webAudio&&!d._muted){ var _=n.ctx.currentTime,s=_+t/1e3;d._volume=e,d._node.gain.setValueAtTime(e,_),d._node.gain.linearRampToValueAtTime(o,s) }a._startFadeInterval(d,e,o,t,u[i],void 0===r) } }return a },_startFadeInterval:function(e,n,o,t,r,a){ var u=this,i=n,d=o-n,_=Math.abs(d/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){ var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=d<0?Math.max(o,i):Math.min(o,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(o<n&&i<=o||o>n&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id)) },s) },_stopFade:function(e){ var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o },loop:function(){ var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){ if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e }else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t },rate:function(){ var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){ var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0]) }else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if("number"!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){ t.rate.apply(t,r) }}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d<o.length;d++)if(i=t._soundById(o[d])){ t.playing(o[d])&&(i._rateSeek=t.seek(o[d]),i._playStart=t._webAudio?n.ctx.currentTime:i._playStart),i._rate=e,t._webAudio&&i._node&&i._node.bufferSource?i._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):i._node&&(i._node.playbackRate=e);var _=t.seek(o[d]),s=(t._sprite[i._sprite][0]+t._sprite[i._sprite][1])/1e3-_,l=1e3*s/Math.abs(i._rate);!t._endTimers[o[d]]&&i._paused||(t._clearTimer(o[d]),t._endTimers[o[d]]=setTimeout(t._ended.bind(t,i),l)),t._emit("rate",i._id) }return t },seek:function(){ var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){ var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0])) }else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"seek",action:function(){ t.seek.apply(t,r) }}),t;var i=t._soundById(o);if(i){ if(!("number"==typeof e&&e>=0)){ if(t._webAudio){ var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate)) }return i._node.currentTime }var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){ t._emit("seek",o),s&&t.play(o,!0) };if(s&&!t._webAudio){ var c=function(){ t._playLock?setTimeout(c,0):l() };setTimeout(c,0) }else l() }return t },playing:function(e){ var n=this;if("number"==typeof e){ var o=n._soundById(e);return!!o&&!o._paused }for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1 },duration:function(e){ var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o },state:function(){ return this._state },unload:function(){ for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){ u=!1;break }return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null },on:function(e,n,o,t){ var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r },off:function(e,n,o){ var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){ var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){ r.splice(a,1);break } }else if(e)t["_on"+e]=[];else{ var i=Object.keys(t);for(a=0;a<i.length;a++)0===i[a].indexOf("_on")&&Array.isArray(t[i[a]])&&(t[i[a]]=[]) }return t },once:function(e,n,o){ var t=this;return t.on(e,n,o,1),t },_emit:function(e,n,o){ for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){ e.call(this,n,o) }.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t },_loadQueue:function(e){ var n=this;if(n._queue.length>0){ var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action() }return n },_ended:function(e){ var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){ o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a) }return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o },_clearTimer:function(e){ var n=this;if(n._endTimers[e]){ if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{ var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1) }delete n._endTimers[e] }return n },_soundById:function(e){ for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null },_inactiveSound:function(){ var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e) },_drain:function(){ var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){ for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){ if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--) } } },_getSoundIds:function(e){ var n=this;if(void 0===e){ for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o }return[e] },_refreshBuffer:function(e){ var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o },_cleanBuffer:function(e){ var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{ e.bufferSource.buffer=n._scratchBuffer }catch(e){}return e.bufferSource=null,o },_clearSound:function(e){ /MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA") }};var t=function(e){ this._parent=e,this.init() };t.prototype={init:function(){ var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e },create:function(){ var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e },reset:function(){ var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e },_errorListener:function(){ var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1) },_loadListener:function(){ var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1) }};var r={},a=function(e){ var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){ for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);i(t.buffer,e) }else{ var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){ _.setRequestHeader(n,e._xhr.headers[n]) }),_.onload=function(){ var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");i(_.response,e) },_.onerror=function(){ e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load()) },u(_) } },u=function(e){ try{ e.send() }catch(n){ e.onerror() } },i=function(e,o){ var t=function(){ o._emit("loaderror",null,"Decoding audio data failed.") },a=function(e){ e&&o._sounds.length>0?(r[o._src]=e,d(o,e)):t() };"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t) },d=function(e,n){ n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue()) },_=function(){ if(n.usingWebAudio){ try{ "undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1 }catch(e){ n.usingWebAudio=!1 }n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){ var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1) }n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup() } };"function"==typeof define&&define.amd&&define([],function(){ return{Howler:n,Howl:o} }),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t) }();
+!function(){ 'use strict';var e=function(){ this.init() };e.prototype={init:function(){ var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent='canplaythrough',e._navigator='undefined'!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e },volume:function(e){ var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){ if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){ var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e) }return o }return o._volume },mute:function(e){ var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){ var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted) }return o },stop:function(){ for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e },unload:function(){ for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e },codecs:function(e){ return(this||n)._codecs[e.replace(/^x-/,'')] },_setup:function(){ var e=this||n;if(e.state=e.ctx?e.ctx.state||'suspended':'suspended',e._autoSuspend(),!e.usingWebAudio)if('undefined'!=typeof Audio)try{ var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent='canplay') }catch(n){ e.noAudio=!0 }else e.noAudio=!0;try{ var o=new Audio;o.muted&&(e.noAudio=!0) }catch(e){}return e.noAudio||e._setupCodecs(),e },_setupCodecs:function(){ var e=this||n,o=null;try{ o='undefined'!=typeof Audio?new Audio:null }catch(n){ return e }if(!o||'function'!=typeof o.canPlayType)return e;var t=o.canPlayType('audio/mpeg;').replace(/^no$/,''),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split('/')[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType('audio/mp3;').replace(/^no$/,'')),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,''),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,''),aac:!!o.canPlayType('audio/aac;').replace(/^no$/,''),caf:!!o.canPlayType('audio/x-caf;').replace(/^no$/,''),m4a:!!(o.canPlayType('audio/x-m4a;')||o.canPlayType('audio/m4a;')||o.canPlayType('audio/aac;')).replace(/^no$/,''),m4b:!!(o.canPlayType('audio/x-m4b;')||o.canPlayType('audio/m4b;')||o.canPlayType('audio/aac;')).replace(/^no$/,''),mp4:!!(o.canPlayType('audio/x-mp4;')||o.canPlayType('audio/mp4;')||o.canPlayType('audio/aac;')).replace(/^no$/,''),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,''),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,''),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,''),flac:!!(o.canPlayType('audio/x-flac;')||o.canPlayType('audio/flac;')).replace(/^no$/,'')},e },_unlockAudio:function(){ var e=this||n;if(!e._audioUnlocked&&e.ctx){ e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){ for(;e._html5AudioPool.length<e.html5PoolSize;)try{ var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t) }catch(n){ e.noAudio=!0;break }for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){ var i=e._howls[r]._soundById(a[u]);i&&i._node&&!i._node._unlocked&&(i._node._unlocked=!0,i._node.load()) }e._autoResume();var d=e.ctx.createBufferSource();d.buffer=e._scratchBuffer,d.connect(e.ctx.destination),void 0===d.start?d.noteOn(0):d.start(0),'function'==typeof e.ctx.resume&&e.ctx.resume(),d.onended=function(){ d.disconnect(0),e._audioUnlocked=!0,document.removeEventListener('touchstart',o,!0),document.removeEventListener('touchend',o,!0),document.removeEventListener('click',o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit('unlock') } };return document.addEventListener('touchstart',o,!0),document.addEventListener('touchend',o,!0),document.addEventListener('click',o,!0),e } },_obtainHtml5Audio:function(){ var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&'undefined'!=typeof Promise&&(o instanceof Promise||'function'==typeof o.then)&&o.catch(function(){ console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.') }),new Audio },_releaseHtml5Audio:function(e){ var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o },_autoSuspend:function(){ var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){ for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){ if(e.autoSuspend){ e._suspendTimer=null,e.state='suspending';var n=function(){ e.state='suspended',e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume()) };e.ctx.suspend().then(n,n) } },3e4),e } },_autoResume:function(){ var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return'running'===e.state&&'interrupted'!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):'suspended'===e.state||'running'===e.state&&'interrupted'===e.ctx.state?(e.ctx.resume().then(function(){ e.state='running';for(var n=0;n<e._howls.length;n++)e._howls[n]._emit('resume') }),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):'suspending'===e.state&&(e._resumeAfterSuspend=!0),e }};var n=new e,o=function(e){ var n=this;if(!e.src||0===e.src.length)return void console.error('An array of source files must be passed with any new Howl.');n.init(e) };o.prototype={init:function(e){ var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format='string'!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload='boolean'!=typeof e.preload&&'metadata'!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src='string'!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:'GET',headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state='unloaded',o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:'play',action:function(){ o.play() }}),o._preload&&'none'!==o._preload&&o.load(),o },load:function(){ var e=this,o=null;if(n.noAudio)return void e._emit('loaderror',null,'No audio support.');'string'==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){ var u,i;if(e._format&&e._format[r])u=e._format[r];else{ if('string'!=typeof(i=e._src[r])){ e._emit('loaderror',null,'Non-string found in selected audio sources - ignoring.');continue }u=/^data:audio\/([^;,]+);/i.exec(i),u||(u=/\.([^.]+)$/.exec(i.split('?',1)[0])),u&&(u=u[1].toLowerCase()) }if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){ o=e._src[r];break } }return o?(e._src=o,e._state='loading','https:'===window.location.protocol&&'http:'===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit('loaderror',null,'No codec support for selected audio sources.') },play:function(e,o){ var t=this,r=null;if('number'==typeof e)r=e,e=null;else{ if('string'==typeof e&&'loaded'===t._state&&!t._sprite[e])return null;if(void 0===e&&(e='__default',!t._playLock)){ for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null } }var i=r?t._soundById(r):t._inactiveSound();if(!i)return null;if(r&&!e&&(e=i._sprite||'__default'),'loaded'!==t._state){ i._sprite=e,i._ended=!1;var d=i._id;return t._queue.push({event:'play',action:function(){ t.play(d) }}),d }if(r&&!i._paused)return o||t._loadQueue('play'),i._id;t._webAudio&&n._autoResume();var _=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;i._sprite=e,i._ended=!1;var p=function(){ i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=!(!i._loop&&!t._sprite[e][2]) };if(_>=f)return void t._ended(i);var m=i._node;if(t._webAudio){ var v=function(){ t._playLock=!1,p(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?i._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):i._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){ t._emit('play',i._id),t._loadQueue() },0) };'running'===n.state&&'interrupted'!==n.ctx.state?v():(t._playLock=!0,t.once('resume',v),t._clearTimer(i._id)) }else{ var h=function(){ m.currentTime=_,m.muted=i._muted||t._muted||n._muted||m.muted,m.volume=i._volume*n.volume(),m.playbackRate=i._rate;try{ var r=m.play();if(r&&'undefined'!=typeof Promise&&(r instanceof Promise||'function'==typeof r.then)?(t._playLock=!0,p(),r.then(function(){ t._playLock=!1,m._unlocked=!0,o||(t._emit('play',i._id),t._loadQueue()) }).catch(function(){ t._playLock=!1,t._emit('playerror',i._id,'Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.'),i._ended=!0,i._paused=!0 })):o||(t._playLock=!1,p(),t._emit('play',i._id),t._loadQueue()),m.playbackRate=i._rate,m.paused)return void t._emit('playerror',i._id,'Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.');'__default'!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){ t._ended(i),m.removeEventListener('ended',t._endTimers[i._id],!1) },m.addEventListener('ended',t._endTimers[i._id],!1)) }catch(e){ t._emit('playerror',i._id,e) } };'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA'===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{ t._playLock=!0;var g=function(){ h(),m.removeEventListener(n._canPlayEvent,g,!1) };m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(i._id) } }return i._id },pause:function(e){ var n=this;if('loaded'!==n._state||n._playLock)return n._queue.push({event:'pause',action:function(){ n.pause(e) }}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){ n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){ if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node) }else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit('pause',r?r._id:null) }return n },stop:function(e,n){ var o=this;if('loaded'!==o._state||o._playLock)return o._queue.push({event:'stop',action:function(){ o.stop(e) }}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){ o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit('stop',a._id)) }return o },mute:function(e,o){ var t=this;if('loaded'!==t._state||t._playLock)return t._queue.push({event:'mute',action:function(){ t.mute(e,o) }}),t;if(void 0===o){ if('boolean'!=typeof e)return t._muted;t._muted=e }for(var r=t._getSoundIds(o),a=0;a<r.length;a++){ var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit('mute',u._id)) }return t },volume:function(){ var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){ t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0]) }else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if('loaded'!==t._state||t._playLock)return t._queue.push({event:'volume',action:function(){ t.volume.apply(t,r) }}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit('volume',a._id));return t },fade:function(e,o,t,r){ var a=this;if('loaded'!==a._state||a._playLock)return a._queue.push({event:'fade',action:function(){ a.fade(e,o,t,r) }}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),i=0;i<u.length;i++){ var d=a._soundById(u[i]);if(d){ if(r||a._stopFade(u[i]),a._webAudio&&!d._muted){ var _=n.ctx.currentTime,s=_+t/1e3;d._volume=e,d._node.gain.setValueAtTime(e,_),d._node.gain.linearRampToValueAtTime(o,s) }a._startFadeInterval(d,e,o,t,u[i],void 0===r) } }return a },_startFadeInterval:function(e,n,o,t,r,a){ var u=this,i=n,d=o-n,_=Math.abs(d/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){ var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=d<0?Math.max(o,i):Math.min(o,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(o<n&&i<=o||o>n&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit('fade',e._id)) },s) },_stopFade:function(e){ var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit('fade',e)),o },loop:function(){ var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){ if('boolean'!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e }else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t },rate:function(){ var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){ var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0]) }else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if('number'!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if('loaded'!==t._state||t._playLock)return t._queue.push({event:'rate',action:function(){ t.rate.apply(t,r) }}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d<o.length;d++)if(i=t._soundById(o[d])){ t.playing(o[d])&&(i._rateSeek=t.seek(o[d]),i._playStart=t._webAudio?n.ctx.currentTime:i._playStart),i._rate=e,t._webAudio&&i._node&&i._node.bufferSource?i._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):i._node&&(i._node.playbackRate=e);var _=t.seek(o[d]),s=(t._sprite[i._sprite][0]+t._sprite[i._sprite][1])/1e3-_,l=1e3*s/Math.abs(i._rate);!t._endTimers[o[d]]&&i._paused||(t._clearTimer(o[d]),t._endTimers[o[d]]=setTimeout(t._ended.bind(t,i),l)),t._emit('rate',i._id) }return t },seek:function(){ var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){ var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0])) }else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if('loaded'!==t._state||t._playLock)return t._queue.push({event:'seek',action:function(){ t.seek.apply(t,r) }}),t;var i=t._soundById(o);if(i){ if(!('number'==typeof e&&e>=0)){ if(t._webAudio){ var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate)) }return i._node.currentTime }var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){ t._emit('seek',o),s&&t.play(o,!0) };if(s&&!t._webAudio){ var c=function(){ t._playLock?setTimeout(c,0):l() };setTimeout(c,0) }else l() }return t },playing:function(e){ var n=this;if('number'==typeof e){ var o=n._soundById(e);return!!o&&!o._paused }for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1 },duration:function(e){ var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o },state:function(){ return this._state },unload:function(){ for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener('error',o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){ u=!1;break }return r&&u&&delete r[e._src],n.noAudio=!1,e._state='unloaded',e._sounds=[],e=null,null },on:function(e,n,o,t){ var r=this,a=r['_on'+e];return'function'==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r },off:function(e,n,o){ var t=this,r=t['_on'+e],a=0;if('number'==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){ var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){ r.splice(a,1);break } }else if(e)t['_on'+e]=[];else{ var i=Object.keys(t);for(a=0;a<i.length;a++)0===i[a].indexOf('_on')&&Array.isArray(t[i[a]])&&(t[i[a]]=[]) }return t },once:function(e,n,o){ var t=this;return t.on(e,n,o,1),t },_emit:function(e,n,o){ for(var t=this,r=t['_on'+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&'load'!==e||(setTimeout(function(e){ e.call(this,n,o) }.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t },_loadQueue:function(e){ var n=this;if(n._queue.length>0){ var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action() }return n },_ended:function(e){ var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit('end',e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){ o._emit('play',e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a) }return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o },_clearTimer:function(e){ var n=this;if(n._endTimers[e]){ if('function'!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{ var o=n._soundById(e);o&&o._node&&o._node.removeEventListener('ended',n._endTimers[e],!1) }delete n._endTimers[e] }return n },_soundById:function(e){ for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null },_inactiveSound:function(){ var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e) },_drain:function(){ var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){ for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){ if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--) } } },_getSoundIds:function(e){ var n=this;if(void 0===e){ for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o }return[e] },_refreshBuffer:function(e){ var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o },_cleanBuffer:function(e){ var o=this,t=n._navigator&&n._navigator.vendor.indexOf('Apple')>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{ e.bufferSource.buffer=n._scratchBuffer }catch(e){}return e.bufferSource=null,o },_clearSound:function(e){ /MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src='data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') }};var t=function(e){ this._parent=e,this.init() };t.prototype={init:function(){ var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite='__default',e._id=++n._counter,o._sounds.push(e),e.create(),e },create:function(){ var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener('error',e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?'auto':o._preload,e._node.volume=t*n.volume(),e._node.load()),e },reset:function(){ var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite='__default',e._id=++n._counter,e },_errorListener:function(){ var e=this;e._parent._emit('loaderror',e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener('error',e._errorFn,!1) },_loadListener:function(){ var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),'loaded'!==o._state&&(o._state='loaded',o._emit('load'),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1) }};var r={},a=function(e){ var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){ for(var o=atob(n.split(',')[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);i(t.buffer,e) }else{ var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType='arraybuffer',e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){ _.setRequestHeader(n,e._xhr.headers[n]) }),_.onload=function(){ var n=(_.status+'')[0];if('0'!==n&&'2'!==n&&'3'!==n)return void e._emit('loaderror',null,'Failed loading audio file with status: '+_.status+'.');i(_.response,e) },_.onerror=function(){ e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load()) },u(_) } },u=function(e){ try{ e.send() }catch(n){ e.onerror() } },i=function(e,o){ var t=function(){ o._emit('loaderror',null,'Decoding audio data failed.') },a=function(e){ e&&o._sounds.length>0?(r[o._src]=e,d(o,e)):t() };'undefined'!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t) },d=function(e,n){ n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),'loaded'!==e._state&&(e._state='loaded',e._emit('load'),e._loadQueue()) },_=function(){ if(n.usingWebAudio){ try{ 'undefined'!=typeof AudioContext?n.ctx=new AudioContext:'undefined'!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1 }catch(e){ n.usingWebAudio=!1 }n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){ var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1) }n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup() } };'function'==typeof define&&define.amd&&define([],function(){ return{Howler:n,Howl:o} }),'undefined'!=typeof exports&&(exports.Howler=n,exports.Howl=o),'undefined'!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):'undefined'!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t) }();
 /*! Spatial Plugin */
-!function(){ "use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){ var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n },HowlerGlobal.prototype.pos=function(e,n,t){ var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r },HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){ var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n="number"!=typeof n?s[1]:n,t="number"!=typeof t?s[2]:t,r="number"!=typeof r?s[3]:r,o="number"!=typeof o?s[4]:o,i="number"!=typeof i?s[5]:i,"number"!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a) },Howl.prototype.init=function(e){ return function(n){ var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n) } }(Howl.prototype.init),Howl.prototype.stereo=function(n,t){ var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){ r.stereo(n,t) }}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){ if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0] }for(var i=r._getSoundIds(t),a=0;a<i.length;a++){ var s=r._soundById(i[a]);if(s){ if("number"!=typeof n)return s._stereo;s._stereo=n,s._pos=[n,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||e(s,o),"spatial"===o?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(n,0,0):s._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit("stereo",s._id) } }return r },Howl.prototype.pos=function(n,t,r,o){ var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"pos",action:function(){ i.pos(n,t,r,o) }}),i;if(t="number"!=typeof t?0:t,r="number"!=typeof r?-.5:r,void 0===o){ if("number"!=typeof n)return i._pos;i._pos=[n,t,r] }for(var a=i._getSoundIds(o),s=0;s<a.length;s++){ var p=i._soundById(a[s]);if(p){ if("number"!=typeof n)return p._pos;p._pos=[n,t,r],p._node&&(p._panner&&!p._panner.pan||e(p,"spatial"),void 0!==p._panner.positionX?(p._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.positionY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setPosition(n,t,r)),i._emit("pos",p._id) } }return i },Howl.prototype.orientation=function(n,t,r,o){ var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"orientation",action:function(){ i.orientation(n,t,r,o) }}),i;if(t="number"!=typeof t?i._orientation[1]:t,r="number"!=typeof r?i._orientation[2]:r,void 0===o){ if("number"!=typeof n)return i._orientation;i._orientation=[n,t,r] }for(var a=i._getSoundIds(o),s=0;s<a.length;s++){ var p=i._soundById(a[s]);if(p){ if("number"!=typeof n)return p._orientation;p._orientation=[n,t,r],p._node&&(p._panner||(p._pos||(p._pos=i._pos||[0,0,-.5]),e(p,"spatial")),void 0!==p._panner.orientationX?(p._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.orientationY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setOrientation(n,t,r)),i._emit("orientation",p._id) } }return i },Howl.prototype.pannerAttr=function(){ var n,t,r,o=this,i=arguments;if(!o._webAudio)return o;if(0===i.length)return o._pannerAttr;if(1===i.length){ if("object"!=typeof i[0])return r=o._soundById(parseInt(i[0],10)),r?r._pannerAttr:o._pannerAttr;n=i[0],void 0===t&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),o._pannerAttr={coneInnerAngle:void 0!==n.pannerAttr.coneInnerAngle?n.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:void 0!==n.pannerAttr.coneOuterAngle?n.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:void 0!==n.pannerAttr.coneOuterGain?n.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:void 0!==n.pannerAttr.distanceModel?n.pannerAttr.distanceModel:o._distanceModel,maxDistance:void 0!==n.pannerAttr.maxDistance?n.pannerAttr.maxDistance:o._maxDistance,refDistance:void 0!==n.pannerAttr.refDistance?n.pannerAttr.refDistance:o._refDistance,rolloffFactor:void 0!==n.pannerAttr.rolloffFactor?n.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:void 0!==n.pannerAttr.panningModel?n.pannerAttr.panningModel:o._panningModel}) }else 2===i.length&&(n=i[0],t=parseInt(i[1],10));for(var a=o._getSoundIds(t),s=0;s<a.length;s++)if(r=o._soundById(a[s])){ var p=r._pannerAttr;p={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:p.coneInnerAngle,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:p.coneOuterAngle,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:p.coneOuterGain,distanceModel:void 0!==n.distanceModel?n.distanceModel:p.distanceModel,maxDistance:void 0!==n.maxDistance?n.maxDistance:p.maxDistance,refDistance:void 0!==n.refDistance?n.refDistance:p.refDistance,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:p.rolloffFactor,panningModel:void 0!==n.panningModel?n.panningModel:p.panningModel};var c=r._panner;c?(c.coneInnerAngle=p.coneInnerAngle,c.coneOuterAngle=p.coneOuterAngle,c.coneOuterGain=p.coneOuterGain,c.distanceModel=p.distanceModel,c.maxDistance=p.maxDistance,c.refDistance=p.refDistance,c.rolloffFactor=p.rolloffFactor,c.panningModel=p.panningModel):(r._pos||(r._pos=o._pos||[0,0,-.5]),e(r,"spatial")) }return o },Sound.prototype.init=function(e){ return function(){ var n=this,t=n._parent;n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,e.call(this),n._stereo?t.stereo(n._stereo):n._pos&&t.pos(n._pos[0],n._pos[1],n._pos[2],n._id) } }(Sound.prototype.init),Sound.prototype.reset=function(e){ return function(){ var n=this,t=n._parent;return n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,n._stereo?t.stereo(n._stereo):n._pos?t.pos(n._pos[0],n._pos[1],n._pos[2],n._id):n._panner&&(n._panner.disconnect(0),n._panner=void 0,t._refreshBuffer(n)),e.call(this) } }(Sound.prototype.reset);var e=function(e,n){ n=n||"spatial","spatial"===n?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0) } }();
+!function(){ 'use strict';HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){ var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n },HowlerGlobal.prototype.pos=function(e,n,t){ var r=this;return r.ctx&&r.ctx.listener?(n='number'!=typeof n?r._pos[1]:n,t='number'!=typeof t?r._pos[2]:t,'number'!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r },HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){ var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n='number'!=typeof n?s[1]:n,t='number'!=typeof t?s[2]:t,r='number'!=typeof r?s[3]:r,o='number'!=typeof o?s[4]:o,i='number'!=typeof i?s[5]:i,'number'!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a) },Howl.prototype.init=function(e){ return function(n){ var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:'inverse',maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:'HRTF',refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n) } }(Howl.prototype.init),Howl.prototype.stereo=function(n,t){ var r=this;if(!r._webAudio)return r;if('loaded'!==r._state)return r._queue.push({event:'stereo',action:function(){ r.stereo(n,t) }}),r;var o=void 0===Howler.ctx.createStereoPanner?'spatial':'stereo';if(void 0===t){ if('number'!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0] }for(var i=r._getSoundIds(t),a=0;a<i.length;a++){ var s=r._soundById(i[a]);if(s){ if('number'!=typeof n)return s._stereo;s._stereo=n,s._pos=[n,0,0],s._node&&(s._pannerAttr.panningModel='equalpower',s._panner&&s._panner.pan||e(s,o),'spatial'===o?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(n,0,0):s._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit('stereo',s._id) } }return r },Howl.prototype.pos=function(n,t,r,o){ var i=this;if(!i._webAudio)return i;if('loaded'!==i._state)return i._queue.push({event:'pos',action:function(){ i.pos(n,t,r,o) }}),i;if(t='number'!=typeof t?0:t,r='number'!=typeof r?-.5:r,void 0===o){ if('number'!=typeof n)return i._pos;i._pos=[n,t,r] }for(var a=i._getSoundIds(o),s=0;s<a.length;s++){ var p=i._soundById(a[s]);if(p){ if('number'!=typeof n)return p._pos;p._pos=[n,t,r],p._node&&(p._panner&&!p._panner.pan||e(p,'spatial'),void 0!==p._panner.positionX?(p._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.positionY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setPosition(n,t,r)),i._emit('pos',p._id) } }return i },Howl.prototype.orientation=function(n,t,r,o){ var i=this;if(!i._webAudio)return i;if('loaded'!==i._state)return i._queue.push({event:'orientation',action:function(){ i.orientation(n,t,r,o) }}),i;if(t='number'!=typeof t?i._orientation[1]:t,r='number'!=typeof r?i._orientation[2]:r,void 0===o){ if('number'!=typeof n)return i._orientation;i._orientation=[n,t,r] }for(var a=i._getSoundIds(o),s=0;s<a.length;s++){ var p=i._soundById(a[s]);if(p){ if('number'!=typeof n)return p._orientation;p._orientation=[n,t,r],p._node&&(p._panner||(p._pos||(p._pos=i._pos||[0,0,-.5]),e(p,'spatial')),void 0!==p._panner.orientationX?(p._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.orientationY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setOrientation(n,t,r)),i._emit('orientation',p._id) } }return i },Howl.prototype.pannerAttr=function(){ var n,t,r,o=this,i=arguments;if(!o._webAudio)return o;if(0===i.length)return o._pannerAttr;if(1===i.length){ if('object'!=typeof i[0])return r=o._soundById(parseInt(i[0],10)),r?r._pannerAttr:o._pannerAttr;n=i[0],void 0===t&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),o._pannerAttr={coneInnerAngle:void 0!==n.pannerAttr.coneInnerAngle?n.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:void 0!==n.pannerAttr.coneOuterAngle?n.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:void 0!==n.pannerAttr.coneOuterGain?n.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:void 0!==n.pannerAttr.distanceModel?n.pannerAttr.distanceModel:o._distanceModel,maxDistance:void 0!==n.pannerAttr.maxDistance?n.pannerAttr.maxDistance:o._maxDistance,refDistance:void 0!==n.pannerAttr.refDistance?n.pannerAttr.refDistance:o._refDistance,rolloffFactor:void 0!==n.pannerAttr.rolloffFactor?n.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:void 0!==n.pannerAttr.panningModel?n.pannerAttr.panningModel:o._panningModel}) }else 2===i.length&&(n=i[0],t=parseInt(i[1],10));for(var a=o._getSoundIds(t),s=0;s<a.length;s++)if(r=o._soundById(a[s])){ var p=r._pannerAttr;p={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:p.coneInnerAngle,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:p.coneOuterAngle,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:p.coneOuterGain,distanceModel:void 0!==n.distanceModel?n.distanceModel:p.distanceModel,maxDistance:void 0!==n.maxDistance?n.maxDistance:p.maxDistance,refDistance:void 0!==n.refDistance?n.refDistance:p.refDistance,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:p.rolloffFactor,panningModel:void 0!==n.panningModel?n.panningModel:p.panningModel};var c=r._panner;c?(c.coneInnerAngle=p.coneInnerAngle,c.coneOuterAngle=p.coneOuterAngle,c.coneOuterGain=p.coneOuterGain,c.distanceModel=p.distanceModel,c.maxDistance=p.maxDistance,c.refDistance=p.refDistance,c.rolloffFactor=p.rolloffFactor,c.panningModel=p.panningModel):(r._pos||(r._pos=o._pos||[0,0,-.5]),e(r,'spatial')) }return o },Sound.prototype.init=function(e){ return function(){ var n=this,t=n._parent;n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,e.call(this),n._stereo?t.stereo(n._stereo):n._pos&&t.pos(n._pos[0],n._pos[1],n._pos[2],n._id) } }(Sound.prototype.init),Sound.prototype.reset=function(e){ return function(){ var n=this,t=n._parent;return n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,n._stereo?t.stereo(n._stereo):n._pos?t.pos(n._pos[0],n._pos[1],n._pos[2],n._id):n._panner&&(n._panner.disconnect(0),n._panner=void 0,t._refreshBuffer(n)),e.call(this) } }(Sound.prototype.reset);var e=function(e,n){ n=n||'spatial','spatial'===n?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0) } }();
diff --git a/player/js/3rd_party/transformation-matrix.js b/player/js/3rd_party/transformation-matrix.js
index 9d3c303..3476713 100644
--- a/player/js/3rd_party/transformation-matrix.js
+++ b/player/js/3rd_party/transformation-matrix.js
@@ -374,7 +374,7 @@
         var _d = roundMatrixProperty(props[5]);
         var _e = roundMatrixProperty(props[12]);
         var _f = roundMatrixProperty(props[13]);
-        return "matrix(" + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ")";
+        return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';
     }
 
     return function(){
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index 5c16476..85d0c2b 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -93,7 +93,7 @@
 AnimationItem.prototype.setData = function (wrapper, animationData) {
     var params = {
         wrapper: wrapper,
-        animationData: animationData ? (typeof animationData  === "object") ? animationData : JSON.parse(animationData) : null
+        animationData: animationData ? (typeof animationData  === 'object') ? animationData : JSON.parse(animationData) : null
     };
     var wrapperAttributes = wrapper.attributes;
 
@@ -110,7 +110,7 @@
         params.loop = parseInt(loop);
     }
     var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') ? wrapperAttributes.getNamedItem('data-anim-autoplay').value :  wrapperAttributes.getNamedItem('data-bm-autoplay') ? wrapperAttributes.getNamedItem('data-bm-autoplay').value :  wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;
-    params.autoplay = autoplay !== "false";
+    params.autoplay = autoplay !== 'false';
 
     params.name = wrapperAttributes.getNamedItem('data-name') ? wrapperAttributes.getNamedItem('data-name').value :  wrapperAttributes.getNamedItem('data-bm-name') ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value :  '';
     var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') ? wrapperAttributes.getNamedItem('data-anim-prerender').value :  wrapperAttributes.getNamedItem('data-bm-prerender') ? wrapperAttributes.getNamedItem('data-bm-prerender').value :  wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';
diff --git a/player/js/elements/ImageElement.js b/player/js/elements/ImageElement.js
index 50f0d69..81e7049 100644
--- a/player/js/elements/ImageElement.js
+++ b/player/js/elements/ImageElement.js
@@ -11,8 +11,8 @@
     var assetPath = this.globalData.getAssetsPath(this.assetData);
 
     this.innerElem = createNS('image');
-    this.innerElem.setAttribute('width',this.assetData.w+"px");
-    this.innerElem.setAttribute('height',this.assetData.h+"px");
+    this.innerElem.setAttribute('width',this.assetData.w+'px');
+    this.innerElem.setAttribute('height',this.assetData.h+'px');
     this.innerElem.setAttribute('preserveAspectRatio',this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);
     this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);
     
diff --git a/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js b/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js
index 881fe69..8a8832f 100644
--- a/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js
+++ b/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js
@@ -43,7 +43,7 @@
 SVGGradientFillStyleData.prototype.setGradientOpacity = function(data, styleOb){
     if(this.g._hasOpacity && !this.g._collapsable){
         var stop, j, jLen;
-        var mask = createNS("mask");
+        var mask = createNS('mask');
         var maskElement = createNS( 'path');
         mask.appendChild(maskElement);
         var opacityId = createElementID();
diff --git a/player/js/elements/htmlElements/HCameraElement.js b/player/js/elements/htmlElements/HCameraElement.js
index 3fcd129..266c79a 100644
--- a/player/js/elements/htmlElements/HCameraElement.js
+++ b/player/js/elements/htmlElements/HCameraElement.js
@@ -44,7 +44,7 @@
         comp = this.comp.threeDElements[i];
         if(comp.type === '3d') {
             comp.perspectiveElem.style.perspective = comp.perspectiveElem.style.webkitPerspective = this.pe.v+'px';
-            comp.container.style.transformOrigin = comp.container.style.mozTransformOrigin = comp.container.style.webkitTransformOrigin = "0px 0px 0px";
+            comp.container.style.transformOrigin = comp.container.style.mozTransformOrigin = comp.container.style.webkitTransformOrigin = '0px 0px 0px';
             comp.perspectiveElem.style.transform = comp.perspectiveElem.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';
         }
     }
diff --git a/player/js/elements/htmlElements/HImageElement.js b/player/js/elements/htmlElements/HImageElement.js
index 2a17340..8bfe075 100644
--- a/player/js/elements/htmlElements/HImageElement.js
+++ b/player/js/elements/htmlElements/HImageElement.js
@@ -12,8 +12,8 @@
 
     if(this.data.hasMask){
         this.imageElem = createNS('image');
-        this.imageElem.setAttribute('width',this.assetData.w+"px");
-        this.imageElem.setAttribute('height',this.assetData.h+"px");
+        this.imageElem.setAttribute('width',this.assetData.w+'px');
+        this.imageElem.setAttribute('height',this.assetData.h+'px');
         this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);
         this.layerElement.appendChild(this.imageElem);
         this.baseElement.setAttribute('width',this.assetData.w);
diff --git a/player/js/elements/htmlElements/HTextElement.js b/player/js/elements/htmlElements/HTextElement.js
index 00bb5e0..e03679d 100644
--- a/player/js/elements/htmlElements/HTextElement.js
+++ b/player/js/elements/htmlElements/HTextElement.js
@@ -143,7 +143,7 @@
             }
         }else{
             tSpan.textContent = letters[i].val;
-            tSpan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space","preserve");
+            tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space','preserve');
             if(!this.isMasked){
                 this.innerElem.appendChild(tParent);
                 //
diff --git a/player/js/elements/svgElements/SVGBaseElement.js b/player/js/elements/svgElements/SVGBaseElement.js
index 2341225..537372e 100644
--- a/player/js/elements/svgElements/SVGBaseElement.js
+++ b/player/js/elements/svgElements/SVGBaseElement.js
@@ -152,6 +152,6 @@
         if (!this.matteElement) {
             return;
         }
-        this.matteElement.setAttribute("mask", "url(" + locationHref + "#" + id + ")");
+        this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');
     }
 };
diff --git a/player/js/elements/svgElements/SVGTextElement.js b/player/js/elements/svgElements/SVGTextElement.js
index 5918583..580eb86 100644
--- a/player/js/elements/svgElements/SVGTextElement.js
+++ b/player/js/elements/svgElements/SVGTextElement.js
@@ -133,10 +133,10 @@
                 }
             } else {
                 if(singleShape) {
-                    tSpan.setAttribute("transform", "translate(" + matrixHelper.props[12] + "," + matrixHelper.props[13] + ")");
+                    tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');
                 }
                 tSpan.textContent = letters[i].val;
-                tSpan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space","preserve");
+                tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space','preserve');
             }
             //
         }
diff --git a/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js b/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js
index 411f67e..c106372 100644
--- a/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js
+++ b/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js
@@ -27,7 +27,7 @@
         var sigmaX = (dimensions == 3) ? 0 : sigma;
         var sigmaY = (dimensions == 2) ? 0 : sigma;
 
-        this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + " " + sigmaY);
+        this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);
 
         // Repeat edges mapping:
         //
diff --git a/player/js/mask.js b/player/js/mask.js
index 772973d..1b9c939 100644
--- a/player/js/mask.js
+++ b/player/js/mask.js
@@ -124,7 +124,7 @@
 
     if(count > 0){
         this.maskElement.setAttribute('id', layerId);
-        this.element.maskedElement.setAttribute(maskRef, "url(" + locationHref + "#" + layerId + ")");
+        this.element.maskedElement.setAttribute(maskRef, 'url(' + locationHref + '#' + layerId + ')');
         defs.appendChild(this.maskElement);
     }
     if (this.viewData.length) {
@@ -186,16 +186,16 @@
 };
 
 MaskElement.prototype.drawPath = function(pathData,pathNodes,viewData){
-    var pathString = " M"+pathNodes.v[0][0]+','+pathNodes.v[0][1];
+    var pathString = ' M'+pathNodes.v[0][0]+','+pathNodes.v[0][1];
     var i, len;
     len = pathNodes._length;
     for(i=1;i<len;i+=1){
         //pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[i][0]+','+pathNodes.i[i][1] + " "+pathNodes.v[i][0]+','+pathNodes.v[i][1];
-        pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[i][0]+','+pathNodes.i[i][1] + " "+pathNodes.v[i][0]+','+pathNodes.v[i][1];
+        pathString += ' C'+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + ' '+pathNodes.i[i][0]+','+pathNodes.i[i][1] + ' '+pathNodes.v[i][0]+','+pathNodes.v[i][1];
     }
         //pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[0][0]+','+pathNodes.i[0][1] + " "+pathNodes.v[0][0]+','+pathNodes.v[0][1];
     if(pathNodes.c && len > 1){
-        pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[0][0]+','+pathNodes.i[0][1] + " "+pathNodes.v[0][0]+','+pathNodes.v[0][1];
+        pathString += ' C'+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + ' '+pathNodes.i[0][0]+','+pathNodes.i[0][1] + ' '+pathNodes.v[0][0]+','+pathNodes.v[0][1];
     }
     //pathNodes.__renderedString = pathString;
 
diff --git a/player/js/module.js b/player/js/module.js
index f143f21..bee0d0e 100644
--- a/player/js/module.js
+++ b/player/js/module.js
@@ -1,4 +1,4 @@
-"use strict";
+'use strict';
 /*<%= contents %>*/
 var lottie = {};
 
@@ -62,11 +62,11 @@
 
 function getFactory(name) {
     switch (name) {
-        case "propertyFactory":
+        case 'propertyFactory':
             return PropertyFactory;
-        case "shapePropertyFactory":
+        case 'shapePropertyFactory':
             return ShapePropertyFactory;
-        case "matrix":
+        case 'matrix':
             return Matrix;
     }
 }
@@ -99,7 +99,7 @@
 lottie.version = '[[BM_VERSION]]';
 
 function checkReady() {
-    if (document.readyState === "complete") {
+    if (document.readyState === 'complete') {
         clearInterval(readyStateCheckInterval);
         searchAnimations();
     }
diff --git a/player/js/module_worker.js b/player/js/module_worker.js
index a70be77..cc4377f 100644
--- a/player/js/module_worker.js
+++ b/player/js/module_worker.js
@@ -1,5 +1,5 @@
 var lottiejs = (function(window) {
-    "use strict";
+    'use strict';
     /*<%= contents %>*/
     var lottiejs = {};
 
@@ -61,7 +61,7 @@
 var onmessage = function(evt) {
     var canvas = evt.data.canvas;
     var params = evt.data.params;
-    var ctx = canvas.getContext("2d");
+    var ctx = canvas.getContext('2d');
     var animation = lottiejs.loadAnimation({
         renderer: 'canvas',
         loop: evt.data.loop,
diff --git a/player/js/renderers/CanvasRenderer.js b/player/js/renderers/CanvasRenderer.js
index d936e64..bef4c10 100644
--- a/player/js/renderers/CanvasRenderer.js
+++ b/player/js/renderers/CanvasRenderer.js
@@ -143,7 +143,7 @@
         this.animationItem.container.style.height = '100%';
         //this.animationItem.container.style.transform = 'translate3d(0,0,0)';
         //this.animationItem.container.style.webkitTransform = 'translate3d(0,0,0)';
-        this.animationItem.container.style.transformOrigin = this.animationItem.container.style.mozTransformOrigin = this.animationItem.container.style.webkitTransformOrigin = this.animationItem.container.style['-webkit-transform'] = "0px 0px 0px";
+        this.animationItem.container.style.transformOrigin = this.animationItem.container.style.mozTransformOrigin = this.animationItem.container.style.webkitTransformOrigin = this.animationItem.container.style['-webkit-transform'] = '0px 0px 0px';
         this.animationItem.wrapper.appendChild(this.animationItem.container);
         this.canvasContext = this.animationItem.container.getContext('2d');
         if(this.renderConfig.className) {
diff --git a/player/js/renderers/CanvasRendererWorkerOverride.js b/player/js/renderers/CanvasRendererWorkerOverride.js
index dd11758..cd371cb 100644
--- a/player/js/renderers/CanvasRendererWorkerOverride.js
+++ b/player/js/renderers/CanvasRendererWorkerOverride.js
@@ -5,7 +5,7 @@
         this.animationItem.container.style.height = '100%';
         //this.animationItem.container.style.transform = 'translate3d(0,0,0)';
         //this.animationItem.container.style.webkitTransform = 'translate3d(0,0,0)';
-        this.animationItem.container.style.transformOrigin = this.animationItem.container.style.mozTransformOrigin = this.animationItem.container.style.webkitTransformOrigin = this.animationItem.container.style['-webkit-transform'] = "0px 0px 0px";
+        this.animationItem.container.style.transformOrigin = this.animationItem.container.style.mozTransformOrigin = this.animationItem.container.style.webkitTransformOrigin = this.animationItem.container.style['-webkit-transform'] = '0px 0px 0px';
         this.animationItem.wrapper.appendChild(this.animationItem.container);
         this.canvasContext = this.animationItem.container.getContext('2d');
         if(this.renderConfig.className) {
diff --git a/player/js/renderers/HybridRenderer.js b/player/js/renderers/HybridRenderer.js
index c2f8797..2de3f0a 100644
--- a/player/js/renderers/HybridRenderer.js
+++ b/player/js/renderers/HybridRenderer.js
@@ -136,7 +136,7 @@
     if(type === '3d') {
         perspectiveElem.style.width = this.globalData.compSize.w+'px';
         perspectiveElem.style.height = this.globalData.compSize.h+'px';
-        perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = "50% 50%";
+        perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = '50% 50%';
         container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';
     }
     
@@ -208,7 +208,7 @@
     resizerElem.style.height = animData.h+'px';
     this.resizerElem = resizerElem;
     styleDiv(resizerElem);
-    resizerElem.style.transformStyle = resizerElem.style.webkitTransformStyle = resizerElem.style.mozTransformStyle = "flat";
+    resizerElem.style.transformStyle = resizerElem.style.webkitTransformStyle = resizerElem.style.mozTransformStyle = 'flat';
     if(this.renderConfig.className) {
       resizerElem.setAttribute('class', this.renderConfig.className);
     }
diff --git a/player/js/renderers/SVGRenderer.js b/player/js/renderers/SVGRenderer.js
index 5b2b3d9..5bd0892 100644
--- a/player/js/renderers/SVGRenderer.js
+++ b/player/js/renderers/SVGRenderer.js
@@ -131,7 +131,7 @@
     var maskId = createElementID();
     maskElement.setAttribute('id', maskId);
     maskElement.appendChild(rect);
-    this.layerElement.setAttribute("clip-path", "url(" + locationHref + "#"+maskId+")");
+    this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#'+maskId+')');
 
     defs.appendChild(maskElement);
     this.layers = animData.layers;
diff --git a/player/js/utils/FontManager.js b/player/js/utils/FontManager.js
index bb4457b..66ac2a0 100644
--- a/player/js/utils/FontManager.js
+++ b/player/js/utils/FontManager.js
@@ -148,8 +148,8 @@
                     s.setAttribute('f-forigin', fontArr[i].fOrigin);
                     s.setAttribute('f-origin', fontArr[i].origin);
                     s.setAttribute('f-family', fontArr[i].fFamily);
-                    s.type = "text/css";
-                    s.innerText = "@font-face {" + "font-family: "+fontArr[i].fFamily+"; font-style: normal; src: url('"+fontArr[i].fPath+"');}";
+                    s.type = 'text/css';
+                    s.innerText = '@font-face {' + 'font-family: '+fontArr[i].fFamily+"; font-style: normal; src: url('"+fontArr[i].fPath+"');}";
                     defs.appendChild(s);
                 }
             } else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){
@@ -166,8 +166,8 @@
                     var l = createTag('link');
                     l.setAttribute('f-forigin', fontArr[i].fOrigin);
                     l.setAttribute('f-origin', fontArr[i].origin);
-                    l.type = "text/css";
-                    l.rel = "stylesheet";
+                    l.type = 'text/css';
+                    l.rel = 'stylesheet';
                     l.href = fontArr[i].fPath;
                     document.body.appendChild(l);
                 }
diff --git a/player/js/utils/asset_loader.js b/player/js/utils/asset_loader.js
index 3c9c634..d01d15f 100644
--- a/player/js/utils/asset_loader.js
+++ b/player/js/utils/asset_loader.js
@@ -17,7 +17,7 @@
         // set responseType after calling open or IE will break.
         try {
             // This crashes on Android WebView prior to KitKat
-            xhr.responseType = "json";
+            xhr.responseType = 'json';
         } catch (err) {}
         xhr.send();
         xhr.onreadystatechange = function () {
diff --git a/player/js/utils/common.js b/player/js/utils/common.js
index 72f8387..346ffb8 100644
--- a/player/js/utils/common.js
+++ b/player/js/utils/common.js
@@ -14,7 +14,7 @@
 
 var BMMath = {};
 (function(){
-    var propertyNames = ["abs", "acos", "acosh", "asin", "asinh", "atan", "atanh", "atan2", "ceil", "cbrt", "expm1", "clz32", "cos", "cosh", "exp", "floor", "fround", "hypot", "imul", "log", "log1p", "log2", "log10", "max", "min", "pow", "random", "round", "sign", "sin", "sinh", "sqrt", "tan", "tanh", "trunc", "E", "LN10", "LN2", "LOG10E", "LOG2E", "PI", "SQRT1_2", "SQRT2"];
+    var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];
     var i, len = propertyNames.length;
     for(i=0;i<len;i+=1){
         BMMath[propertyNames[i]] = Math[propertyNames[i]];
@@ -59,7 +59,7 @@
     element.style.display = 'block';
     element.style.transformOrigin = element.style.webkitTransformOrigin = '0 0';
     element.style.backfaceVisibility  = element.style.webkitBackfaceVisibility = 'visible';
-    element.style.transformStyle = element.style.webkitTransformStyle = element.style.mozTransformStyle = "preserve-3d";
+    element.style.transformStyle = element.style.webkitTransformStyle = element.style.mozTransformStyle = 'preserve-3d';
 }
 
 function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier){
diff --git a/player/js/utils/expressions/CompInterface.js b/player/js/utils/expressions/CompInterface.js
index fb3124f..df3d7c1 100644
--- a/player/js/utils/expressions/CompInterface.js
+++ b/player/js/utils/expressions/CompInterface.js
@@ -11,7 +11,7 @@
             return null;
             //return {active:false};
         }
-        Object.defineProperty(_thisLayerFunction, "_name", { value: comp.data.nm });
+        Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });
         _thisLayerFunction.layer = _thisLayerFunction;
         _thisLayerFunction.pixelAspect = 1;
         _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index e9e8223..e220d31 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -623,7 +623,7 @@
                 fromCompToSurface = fromComp;
             }
             if (!transform) {
-                transform = elem.layerInterface("ADBE Transform Group");
+                transform = elem.layerInterface('ADBE Transform Group');
                 $bm_transform = transform;
                 if(transform) {
                     anchorPoint = transform.anchorPoint;
@@ -634,7 +634,7 @@
             }
             
             if (elemType === 4 && !content) {
-                content = thisLayer("ADBE Root Vectors Group");
+                content = thisLayer('ADBE Root Vectors Group');
             }
             if (!effect) {
                 effect = thisLayer(4);
@@ -651,7 +651,7 @@
             this.frameExpressionId = elem.globalData.frameId;
 
             //TODO: Check if it's possible to return on ShapeInterface the .v value
-            if (scoped_bm_rt.propType === "shape") {
+            if (scoped_bm_rt.propType === 'shape') {
                 scoped_bm_rt = scoped_bm_rt.v;
             }
             // globalData.popExpression();
diff --git a/player/js/utils/expressions/LayerInterface.js b/player/js/utils/expressions/LayerInterface.js
index 9614356..13f44d6 100644
--- a/player/js/utils/expressions/LayerInterface.js
+++ b/player/js/utils/expressions/LayerInterface.js
@@ -86,22 +86,22 @@
 
         function _thisLayerFunction(name){
             switch(name){
-                case "ADBE Root Vectors Group":
-                case "Contents":
+                case 'ADBE Root Vectors Group':
+                case 'Contents':
                 case 2:
                     return _thisLayerFunction.shapeInterface;
                 case 1:
                 case 6:
-                case "Transform":
-                case "transform":
-                case "ADBE Transform Group":
+                case 'Transform':
+                case 'transform':
+                case 'ADBE Transform Group':
                     return transformInterface;
                 case 4:
-                case "ADBE Effect Parade":
-                case "effects":
-                case "Effects":
+                case 'ADBE Effect Parade':
+                case 'effects':
+                case 'Effects':
                     return _thisLayerFunction.effect;
-                case "ADBE Text Properties":
+                case 'ADBE Text Properties':
                     return _thisLayerFunction.textInterface;
             }
         }
diff --git a/player/js/utils/expressions/TextInterface.js b/player/js/utils/expressions/TextInterface.js
index 9c34b79..2a54979 100644
--- a/player/js/utils/expressions/TextInterface.js
+++ b/player/js/utils/expressions/TextInterface.js
@@ -3,11 +3,11 @@
         var _prevValue, _sourceText;
         function _thisLayerFunction(name){
             switch(name){
-                case "ADBE Text Document":
+                case 'ADBE Text Document':
                     return _thisLayerFunction.sourceText;
             }
         }
-        Object.defineProperty(_thisLayerFunction, "sourceText", {
+        Object.defineProperty(_thisLayerFunction, 'sourceText', {
             get: function(){
                 elem.textProperty.getValue()
                 var stringValue = elem.textProperty.currentData.t;
diff --git a/player/js/utils/expressions/TransformInterface.js b/player/js/utils/expressions/TransformInterface.js
index 3d30689..164b903 100644
--- a/player/js/utils/expressions/TransformInterface.js
+++ b/player/js/utils/expressions/TransformInterface.js
@@ -2,24 +2,24 @@
     return function(transform){
         function _thisFunction(name){
             switch(name){
-                case "scale":
-                case "Scale":
-                case "ADBE Scale":
+                case 'scale':
+                case 'Scale':
+                case 'ADBE Scale':
                 case 6:
                     return _thisFunction.scale;
-                case "rotation":
-                case "Rotation":
-                case "ADBE Rotation":
-                case "ADBE Rotate Z":
+                case 'rotation':
+                case 'Rotation':
+                case 'ADBE Rotation':
+                case 'ADBE Rotate Z':
                 case 10:
                     return _thisFunction.rotation;
-                case "ADBE Rotate X":
+                case 'ADBE Rotate X':
                     return _thisFunction.xRotation;
-                case "ADBE Rotate Y":
+                case 'ADBE Rotate Y':
                     return _thisFunction.yRotation;
-                case "position":
-                case "Position":
-                case "ADBE Position":
+                case 'position':
+                case 'Position':
+                case 'ADBE Position':
                 case 2:
                     return _thisFunction.position;
                 case 'ADBE Position_0':
@@ -28,34 +28,34 @@
                     return _thisFunction.yPosition;
                 case 'ADBE Position_2':
                     return _thisFunction.zPosition;
-                case "anchorPoint":
-                case "AnchorPoint":
-                case "Anchor Point":
-                case "ADBE AnchorPoint":
+                case 'anchorPoint':
+                case 'AnchorPoint':
+                case 'Anchor Point':
+                case 'ADBE AnchorPoint':
                 case 1:
                     return _thisFunction.anchorPoint;
-                case "opacity":
-                case "Opacity":
+                case 'opacity':
+                case 'Opacity':
                 case 11:
                     return _thisFunction.opacity;
             }
         }
-        Object.defineProperty(_thisFunction, "rotation", {
+        Object.defineProperty(_thisFunction, 'rotation', {
             get: ExpressionPropertyInterface(transform.r || transform.rz)
         });
 
-        Object.defineProperty(_thisFunction, "zRotation", {
+        Object.defineProperty(_thisFunction, 'zRotation', {
             get: ExpressionPropertyInterface(transform.rz || transform.r)
         });
 
-        Object.defineProperty(_thisFunction, "xRotation", {
+        Object.defineProperty(_thisFunction, 'xRotation', {
             get: ExpressionPropertyInterface(transform.rx)
         });
 
-        Object.defineProperty(_thisFunction, "yRotation", {
+        Object.defineProperty(_thisFunction, 'yRotation', {
             get: ExpressionPropertyInterface(transform.ry)
         });
-        Object.defineProperty(_thisFunction, "scale", {
+        Object.defineProperty(_thisFunction, 'scale', {
             get: ExpressionPropertyInterface(transform.s)
         });
 
@@ -69,7 +69,7 @@
                 _pz = ExpressionPropertyInterface(transform.pz);
             }
         }
-        Object.defineProperty(_thisFunction, "position", {
+        Object.defineProperty(_thisFunction, 'position', {
             get: function () {
                 if(transform.p) {
                     return _transformFactory();
@@ -82,35 +82,35 @@
             }
         });
 
-        Object.defineProperty(_thisFunction, "xPosition", {
+        Object.defineProperty(_thisFunction, 'xPosition', {
             get: ExpressionPropertyInterface(transform.px)
         });
 
-        Object.defineProperty(_thisFunction, "yPosition", {
+        Object.defineProperty(_thisFunction, 'yPosition', {
             get: ExpressionPropertyInterface(transform.py)
         });
 
-        Object.defineProperty(_thisFunction, "zPosition", {
+        Object.defineProperty(_thisFunction, 'zPosition', {
             get: ExpressionPropertyInterface(transform.pz)
         });
 
-        Object.defineProperty(_thisFunction, "anchorPoint", {
+        Object.defineProperty(_thisFunction, 'anchorPoint', {
             get: ExpressionPropertyInterface(transform.a)
         });
 
-        Object.defineProperty(_thisFunction, "opacity", {
+        Object.defineProperty(_thisFunction, 'opacity', {
             get: ExpressionPropertyInterface(transform.o)
         });
 
-        Object.defineProperty(_thisFunction, "skew", {
+        Object.defineProperty(_thisFunction, 'skew', {
             get: ExpressionPropertyInterface(transform.sk)
         });
 
-        Object.defineProperty(_thisFunction, "skewAxis", {
+        Object.defineProperty(_thisFunction, 'skewAxis', {
             get: ExpressionPropertyInterface(transform.sa)
         });
 
-        Object.defineProperty(_thisFunction, "orientation", {
+        Object.defineProperty(_thisFunction, 'orientation', {
             get: ExpressionPropertyInterface(transform.or)
         });
 
diff --git a/player/js/utils/shapes/RepeaterModifier.js b/player/js/utils/shapes/RepeaterModifier.js
index 30dc84c..8bfb64f 100644
--- a/player/js/utils/shapes/RepeaterModifier.js
+++ b/player/js/utils/shapes/RepeaterModifier.js
@@ -95,7 +95,7 @@
                     it:this.cloneElements(this._elements),
                     ty:'gr'
                 };
-                group.it.push({"a":{"a":0,"ix":1,"k":[0,0]},"nm":"Transform","o":{"a":0,"ix":7,"k":100},"p":{"a":0,"ix":2,"k":[0,0]},"r":{"a":1,"ix":6,"k":[{s:0,e:0,t:0},{s:0,e:0,t:1}]},"s":{"a":0,"ix":3,"k":[100,100]},"sa":{"a":0,"ix":5,"k":0},"sk":{"a":0,"ix":4,"k":0},"ty":"tr"});
+                group.it.push({'a':{'a':0,'ix':1,'k':[0,0]},'nm':'Transform','o':{'a':0,'ix':7,'k':100},'p':{'a':0,'ix':2,'k':[0,0]},'r':{'a':1,'ix':6,'k':[{s:0,e:0,t:0},{s:0,e:0,t:1}]},'s':{'a':0,'ix':3,'k':[100,100]},'sa':{'a':0,'ix':5,'k':0},'sk':{'a':0,'ix':4,'k':0},'ty':'tr'});
                 
                 this.arr.splice(0,0,group);
                 this._groups.splice(0,0,group);
diff --git a/player/js/utils/shapes/shapePathBuilder.js b/player/js/utils/shapes/shapePathBuilder.js
index 1d76a34..ea3d98a 100644
--- a/player/js/utils/shapes/shapePathBuilder.js
+++ b/player/js/utils/shapes/shapePathBuilder.js
@@ -5,12 +5,12 @@
         var _o = pathNodes.o;
         var _i = pathNodes.i;
         var _v = pathNodes.v;
-        var i, shapeString = " M" + mat.applyToPointStringified(_v[0][0], _v[0][1]);
+        var i, shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);
         for(i = 1; i < length; i += 1) {
-            shapeString += " C" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + " " + mat.applyToPointStringified(_i[i][0], _i[i][1]) + " " + mat.applyToPointStringified(_v[i][0], _v[i][1]);
+            shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);
         }
         if (closed && length) {
-            shapeString += " C" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + " " + mat.applyToPointStringified(_i[0][0], _i[0][1]) + " " + mat.applyToPointStringified(_v[0][0], _v[0][1]);
+            shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);
             shapeString += 'z';
         }
         return shapeString;
diff --git a/player/js/utils/text/TextProperty.js b/player/js/utils/text/TextProperty.js
index 01605f4..c193d6f 100644
--- a/player/js/utils/text/TextProperty.js
+++ b/player/js/utils/text/TextProperty.js
@@ -251,7 +251,7 @@
                         i = lastSpaceIndex;
                     }
                     currentHeight += documentData.finalLineHeight || documentData.finalSize*1.2;
-                    finalText.splice(i, lastSpaceIndex === i ? 1 : 0,"\r");
+                    finalText.splice(i, lastSpaceIndex === i ? 1 : 0,'\r');
                     //finalText = finalText.substr(0,i) + "\r" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);
                     lastSpaceIndex = -1;
                     lineWidth = 0;